目录
开篇与环境回顾
目标机器枚举与分析
内部域枚举与拓扑发现
3.2 枚举域
0x0security.local(DC: 20.10)3.3 枚举域
GiganticHosting.local(DC: 21.10)3.4 枚举域
cubano.local(DC: 23.10)3.6 DNS 枚举总结与
hosts文件更新
当前攻击面总结与后续方向
重要工具与技术再强调
环境与工具链挑战
红队思维与方法论
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: 找到针对旧版本 (<10, <9.4, <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.10是GiganticHosting.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.10是dc.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.local192.168.21.10->dc.gigantichosting.local,gigantichosting.local192.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 学习方法:研究工具源码
nxc和impacket都是开源 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)。
-.-
评论区