linux登陆⽇志清理,⼊侵⽇志清理之linux篇
其实我⼀直觉得整个⼊侵最重要的就是⽇志的清扫。但说实话国内很多站点的维护⼈员也都是业余⼈员,根本不会去看⽇志,⼊侵者也很少有重视这⽅⾯的。论坛上似乎还没有这⽅⾯的内容,所以我就来补充⼀下吧。
警告:此⽂为原创作品,仅发布于习科论坛(bbs(dot)black(dot)org)和我⾃⼰的博客(www(dot)jhdxr(dot)com)。谢绝⼀切形式的转载。
⼀个常规的⼊侵思路,可能是先通过sql注⼊/弱密码之类的到管理员⽤户名密码,登录后台,上传webshell,或者直接到上传漏洞直接上webshell,然后各种⼩马⼤马溢出之类的提权,最后成功拿到root权限。
当然上⾯是⼀个很理想的情况,实际上你很可能在某⼀步就被卡住了。。。被卡住了怎么解决不是本⽂讨论的,出门右转灰灰。
回归主题,清理⽇志。。。我们⼀般遇到的⽇志有⼏类,不同的⽇志清理⽅法可能也略有不同,⼀个个来说
1. web服务的访问⽇志
想要清理⽇志,你⾸先得知道⽇志在哪。。。⼏个默认路径出于时间关系不列了,⾃⼰⾕歌或者问楼下吧。说下不在默认路径时候的寻⽅法,其实也很简单,到web服务的配置⽂件,打开来看看,⾥边都会有写
到⽇志了,你⾸先得明确你想清理什么。。。把⽇志全部⼲掉⾃然是⼀种清理⽅式,但这太粗暴了,稍有经验的管理员就会很快发现被⼊侵了。最好的,⾃然是把我们⾃⼰的痕迹抹去即可
cat access.log | grep help.php
上⾯这只是个⽰例,实际上你可以吧help.php替换成任何东西,⽐如你的IP,你的UA之类的。个⼈建议这个筛选条件依然应该尽可能精确,把其他⽇志保留下来。
本来这是个图⽂教程,但是我发现我随便选的这个站点他的⽇志这么多年都打在⼀个⽂件⾥了。。。⼤⼩已经50G了。。。如果每个操作都截图的话,会卡死的。。。所以还是不截图了。。。
接着刚才的说,你已经到了要去除哪些⽇志,那可以使⽤grep的-v把结果反选,这样⼦出来的就是要留下的⽇志,最后⽤>重定向把内容写⼊⽂件。注意,源⽂件和⽬标⽂件不能是同⼀个,不然会悲剧。。。
cat access.log | grep -v help.php > /tmp/a.log
cat /tmp/a.log > access.log
有时候你可能会碰到⽇志没有权限读写之类的问题,这时候你可以ls -l 看⼀下具体的权限和所有者。附上两条修改语句
chmod 777 access.log
chown www:www access.log
上⾯的777代表所有⼈都有权限读写和执⾏。下⾯的www是你当前的⽤户名(其实还有⼀个是组,但是就不要了解那么多了。。。)
zippo 在的⼀些补充 中提出了使⽤sed来进⾏清除⽇志的⽅法,在此也列出来供⼤家参考
linux⾃带⼀个流编辑器(stream editor)名字叫sed. 具体更多信息请问⾕歌, 这⾥只介绍⼀点技巧.
情景: 在⽬标机器上架设了⼀个pptp的vpn, 守护进程pptpd. ⽬标: 清除pptpd在/var/log/messages中留下的⽇志.
提取具体⽇志关键词, 构造正则表达式, 通过sed命令删除匹配的⾏.
sed -i -e '/pptpd/d' /var/log/messages
sed -i -e '/123\.123\.123\.123/d' /var/log/messages
以上第⼀条是删除所有包含pptpd这个字符串的⾏, 第⼆条是删除包含123.123.123.123这个字符串(我们⾃⼰的IP)的⾏
web服务⽇志部分清理到此完毕
2. web应⽤⽇志清理
⼀些⽐较完善的web应⽤,如discuz,对于⼀些操作,如后台操作,每⼀步都有记录,这很明显也是我们需要⼲掉的。开源程序下载看⼀下就知道⽇志在哪了。。。
如果存的形式是⽂本⽂件(⼀般是这样⼦),那么清理⽅式和上⾯的⼀样,不再重复。下⾯说⼀下蛋疼的数据库存储⽅式的清理(之所以说是蛋疼,因为这样⼦那张表得多⼤啊。。。⼜不是频繁会去查的数据。。。)
⼀般来说,⼀张⽇志表往往可能有user, ip, timestamp, action等字段,记录了谁从什么地⽅在什么时间做了什么操作。依然,我们⾸先得想办法出⾃⼰的操作来,假设我登录后台的时候⽤的帐号是新增的,叫 hacker。那就很好办了,根据user删除即可
DELETE FROM applogs WHERE `user`='hacker'
请⼤家⾃⾏以此类推。。。
3.linux history命令⽇志的删除
history命令真是个好东西,往往我不到⼀些路径的时候,看看管理员以前做了什么,就都知道了。。。管理员也是这么想的,嗯。看看history命令的⽇志就知道你做了什么。这很明显不是我们想要的。。。那么如何删除呢?history命令⾃带了这个功能
history -c
但这样⼦查看history的时候就知道最后执⾏的⼀条指令是删除⽇志。。。有没有别的⽅法呢?当然有。这个⽇志是保存在~/.bash_history 中的(科普时间:~代表当前⽤户的主⽬录,例如⼀个⽤户叫hacker,那他的主⽬录⼀般是/home/hacker,当然这并不绝对)通过别的⼿段把这 ⽂件⼲掉即可
p.s. 如果你是“借⽤”别⼈帐号的,那可以⽤vi/vim之类的编辑器删掉你做坏事的那⼏⾏即可。保持低调,嗯。。。linux重定向
zippo⼤⽜在补充⼀⽂中同样提到了另外⼀种⽅法,就是直接禁⽤history。注意此⽅法仅在交互的shell中有效,并且会使上下箭头重复最近命令这功能失效。
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
4.linux 登录⽇志的清扫
这个其实可能有很多处,但我⼀般就修改两处,⼀个是last命令展⽰的最近登录⽤户,另外⼀个是你ssh登录时提⽰的最近登录时间。这两个修改⽤同⼀个⼯具都可以完成,logtamper.
下载地址去⾕歌⼀下吧。。。我翻了⼀下我本地只有编译好的了,没有源码。。。
使⽤⽅法说⼀下, 清除某⽤户的特定⽇志:./wtmpclean ⽤户名 IP地址
./wtmpclean root 127.0.0.1
修改最后⼀次登录记录
./wtmpclean -m ⽤户名 IP地址 时间
./wtmpclean -m root 127.0.0.1 1989:6:4:23:59
暂时就这些,有想到的以后补充。。。码字真是体⼒活。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论