查看linux服务器开启了哪些端口和服务最好使用netstat命令,但是有些时候不知道打开的端口到底使用了什么服务,可以使用nmap来扫描,nmap软件包需要安装如果是Red Hat版本nmap包一般是默认安装的,一下是nmap的使用方法。
Ping扫描(Ping Sweeping)]
[端口扫描(Port Scanning)]
[隐蔽扫描(Stealth Scanning)]
[UDP扫描(UDP Scanning)]
[操作系统识别(OS Fingerprinting)]
[Ident扫描(Ident Scanning)]
[选项(Options)]
[小结]
简介:
找出网络上的主机,测试哪些端口在监听,这些工作通常是由扫描来实现的.扫描网络是黑客进行入侵的第一步.通过使用扫描器(如Nmap)扫描网络,寻找存在漏洞的目标主机.一旦发现了有漏洞的目标,接下来就是对监听端口的扫描.Nmap通过使用TCP协议栈指纹准确地判断出被扫主机的操作系统类型.
本文全方位地介绍Nmap的使用方法,能让安全管理员了解在黑客眼中的站点.并通过使用他,安全管理员能发现自己网站的漏洞,并逐步完善自己的系统.
www.insecure.org/nmap
站点上免费下载.下载格式能是tgz格式的源码或RPM格式.目前较稳定的版本是2.12.带有图像终端,本文集中讨论Nmap命令的使用.
Nmap的语法相当简单.Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP".在确定了目标主机和网络之后,即可进行扫描.如果以root来运行Nmap,Nmap的功能会大大的增强,因为终极用户能创建便于Nmap利用的制定数据包.
在目标机上,Nmap运行灵活.使用Nmap进行单机扫描或是整个网络的扫描非常简单,只要将带有"/mask"的目标地址指定给Nmap即可.地址是"victim/24",
则目标是c类网络,地址是"victim/16", 则目标是B类网络.
另外,Nmap允许你使用各类指定的网络地址,比如 192.168.7.*,是指192.168.7.0/24, 或
192.168.7.1,4,8-12,对所选子网下的主机进行扫描.
Ping扫描(Ping Sweeping)
举例:扫描192.168.7.0网络:
# nmap -sP 192.168.7.0/24
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Host (192.168.7.11) appears to be up.
Host (192.168.7.12) appears to be up.
Host (192.168.7.76) appears to be up.
Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1
second
如果不发送ICMP
echo请求,但要检查系统的可用性,这种扫描可能得不到一些站点的响应.在这种情况下,一个TCP"ping"就可用于扫描目标网络.
一个TCP"ping"将发送一个ACK到目标网络上的每个主机.网络上的主机如果在线,则会返回一个TCP
RST响应.使用带有ping扫描的TCP
ping选项,也就是"PT"选项能对网络上指定端口进行扫描(本文例子中指的缺省端口是80(http)号端口),他将可能通过目标边界路由器甚至是防火墙.注意,被探测的主机上的目标端口无须打开,关键取决于是否在网络上.
# nmap -sP -PT80 192.168.7.0/24
TCP probe port is 80
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Host (192.168.7.11) appears to be up.
Host (192.168.7.12) appears to be up.
Host (192.168.7.76) appears to be up.
Nmap run completed -- 256 IP addresses (3 hosts up) scanned in 1
second
当潜在入侵者发现了在目标网络上运行的主机,下一步是进行端口扫描.
Nmap支持不同类别的端口扫描TCP连接, TCP SYN, Stealth FIN, Xmas
Tree,Null和UDP扫描.
端口扫描(Port Scanning)
# nmap -sT 192.168.7.12
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on (192.168.7.12):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
19 open tcp chargen
21 open tcp ftp
...
Nmap run completed -- 1 IP address (1 host up) scanned in 3
seconds
隐蔽扫描(Stealth Scanning)
# nmap -sS 192.168.7.7
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on saturnlink.nac.net (192.168.7.7):
Port State Protocol Service
21 open tcp ftp
25 open tcp smtp
53 open tcp domain
80 open tcp http
...
Nmap run completed -- 1 IP address (1 host up) scanned in 1
second
虽然SYN扫描可能不被注意,但他们仍会被一些入侵检测系统捕捉.Stealth FIN,Xmas树和Null
scans可用于躲避包过滤和可检测进入受限制端口的SYN包.这三个扫描器对关闭的端口返回RST,对开放的端口将吸收包.一个 FIN
"-sF"扫描将发送一个FIN包到每个端口.
UDP扫描(UDP Scanning)
# nmap -sU 192.168.7.7
WARNING: -sU is now UDP scan -- for TCP FIN scan use -sF
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on saturnlink.nac.net (192.168.7.7):
Port State Protocol Service
53 open udp domain
111 open udp sunrpc
123 open udp ntp
137 open udp netbios-ns
138 open udp netbios-dgm
177 open udp xdmcp
1024 open udp unknown
Nmap run completed -- 1 IP address (1 host up) scanned in 2
seconds
操作系统识别(OS Fingerprinting)
Nmap’s操作系统的检测是非常准确也是非常有效的,举例:使用系统Solaris 2.7带有SYN扫描的指纹验证堆栈.
# nmap -sS -O 192.168.7.12
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on comet (192.168.7.12):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
19 open tcp chargen
21 open tcp ftp
...
TCP Sequence Prediction: Class=random positive increments
Difficulty=17818 (Worthy challenge)
Remote operating system guess: Solaris 2.6 - 2.7
Nmap run completed -- 1 IP address (1 host up) scanned in 5
seconds
Ident扫描(Ident Scanning)
# nmap -sT -p 80 -I -O www.yourserver.com
Starting nmap V. 2.12 by Fyodor ([email protected],
www.insecure.org/nmap/)
Interesting ports on www.yourserver.com (xxx.xxx.xxx.xxx):
Port State Protocol Service Owner
80 open tcp http root
TCP Sequence Prediction: Class=random positive increments
Difficulty=1140492 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.1.132; 2.2.0-pre1
- 2.2.2
Nmap run completed -- 1 IP address (1 host up) scanned in 1
second
如果你的WEB服务器是错误的设置并以root来运行,象上例相同,他将是黎明前的黑暗.
Apache运行在root下,是不安全的实践,你能通过把/etc/indeed.conf中的auth服务注销来阻止ident请求,并重新启动ident.另外也可用使用ipchains或你的最常用的防火墙,在网络边界上执行防火墙规则来终止ident请求,这能阻止来路不明的人探测你的网站用户拥有哪些进程.
选项(Options)
另一个选项是"-P0".在缺省设置下试图扫描一个端口之前,Nmap将用TCP ping" 和 ICMP
echo命令ping一个目标机,如果ICMP
和TCP的探测扫描得不到响应,目标主机或网络就不会被扫描,即使他们是运行着的.而"-P0"选项允许在扫描之前不进行ping,即可进行扫描.
你应该习惯使用"-v"命令,他周详列出所有信息,能和所有的扫描选项一起使用.你能反复地使用这个选项,获得有关目标机的更多信息.
使用"-p "选项,能指定扫描端口.比如 ,攻击者想探测你的web服务器的ftp(port 21),telnet (port 23),
dns (port 53), http (port 80),想知道你所使用的操作系统,他将使用SYN扫描.
# nmap -sS -p 21,23,53,80 -O -v
www.yourserver.com
小结:
使用Nmap监视自己的站点,系统和网络管理员能发现潜在入侵者对你的系统的探测.