gloxec / CrossC2

generate CobaltStrike's cross-platform payload
2.26k stars 344 forks source link

systemctl 无法上线 #140

Closed caixukundashabi closed 1 year ago

caixukundashabi commented 2 years ago

./test 可以上线 但是systemctl服务启动不行
报错如下 有遇到过这种情况的吗

bash-5.0# systemctl status kmpathd systemctl status kmpathd 鈼?kmpathd.service - kmpathd Loaded: loaded (/etc/systemd/system/kmpathd.service; enabled; vendor preset: enabled) Active: failed (Result: start-limit-hit) since Sat 2022-01-15 08:30:30 +07; 3min 11s ago Process: 859266 ExecStart=/etc/kmpathd (code=exited, status=0/SUCCESS) Main PID: 859266 (code=exited, status=0/SUCCESS)

Jan 15 08:30:29 sv2.ghsc-psm.org systemd[1]: kmpathd.service: Succeeded. Jan 15 08:30:30 sv2.ghsc-psm.org systemd[1]: kmpathd.service: Scheduled restart job, restart counter is at 5. Jan 15 08:30:30 sv2.ghsc-psm.org systemd[1]: Stopped kmpathd. Jan 15 08:30:30 sv2.ghsc-psm.org systemd[1]: kmpathd.service: Start request repeated too quickly. Jan 15 08:30:30 sv2.ghsc-psm.org systemd[1]: kmpathd.service: Failed with result 'start-limit-hit'. Jan 15 08:30:30 sv2.ghsc-psm.org systemd[1]: Failed to start kmpathd.

gloxec commented 2 years ago

应当是beacon采用daemon后台运行的缘故,所service在启动时之监控到父进程正常exit时,直接认定service启动失败,结束了接下来创建的子进程等。

该机制由linux底层daemon实现,常见daemon类程序都会向磁盘写入pidfile来记录pid方便service去跟踪,但beacon这样做会留下痕迹不推荐去实现。

可尝试本地实现个不退出的loader,负责启动beacon,这样service可正常监控及运行

gloxec commented 2 years ago

@caixukundashabi

v3.1.0 版本推出了config.ini的配置方式,其中可以控制是否进入后台模式 https://github.com/gloxec/CrossC2/releases/tag/v3.1.0

这样即可解决systemctl直接进行控制的问题 具体参考见: https://github.com/gloxec/CrossC2/blob/e74aecd8e15160a463c9eeb3c70123828829c1f6/src/config_demo.ini#L21