Linux安全工具-Nmap
[ 2008/08/05 12:11 | by selboo ]
为了评估一个机器的是否容易遵守攻击,你需要知道有多少服务是暴露给攻击者的。有一个优秀的工具就是Fyodor的网络映射器Nmap,Debian用户可以通过apt-get install nmap来获取它,务必要运行它检查服务器上究竟运行了些什么服务—即使你认为你已经知道了也要运行,很明显,如果ssh端口已经关闭,那么通过ssh密码猜测就对你没什么影响。
Nmap最简单的用法就是在你本地的网络上探测主机,在这个实例中,我们要求nmap发送ICMP echo请求包(ping)到某段ip地址范围内的所有主机:
$Content$nbsp;nmap -sP 10.0.0.1-254
Starting nmap 3.81 ( http://www.insecure.org/nmap/ )
at 2006-11-01 14:46
NZDT
Host 10.0.0.25 appears to be up.
MAC Address: 00:0C:F1:AE:E6:08 (Intel)
Host 10.0.0.51 appears to be up.
MAC Address: 08:00:09:9A:1A:AA (Hewlett Packard)
Host 10.0.0.70 appears to be up.
MAC Address: 00:0F:EA:64:4E:1E (Giga-Byte Tech Co.)
...
不过nmap最常用的是用来探测哪个服务正在运行。因为TCP建立一个连接使用了3次握手,我们能检查到无真实连接到它们但又被打开的端口,这就是著名的SYN或半打开扫描,当用root登陆执行时这是默认的模式,如果作为一个正常用户执行,nmap尝试全连接来测试是否每个端口是否是打开的。(题外话:在半打开模式下,我们发送初始化SYN数据包并监听响应,RST表明端口是关闭的,SYN+ACK表示端口是打开的,如果没有收到响应,nmap标记这个端口是被过滤了,某些防火墙会丢掉不该有的数据包,产生一个过滤状态标记,其他的将发送RST使得端口看起来是关闭的)典型地,如果一个服务器正在监听你不希望监听的端口,你应该仔细检查一下:
#nmap -sS 10.0.0.89
Starting nmap 3.81 ( http://www.insecure.org/nmap/ )
at 2006-11-01 14:52
NZDT
Interesting ports on 10.0.0.89:
(The 1637 ports scanned but not shown
below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
42/tcp open nameserver
80/tcp open http
110/tcp open pop3
...
Fyodor也添加了许多服务的指纹,你可以要求nmap标识出特定的服务,在命令后加上-sV选项即可:
# nmap -sV 10.0.0.89
Starting nmap 3.81 ( http://www.insecure.org/nmap/ )
at 2006-11-01 14:47
NZDT
Interesting ports on 10.0.0.89:
(The 1637 ports scanned but not shown
below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp?
22/tcp open ssh OpenSSH 3.8.1p1
Debian-8.sarge.4 (protocol 2.0)
42/tcp open nameserver?
80/tcp open http Apache httpd 1.3.33
((Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.10-16)
110/tcp open pop3?
...
其他难以置信的用法是操作系统的探测,在命令后加上-O参数即可,如果这个机器有至少一个端口打开和至少一个端口关闭的话,你就能准确地获取操作系统的信息:
# nmap -O -sS 10.0.0.89
Starting nmap 3.81 ( http://www.insecure.org/nmap/ )
at 2006-11-02 09:02
NZDT
Interesting ports on 10.0.0.89:
(The 1637 ports scanned but not shown
below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
...
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 - 2.6.3 or
Gentoo 1.2 Linux 2.4.19 rc1-rc7), Linux 2.6.3 - 2.6.8
Uptime 30.906 days (since Mon Oct 2 11:18:59 2006)
因此,请使用nmap在你的网络上检查所有机器,看是否存在有临时安装的但又被忘记删除的服务,你也可以用它从你的网络范围之外来检查你的防火墙是否正确地配置了。