温馨提示×

Ubuntu Exploit攻击者如何隐藏踪迹

小樊
55
2026-01-02 19:08:47
栏目: 网络安全

Ubuntu 环境下常见的隐匿踪迹手法与对应检测要点

以下内容仅用于合法的安全研究、攻防演练与应急处置,切勿用于未授权的入侵或破坏活动。

一 命令历史与会话痕迹隐匿

  • 利用环境变量控制历史记录:设置 HISTFILE= 临时取消持久化、将 HISTSIZE/HISTFILESIZE 调为 0、用 HISTCONTROL=ignorespace/ignoreboth 让以空格开头的命令不被记录;在 Ubuntu 18.04 中可直接执行 set +o history 暂停记录,恢复用 set -o history。注意 set +o history 这条命令本身通常会被记录,除非前置空格触发 ignorespace。持久化需写入 ~/.bashrc 等配置文件。
  • 事后清理与篡改:用 history -c 清空当前会话列表,编辑 ~/.bash_history 删除关键行,或用 sed -i ‘150,$d’ ~/.bash_history 仅保留前 150 行;也可用 history -d <行号> 精确删除。
  • SSH 无痕与会话混淆:通过 ssh -T root@IP /bin/bash -i 降低交互式登录痕迹;用 ssh -o UserKnownHostsFile=/dev/null 避免写入 ~/.ssh/known_hosts;利用 Proxychains 配置 /etc/proxychains4.confSOCKS5/HTTP 代理链隐藏真实来源(如:socks5 127.0.0.1 1080),实现多级转发与 IP 伪装。

二 进程与网络连接隐匿

  • 伪造系统工具输出:替换或劫持 /usr/local/sbin/ps、netstat、lsof、ls,在输出中过滤掉恶意进程/端口/文件(如过滤 /bin/bash、5555、tshd),从而让常规列举失效;此法易被完整路径调用与哈希校验识破。
  • 篡改进程名与参数:通过修改 argv[0]/cmdline 隐藏命令行,再配合 prctl 修改 comm,使 ps -ef/auxps -A/-e 均难以直接识别;但仍可能在 /proc//exe 或异常“空进程名”处暴露。
  • 动态库劫持:利用 LD_PRELOAD/etc/ld.so.preload 注入 so 劫持 readdir 等函数,让 ps/top 等工具“看不见”指定进程;可通过检测 LD_PRELOAD 与环境变量异常发现。
  • 挂载覆盖 /proc/:用 mount -o bind /empty/dir /proc/ 将目标进程目录覆盖为空,导致常规工具与部分 HIDS 采集失败;排查需关注异常的 mount 点与进程目录不可访问情况。
  • 端口复用与隐蔽通道:用 SSLH443 端口同时承载 SSH/HTTPS,或借助 iptables 字符串匹配与 recent 模块做“开关式”端口复用,实现对外仅见 443/80 等常见端口。

三 文件与目录隐匿

  • 隐藏属性与不可变位:创建以 . 开头的隐藏文件/目录(如 .test.txt),或用 chattr +i evil.php 设置不可变位,配合 lsattr 查看;即使 root 也可能难以误删,清理需先 chattr -i
  • 时间戳伪装:通过工具或系统调用修改 atime/mtime/ctime,干扰基于时间的取证关联;需与文件内容散列、访问链与系统调用日志交叉验证。
  • 后门放置位置:优先选择 /tmp/.X11-unix、/tmp/.ICE-unix 等易被忽视的隐藏目录,或利用 PATH 劫持让伪造工具优先执行。

四 日志清理与系统痕迹缩减

  • 系统日志与登录审计:清空或删改 /var/log/wtmp、/var/log/btmp、/var/log/lastlog、/var/log/utmp、/var/log/auth.log(secure)、/var/log/messages 以抹除登录与提权痕迹;可用 last/lastb/lastlog/w/who 验证效果。
  • systemd 日志:用 journalctl --rotate 轮转后执行 journalctl --vacuum-time=7d–vacuum-size=100M 清理旧日志,避免一次性清空导致服务异常。
  • APT 与临时文件:清理 /var/cache/apt/archives/tmp,释放空间并减少取证线索;必要时用 logrotate 调整保留策略(如 /var/log/syslog { size 100M; rotate 5; compress; })。
  • 安全删除工具:对关键工具与脚本使用 shred -f -u -z -n 8 覆写删除,降低恢复概率(注意 SSD 与日志结构设备的限制)。

五 取证与排查要点

  • 历史与会话:检查 ~/.bash_history 与当前会话 history 的一致性;排查 ~/.bashrc、/etc/profile、/etc/bash.bashrc 中异常 HISTFILE/HISTCONTROL 设置与 set +o history 痕迹。
  • 进程与网络:用 unhide proc 发现被隐藏进程;对比 ps -ef/aux、ps -A/-e、top/proc//comm、/proc//cmdline、/proc//exe 的异常;对 LD_PRELOAD、/etc/ld.so.preload 与异常 mount 点重点核查。
  • 网络与端口:除 netstat/ss/lsof 外,结合 /proc/net/tcp、/sys/class/net 与内核日志,识别 SSLH/iptables 端口复用与异常连接。
  • 文件与属性:用 ls -la、find /tmp -name “.*” -ls、lsattr 发现隐藏与不可变文件;对 /usr/local/sbin、/bin、/usr/bin 做哈希校验,识别伪造系统工具。
  • 日志与完整性:审计 /var/log/journalctl 的缺失/截断;用 AIDE/tripwire 等基线工具比对文件散列,还原被篡改或清理的痕迹。

0