nmap(一)

来源:互联网 发布:程序员的工资组成 编辑:程序博客网 时间:2024/06/05 09:48

适用所有linux系统上nmap

扫描内容:
1、网段中存活主机
2、主机开放端口、TCP、UDP、端口范围
3、操作系统版本、服务/版本检测
4、脚本扫描
5、逃避防火墙、IDS进行对网络扫描等

 

帮助命令:nmap -h

nmap(一)

命令使用:

# nmap [Scan Type(s)] [Options] {target specification}

Linux上安装nmap:

# yum install nmap      [基于 Red Hat 的发行版]

$ sudo apt-get install nmap [基于 Debian 的发行版]

1.使用主机名扫描使IP地址扫描

[root@server1 ~]# nmap server2.tecmint.com

[root@server1 ~]# nmap 192.168.0.101

2. 使用"-v"选项扫描

你可以看到带"-v"选项的命令给出了关于远程机器的更多信息。

[root@server1 ~]# nmap -v server2.tecmint.com

3.扫描多台主机

你可以简单地通过在namap后写上它们的IP地址或者主机名来扫描多台主机。

[root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103

4. 扫描整个子网

你可以通过通配符来使nmap扫描整个子网或者IP段。

[root@server1 ~]# nmap 192.168.0.*

[root@server1 ~]# nmap 192.168.1.0/24

5. 使用IP地址的最后一段扫描多台主机

[root@server1 ~]# nmap 192.168.0.101,102,103

6. 从文件中扫描主机列表

如果你有更多的主机要扫描,并且所有的主机都写在一个文件中,你可以直接让namp读取它并执行扫描。创建一个名为“nmaptest.txt”的文本文件,并定义所有你想要扫描的IP地址或者服务器的主机名。

[root@server1 ~]# cat > nmaptest.txt

localhost

server2.tecmint.com

192.168.0.101

接着,带iL”参数运行nmap命令来扫描文件中所有列出的IP地址。

[root@server1 ~]# nmap -iL nmaptest.txt

7. 扫描一个IP范围

在使用nmap扫描时,你可以指定一个IP范围。

[root@server1 ~]# nmap 192.168.0.101-110

8. 扫描网络时排除部分主机

你可以在执行全网扫描的时候排除一些主机,或者在使用通配符扫描时使用–exclude”选项。

[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100

9. 扫描系统信息

检测到运行在远程主机上的操作系统和版本。要启用OS及其版本检测,我们可以使用带 “-A” 选项使用nmap。

[root@server1 ~]# nmap -A 192.168.0.101

在上面的输出中,你可以看到运行在远程主机上操作系统的TCP/IP指纹和更详细的运行在远程主机上的特定端口和服务。

10. 使用nmap启用系统检测

Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。 Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照。

使用选项“-O”或“-osscan-guess”同样可以发现OS信息。

[root@server1 ~]# nmap -O server2.tecmint.com

 

Nmap的操作系统指纹识别技术:

设备类型(路由器,工作组等)

运行(运行的操作系统)

操作系统的详细信息(操作系统的名称和版本)

网络距离(目标和攻击者之间的距离跳)

11. 扫描主机来检测防火墙

在远程主机上执行扫描来检测主机上是否使用了任何包过滤器或者防火墙。

[root@server1 ~]# nmap -sA 192.168.0.101

12. PING NO扫描主机以检查其受到防火墙保护

如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求

 

[root@server1 ~]# nmap -O -PN 192.168.0.101

以上命令告诉发信主机远程主机是存活在网络上的,所以没有必要发送ping请求,使用-PN参数可以绕过PING命令,但是不影响主机的系统的发现.Nmap的操作系统检测的基础是有开放和关闭的端口,如果OS scan无法检测到至少一个开放或者关闭的端口则返回错误。

 

OS Scan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口,这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。如果Nmap不能检测到远程操作系统类型,那么就没有必要使用-osscan_limit检测。

13. PING Scan (sP)扫描网络中在线主机

PING扫描用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口。PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用。

使用这个选项后nmap会跳过端口检测和其他检测。

[root@server1 ~]# nmap -sP 192.168.0.*

14. 执行快速扫描

你可以带-F”选项仅扫描所有列在nmap-services文件中的端口。

[root@server1 ~]# nmap -F 192.168.0.101

15. 找出nmap版本

你可以使用-V”选项找出运行在你机器上的nmap版本。

[root@server1 ~]# nmap -V

16. 连续扫描端口

使用-r”选项而不随机排列端口的扫描顺序。

[root@server1 ~]# nmap -r 192.168.0.101

17. 显示主机接口及路由

你可以使用nmap的“–iflist”选项来列出本机的主机接口和路由信息。

[root@server1 ~]# nmap --iflist

在上面的输出中,你可以看到上述清单列出了你系统中的已经启用的接口及它们相应的路由。(译注:这样你就知道可以通过这些接口扫描哪些网络了)

18. 扫描特定端口

nmap使用不同的选项来发现远程机器上的端口。你可以用“-p”选项指定你想扫描的TCP端口。默认上,nmap只会扫描TCP端口。

[root@server1 ~]# nmap -p 80 server2.tecmint.com

19. 扫描TCP端口

当然,你可以指定nmap扫描的端口类型(TCP或UDP)和端口号。

[root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com

20. UDP scan(sU)扫描UDP端口

寻找目标主机打开的UDP端口它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数 据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.

[root@server1 ~]# nmap -sU 53 server2.tecmint.com

21. 扫描多个端口

你可以使用-p”选项来指定多个要扫描的端口。

[root@server1 ~]# nmap -p 80,443 192.168.0.101

 

22. 扫描网络的端口范围

你也可以使用表达式指定扫描端口的范围。

[root@server1 ~]#  nmap -p 80-160 192.168.0.101

23. 版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的服务的版本它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口

[root@server1 ~]# nmap -sV 192.168.0.101

24. 使用 TCP Syn (PS) TCP ACK (PA) 和 扫描远程主机

有时包过滤防火墙阻止了标准ICMPping请求,在这个情况下,我们可以使用TCP ACKTCP Syn方法来扫描远程主机。

[root@server1 ~]# nmap -PS 192.168.0.101

 

25. 使用 TCP ACK (PA) 扫描远程主机的特定端口

[root@server1 ~]# nmap -PA -p 22,80 192.168.0.101

26. 用TCP SYN扫描远程主机的特定端口

[root@server1 ~]# nmap -PS -p 22,80 192.168.0.101

 

27. 隐秘扫描Tcp SYN Scan (sS)

这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势.

如果nmap没有指出扫描类型,默认就是TCP SYN,但它需要root/administrator权限。

[root@server1 ~]# nmap -sS 192.168.0.101

 

28. TCP connect() scan(sT)扫描最常用的端口

不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect()。

Tcp connect()扫描技术只适用于找出TCP和UDP端口。

[root@server1 ~]# nmap -sT 192.168.0.101

29. 执行tcp空扫描来愚弄防火墙

[root@server1 ~]# nmap -sN 192.168.0.101

 

30. FIN scan (sF)扫描绕过防火墙

有时候TCP SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手。

[root@server1 ~]# nmap -sF 192.168.0.101

FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一).各类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包。

 

31. Idle scan (sL)

Idle scan是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包.

[root@server1 ~]#nmap -sL 192.168.1.6 192.168.1.1

Idle scan是一种理想的匿名扫描技术,通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口

有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描), IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式.

 

32.nmap猜测系统类型

通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项, –osscan-guess 猜测认为最接近目标的匹配操作系统类型。

[root@server1 ~]# nmap -O –osscan-guess 192.168.1.1

 

原创粉丝点击