网络安全 频道

Linux环境下黑客常用嗅探器分析

By 书生


1.概述

  本文对Linux环境下黑客常常使用的几种嗅探器进行详细的分析,这些嗅探器往往被入侵者完成入侵以后种植在受害者服务器当中。这些嗅探器各自有不同的特点,有的只是简单的用来捕捉用户名和密码,有的则非常强大可记录所有的网络数据流。本文将对下面几种嗅探器进行分析:

linsniffer
linuxsniffer
hunt
sniffit
2.linsniffer

  linsniffer是一个简单实用的嗅探器。它主要的功能特点是用来捕捉用户名和密码,它在这方面非常出色。

  作者:Mike Edulla
  条件: C和IP头文件
  配置文件:无
  位置: http://agape.trilidun.org/hack/network-sniffers/linsnifferc
  安全历史: 无

  注: 易于使用。但是lnsniffer需要完整的IP头文件,包括常常存储在/usr/include/net和 /usr/include/netinet的头文件,在编译前确保PATH变量包含/usr/include。

  使用下面的命令来编译lnsniffer:

  $cc linsniffer.c -o linsniffer

  要运行linsniffer,使用下面的命令:

  $linsniffer

  启动以后linsniffer将创建一个空文件:tcp.log来存储嗅探结果。

  在测试中我创建一个名为hapless的用户,密码为unaware。然后使用该用户来登录Linux服务器,并进行一些常见的用户操作。下面是进行的一次ftp过程:

  GNSS $ ftp 192.168.0.2
  Connected to 192.168.0.2.

  220 linux.test.net FTP server Wed Aug 19 02:55:52 MST 1998) ready.

  Name (192.168.0.2:root): hapless
  331 Password required for hapless.
  Password:
  230 User hapless logged in.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> ls -al
  200 PORT command successful.
  150 Opening ASCII mode data connection for /bin/ls.
  total 14
  drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 .
  drwxr-xr-x 6 root root 1024 May 20 19:28 ..
  -rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
  -rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
  -rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
  -rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
  -rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
  -rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc
  -rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
  -rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
  -rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
  -rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh
  drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon
  drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg
  226 Transfer complete.
  ftp> ls
  200 PORT command successful.
  150 Opening ASCII mode data connection for /bin/ls.
  total 14
  drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 .
  drwxr-xr-x 6 root root 1024 May 20 19:28 ..
  -rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
  -rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
  -rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
  -rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
  -rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
  -rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc
  -rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
  -rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
  -rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
  -rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh
  drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon
  drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg
  226 Transfer complete.
  ftp> ls -F
  200 PORT command successful.
  150 Opening ASCII mode data connection for /bin/ls.
  total 14
  drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 ./
  drwxr-xr-x 6 root root 1024 May 20 19:28 ../
  rw-rw-r-- 1 hapless hapless 96 May 20 19:56 .bash_history
  -rw-r--r-- 1 hapless hapless 49 Nov 25 1997 .bash_logout
  -rw-r--r-- 1 hapless hapless 913 Nov 24 1997 .bashrc
  -rw-r--r-- 1 hapless hapless 650 Nov 24 1997 .cshrc
  -rw-r--r-- 1 hapless hapless 111 Nov 3 1997 .inputrc
  -rwxr-xr-x 1 hapless hapless 186 Sep 1 1998 .kshrc*
  -rw-r--r-- 1 hapless hapless 392 Jan 7 1998 .login
  -rw-r--r-- 1 hapless hapless 51 Nov 25 1997 .logout
  -rw-r--r-- 1 hapless hapless 341 Oct 13 1997 .profile
  -rwxr-xr-x 1 hapless hapless 182 Sep 1 1998 .profile.ksh*
  drwxr-xr-x 2 hapless hapless 1024 May 14 12:16 .seyon/
  drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 lg/
  226 Transfer complete.
  ftp> cd lg
  250 CWD command successful.
  ftp> ls -F
  200 PORT command successful.
  150 Opening ASCII mode data connection for /bin/ls.
  total 8
  drwxr-xr-x 3 hapless hapless 1024 May 14 12:15 ./
  drwxrwxr-x 4 hapless hapless 1024 May 20 19:35 ../
  rw-r--r-- 1 hapless hapless 70 Aug 22 1998 lg3_colors
  -rw-r--r-- 1 hapless hapless 629 Aug 22 1998 lg3_prefs
  -rw-r--r-- 1 hapless hapless 728 Aug 22 1998 lg3_soundPref
  -rw-r--r-- 1 hapless hapless 2024 Aug 22 1998 lg3_startup
  drwxr-xr-x 2 hapless hapless 1024 May 14 12:15 lg_layouts/
  226 Transfer complete.
  ftp> cd lg_layouts
  250 CWD command successful.

  这是一个典型的用户操作过程。现在我们看看linsniffer产生的嗅探结果:

  gnss => linux.test.net [21]
  USER hapless
  PASS unaware
  SYST
  PORT 172,16,0,1,4,192
  LIST -al
  PORT 172,16,0,1,4,193
  LIST
  PORT 172,16,0,1,4,194
  LIST -F
  CWD lg
  PORT 172,16,0,1,4,195
  LIST -F

  输出的内容是很直观的。首先它记录这是从GNSS到Linux主机的FTP连接:

  gnss => linux.test.net [21]

  然后,linsniffer捕获了hapless的用户名和密码。

  USER hapless
  PASS unaware

  最后,linsniffer记录了hapless使用的每一个命令:

  SYST
  PORT 172,16,0,1,4,192
  LIST -al
  PORT 172,16,0,1,4,193
  LIST
  PORT 172,16,0,1,4,194
  LIST -F
  CWD lg
  PORT 172,16,0,1,4,195
  LIST -F

  输出结果非常简介并且非常适于窃听密码及记录常见的活动。但是不适合于进行更加复杂的分析。这时候你也许会需要linux_sniffe。

3.linux_sniffer

  linux_sniffer提供相对更复杂的探测结果。

  作者:loq
  要求:C和IP头文件
  配置文件:无
  下载位置: http://www.ryanspc.com/sniffers/linux_sniffer.c.
  安全历史:无

  注意:linux_sniffer易于使用,但是需要完全的IP头文件。

  使用下面命令编译linux_sniffer:

  $cc linux_sniffer.c -o linuxsniff

  下面是一次telnet会话过程,同时被linux_sniffer记录:

  GNSS 2# telnet 192.168.0.1
  Connected to 192.168.0.1.
  login: hapless
  password:
  [hapless@linux2 hapless]$ w
   19:55:29 up 58 min, 4 users, load average: 0.00, 0.00, 0.00
  USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  root tty1 7:44pm 27.00s 0.17s 0.06s -bash
  root tty2 7:46pm 1:56 0.24s 0.01s linuxsniff
  root tty3 7:44pm 10:43 0.17s 0.07s -bash
  hapless ttyp0 gnss 7:55pm 1.00s 0.26s 0.04s w
  [hapless@linux2 hapless]$ who
  root tty1 May 20 19:44
  root tty2 May 20 19:46
  root tty3 May 20 19:44
  hapless ttyp0 May 20 19:55 (gnss)
  [hapless@linux2 hapless]$ finger -l
  Login: root Name: root
  Directory: /root Shell: /bin/bash
  On since Thu May 20 19:44 (PDT) on tty1 35 seconds idle
  On since Thu May 20 19:46 (PDT) on tty2 2 minutes 4 seconds idle
  On since Thu May 20 19:44 (PDT) on tty3 10 minutes 51 seconds idle
  No mail.
  No Plan.

  Login: hapless Name: Caldera OpenLinux User
  Directory: /home/hapless Shell: /bin/bash
  On since Thu May 20 19:55 (PDT) on ttyp0 from gnss
  No mail.
  No Plan.

  同样这是一次典型的登录过程:用户登录,检测哪些用户在登录等等。linux_sniffer记录额外的地址数据,但是同样记录了一些重要的数据。首先它记录了连接:

eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fc 27 - ..''
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fa 1f 00 50 00 28 ff - f0 ....P.(..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fa 20 00 33 38 34 30 - 30 2c 33 38 34 30 30 ff
.. .38400,38400.
0010 f0 ff fa 23 00 47 4e 53 - 53 3a 30 2e 30 ff f0 ff
...#.GNSS:0.0...
0020 fa 18 00 49 52 49 53 2d - 41 4e 53 49 2d 4e 45 54
...IRIS-ANSI-NET
0030 ff f0 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fc 01 - ...
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 ff fd 01 - ...
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]

  随后,linux_sniffer记录了登录过程,下面用黑体表示:

eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 68 - h
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 70 - p
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6c - l
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 65 - e
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 73 - s
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 73 - s
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 0d 00 - ..
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 75 - u
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 6e - n
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 77 - w
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 61 - a
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 72 - r
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]
0000 65 - e
eth
proto: 080008:00:69:07:3e:db->00:e0:29:19:4a:68 192.168.0.1[1239] ->192.168.0.2[23]

0
相关文章