history linux 日志服务器_踏雪无痕—linux入侵痕迹清理指南

afd5e78f9d12d1d52340d9fc2f6760f0.gif

0x00 前言 前段时间做项目遇到了一次翻车的情况——留的计划任务后门被管理员发现了,但是好在经过一番缠斗,权限还是比较稳的留住了。 而且还有意外的收获,从管理员执行的排查命令中了解到自己做痕迹清理还有哪些欠缺之处,索性整理一下Linux入侵痕迹清理的要点,水一篇文章。 0x01 清除登陆日志 我是通过ssh密码复用登陆目标的linux主机,那不可避免的会留下ssh登陆的痕迹,首先要清除的就是登陆日志这部分。 查看登陆记录有两条命令:lastlastlog,分别使用的是 /var/log/wtmp/var/log/lastlog 日志文件。 476487cf644d94ce450e12de22d5bea8.png 两个文件都是二进制形式存储,之前分享过一个小工具可以很方便地修改这两个文件: https://mp.weixin.qq.com/s/PIlNIq8nGHDSXEfdJtanZA 除此之外,还有下面的日志会记录登陆信息(明文存储): /var/log/messages /var/log/secure a453a5721bde18402d2dba0e2818d231.png 用vi或sed直接修改即可。 如果你登陆成功前做过几次失败的尝试,别忘记清除下面的登陆失败日志(二进制存储): /var/log/btmp 70fba80a831db6eae438c8f124089ffc.png 用sed直接修改或echo全部清除。 附带两条用sed清除日志会用到的命令。

# 删除所有匹配到字符串的行

sed  -i '/192.168.108.33/'d  /var/log/messages

# 全局替换登录IP地址

sed -i  's/1.1.1.2/1.1.1.1/g' /var/log/secure

0x02 清除服务日志 一般是指清除拿权限过程中使用的服务,或留后门过程使用的服务。 比如你是通过webshell拿到的权限,记得清除web日志,不同的web容器日志在不同的位置,比如apache的可能在/var/log/httpd下面。 如果是通过数据库漏洞,要清除数据库的日志,一般在数据库软件根目录下,或/var/log目录下。 计划任务getshell,清除计划任务日志/var/log/cron。 以此类推…… 比较容易忽略的是,当你把一些后门软件注册成服务运行时,会在/var/log/messages里留下软件相关信息和启动记录。(比如打隧道) 6a51ab42de520e6aadf5d0503456360b.png 0x03 清除历史命令 这个很重要啦,如果不清除自己在入侵后执行的命令history: 1、很容易被管理员发现入侵痕迹。 2、被发现后管理员可以理清楚你的入侵路径和后门位置,导致权限丢失。 查看历史命令的命令:history 62f369d650d7b1327426741067b5d233.png 记录历史命令的文件:~/.bash_history 11aada85873843c3f5bdc03612d01df1.png 有时你会发现,为什么文件记录和直接history查看的结果不一样,直接history能看到的命令似乎更多一点? 其实当前登陆用户执行过的命令会记录在一个缓冲区里,直到该用户退出登陆之后才会写入文件。而history命令能查看到缓冲区的内容,所以能看到的命令更多一点,缓冲区的内容只有自己可见。 了解这个原理,那清除历史命令的方法也很简单:每次退出使用【kill -9 $$】命令退出,不给当前的shell留时间去处理后事,缓冲区的命令也就没时间写入到文件了。 如果已经写入的怎么办,vi或sed修改~/.bash_history文件删除掉命令就好了。不建议全部清除,有种此地无银三百两的感觉。 0x04 不要用vim 修改或查看一些文件的时候,不要用vim。 否则你会在~/.viminfo文件中看到你打开过哪些文件,在vim里执行过什么命令(搜索哪些字符串),删除过什么内容。当然管理员也能看到。 23cbc5414c2936373a5f5fbf32ac7663.png 0x05 文件时间 追求完美的话,一些敏感的文件或者你留下的后门要修改文件时间,不然可能会被管理员根据时间看出来文件被修改过。 用ls -al命令可以查看文件时间。 6e05138a77dcdc54aba196de9fd0c546.pngtouch -r命令修改文件时间——touch -r A B,使B文件时间变得和A文件相同。 25a90b5b39ecbdbb3f6b379a49e4df27.png 一般来说这样就可以了,但是防不住管理员用stat命令查看。 4b8c3bb3ecfff32bca53f6a11f09d07e.png stat命令可以看到三个时间: 最近访问时间(atime) :只要文件的内容被读取,访问时间就会更新。 最近更改时间(mtime) :当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。 最近改动时间(ctime) :当文件的状态(权限or属性)发生变化,就会相应改变这个时间。 后两个看名字可能不太好区分,它们还可以翻译成:数据修改时间,状态修改时间。 我们先改动一下passwd文件,用stat查看时间,发现三个时间全部更改了,这很容易被发现。 a57136e5f38a52ed459ac6e6e7622c48.png 赶快用touch -r修改passwd文件的时间,再次查看 afb1c082f352f0ab7417767bae464529.png db38f78fc9c062ba3681ca6e5502f433.png 发现一个很严重的问题,touch -r只能同步最近访问和最近更改时间,但最近改动时间反而会更新到当前时间。有经验的管理员用stat命令只要重点看最近改动时间就会发现入侵痕迹。 怎么解决这个问题?了解了原理其实解决办法也很简单: 1、先修改系统时间。 date -s "20140712 18:30:50" 2、再修改文件时间即可。 ed030afc709a7869c81215898d4e20a6.png 3、最后别忘了把系统时间恢复:hwclock --hctosys c762ded74934ec6bce26d47b1a91f7b9.png 0x06 后记 这周总算没拖更,欢迎师傅们指点补充~ 0x07 参考文献 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.


欢迎留言~

欢迎关注~

欢迎点赞~

8143d943b75c45ab1fa73134280997ba.png

我是小黑,喵~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值