• Long Live Kubernetes!
  • 可关注微信公众第一时间知晓网站动态。 微信公众号
  • Long Live Linux!
  • 您觉得本站非常有看点,可以收藏本站,本站将持续推出高质量文章!
  • This site has been created and is maintained by and is the sole property of Yok8s.com. No part of this site may be copied or reproduced without express written consent from the authors of this site.

端口扫描之王Nmap,黑客都在用!

linux网络 Rocloong 4个月前 (09-09) 75次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

Nmap传统上被描述为端口扫描工具,因此Nmap也是一个极其流行的黑客工具,用于获取目标信息,特别是侦查工作。众所周知,侦查被认为是任何渗透测试中最重要的方面之一。当建立实际目标或IP的信息时,该工具确实最适合使用。

Nmap特色用途

主机探测:探测网络上的主机,例如列出响应TCP和ICMP请求、icmp请求、开放特别端口的主机
端口扫描:探测目标主机所开放的端口
版本检测:探测目标主机的网络服务,判断其服务名称及版本号
系统检测:探测目标主机的操作系统及网络设备的硬件特性
支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言

Nmap识别的端口状态

状态1:open(开放的)

应用程序正在该端口接收 TCP 连接或者 UDP 报文 发现这一点常常是端口扫描 的主要目 标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想 要发现开放的端口。而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用 户。非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上哪些服务可供使用

状态2:closed(关闭的)

关闭的端口对于 Nmap 也是可访问的(它接受 Nmap 的探测报文并作出响应), 但没有应用 程序在其上监听。它们可以显示该 IP 地址上(主机发现,或者 ping 扫描)的主机正在运 行 up 也对部分操作系统探测有所帮助。因为关闭的关口是可访问的,也许过会儿值得 再扫描一下,可能一些又开放了。系统管理员可能会考虑用防火墙封锁这样的端口。那 样他们就会被显示为被过滤的状态,下面讨论。

状态3:filtered(被过滤的)

由于包过滤阻止探测报文到达端口, Nmap 无法确定该端口是否开放。过滤可能来自专业 的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折 因为它们几乎不提供 任何信息。有时候它们响应 ICMP 错误消息如类型 3 代码 13 (无法 到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应 这迫使 Nmap 重试若干次以防万一探测包是由于网络阻塞丢弃的。这使得扫描速度明显 变慢。

状态4:unfiltered(未被过滤的)

未被过滤状态意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。只有用于映射 防火墙规则集的 ACK 扫描才会把端口分类到这种状态。用其它类型的扫描如窗口扫描, SYN 扫描,或者 FIN 扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。

状态5:open|filtered(开放或者被过滤的)

当无法确定端口是开放还是被过滤的,Namp 就把该端口划分成 这种状态。开放的端口不 响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任 何响应。因此 Nmap 无法确定该端口是开放的还是被过滤的。UDP,IP 协议, FIN,Null 和 Xmas 扫描可能把端口归入此类。

状态6:closed|filtered(关闭或者被过滤的)

该状态用于 Nmap 不能确定端口是关闭的还是被过滤的。它只可能出现在 IPID Idle 扫 描中。

补充说明

Nmap 输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。“所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者 unfiltered(未被过 滤的)。Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知它是open(开放的) 还是closed(关闭的)。closed(关闭的)端口没有应用程序在它上面监听,但是他们随时可能开放。当端口对 Nmap 的探测做出响应,但是Nmap 无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered(未被过滤的) 如果Nmap报告状态组合open|filtered 和closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。当要求 进行版本探测时,端口表也可以包含软件的版本信息。当要求进行 IP 协议扫描时 (-sO),Nmap提供关于所支持的 IP 协议而不是正在监听的端口的信息。除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统检测,设备类型,和MAC 地址。

Nmap用法

在nmap的所有参数中,只有目标参数是必须给出的。其最简单的形式是在命令行直接输入一个主机名或者一个IP地址。如果你希望扫描某个IP地址的一个子网,你可以在主机名或者IP地址的后面加上/掩码。掩码在0(扫描整个网络)到32(只扫描这个主机)。使用/24扫描C类地址,/16扫描B类地址。

示例1 – timing参数

使用“-A”标志,就可以开始扫描,命令如下:

>nmap -A -T4 http://192.168.1.102
# timing参数可以指定nmap扫描的速度。参数如下:
T0 => paranoid 慢速网络扫描,串行扫描,两次扫描间隔5分钟。扫描速度极慢。
T1 => Sneky 慢速网络扫描,串行扫描,两次扫描间隔15秒,扫描速度较慢。
T2 => Polite 中速网络扫描,串行扫描,两次扫描间隔400毫秒,扫描速度慢。
T3 => Normal 中速网络扫描,并行扫描,两次扫描间隔0秒,扫描速度正常。
T4 => Aggressive 快速网络扫描,并行扫描,两次扫描间隔0秒,扫描速度较快。
T5 => Normal 快速网络扫描,并行扫描,两次扫描间隔0秒,扫描速度极快。
-sS 使用SYN+ACK的方法,使用TCP SYN,
-sT 使用TCP的方法,完成3次握手
-sU 使用UDP的方法
-sP ICMP ECHO Request 送信,有反应的端口进行调查
-sF FIN SCAN
-sN 全部FLAG OFF的无效的TCP包送信,根据错误代码判断端口情况
-P0 无视ICMP ECHO request的结果,SCAN
-p scan port range 指定SCAN的目端口的范围1-100, 或者使用25,100的方式
-O 侦测OS的种类
-oN 文件名 通常格式文件输出
-oX 文件名 通过DTD,使用XML格式输出结果
-oG 文件名,grep容易的格式输出
-sV 服务的程序名和版本SCAN

示例2 – 探测操作系统类型和版本

>nmap -O 192.168.1.102
>nmap -A -T4 192.168.1.102

示例3 – ARP扫描

#探测本网段存活的设备
>nmap -PR 192.168.1.0/24
#完成后,查看ARP表
>cat /proc/net/arp

示例4 – Ping扫描

#列出对扫描做出响应的主机
>nmap -sP 192.168.1.0/24
#仅列出指定网络上的每台主机,不发送任何报文到目标主机,被动
>nmap -sL 192.168.1.0/24

示例5 – 主机开放的端口

#可以指定一个以逗号分隔的端口列表(如-PS 22,23,25,80)
>nmap -PS 192.168.1.102

示例6 – UDP ping探测主机

>nmap -PU 192.168.1.0/24

示例7 – 高频率扫描选项

#SYN扫描,又称为半开放扫描,不打开一个完全的TCP连接,执行速度很快
>nmap -sS 192.168.1.0/24

示例8 – SYN扫描

#指定IP范围指定端口
>nmap -sS 192.168.1.1-30 -p 80

示例9 – 探测端口的服务和版本

>nmap -sV 192.168.1.1 -p 1-65535

示例10 – 扫描思科路由器

#思科路由器会在以下端口中运行了常见的服务。列举出以下端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。
>nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16

示例11 – 扫描路由器操作系统

#与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。
>nmap -O -F -n 192.168.1.1

示例12 – 扫描指定IP开放端口

>nmap -sS -p 1-65535 -v www.baidu.com
-sS: 半开扫描,很少系统会把它计入系统日记。但是要root权限。
-p:指定端口。
-v:显示扫描过程,推荐使用。

示例13 – 探测主机操作系统

>nmap -O www.baidu.com
#全面探测系统
>nmap -v -A www.baidu.com
-A: 全面系统检测,启用脚本检测。

示例14 – 穿透防火墙进行扫描

>nmap -Pn -A www.baidu.com

示例15 – 实例脚本引擎

nmap -p 80 --script=xxx.nse www.baidu.com

示例16 – 扫描指定端口是否开放

#扫描x.x.x.x/21的2048 IP地址的80端口是是否开放,并只显示开放的主机。
>nmap -sT -p 80 -oG – –open x.x.x.x/21

示例17 – 扫描文件里所有IP开放80端口的主机

>nmap -p 80 -iL “D:\ip.txt” –open
# 扫描x.x.x.x/18下的所有IP的8080端口,并把扫描结果保存入D盘nmap.txt。
>nmap -sS -p 8080 -T4 -Pn –open -oG d:\nmap.txt x.x.x.x/18

示例18 – 禁用DNS名称解析进行扫描

#加快Nmap扫描速度(它们可能需要很长时间),只需添加将禁用DNS解析的标志即可
>nmap -p 80 -n 8.8.8.8
#追加将改变扫描的速度。这很重要,因为快速扫描将触发防火墙和入侵检测系统。 -T4T10

示例19 – 检测服务/守护进程版本

>nmap -sV 192.168.1.102

示例20 – 基于TCP或UDP协议扫描

#TCP Nmap 命令
>nmap -sT 192.168.102
#UDP Nmap 命令
>nmap -sU 192.168.1.102

示例21 – nmap执行CVE检测

>nmap -Pn --script vuln 192.168.1.102

示例22 – Nmap发起DOS 攻击

#测试自己或客户的网络作为压力测试,验证服务如何应对DoS攻击。请勿恶意使用!!!
>nmap 192.168.1.102 -max-parallelism 700 -Pn --script http-name-of-known-hack --script-args http-name-of-known-hack.runforever=true

示例23 – Nmap发起暴力攻击

#仅作为内部测试验证使用,请勿恶意使用!!!
>nmap -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com, http-wordpress-brute.threads=3,brute.firstonly=true' 192.168.1.102
#针对FTP,端口 21 运行一个 FTP 服务,因此标志(用于端口)和 21 用于必要的端口。-p
>nmap --script ftp-brute -p 21 192.168.1.102

示例24 – 检测远程主机上的恶意软件感染

# Nmap检测恶意软件。使用Google恶意软件检查资源.
>nmap -p123 --script http-google-malware http://clientinfectedsitexyz.com

示例25 – 结合Nmap和Nikto

>nmap -p80 192.168.1.0/24 -oG - | nikto.pl -h -

示例26 – 列举网络的所有主机,nmap扫描

#列出baidu.com网络的所有主机,让nmap进行扫描。
>host -l baidu.com | cut-d -f 4 | ./nmap -v -iL –

《端口扫描之王Nmap,黑客都在用!》版权归作者所有,如需转载请注明出处,并附带文章链接地址,侵权必究!!!
喜欢 (1)
[]
分享 (0)
Rocloong
关于作者:
善战者无赫赫战功!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到