前段时间做项目遇到了一次翻车的情况——留的计划任务后门被管理员发现了,但是好在经过一番缠斗,权限还是比较稳的留住了。
而且还有意外的收获,从管理员执行的排查命令中了解到自己做痕迹清理还有哪些欠缺之处,索性整理一下Linux入侵痕迹清理的要点,水一篇文章。
我是通过ssh密码复用登陆目标的linux主机,那不可避免的会留下ssh登陆的痕迹,首先要清除的就是登陆日志这部分。
查看登陆记录有两条命令:last和lastlog,分别使用的是/var/log/wtmp和/var/log/lastlog 日志文件。
两个文件都是二进制形式存储,之前分享过一个小工具可以很方便地修改这两个文件:
除此之外,还有下面的日志会记录登陆信息(明文存储):
如果你登陆成功前做过几次失败的尝试,别忘记清除下面的登陆失败日志(二进制存储):
用echo全部清除,或者用utmpdump导出成文本文件,修改后再导入回去:
utmpdump /var/log/btmp >/var/log/btmp.file
utmpdump -r < /var/log/btmp.file > /var/log/btmp
注意二进制文件不能用vi或sed修改,否则可能出问题。
# 删除所有匹配到字符串的行
sed -i '/192.168.108.33/'d /var/log/messages
# 全局替换登录IP地址
sed -i 's/192.168.166.85/192.168.1.1/g' /var/log/secure
一般是指清除拿权限过程中使用的服务,或留后门过程使用的服务。
比如你是通过webshell拿到的权限,记得清除web日志,不同的web容器日志在不同的位置,比如apache的可能在/var/log/httpd下面。
如果是通过数据库漏洞,要清除数据库的日志,一般在数据库软件根目录下,或/var/log目录下。
计划任务getshell,清除计划任务日志/var/log/cron。
比较容易忽略的是,当你把一些后门软件注册成服务运行时,会在/var/log/messages里留下软件相关信息和启动记录。(比如打隧道)
这个很重要啦,如果不清除自己在入侵后执行的命令history:
2、被发现后管理员可以理清楚你的入侵路径和后门位置,导致权限丢失。
记录历史命令的文件:~/.bash_history
有时你会发现,为什么文件记录和直接history查看的结果不一样,直接history能看到的命令似乎更多一点?
其实当前登陆用户执行过的命令会记录在一个缓冲区里,直到该用户退出登陆之后才会写入文件。而history命令能查看到缓冲区的内容,所以能看到的命令更多一点,缓冲区的内容只有自己可见。
了解这个原理,那清除历史命令的方法也很简单:每次退出使用【kill -9 $$】命令退出,不给当前的shell留时间去处理后事,缓冲区的命令也就没时间写入到文件了。
如果已经写入的怎么办,vi或sed修改~/.bash_history文件删除掉命令就好了。不建议全部清除,有种此地无银三百两的感觉。
否则你会在~/.viminfo文件中看到你打开过哪些文件,在vim里执行过什么命令(搜索哪些字符串),删除过什么内容。当然管理员也能看到。
追求完美的话,一些敏感的文件或者你留下的后门要修改文件时间,不然可能会被管理员根据时间看出来文件被修改过。
用touch -r命令修改文件时间——touch -r A B,使B文件时间变得和A文件相同。
一般来说这样就可以了,但是防不住管理员用stat命令查看。
最近访问时间(atime):只要文件的内容被读取,访问时间就会更新。
最近更改时间(mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
最近改动时间(ctime):当文件的状态(权限or属性)发生变化,就会相应改变这个时间。
后两个看名字可能不太好区分,它们还可以翻译成:数据修改时间,状态修改时间。
我们先改动一下passwd文件,用stat查看时间,发现三个时间全部更改了,这很容易被发现。
赶快用touch -r修改passwd文件的时间,再次查看
发现一个很严重的问题,touch -r只能同步最近访问和最近更改时间,但最近改动时间反而会更新到当前时间。有经验的管理员用stat命令只要重点看最近改动时间就会发现入侵痕迹。
怎么解决这个问题?了解了原理其实解决办法也很简单:
date -s "20140712 18:30:50"
3、最后别忘了把系统时间恢复:hwclock --hctosys
https://mp.weixin.qq.com/s/i2WvFmF1qQjbx-BaStXb1Q
https://www.linuxprobe.com/linux-simple-2.html
https://www.cnblogs.com/pacino12134/p/11481258.html
https://www.cnblogs.com/morganchen/p/9437066.html
END.
喵,点个赞再走吧~
本文始发于微信公众号(小黑的安全笔记):踏雪无痕—linux入侵痕迹清理指南
评论