目 录CONTENT

文章目录

红队行动Live-20241116

Administrator
2025-04-16 / 0 评论 / 0 点赞 / 23 阅读 / 0 字


目录

  1. 开篇与环境回顾

  2. 目标机器枚举与分析

  3. 内部域枚举与拓扑发现

  4. 当前攻击面总结与后续方向

  5. 重要工具与技术再强调

  6. 环境与工具链挑战

  7. 红队思维与方法论

  8. 课程收尾与预告


1. 开篇与环境回顾

1.1 课程节奏与目标

  • 进度调整: 相比上半年,本次 Live 拓展了更多内容,导致主线任务推进相对分散。当前放缓节奏,目的是让学员巩固外网打点阶段的知识,并跟上进度。

  • 目标: 学员需清晰理解当前所处的攻击节点及其原因。

1.2 基础环境与工具准备

  • 多窗口操作: 使用 tmux 或类似工具管理多个 Shell 窗口,区分不同任务(如网络连接、目标交互)。

    • 示例:Window 0 (Network) 用于 VPN 连接和速度测试;Window 1 (或其他) 用于具体操作。

  • SSH 免密登录准备:

    • 工具: sshpass 用于在命令行中传递 SSH 密码,避免手动输入和记录密码。

    • 命令 (每次开始前执行):

      Bash

      # 使用密码通过 sshpass 在远程主机上执行命令,将本地公钥追加到远程 authorized_keys
      sshpass -p 'ca!@vyhjyt@#$!@31CASDF&^*3451@WADSFewr' \                       
      ssh-copy-id -f -i /root/Desktop/APTLabs/credentials/id_rsa.pub sshuser@10.10.110.74
      /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/Desktop/APTLabs/credentials/id_rsa.pub"
      
      # 假设公钥在本地 nextcloud.key.pub
      # 注意:实际执行时可能需要调整命令以正确处理引号和重定向,或直接拷贝公钥内容追加。
      # 讲师意图:确保后续可以使用密钥进行免密登录。使用追加模式 `>>` 可容错,重复执行无害。
    • 目的: 保证后续可以通过 SSH 密钥认证方式登录立足点机器 (10.10.110.74),为建立隧道做准备。

1.3 SSH 隧道 (sshuttle) 配置详解

  • 工具: sshuttle 用于创建 VPN/透明代理,将指定网段的流量通过 SSH 隧道转发到远程主机。

  • 密钥格式: 使用 ed25519 格式的密钥 (nextcloud.key),需要 OpenSSH 较新版本支持。

  • 命令解析:

    # 示例命令 (网段可能根据实际发现增加)
    sshuttle -vv -r sshuser@10.10.110.74 192.168.20.0/24 192.168.21.0/24 -e 'ssh -i /root/Desktop/APTLabs/credentials/nextcloud.key'
    • sudo: sshuttle 通常需要 root 权限来修改路由表和防火墙规则。

    • --dns: 将 DNS 查询也通过隧道转发。

    • -r sshuser@10.10.110.74: 指定远程 SSH 服务器和用户名。

    • --ssh-cmd 'ssh -i ~/.ssh/nextcloud.key': 指定用于连接的 SSH 命令,特别是使用 -i (identity) 指定私钥文件。

    • 192.168.20.0/24 192.168.21.0/24 ...: 指定需要通过隧道转发的目标网段。关键点: 随着渗透深入发现新网段(如笔记中提到的 22.x, 24.x),需要重新运行 sshuttle 并添加这些新网段。

    • -v: (可能需要加) 增加日志输出详细程度。

  • 效果: 执行后,在本地 Kali 机器上访问目标内网网段(如 20.x, 21.x)的流量,会像直接在远程主机 (10.10.110.74) 上访问一样。本地机器无法直接访问这些内网网段。

  • 重要性: 必须彻底理解此隧道机制,它是后续所有内网操作的基础(一级代理/穿透),后续可能在此基础上叠加更复杂的代理。

2. 目标机器枚举与分析

2.1 枚举目标范围 (192.168.20.x & 21.x)

  • 目标列表 (根据 PDF 和之前笔记): 192.168.20.1, 192.168.20.10, 192.168.20.15, 192.168.20.31, 192.168.21.123。

2.2 机器分析:192.168.20.1 (pfSense 防火墙)

  • 扫描发现:

    • Nmap (低权限) 初步只发现 TCP 53 (DNS, Unbound)

    • 手动探测或后续发现 TCP 80 (HTTP)TCP 22 (SSH) 也开放。

    • 启示: 低权限扫描可能不全,需结合服务知识进行针对性探测。

  • 服务识别: 运行 pfSense (基于 FreeBSD 的开源防火墙/路由器软件)。

  • 功能: 防火墙、路由、VPN、IDS/IPS、负载均衡等。

  • 管理接口: 通常有 Web UI (80/443) 和 SSH (22)。Web UI 截图显示登录界面。

  • SSH 尝试:

    • 使用 nc 192.168.20.1 22 确认端口开放,返回 OpenSSH banner。

    • 尝试用已知的 sshuser 凭据登录 (ssh sshuser@192.168.20.1)。

    • 失败: 密码错误,且几次尝试后连接被拒,表明存在登录失败锁定机制。

  • 攻击面评估:

    • Web UI 和 SSH 登录界面是潜在入口,需尝试默认/弱口令/撞库

    • 作为核心网络设备,其配置和版本通常统一且较稳定,若无明显漏洞或弱点,优先级可暂时降低。除非后续发现版本差异或特定信息,否则可认为其防御状态与当前一致。

    • 红队思维: 即使最终证明无用,也要完成对已知服务(如 SSH)的尝试(如撞库),确保覆盖所有可能的简单入口点,不能因为“感觉”没用就跳过。

2.3 机器分析:192.168.20.15 (ADFS 服务器?)

  • 扫描发现: TCP 80 (HTTP, 404), 443 (HTTPS?), 5985 (HTTP/WinRM), 49443 (Unknown)。OS: Windows。

    PORT STATE SERVICE VERSION
    80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
    |_http-server-header: Microsoft-HTTPAPI/2.0
    |_http-title: Not Found
    443/tcp open https?
    5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
    |_http-title: Not Found
    |_http-server-header: Microsoft-HTTPAPI/2.0
    49443/tcp open unknown
    Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
  • Web 服务 (80/443): 访问返回 404,需要目录爆破。

    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─$ curl http://192.168.20.15/
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
    4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <HTML><HEAD><TITLE>Not Found</TITLE>
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
    <BODY><h2>Not Found</h2>
    <hr><p>HTTP Error 404. The requested resource is not found.</p>
    </BODY></HTML>
  • 目录爆破 (gobuster):

    # 基础命令
    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─# gobuster dir -u http://192.168.20.1 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
    # 发现 /ADFS (Status: 503 Service Unavailable)
    
    # 推荐:修改 User-Agent 避免暴露
    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─# gobuster dir -u http://192.168.20.1 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -a 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'

    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─$ sudo gobuster dir -u http://192.168.20.15 -w
    /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
    ===============================================================
    Gobuster v3.6
    by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
    ===============================================================
    [+] Url: http://192.168.20.15
    [+] Method: GET
    [+] Threads: 10
    [+] Wordlist: /usr/share/dirbuster/wordlists/directory-list-
    2.3-medium.txt
    [+] Negative Status codes: 404
    [+] User Agent: gobuster/3.6
    [+] Timeout: 10s
    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    /ADFS (Status: 503) [Size: 326]
    Progress: 220560 / 220561 (100.00%)
    ===============================================================
    Finished
    ===============================================================
  • ADFS 发现: 路径 /ADFS 强烈暗示该服务器运行 Active Directory Federation Services

    • 状态 503: 服务存在但暂时不可用(可能过载、维护或网络策略限制)。当前无法直接交互。

    • ADFS 重要性: 实现单点登录 (SSO) 的核心组件,连接域内应用、Web 服务甚至外部合作伙伴。极高价值目标,控制 ADFS 通常意味着大范围的访问权限。

    • 后续关注: ADFS 将是后续课程的重要攻击目标和专题。

2.4 机器分析:192.168.20.10 (DC - 0x0security.local)

  • 扫描发现: 开放大量典型域控端口:53(DNS), 88(Kerberos), 135(RPC), 139/445(NetBIOS/SMB), 389/3268(LDAP/GC), 636/3269(LDAPS/GC-SSL), 593(HTTP RPC), 5985(WinRM), 9389(ADWS), 大量高位 RPC 端口。

    ===============================================================
    PORT STATE SERVICE VERSION
    53/tcp open domain Simple DNS Plus
    88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2023-
    12-24 23:30:46Z)
    135/tcp open msrpc Microsoft Windows RPC
    139/tcp open netbios-ssn Microsoft Windows netbios-ssn
    389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain:
    0x0security.local0., Site: Default-First-Site-Name)
    445/tcp open microsoft-ds?
    464/tcp open kpasswd5?
    593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
    636/tcp open tcpwrapped
    3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain:
    0x0security.local0., Site: Default-First-Site-Name)
    3269/tcp open tcpwrapped
    5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
    |_http-title: Not Found
    |_http-server-header: Microsoft-HTTPAPI/2.0
    9389/tcp open mc-nmf .NET Message Framing
    49666/tcp open msrpc Microsoft Windows RPC
    49668/tcp open msrpc Microsoft Windows RPC
    49669/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
    49670/tcp open msrpc Microsoft Windows RPC
    49697/tcp open msrpc Microsoft Windows RPC
    49733/tcp open msrpc Microsoft Windows RPC
    Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows
    Host script results:
    | smb2-time:
    | date: 2023-12-24T23:33:33
    |_ start_date: N/A
    | smb2-security-mode:
    | 3:1:1:
    |_ Message signing enabled and required
    |_nbstat: NetBIOS name: DC, NetBIOS user: <unknown>, NetBIOS MAC:
    00:50:56:b0:ff:5b (VMware)
    |_clock-skew: 7h59m59s
  • 识别: 明确为域控制器 (DC)。所属域 0x0security.local。主机名 DC

  • 攻击思路: 针对 DC 的攻击通常是利用 Kerberos 协议弱点 (Roasting)、凭据攻击 (喷洒、哈希传递)、LDAP 枚举、利用 AD 权限配置漏洞 (ACL、GPO、证书服务等)、已知 DC 相关漏洞等。直接攻击开放端口获取 Shell 可能性较低,除非有特定漏洞。

2.5 机器分析:192.168.20.31 (立足点/Nextcloud/NAT)

  • 扫描发现: 开放 22(SSH), 25(SMTP), 53(DNS), 443(HTTPS/Apache), 5000(HTTP/Apache), 8000(RTSP?), 8080(HTTPS/Radicale), 9100(JetDirect?)。

    PORT STATE SERVICE VERSION
    22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux;
    protocol 2.0)
    | ssh-hostkey:
    | 2048 b9:43:bc:ba:43:cc:2c:6e:d4:fc:d5:bc:c5:01:05:af (RSA)
    | 256 02:ab:aa:01:64:de:c5:89:2f:75:e3:6a:a9:ff:78:ee (ECDSA)
    |_ 256 9a:c2:d3:a0:fe:6a:ad:9a:4a:85:0d:c1:15:d1:13:be (ED25519)
    25/tcp open smtp Postfix smtpd
    |_smtp-commands: nextcloud, PIPELINING, SIZE 10240000, VRFY, ETRN,
    ENHANCEDSTATUSCODES, 8BITMIME, DSN, SMTPUTF8
    53/tcp open domain PowerDNS Authoritative Server 4.1.11
    | dns-nsid:
    | NSID: powergslb (706f77657267736c62)
    | id.server: powergslb
    |_ bind.version: PowerDNS Authoritative Server 4.1.11
    443/tcp open ssl/http Apache httpd 2.4.29 ((Ubuntu))
    |_http-server-header: Apache/2.4.29 (Ubuntu)
    | ssl-cert: Subject:
    commonName=0x0security.com/organizationName=GiganticHosting
    CA/stateOrProvinceName=Stockholm/countryName=SE
    | Subject Alternative Name: DNS:0x0security.com, DNS:*.0x0security.com
    | Not valid before: 2020-03-07T19:45:00
    |_Not valid after: 2030-01-07T00:00:00
    |_http-title: Promote Business Category Bootstrap Responsive Web Template |
    ...
    |_ssl-date: TLS randomness does not represent time
    | tls-alpn:
    |_ http/1.1
    5000/tcp open http Apache httpd 2.4.41 ((Unix))
    |_http-server-header: Apache/2.4.41 (Unix)
    |_http-title: Gigantic Hosting | Home
    | http-methods:
    |_ Potentially risky methods: TRACE
    8000/tcp open rtsp
    |_http-title: Not Found
    |_rtsp-methods: ERROR: Script execution failed (use -d to debug)
    | fingerprint-strings:
    | FourOhFourRequest, GetRequest, HTTPOptions:
    | HTTP/1.0 404 Not Found
    | Content-Type: text/html
    | X-Frame-Options: DENY
    | Content-Length: 179
    | X-Content-Type-Options: nosniff
    | <!doctype html>
    | <html lang="en">
    | <head>
    | <title>Not Found</title>
    | </head>
    | <body>
    | <h1>Not Found</h1><p>The requested resource was not found on this
    server.</p>
    | </body>
    | </html>
    | RTSPRequest:
    | RTSP/1.0 404 Not Found
    | Content-Type: text/html
    | X-Frame-Options: DENY
    | Content-Length: 179
    | X-Content-Type-Options: nosniff
    | <!doctype html>
    | <html lang="en">
    | <head>
    | <title>Not Found</title>
    | </head>
    | <body>
    | <h1>Not Found</h1><p>The requested resource was not found on this
    server.</p>
    | </body>
    | </html>
    | SIPOptions:
    | SIP/2.0 404 Not Found
    | Content-Type: text/html
    | X-Frame-Options: DENY
    | Content-Length: 179
    | X-Content-Type-Options: nosniff
    | <!doctype html>
    | <html lang="en">
    | <head>
    | <title>Not Found</title>
    | </head>
    | <body>
    | <h1>Not Found</h1><p>The requested resource was not found on this
    server.</p>
    | </body>
    |_ </html>
    8080/tcp open ssl/caldav Radicale calendar and contacts server (Python
    BaseHTTPServer)
    |_http-server-header: PowerGSLB/1.7.3 Python/2.7.5
    | ssl-cert: Subject:
    commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProv
    inceName=SomeState/countryName=--
    | Not valid before: 2020-01-09T12:45:01
    |_Not valid after: 2021-01-08T12:45:01
    |_http-title: Error response
    9100/tcp open jetdirect?
  • SSH 确认: 使用 sshuser 凭据和 nextcloud.key 成功登录ip a 显示其内部 IP 为 192.168.20.31,且系统信息与 10.10.110.74 完全一致,主机名为 nextcloud

  • 结论: 确认 192.168.20.31 就是外部立足点 10.10.110.74。它扮演网络 NAT 网关的角色,并托管了 Nextcloud 及其他一些服务(可能在 Docker 中,因为存在 docker0 网卡)。

  • Web 服务:

    • 443: 0x0security.com 网站 (与外部 110.231 一致)。

    • 5000: Gigantic Hosting 网站 (与外部 110.242 一致)。

    • 9100: Dataleks 网站 (与外部 110.88 一致,SQL 注入 payload 仍然有效)。

  • 优先级: 作为已控的跳板机,其本身不再是主要攻击目标,但仍是进出内网的通道和部分服务的宿主。

2.6 机器分析:192.168.21.123 (ServiceDesk 服务器)

  • 扫描发现: TCP 443 (HTTPS), 445 (SMB)。

    PORT STATE SERVICE VERSION
    443/tcp open ssl/https -
    |_http-title: ManageEngine ServiceDesk Plus
    | http-methods:
    |_ Potentially risky methods:
    | fingerprint-strings:
    | FourOhFourRequest:
    | HTTP/1.1 404
    | Set-Cookie: SDPSESSIONID=898F353E0217EFA2494ECD065F948215; Path=/;
    Secure; HttpOnly
    | Content-Type: text/html;charset=UTF-8
    | Vary: Accept-Encoding
    | Date: Sun, 24 Dec 2023 23:30:58 GMT
    | Connection: close
    | Server: -
    | <!DOCTYPE html>
    | <html>
    | <head>
    | <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    | <script>var isMSP = false; </script>
    | <!-- CWF START -->
    | <script type="text/javascript" src="/scripts/ClientLogger.js?11106">
    </script>
    | <script>
    | curLevStr = 'null';
    | //Level.INFO is stored as default..
    | curLev = 800;
    | levelVals = [{NAME:"FINEST",VALUE:300},{NAME:"FINER",VALUE:400},
    {NAME:"FINE",VALUE:500},{NAME:"CONFIG",VALUE:700},{NAME:"INFO",VALUE:800},
    {NAME:"WARNING",VALUE:900},{NAME:"SEVERE",VALUE:1000},
    {NAME:"ALL",VALUE:1200}];//no i18n
    | levelVals.length;
    | Level = {FINEST:"300",FINER:"400",FINE:"500",CONFIG:"700
    | GetRequest:
    | HTTP/1.1 200
    | Set-Cookie: SDPSESSIONID=FDD7DF6957D0C2D72F072D9A8E5CFB07; Path=/;
    Secure; HttpOnly
    | Cache-Control: no-cache, no-store
    | Expires: Thu, 01 Jan 1970 00:00:00 GMT
    | Pragma: no-cache
    | X-Content-Type-Options: nosniff
    | X-XSS-Protection: 1;mode=block
    | Content-Type: text/html;charset=UTF-8
    | Vary: Accept-Encoding
    | Date: Sun, 24 Dec 2023 23:30:58 GMT
    | Connection: close
    | Server: -
    | <!DOCTYPE html>
    | <html>
    | <head>
    | <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    | <!--SD-67048 : client-encoder.js and associated files were included as
    part of XSS fixes. -->
    | <script>
    | enableEncoding = true;
    | 'null' == "false" || 'null' == "no" )
    | enableEncoding = false;
    | </script>
    | <script language='JavaScript' type="text/javascript"
    src='/scripts/jquery-2.2.4.min.js'></script>
    | <!--jquery-extension.js is used to override the extend method pr
    | HTTPOptions:
    | HTTP/1.1 405
    | Set-Cookie: SDPSESSIONID=56E9DD21698999A9464A04A8DA5C6192; Path=/;
    Secure; HttpOnly
    | Allow:
    | Content-Type: text/plain
    | Content-Length: 0
    | Date: Sun, 24 Dec 2023 23:30:58 GMT
    | Connection: close
    |_ Server: -
    |_http-server-header: -
    |_ssl-date: 2023-12-24T23:34:23+00:00; +8h00m00s from scanner time.
    | ssl-cert: Subject: commonName=SERVICEDESK/organizationName=Zoho
    Corporation/stateOrProvinceName=CA/countryName=US
    | Not valid before: 2020-03-12T21:14:09
    |_Not valid after: 2120-02-17T21:14:09
    445/tcp open microsoft-ds?
  • Web 服务 (443):

    • ManageEngine ServiceDesk Plus 登录页面。版本 11.1

    • 包含 "Log in with SAML Single Sign On" 选项,强烈暗示与 ADFS 集成。

  • 服务分析: ServiceDesk Plus 是 ITSM/帮助台软件。

    • 通用攻击思路 (针对管理系统): 寻找命令执行点(配置、插件、归档、检查功能)、高权限接口、文件上传漏洞、已知 CVE。关注其“可定制性”、“灵活性”特性,这些地方易出问题。

  • 漏洞研究:

    • searchsploit manageengine servicedesk plus: 找到针对旧版本 (&lt;10, &lt;9.4, &lt;8) 的 RCE, SQLi, 访问控制漏洞。当前版本 11.1 无直接匹配

    • 需要 Goolge/GitHub 搜索: 寻找针对 11.1 版本更新的漏洞/利用。

    • 理解漏洞生态: Exploit-DB 等公开库收录的是已知、可能已修复或利用价值降低的漏洞。最新漏洞可能在地下市场交易或需要自行挖掘。

  • SMB 服务 (445):

    • nxc smb 192.168.21.123 (或 crackmapexec):


    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─$ crackmapexec smb 192.168.21.123
    SMB 192.168.21.123 445 SERVICEDESK [*] Windows 10.0 Build 17763 (name:SERVICEDESK) (domain:GiganticHosting.local) (signing:False)
    (SMBv1:False)
    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─# nxc smb 192.168.21.123
    SMB         192.168.21.123  445    SERVICEDESK      [*] Windows 10 / Server 2019 Build 17763 (name:SERVICEDESK) (domain:GiganticHosting.local) (signing:False) (SMBv1:False)
    • 输出:主机名 SERVICEDESK, 域 GiganticHosting.local, OS Windows 10 Build 17763, SMB Signing: False, SMBv1: False。

    • [*]前缀的信息表示该行内容是关于目标主机192.168.21.123的一些关键发现或结果。它通常用 于标示正常消息、提示信息或者是一些重要的发现,与错误消息(通常使用[!])或者成功消息 (如使用[+])相区分。

    • SERVICEDESK:命令检测到的目标计算机的名称。

    • Windows 10.0 Build 17763:目标系统的操作系统版本,这里是Windows 10,内部版本号为 17763。

    • domain:GiganticHosting.local:目标计算机所属的域名称。

    • signing:False:表示SMB消息签名未启用。SMB消息签名有助于防止中间人攻击,未启用可 能会使系统更容易受到攻击。

    • SMBv1:False:表示目标系统没有启用SMBv1协议。SMBv1是一个较老的协议版本,因安全 问题通常建议禁用。

    • 匿名枚举尝试:

      • smbclient -L \\192.168.21.123 -N: 失败 (Access Denied)。

      • enum4linux-ng -a 192.168.21.123 (或 enum4linux): 失败 (Server doesn't allow session)。

      • smbmap -H 192.168.21.123: 可能也无法匿名列出。

      ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
      └─# smbmap -H 192.168.21.123
          ________  ___      ___  _______   ___      ___       __         _______
         /"       )|"  \    /"  ||   _  "\ |"  \    /"  |     /""\       |   __ "\
        (:   \___/  \   \  //   |(. |_)  :) \   \  //   |    /    \      (. |__) :)
         \___  \    /\  \/.    ||:     \/   /\   \/.    |   /' /\  \     |:  ____/
          __/  \   |: \.        |(|  _  \  |: \.        |  //  __'  \    (|  /
         /" \   :) |.  \    /:  ||: |_)  :)|.  \    /:  | /   /  \   \  /|__/ \
        (_______/  |___|\__/|___|(_______/ |___|\__/|___|(___/    \___)(_______)
      -----------------------------------------------------------------------------
      SMBMap - Samba Share Enumerator v1.10.5 | Shawn Evans - ShawnDEvans@gmail.com
                           https://github.com/ShawnDEvans/smbmap
      
      [\] Checking for open ports...
      [*] Detected 1 hosts serving SMB
      [|] Authenticating...
      [|] Authenticating...
      [/] Authenticating...
      [-] Authenticating...
      [*] Established 1 SMB connections(s) and 0 authenticated session(s)
      [\] Closing connections..
      [|] Closing connections..
      [|] Closing connections..
  • 结论: SMB 服务存在,但匿名访问受限。需要有效凭据才能进一步枚举共享和交互。

3. 内部域枚举与拓扑发现

3.1 枚举环境选择:内部 vs 隧道

  • 推荐: 在立足点机器 (192.168.20.31) 内部执行 DNS 和域枚举,结果通常比通过 sshuttle 隧道从 Kali 执行更准确快速

3.2 枚举域 0x0security.local (DC: 20.10)

  • 命令 (在 20.31 上执行):

    sshuser@nextcloud:~$ dig @192.168.20.10 0x0security.local ANY
    
    ; <<>> DiG 9.18.24-0ubuntu0.22.04.1-Ubuntu <<>> @192.168.20.10 0x0security.local ANY
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; WARNING: .local is reserved for Multicast DNS
    ;; You are currently testing what happens when an mDNS query is leaked to DNS
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32349
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4000
    ;; QUESTION SECTION:
    ;0x0security.local.             IN      ANY
    
    ;; ANSWER SECTION:
    0x0security.local.      600     IN      A       192.168.20.10
    0x0security.local.      3600    IN      NS      dc.0x0security.local.
    0x0security.local.      3600    IN      SOA     dc.0x0security.local. hostmaster.0x0security.local. 109 900 600 86400 3600
    
    ;; ADDITIONAL SECTION:
    dc.0x0security.local.   3600    IN      A       192.168.20.10
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.20.10#53(192.168.20.10) (TCP)
    ;; WHEN: Thu Apr 17 15:56:32 UTC 2025
    ;; MSG SIZE  rcvd: 142
  • 发现:

    • 确认 192.168.20.10 是该域的 DC (NS 记录指向 dc.0x0security.local)。

    • A 记录指向 192.168.20.10

    • SOA 记录中的 hostmaster.0x0security.local 解析为邮箱地址 hostmaster@0x0security.local

    • 未发现其他重要主机记录。

3.3 枚举域 GiganticHosting.local (DC: 21.10)

  • 发现来源:20.10 作为 DNS 服务器查询 gigantichosting.local 时,发现其 NS 和 A 记录指向 192.168.21.10 (dc.gigantichosting.local)。

  • 命令 (在 20.31 上执行):

    dig @192.168.20.10 gigantichosting.local ANY  # 通过 20.10 查询
    dig @192.168.21.10 gigantichosting.local ANY  # 直接查询 21.10 确认
  • 发现:

    • 确认 192.168.21.10GiganticHosting.local 域的 DC。

    • 关键推理: 能在 20.x 网络环境查询到 21.x 域的信息,暗示两个域/网络之间可能存在信任关系或路由可达

3.4 枚举域 cubano.local (DC: 23.10)

  • 发现来源: 之前在外网 10.10.110.13 的 PowerGSLB DNS 管理界面看到 cubano.local 的 DC 指向 192.168.23.10

  • 尝试查询 (在 20.31 上执行):

    • dig @192.168.23.10 cubano.local ANY -> 失败 (Timeout)。说明从 20.x 网络无法直接访问 23.10

    sshuser@nextcloud:~$ dig @192.168.23.10 cubano.local ANY
    ;; Connection to 192.168.23.10#53(192.168.23.10) for cubano.local failed: timed out.
    ;; no servers could be reached
    
    ;; Connection to 192.168.23.10#53(192.168.23.10) for cubano.local failed: timed out.
    ;; no servers could be reached
    
    ;; Connection to 192.168.23.10#53(192.168.23.10) for cubano.local failed: timed out.
    ;; no servers could be reached
    
    sshuser@nextcloud:~$ 
    • dig @192.168.20.10 cubano.local ANY -> 失败 (Not Found)20.10 不知道 cubano.local

    sshuser@nextcloud:~$ dig @192.168.20.10 cubano.local ANY
    ;; communications error to 192.168.20.10#53: timed out
    ;; ERROR: ID mismatch: expected ID 8754, got 9122
    sshuser@nextcloud:~$ 
    • dig @192.168.21.10 cubano.local ANY -> 成功! 返回 192.168.23.10dc.cubano.local

      sshuser@nextcloud:~$ dig @192.168.21.10 cubano.local ANY
      
      ; <<>> DiG 9.18.24-0ubuntu0.22.04.1-Ubuntu <<>> @192.168.21.10 cubano.local ANY
      ; (1 server found)
      ;; global options: +cmd
      ;; Got answer:
      ;; WARNING: .local is reserved for Multicast DNS
      ;; You are currently testing what happens when an mDNS query is leaked to DNS
      ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37058
      ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 2
      
      ;; OPT PSEUDOSECTION:
      ; EDNS: version: 0, flags:; udp: 4000
      ;; QUESTION SECTION:
      ;cubano.local.                  IN      ANY
      
      ;; ANSWER SECTION:
      cubano.local.           600     IN      A       192.168.23.10
      cubano.local.           3600    IN      NS      dc.cubano.local.
      cubano.local.           3600    IN      SOA     dc.cubano.local. hostmaster.cubano.local. 207 900 600 86400 3600
      
      ;; ADDITIONAL SECTION:
      dc.cubano.local.        3600    IN      A       192.168.23.10
      
      ;; Query time: 4 msec
      ;; SERVER: 192.168.21.10#53(192.168.21.10) (TCP)
      ;; WHEN: Thu Apr 17 16:08:12 UTC 2025
      ;; MSG SIZE  rcvd: 137
      
      sshuser@nextcloud:~$ 

3.5 推断域信任关系

  • 结论:

    • 0x0security.local (20.x) 与 GiganticHosting.local (21.x) 之间似乎存在某种信任或可路由关系 (至少 DNS 可达)。

    • GiganticHosting.local (21.x) 与 cubano.local (23.x) 之间似乎存在某种信任或可路由关系。

    • 0x0security.local (20.x) 与 cubano.local (23.x) 之间没有直接关系。

  • 攻击路径启示: 要攻击 cubano.local (23.x),很可能需要先攻陷 GiganticHosting.local (21.x) 作为跳板。

3.6 DNS 枚举总结与 hosts 文件更新

  • 汇总 DNS 信息:

    • 192.168.20.10 -> dc.0x0security.local, 0x0security.local

    • 192.168.21.10 -> dc.gigantichosting.local, gigantichosting.local

    • 192.168.23.10 -> dc.cubano.local, cubano.local

  • 操作: 将这些解析记录添加到攻击机 (Kali) 的 /etc/hosts 文件中,以便后续可以使用域名访问这些主机。

    ┌──(root㉿kali)-[~/Desktop/APTLabs/saomiao]
    └─# cat /etc/hosts                                   
    192.168.20.10 dc.0x0security.local 0x0security.local
    192.168.21.10 dc.gigantichosting.local gigantichosting.local
    192.168.23.10 dc.cubano.local cubano.local
    
    10.10.16.111    nextcloud.server.0x0security.com
    10.10.16.111    server.0x0security.com
    10.10.110.231   0x0security.com
    10.10.110.231   nextcloud.0x0security.com
    10.10.110.231   storage.0x0security.com
    127.0.0.1       localhost
    127.0.1.1       kali
    ::1             localhost ip6-localhost ip6-loopback
    ff02::1         ip6-allnodes
    ff02::2         ip6-allrouters
    
    192.168.20.31 zero.sec

4. 当前攻击面总结与后续方向

4.1 已发现的关键应用与服务 (pfSense, ADFS, ServiceDesk)

  • pfSense (20.1): 防火墙/路由器,SSH 登录失败且有锁定,暂无明确入口。

  • ADFS (发现于 20.15): 联合身份认证服务,当前 503 无法访问,但存在是重要信息。

  • ServiceDesk Plus (21.123): IT 服务管理系统 v11.1,存在 SAML/SSO 登录选项(可能与 ADFS 关联),本身可能存在漏洞(需进一步研究),开放 SMB 服务。

4.2 下一步攻击思路 (域攻击, ServiceDesk 利用)

  • 域攻击: 执行标准的域渗透技术:

    • AS-REP Roasting: 枚举两个域 (0x0security, GiganticHosting) 中是否存在禁用预认证的用户。

    • Kerberoasting: 使用 sshuser 凭据(或后续可能获取的其他凭据)枚举并尝试破解两个域中服务账号的 TGS 票据。

  • ServiceDesk Plus (21.123):

    • 漏洞利用: 深入搜索 v11.1 的已知漏洞 (RCE, LFI, SQLi等)。

    • 撞库: 尝试使用 sshuser 凭据或其他猜测的凭据登录 Web 界面。

    • SAML/ADFS: 研究如何利用 SAML 或与 ADFS 的集成点进行攻击(需要对 ADFS 有更深入了解)。

    • SMB: 如果获得凭据,尝试连接 SMB 服务,枚举共享,查找敏感信息或利用点。

5. 重要工具与技术再强调

5.1 crackmapexec / nxc 工具详解

  • 历史: crackmapexec (CME) 是经典工具,但已较少维护。

  • 现状: netexec (nxc) 是其活跃的继任者,功能更全(增加 NFS, VNC 等协议支持),命令结构类似 (nxc <protocol> <target> [options])。

  • 核心功能: 针对多种协议 (SMB, WinRM, LDAP, SSH, FTP, MSSQL 等) 进行枚举认证测试/爆破

  • 重要性: 域渗透必备瑞士军刀,需要深入学习其各协议模块的用法和参数。

  • 学习方法: 理解协议本身 -> 理解工具如何与协议交互 -> 理解各参数的作用 -> 熟练使用。

5.2 impacket 框架的重要性

  • 定位: Python 编写的网络协议交互库和工具集。

  • 核心工具: 包含大量用于域渗透的脚本 (GetUserSPNs.py, GetNPUsers.py, secretsdump.py, psexec.py, smbexec.py, wmiexec.py 等)。

  • 重要性:nxc 同样重要,是 Linux 平台下进行域渗透的主要工具集。

5.3 学习方法:研究工具源码

  • nxcimpacket 都是开源 Python 项目。

  • 建议: 阅读源码是提升 Python 编程能力和深入理解工具内部原理的最佳途径。可以尝试修改、优化甚至重写部分功能。

6. 环境与工具链挑战

6.1 PS Remoting 跨平台问题

  • 问题: 在 Kali Linux (pwsh) 上使用 PowerShell Remoting 连接 Windows 目标时,遇到连接不稳定或失败的问题(似乎与库或兼容性有关,上半年正常,现在有问题)。

  • 影响: 可能导致无法在 Kali 上流畅执行需要 PS Remoting 的操作(如运行 Rubeus/PowerView 的某些功能)。

  • 解决方案探索:

    • 团队正在调试,尝试不同版本或配置,但希望不大。

    • 备选方案:

      • 使用 HTB PwnBox/VIP Box (在线 Linux 环境,可能兼容性更好)。

      • 切换到 基于 Windows 的渗透测试环境

6.2 Windows 渗透环境的必要性 (Commando VM)

  • 现实: 完全脱离 Windows 环境进行复杂的域渗透几乎不可能。

  • 原因:

    • 工具兼容性: 某些强大的工具(如 Rubeus)是 .NET 程序,在 Windows 下运行最佳。

    • 环境交互: 有些操作(如 GPO 编辑、某些 WMI 操作)在 Windows 下更方便。

    • 编译需求: 有时需要编译 C#/C++ 的开源工具(如某些提权 exploit),需要 Visual Studio 环境。

  • 推荐: 准备一个 Windows 渗透测试虚拟机(如 Commando VM 或自行配置)。

6.3 后续技术专题预告 (PS Remoting, PowerShell, Impacket, NXC)

  • 即将深入讲解:

    • PS Remoting: 结合当前遇到的问题,会有一个小专题讲解其原理和排错。

    • PowerShell for Security: 深入讲解 PowerView 等工具和安全相关的 PS 应用(可能安排在遇到复杂需求时)。

    • Impacket Framework: 核心脚本详解。

    • NXC (NetExec): 各模块应用。

  • 当前阶段特点: 是一个技术密集的“泥潭”,涉及免杀、绕过、复杂配置 (ADFS),需要耐心和细致。

7. 红队思维与方法论

7.1 信息收集与经验结合

  • 遇到未知应用/服务,不能仅凭经验猜测,也不能只收集信息而不结合经验。

  • 流程: 了解应用业务功能 -> 搜索公开漏洞 -> 结合自身经验判断其在攻击链中可能扮演的角色 -> 制定测试计划。

7.2 攻击路径选择与优先级排序

  • 内网目标众多时,选择比努力更重要

  • 方法: 基于现有信息(服务、漏洞、关联性、业务重要性)不断评估各目标的优先级,动态调整攻击方向。

  • 聪明选择来源: 深入理解每个组件的功能和潜在弱点,结合经验构建可能的攻击路径,并进行尝试验证。

7.3 理解应用功能与寻找攻击点

  • 核心目标: 获取系统权限 = 执行系统命令。

  • 通用思路 (针对管理系统如 CMS, ERP, OA, ServiceDesk): 将其视为一个图形化的 Shell。寻找任何可能执行代码或系统命令的功能点:

    • 插件/扩展/主题管理(上传恶意代码)。

    • 配置修改(指向恶意路径、注入命令)。

    • 文件上传/下载功能。

    • 备份/归档/恢复功能(可能包含命令执行选项)。

    • 系统诊断/检查功能。

    • 富文本编辑器漏洞。

    • 可定制性/灵活性相关的配置接口。

  • 登录后风险: 很多系统登录前防御严密,登录后(即使是低权限)可能存在更多逻辑漏洞或功能滥用点。

7.4 漏洞利用与漏洞市场生态

  • 信息来源: searchsploit/Exploit-DB, Google, GitHub。

  • 局限性: 公开库通常收录较旧、已广为人知的漏洞。

  • 漏洞生命周期: 新漏洞(尤其是 0day/Nday)有商业价值,会先在地下市场流通,一段时间后才可能公开或被集成到工具库。

  • 心态: 学习阶段使用公开漏洞理解原理。实战中,若公开途径找不到,可能需要自行挖掘或购买漏洞信息。

7.5 操作隐蔽性 (User-Agent 修改)

  • 风险: 许多扫描/爆破工具(如 gobuster)默认使用可明确识别工具身份的 User-Agent,极易暴露攻击行为。

  • 措施: 执行扫描时务必使用 -a 或等效参数,将 User-Agent 修改为常见浏览器的 UA 字符串

  • 获取 UA: 浏览器开发者工具 (F12) -> Network -> 任选一个请求 -> Headers -> Request Headers -> User-Agent。

  • 意识: 时刻注意操作可能留下的日志痕迹,尽量减少可识别的特征。

7.6 基础操作的扎实性 (端口探测、撞库)

  • 不留死角:

    • 端口: 不能完全信任 Nmap 结果(尤其低权限),要结合服务知识(如 pfSense 通常开 SSH)进行针对性验证 (nc)。

    • 撞库: 对发现的登录界面(Web, SSH 等),务必尝试使用已获取或猜测的凭据进行撞库。简单的撞库成功有时能避免复杂的技术利用。不能因为“感觉”不太可能就跳过。

  • 思维: 把所有尝试都走到,即使是弯路,也能确保覆盖全面,增加成功的必然性。

7.7 边干边学与持续探索

  • 心态: 不可能万事俱备才开始行动。渗透测试本身就是在信息不完全的情况下探索和学习的过程。

  • 方法: 遇到新应用/技术,快速了解其基础 -> 尝试基本攻击方法 -> 根据反馈深入学习 -> 迭代攻击思路。

8. 课程收尾与预告

  • 下周二内容: 继续当前域枚举和攻击的实操环节,可能会引入 PS Remoting 的专题讲解。

  • 环境准备: 学员需确保隧道畅通,工具可用。准备好应对 PS Remoting 可能的问题(使用 PwnBox 或 Windows VM)。

-.-

0

评论区