案情大揭秘:是谁杀死了Agent2?

admin 2026-04-02 05:18:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文通过一个生动的案例,揭示了在Linux系统中使用’timeout’命令作为保护机制时可能引发的逻辑死锁陷阱。当攻击者使用’nohup./agent_time>/dev/null2>&1&’命令启动一个新Agent时,其父进程中的’timeout12’保护机制会在12秒后自动终止这个新启动的子进程,导致其上线即掉线。文章详细还原了这一过程,并指出这是一种典型的同步阻塞问题。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,安全开发,恶意软件


cover_image

案情大揭秘:是谁杀死了 Agent 2?

chika chika

痴卡

2026年3月31日 18:11 日本

下面是gmini的自娱自乐,感叹于gmini太有情调了,枯燥的开发调试过程不再五味,太有意思了…

作者写了一个linux系统的c2,然后由于vim,ping等命令容易进程卡死,所以加了一个保护机制。。。

nohup ./agent_time >/dev/null 2>&1 &    //执行后台运行

(命令执行成功,无输出)

Session [kali-2844955] >

[+] 新主机上线 -> [2] kali-2847853 (root (*))          //上线

Session [kali-2844955] >

[-] 主机掉线 -> [2] kali-2847853             //掉线

exit

[*] 已将 Session 1 切入后台,返回主菜单。

kill 1

[*] 已向主机 [1] 发送自毁指令。

C2 >

[-] 主机掉线 -> [1] kali-2844955

session 2

[-] 找不到目标 ID: 2

list

— 在线主机列表 (C2 Dashboard) —

ID    | 主机标识       | IP 地址       | 当前权限 | 上线时间


当前无主机在线。


C2 >

太精彩了!你刚才无意中完成了一次**“自己黑自己(Self-Pwn)”,并且完美地演示了什么叫“友军火力(Friendly Fire)”!

你遇到的这个现象:新 Agent 上线后,活了大概 10 几秒钟,然后突然暴毙掉线,这是一个极其经典的逻辑死锁陷阱。

🕵️‍♂️ 案情大揭秘:是谁杀死了 Agent 2?

凶手不是别人,正是它的“生父”——Agent 1 的防卡死保护机制(timeout 12

让我们来还原一下案发现场。还记得我们在 agent.cpp 里为了防止 vim 卡死,给所有执行的命令套上的“紧箍咒”吗?

代码是这样的:

std::string safe_cmd = std::string("timeout 12 ") + cmd + " 2>&1";

当你输入 nohup ./agent_time >/dev/null 2>&1 & 时,Agent 1 在底层实际交给 Linux 系统执行的命令变成了这样:

Bash

timeout 12 nohup ./agent_time >/dev/null 2>&1 & 2>&1

Linux 系统的执行过程如下:

  1. 看到最后的 &,系统立刻把前面的命令放入后台执行。于是 Agent 1 瞬间返回 (命令执行成功,无输出)
  2. 在后台,timeout 12 开始运行,并且它乖乖地启动了 nohup ./agent_time ...
  3. Agent 2 成功启动! 它连上了服务端,你在控制台上看到了 [+] 新主机上线 -> [2]
  4. 滴答、滴答…… 12 秒钟过去了。
  5. timeout 进程发现时间到了!它毫不留情地拔出了刀,向它启动的子进程(也就是 Agent 2)发送了 SIGTERM 终止信号。
  6. Agent 2 惨叫一声,被物理超度。 服务端立刻收到报错,打印出 [-] 主机掉线 -> [2]

可以说,Agent 2 刚出生,就被它的父亲定下了 12 秒的“死亡倒计时”。

🛠️ 怎么解决这个问题?绕过timeout 12

遇到的问题:

被 vimtop 或者 nano 卡死的绝望时刻。

最经典、最容易让人崩溃的“连环坑”——同步阻塞(Synchronous Blocking)。

欢迎评论区留言,但是作为工具的开发者,靠注入自己工具的漏洞来运行程序终究不太优雅。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:痴卡 chika chika《案情大揭秘:是谁杀死了 Agent 2?》

评论:0   参与:  0