Impost3r配置完全手册:一文看懂main.h中的10个关键参数
【免费下载链接】Impost3r👻Impost3r -- A linux password thief项目地址: https://gitcode.com/gh_mirrors/im/Impost3r
Impost3r 是一款用 C 语言编写的 Linux 密码嗅探(窃取)工具,专门针对 ssh、su、sudo 三类密码,凭借"DNS 协议回传 + 自动擦除痕迹"两大特性闻名安全圈。而它的一切行为,几乎都浓缩在main.h这一个头文件里——参数改对了,事半功倍;改错一处,可能前功尽弃。本手册将逐行拆解 main.h 中的 10 个关键参数,帮你快速完成 Impost3r 配置。
配置前必读:两份 main.h 文件有什么不同?
很多新手第一次打开源码就懵了:项目里居然有两份main.h,到底改哪一份?答案取决于你要偷什么密码:
| 文件 | 适用场景 | 权限要求 | 部署方式 |
|---|---|---|---|
| sudo/main.h | 窃取sudo密码 | 普通用户即可 | alias 劫持,编译出可执行文件.impost3r |
| ssh_su/main.h | 窃取ssh / su密码 | 必须 root | PAM 模块,编译出impost3r.so放入安全目录 |
两份文件里大约 70% 的参数是共用的(如 DNS 回传相关),但各有几个独有参数。下面按 10 个关键参数逐个说明。
参数1:SSH_OR_BOTH——决定"偷谁"的模式开关
这是 ssh_su/main.h 独有的参数,只有两个取值:
0:仅窃取ssh登录密码,回传最稳定,推荐使用;1:同时窃取ssh + su切换密码,但回传成功率无法保证。
安全研究圈普遍建议只用0:因为绝大多数用户的 ssh 与 su 密码相同,偷到 ssh 就够了,没必要冒着丢结果的风险去偷 su。这个参数还会连带影响下面两个参数是否生效,稍后细说。
参数2:FILENAME——Impost3r 在目标机的"藏身位置"
它出现在 sudo/main.h 中,表示编译产物在目标服务器上的存放路径,默认/tmp/.impost3r。
这里有一个新手必踩的坑:FILENAME 必须和你写入目标机~/.bashrc的 alias 劫持语句里的路径完全一致。例如你在.bashrc里写的是/tmp/.impost3r "$@",那么 FILENAME 就必须是/tmp/.impost3r,否则劫持会静默失效。
参数3:BACKUP_ORI_FILENAME 与 BACKUP_ORI_PATH——备份配置"一对搭"
这两个参数同样只在 sudo/main.h 中出现,用于记录攻击者对目标用户原始 shell 配置文件的备份信息:
BACKUP_ORI_FILENAME:备份的源文件名,默认.bashrc(也可能是.bash_profile、.profile、.bash_login);BACKUP_ORI_PATH:备份文件在目标机上的存放路径,默认/tmp/.bashrc。
由于 sudo 模式需要先备份用户的.bashrc、再往原文件末尾追加 alias 劫持代码,这两个参数保证 Impost3r 在"收网"时能精准还原现场、自动擦除痕迹。想了解完整的擦除逻辑,可以对照源码 sudo/main.c 阅读。
参数4:SAVE_OR_SEND——DNS 回传还是本地保存?
这是两份 main.h 都有的核心开关,也是整个配置的"分水岭":
0:将窃取结果通过DNS 协议发送到攻击者服务器(默认,推荐);1:将结果以明文形式保存在目标机器本地,由攻击者后续自行取回。
选择发送模式时,结果会经过 base32 编码后伪装成 DNS 查询请求发出,很难被常规流量检测发现,这也是 Impost3r 被称为"隐身"嗅探工具的原因。编码实现可参考 encode/base32.c。
参数5:YOUR_DOMAIN——DNS 回传的"门牌号"
YOUR_DOMAIN控制回传数据挂在哪个域名后缀下,默认值是.com。它的用法分两种情况:
- 直连模式(默认):目标机能直接 UDP 访问你控制的 DNS 服务器 53 端口,保持
.com即可; - 借道模式:目标机严格限制 DNS 出站时,改为你购买的域名(如
.example.com),并把该域名的 NS 记录指向你控制的 DNS 服务器,再运行项目自带的 Fdns 接收端。
⚠️ 特别提醒:Fdns 接收端 Fdns/util.h 里的 YOUR_DOMAIN 必须与 Impost3r 编译时用的值完全一致,否则回传数据将无法被正确解析,导致窃取失败。
参数6:MAX_RESEND——回传失败的最大重试次数
当回传密码后收不到 DNS 应答,Impost3r 会按设定次数自动重发,默认30次。这个值越大,结果送达概率越高,但暴露风险也略增。
注意:该参数仅当SSH_OR_BOTH为 0(纯 ssh 模式)且选择 DNS 发送时才生效——因为 ssh_su/main.c 中对 ssh+su 模式走的是单次发送逻辑sendSingleResult,只有纯 ssh 模式才会进入带重试的sendResult。
参数7:RESEND_INTERVAL——两次重发的时间间隔
与 MAX_RESEND 配合使用,默认5(秒),即每 5 秒重发一次。假设目标网络状况较差,可以适当调大间隔、避免 UDP 包被丢弃;若追求快速回传,则可调小。这个参数的生效条件与参数6完全相同。
参数8:REMOTE_ADDRESS——接收密码的服务器地址
这是回传目标的 IP,默认192.168.0.12,必须改成你实际控制的 DNS 服务器公网 IP,否则密码会发到空气里。在借道模式下,这里要填的则是目标机默认 DNS 服务器的地址,注意区分。
参数9:REMOTE_PORT——接收密码的服务器端口
配合 REMOTE_ADDRESS 使用,默认53(DNS 服务标准端口),绝大多数场景保持默认即可。如果修改了端口,Fdns 接收端也要同步修改监听端口——Fdns 的端口在 Fdns/main.c 中设置,编译前记得检查。
参数10:SAVE_LOCATION——本地保存的文件路径
当SAVE_OR_SEND设为1时,窃取结果会写入此路径:
- sudo 模式默认
/tmp/.cache(见 sudo/main.h); - ssh_su 模式默认
/tmp/.sshsucache(见 ssh_su/main.h)。
建议选用隐藏路径并设置合理权限,避免被目标用户意外发现。
一张速查表看懂 10 个参数
| 参数 | 所在文件 | 默认值 | 作用 |
|---|---|---|---|
| SSH_OR_BOTH | ssh_su | 0 | 仅 ssh / ssh+su 模式切换 |
| FILENAME | sudo | /tmp/.impost3r | 程序在目标机的部署路径 |
| BACKUP_ORI_FILENAME | sudo | .bashrc | 备份的源配置文件名称 |
| BACKUP_ORI_PATH | sudo | /tmp/.bashrc | 备份文件存放路径 |
| SAVE_OR_SEND | 两份都有 | 0 | DNS 回传 / 本地保存切换 |
| YOUR_DOMAIN | 两份都有 | .com | DNS 回传域名后缀 |
| MAX_RESEND | 两份都有 | 30 | 最大重试次数 |
| RESEND_INTERVAL | 两份都有 | 5 | 重发间隔(秒) |
| REMOTE_ADDRESS | 两份都有 | 192.168.0.12 | 接收服务器地址 |
| REMOTE_PORT | 两份都有 | 53 | 接收服务器端口 |
| SAVE_LOCATION | 两份都有 | /tmp/.cache | 本地保存路径 |
快速上手:按场景套用配置组合
场景A:普通用户权限窃取 sudo 密码 🎯
只需修改 sudo/main.h,重点确认三件事:
FILENAME与.bashrc中 alias 劫持的路径一致;SAVE_OR_SEND按需选择回传或保存;- 回传模式下填对
REMOTE_ADDRESS、REMOTE_PORT,并保持YOUR_DOMAIN与 Fdns 一致。
改完执行make,把编译出的.impost3r上传到目标机/tmp/下,攻击端启动 Fdns 即可收网。
场景B:root 权限窃取 ssh/su 密码 🎯
编辑 ssh_su/main.h,将SSH_OR_BOTH设为 0(纯 ssh 模式最稳),执行make得到impost3r.so,上传至 PAM 的 security 目录,并在/etc/pam.d/sshd末尾追加:
auth optional impost3r.so account optional impost3r.so重启 sshd 服务后等待合法用户登录即可。
常见坑与排错建议 🔧
- 改了参数没重新编译:所有参数都是编译期常量,修改后必须重新
make才会生效; - 收不到回传数据:优先检查
REMOTE_ADDRESS是否可达、53 端口 UDP 是否放行、Fdns 的YOUR_DOMAIN是否与 Impost3r 一致; - sudo 劫持静默失效:检查
FILENAME与 alias 路径、.bashrc是否被source生效; - 目标机 DNS 出站被限制:切换到借道模式,购买域名并配置 NS 记录指向自己的 DNS 服务器;
- 无法确认是否具备权限:sudo 模式先用
sudo -v判断当前用户是否在 sudoer 组,不在则切勿使用。
掌握这 10 个参数,Impost3r 配置对你来说就不再是黑盒。从一份main.h出发,你就能完整掌控"部署—劫持—回传—擦痕"的全流程。需要深入调试时,别忘了配合阅读 sudo/main.c、ssh_su/main.c 与 dns/dns.c 的源码实现。
【免费下载链接】Impost3r👻Impost3r -- A linux password thief项目地址: https://gitcode.com/gh_mirrors/im/Impost3r
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考