不能只看.bash_history是否为空——攻击者删它如关监控,但录像机仍在运行;应查其mtime/ctime时间戳、系统日志(/var/log/secure等)中history -c记录、wtmp/btmp截断痕迹,以及内存残留、备份文件和交叉行为线索。

不能只看 .bash_history 文件是否为空或被清空——攻击者删它就像关掉监控录像,但录像机本身还在运行。真正要查的,是“谁删的、什么时候删的、删之前干了什么”,以及有没有其他痕迹被同步抹除。
检查历史命令文件本身的修改痕迹
.bash_history 是普通文件,有访问、修改、变更时间(atime/mtime/ctime)。即使内容为空,它的元数据可能暴露异常:
- 用
stat ~/.bash_history查看 mtime(最后修改时间)是否与可疑登录时段吻合 - 对比同目录下其他隐藏文件(如
.bashrc、.profile)的时间戳,若全部被统一重置,大概率是手动清空+ touch 伪造 - 注意:部分系统禁用 atime,但 mtime 和 ctime 一般无法绕过(除非挂载时加
noatime,但 ctime 仍可靠)
从系统日志反向定位操作源头
删 history 的动作本身会留下日志,尤其在提权或远程登录场景下:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查
/var/log/secure(RHEL/CentOS)或/var/log/auth.log(Debian/Ubuntu)中关键词:history -c、echo > .bash_history、unset HISTFILE - 搜索同一 IP 或用户在删 history 前后的操作链,比如:先
su -,再执行清理命令,接着运行可疑下载命令 - 若日志也被清空,重点看
/var/log/wtmp和/var/log/btmp是否同步被截断(last/lastb返回无记录),这是批量擦除行为的强信号
还原被删除的历史命令(如有备份或残留)
不是所有 history 都彻底消失:
- 检查
/root/.bash_history和各普通用户家目录下的对应文件,攻击者常忽略低权限账号的 history - 若启用了增强型 history 记录(如在
/etc/profile中配置了带 IP 和时间戳的日志路径),去指定目录(如/tmp/dbasky/)找按时间命名的归档文件 - 内存中未写入磁盘的 history 可能残留在 bash 进程里:对正在运行的 bash 进程,用
gdb -p $PID -ex 'call write_history("/tmp/recover")' -ex detach -ex quit尝试导出(需 root 权限且进程未被 rootkit 隐藏)
交叉验证其他行为线索
history 是单点证据,必须结合其他维度锁定真实行为:
- 查进程:
ps aux --forest | grep -E "(tmp|shm|dev)",看是否有非常规路径下的可疑二进制(如/tmp/.x)正在运行 - 查网络连接:
ss -tunp | grep -v "127.0.0.1",匹配外连 IP 是否与日志中登录 IP 一致 - 查定时任务:
crontab -l(每个用户都查)、ls /etc/cron* /var/spool/cron/,攻击者常用定时任务反复重建后门,顺便定期清理 history










