这个故事是根据上次挖矿病毒事件改编的。
晚上,警报响起,整个Linux帝国一片恐慌。
安全部长赶紧把大家召集起来,商量对策。
各位,突发状况,CPU利用率突然飙升,并且长时间没有下降趋势CPU厂的q向我们表示强烈抗议
这时,一旁的杀令说道:部长放心吧告诉顶哥,看谁在占CPU,拿到进程号pid,我就杀了他
此言一出,在座的各位都赞许地点了点头,惊骇之色稍有缓解。
最高统帅部站起来,一副洋洋得意的样子,说:请你看看。之后,它打印出当前进程列表:
他们瞪大了眼睛,瞅了半天,也没看到哪个进程在疯狂CPU,顶兄弟尴尬。
这时一旁的ps命令上来了,我来试试。
ps命令深吸一口气,也打印出了进程列表。
可是,仍然没有可疑的过程。
你们两个怎么了为什么没有,安全部长很不高兴
部长,我们都遍历了/proc/目录中的内容按理说所有的进程都会在这里,我也想不通为什么找不到,托普说
遍历,如何。
它由诸如opendir/readdir之类的系统调用函数遍历这些都是帝国提供的标准接口,你应该不会出错,除非说到这里,top停了下来
除非什么。
除非这些系统调用过滤掉那个进程,否则我看不到它是不是有人潜入帝国内核篡改了系统调用
保安部长瞪大了眼睛,真的是这样,那可是大事!
看到大臣急了,netstat站起来说:大臣,我以前认识一个叫unhide的好朋友,抓隐藏进程是他的专长你想让他试试吗
部长喜出望外你还在犹豫什么
我已经联系过了,马上就到
大臣看了看netstat说:刚刚好,趁着这功夫,先看看有没有什么可疑的外部联系。
Netstat点点头,然后打印出所有的网络连接信息:
来吧,一个一个来认领,看看谁是它的主人,牧师说。
这个80口的服务是我的,nginx出面了。
这个6379端口服务是我的,雷迪斯也出面了。
嗯,9200是我的,elasticsearch说。
3306那是我的
8182是我的
过了一会儿,只有一个连接仍然无人认领:
TCP 00192 . 168 . 0 . 4:5185488 . 99 . 193 . 240:7777已建立—
部长,这可能是躲在暗处的那个家伙的联系,netstat说。
安全部长想了一会儿,问道:科尔在哪里快来访问这个IP地址,探探对方的虚实
卷毛站了出来,来了,来了
一行醒目的采民调出现在大家面前。
挖,地雷病毒!,顶哥叫了出来。
于是,所有在场的人都倒吸一口冷气。
部长很快要求防火墙配置一个规则来切断这个连接。
正在这时,unhide进来了。
简单了解情况后,unhide拍着胸口说:这件事我来处理,我会把这家伙找出来的。
随后,unhide像老虎一样操作,并输出几行信息:
FoundHIDDENPID13053Executable可执行文件:"/usr/bin/picks"$USER=root foundhiddenpid 13064可执行文件: "/usr/bin/picks " $ USER = root
大家凑了过来,瞪大了眼睛,unhide哥哥果然没有遮掩,果然发现了几个可疑分子。
托普有点怀疑,问:你敢问我你用的什么路线为什么我们看不到这些过程
Unhide笑道,这没什么神秘的实际上,我还遍历了/proc/目录和你不一样,我不使用readdir,而是从最小的进程id到最大的进程id逐一访问/proc/$pid目录一旦我发现目录存在,而且不在ps哥哥的输出结果里,那就是一个隐藏的过程
一旁的ps笑了:还有我的功劳。
找到了,就是那个家伙!,netstat大声说。
你怎么能这么肯定牧师问道
请看,进程打开的所有文件都将在/proc/pid/fd目录下套接字也是一个文件我刚刚看了一下,这个过程只是有一个插座
小子!好家伙,大家都在嘀嘀咕咕。
你还在等什么让我赶紧杀了它!杀哥再也受不了了
我来删,rm小弟磨刀霍霍。
部长摇摇头说:等一下,cp呢先把这家伙备份到隔离目录,秋后算账
Cp复制完成,kill和rm一起走,后面的家伙被当场处决。
Top迅速查看了最新的资源使用情况,惊喜地欢呼:好了好了,CPU利用率终于下降了,真是可喜可贺。
天色已晚,没多久,人们陆续离开,帝国恢复了往日的平静。
可是,安全部长的脸上仍然是悲伤的。
部长,病毒已经清除了你怎么还闷闷不乐助理问
虽然病毒已经清除了,但我不知道这家伙是怎么闯进来的,背后暗中保护和隐藏的人是谁,这真的让我现在很担心。
不知不觉,夜已经很深了,锦衣卫的警报突然又响了起来。
这是怎么回事,部长厉声问道
部长,那个rm小子是个冒牌货今天,他骗了我们
部长望向远方的天空,CPU厂前的风扇又开始疯狂转动了。