一、清除登录日志
登录日志是记录用户登录行为的核心凭证,需针对性清理各类日志文件及相关记录。
1. 核心日志文件及处理方式
(1)二进制日志(记录登录 / 注销及最后登录信息)
-
/var/log/wtmp:对应last命令,记录所有用户登录、注销信息(二进制格式)。 处理方式:需用专业工具(如 Linux 登录日志修改脚本)解析二进制结构,精准定位并修改登录记录。 -
/var/log/lastlog:对应lastlog命令,记录所有用户最后一次登录时间(二进制格式)。 处理方式:同/var/log/wtmp,通过专业工具修改或清除登录时间记录。
(2)明文日志(记录登录认证及系统安全相关信息)
-
/var/log/messages:记录系统启动后各类信息(含登录相关内容)。 -
/var/log/secure:记录用户登录认证的详细过程(安全相关核心日志)。 -
/var/log/auth.log:与/var/log/secure功能类似,侧重认证授权记录(部分系统适用)。 -
/var/log/audit/*:系统审计日志目录,可能包含登录操作审计信息。
处理方式:可直接用文本工具修改:
-
vi:打开文件后查找并删除敏感行; -
sed:通过正则表达式批量处理(见下文常用命令)。
(3)登录失败日志(二进制,记录登录失败信息)
-
/var/log/btmp:记录所有登录失败记录(二进制格式)。
处理方式:
-
清空:
echo > /var/log/btmp(用空内容覆盖文件); -
导出修改再导入:
# 导出为文本 utmpdump /var/log/btmp > /var/log/btmp.file # 编辑文本(删除/修改记录) vi /var/log/btmp.file # 导回二进制 utmpdump -r < /var/log/btmp.file > /var/log/btmp
2. 常用 sed 命令(明文日志处理)
-
删除含特定 IP 的行:
# 例:删除/var/log/messages中含192.168.108.33的行 sed -i '/192.168.108.33/'d /var/log/messages
(
-i直接修改原文件,/IP/匹配行,d表示删除) -
全局替换登录 IP:
# 例:将/var/log/secure中192.168.166.85替换为192.168.1.1 sed -i 's/192.168.166.85/192.168.1.1/g' /var/log/secure
(
s表示替换,g表示全局替换)
3. 隐藏远程 SSH 登录记录
-
隐身登录:减少被
w、who、last检测的概率:ssh -T root@192.168.0.1 /bin/bash -i(
-T禁止分配伪终端,/bin/bash -i启动交互式 Shell) -
不记录 SSH 公钥:避免本地留存远程主机公钥:
ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash -i -
配合日志清理:用上述
sed命令删除/var/log/auth.log等文件中含特定 IP / 用户的记录(谨慎操作,避免过度清空引起警觉)。
二、清除服务日志
根据入侵涉及的服务,针对性清理其日志文件。
1. Web 服务日志
-
位置:Apache 日志通常在
/var/log/httpd(含访问日志access_log和错误日志error_log)。 -
处理:用
sed删除含入侵 IP / 操作的行,或清空文件(同明文日志处理方式)。
2. 数据库日志
-
位置:多位于数据库根目录或
/var/log(因数据库类型而异)。 -
示例(MySQL):
-
错误日志(
error.log):记录运行错误,可能含漏洞利用痕迹; -
二进制日志(
binlog):记录写操作,需清理入侵相关记录。
-
3. 计划任务日志
-
位置:
/var/log/cron(记录计划任务执行信息)。 -
处理:删除与入侵操作相关的记录(如通过计划任务维持权限的痕迹)。
4. 特殊服务记录
-
若将后门注册为服务,
/var/log/messages可能记录其启动信息(如隧道工具通信记录),需同步清理。
三、清除历史命令
避免命令记录暴露入侵操作,需处理历史命令文件及缓冲区。
1. 关键文件
-
~/.bash_history:存储用户执行过的历史命令(当前会话命令暂存缓冲区,退出时写入文件)。
2. 清除方法
-
防止缓冲区写入:退出会话时用
kill -9 $$强制终止 Shell 进程(避免缓冲区命令写入文件)。 -
处理已写入文件:用
sed删除敏感行(如删除含rm -rf /的行):sed -i '/rm -rf \//'d ~/.bash_history(不建议全清空,易引起怀疑)。
3. 实时控制命令记录
-
禁用当前会话记录:
unset HISTFILE(取消历史文件设置)。 -
忽略空格前缀命令:
export HISTCONTROL=ignorespace(命令前加空格则不记录)。
四、避免使用 vim
vim 会在 ~/.viminfo 中记录操作痕迹(如打开的文件路径、搜索字符串、删除内容等),易被管理员追溯。 建议替代工具:
-
cat:简单查看文件内容; -
sed:批量替换或删除文本内容。
五、修改文件时间
文件时间(通过 stat 命令查看)可能暴露修改痕迹,需同步调整。
1. 时间类型
-
atime(访问时间):读取文件内容时更新(如cat查看)。 -
mtime(修改时间):文件内容改变时更新(如编辑保存)。 -
ctime(改动时间):文件权限 / 属性改变时更新(如chmod、chown)。
2. 修改技巧
-
基础同步:用
touch -r使目标文件时间与参照文件一致(如touch -r A B让 B 的atime和mtime同 A)。 -
解决
ctime问题(touch -r会更新ctime为当前时间):# 1. 临时修改系统时间 date -s "20140712 18:30:50" # 2. 同步文件时间(参照文件ref_file,目标文件target_file) touch -r ref_file target_file # 3. 恢复系统时间(硬件时钟同步到系统时间) hwclock --hctosys
六、安全删除文件
普通 rm 可能被数据恢复工具还原,需用专业工具彻底删除。
1. shred 命令
-
功能:用随机数据多次覆盖文件后删除。
-
示例:
shred -f -u -z -v -n 8 1.txt(
-f强制删除,-u移除文件,-z最后用零值覆盖,-v显示过程,-n 8覆盖 8 次)。
2. dd 命令
-
功能:用零值数据覆盖文件 / 分区。
-
示例:
dd if=/dev/zero of=目标文件 bs=1M count=100(
if=/dev/zero读零值,bs=1M块大小,count=100写入 100 块)。
3. wipe 工具
-
功能:用特殊模式重复写文件,安全擦除磁性介质数据。
-
用法:
wipe filename(直接擦除指定文件)。
4. Secure-Delete 工具集
-
包含
srm(安全删除文件)、smem(擦除内存数据)、sfill(填充磁盘空闲空间)、sswap(擦除交换空间)等。 -
示例(
srm):srm 敏感文件(多次覆盖后删除)。
七、清理临时文件与缓存
入侵过程中产生的临时文件和缓存可能含敏感信息,需针对性清理。
1. 临时文件
-
位置:多在
/tmp或用户临时目录(如~/.cache)。 -
处理:
-
手动删除:
rm /tmp/*.tmp(删除 /tmp 下所有.tmp 文件); -
自动清理:
tmpwatch -v -t 240 /tmp(删除 /tmp 下超过 240 分钟未访问的文件,-v显示过程)。
-
2. 缓存文件
-
系统缓存:Debian/Ubuntu 中用
sudo apt-get clean清理软件包缓存。 -
浏览器缓存:
-
Firefox:通过 “隐私与安全” 设置手动清除;
-
Chrome:快捷键
Ctrl + Shift + Delete调出清理窗口,选择清除缓存。
-
八、应对日志监控与审计
部分系统部署 auditd 等工具监控日志修改,需提前规划策略。
1. 备份原始日志
修改前备份日志(如 cp /var/log/auth.log /tmp/auth.log.bak),便于必要时恢复(减少怀疑)。
2. 伪造正常日志
删除敏感记录后,按日志格式插入正常条目(需匹配时间戳、主机名、消息格式等),模拟系统正常运行状态。




