Metasploit中的 Payload 模块
因为有一阵子天天弄不清楚到底选择哪个payload而感觉脑壳痛,所以查了很多资料,我大致在这里总结一下
一。类型(三种基础的)
1-Single: 是一种完全独立的Payload,而且使用起来就像运行 calc.exe 一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似 netcat 这样的非metasploit处理工具所捕捉到。
*
2-Stager(一般是最后的那一部分):这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。
*
3-Stage(一般是第二部分): 是Stager Payload下的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。
二。名称和格式
Single Payload 的格式为:<>/ 如:windows/powershell_bind_tcp
Stager/Stage Payload的格式为:/ / 如:windows/meterpreter/reverse_tcp
三。 Stager中几种常见的payload(metepreter为主)
- windows/meterpreter/bind_tcp #正向连接(不常用,信息量太大,易出错)
windows/meterpreter/reverse_tcp #反向连接(常用)
windows/meterpreter/reverse_http #通过监听80端口反向连接
windows/meterpreter/reverse_https #通过监听443端口反向连接
正向连接使用场景:我们的攻击机在内网环境,被攻击机是外网环境,由于被攻击机无法主动连接到我们的主机,所以就必须我们主动连接被攻击机了。但是这里经常遇到的问题是,被攻击机上开了防火墙,只允许访问指定的端口,比如被攻击机只对外开放了80端口。那么,我们就只能设置正向连接80端口了,这里很有可能失败,因为80端口上的流量太多了
反向连接使用场景:我们的主机和被攻击机都是在外网或者都是在内网,这样被攻击机就能主动连接到我们的主机了。如果是这样的情况,建议使用反向连接,因为反向连接的话,即使被攻击机开了防火墙也没事,防火墙只是阻止进入被攻击机的流量,而不会阻止被攻击机主动向外连接的流量。
反向连接80(http)和443(https)端口使用场景:被攻击机能主动连接到我们的主机,还有就是被攻击机的防火墙设置的特别严格,就连被攻击机访问外部网络的流量也进行了严格的限制,只允许被攻击机的80端口或443端口与外部通信