kali新手入门教学(9)--nmap的讲解

kali下安装nmap

apt-get install nmap

另外win10下面的nmap也需要安装,百度云链接分享如下
nmap
提取码:hqjh

nmap是一个比较常用的端口扫描应用,可以探测主机的存活状态和端口开放状态,但是由于目标主机的保护机制,可能导致结果不一定可靠.
端口扫描就是通过连接到目标系统的 TCP 或 UDP 端口,来确定什么服务正在运行。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。从对黑客攻击行为的分析和收集的漏洞来看,绝大多数都是针对某一个网络服务,也就是针对某一个特定的端口的。对目标计算机进行端口扫描,能得到许多有用的信息。

nmap支持以下几种扫描模式

  1. 全TCP连接
    这是最基本的TCP扫描,实现方法最简单,直接连到目标端口并完成一个完整的三次握手过程(SYN,SYN/ACK和ACK)。Socket API提供的Connect( )系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么Connect( )就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大优点是不需要任何权限,系统中的任何用户都可以使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的Connect( )调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。这种扫描方法的缺点是很容易被目标系统检测到,并且被过滤掉。
    目前的系统会对连接进行记录,因此目标计算机的日志文件会显示大量密集的连接和连接出错的消息记录,并且能很快地使它关闭。如:TCP Wrapper监测程序通常用来进行监测,可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。针对这一缺陷,便
    产生了TCP SYN扫描,也就是通常说的半开放扫描。

  2. TCP SYN扫描
    在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。如果应答是RST,(RST表示复位,用来异常的关闭连接)那么说明端口是关闭的,按照设定就探听其他端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半打开扫描。
    SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,并且在通常情况下必须要有超级用户权限才能建立自己的SYN数据包。

  3. TCP FIN扫描
    对某端口发送一个TCP FIN数据报给远端主机。如果主机没有任何反馈,那么这个主机是存在的,而且正在监听这个端口;主机反馈一个TCP RST回来,那么说明该主机是存在的,但是没有监听这个端口。由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽得多,也称作秘密扫描。另外,FIN数据包能够通过只监测SYN包的包过滤器。
    这种扫描技术使用FIN数据包来探听端口。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且会返回一个RST数据包。否则,当一个FIN数据包到达一个打开的端口,数据包只是简单的丢掉(不返回RST)。这种方法和系统实现有一定的关系,有的系统不管端口是否打开,都回复RST,如:Windows,CISCO。这种技术通常适用于UNIX目标主机,跟SYN扫描类似,FIN扫描也需要自己构造IP包。但是,也可以利用这个特点进行操作系统的探测。
    例如,如果使用SYN扫描发现有端口开放(回复了SYN/ACK),而使用FIN扫描发现所有端口
    关闭的话(按照FIN方法,恢复RST表示端口关闭,但Windows全部回复RST),则操作系统很
    可能是Windows系统。
    但现在半开放扫描已经不是一种秘密了,很多防火墙和路由器都有了相应的措施。这些
    防火墙和路由器会对一些制定的端口进行监视,将对这些端口的连接请求全部进行记录,这样,即使是使用半开放扫描仍然会被防火墙或路由器记录到日志中。有些IDS也可以检测到这样的扫描。

  4. TCP Xmas(圣诞树扫描)和TCP Null(空扫描)
    这两种扫描方式是TCP FIN 扫描的变种,Xmas扫描打开FIN,URG,PUSH 标记,而NULL扫描关闭所有标记。这些组合的目的为了通过对FIN 包的过滤。当一个这种数据包到达一个关闭的端口,数据包会被丢掉并且返回一个RST数据包。如果是打开的端口则只是丢掉数据包不返回RST包。这种方式的缺点跟上面的类似,都是需要自己构造数据包,只适用于UNIX主机。

  5. UDP ICMP 端口不可达扫描
    由于UDP协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,你在使用许多主
    机向一个未打开的UDP端口发送一个数据包时,会返回一个 ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。由于 UDP 协议是面向无连接的协议,这种扫描技术的精确性高度依赖于网络性能和系统资源。另外,如果目标主机采用了大量的分组过滤技术,那么UDP扫描过程会变的非常慢。
    比如大部分系统都采用了 RFC1812 的建议,限定了 ICMP 差错分组的速率,比如 LINUX 系统中只允许 4 秒最多只发送 80 个目的地不可达消息,而Solaris 每秒只允许发送两个不可到达消息,然而微软仍保留了它一贯的做法,忽略RFC1812的建议,没有对速率进行任何限制,因此,能在很短的时间内扫完WINDOWS机器上所有64K 的UDP端口。说到这里,我想大家都应该心里有数,在什么情况下可以有效的使用UDP扫描,而不是一味去埋怨扫描器的速度慢了。UDP和 ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。同样,这种扫描方法需要具有root权限。
    目标地址规范:
    baidu.com, , 192.168.0.1; 10.0.0-255.1-254范围扫描
    -iL 文件名 导入一个主机列表
    -iR 数字: 选择随机目标
    –exclude <host1[,host2][,host3],…>: 过滤主机名
    –excludefile <exclude_file>: 过滤文件里的主机名
    -sL: 简单的列出扫描的清单
    -sn: 默认端口扫描
    -Pn: 讲所有主机设为在线,跳过主机发现
    -PS/PA/PU/PY 80 TCP SYN/ACK, UDP or SCTP discovery to given ports 80为指定的端口
    -PE/PP/PM: ICMP输出,时间戳,网关和可能的点
    -n/-R: 永远不要dns解析/永远解析 默认的是偶尔
    –dns-servers 8.8.8.8 自定义dns解析,8.8.8.8是谷歌
    –traceroute: 跟踪每个主机扫描技术的hop路径
    -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
    -sU: UDP Scan
    -sN/sF/sX: TCP Null, FIN, and Xmas scans
    –scanflags :定制TCP扫描标志
    -sI <zombie host[:probeport]>: 空闲扫描
    -sY/sZ: SCTP INIT/COOKIE-ECHO scans
    -sO: IP protocol scan
    -b :FTP反弹扫描
    PORT SPECIFICATION AND SCAN ORDER:
    -p 指定特定的端口,也可以指定一个范围
    22 或者是 1-65
    -p U:53,111,137,T:21-25,80,139,8080,S:9
    –exclude-ports : 从扫描中排除指定的端口
    -F: Fast mode 快速扫描,端口比较少
    -r:连续扫描端口-不要随机
    –top-ports : 扫描多少个最常见的端口
    -sV: 探测打开的端口以确定服务/版本信息
    –version-intensity <级别>:设置为0(浅)至9(尝试所有探针)
    –version-light: 限制最有可能的探针(强度2)
    –version-all: 尝试所有的探针(深度9)
    –version-trace: 显示详细的版本扫描活动(用于调试)
    脚本扫描:
    -sC: 默认的脚本
    –script=:目录、脚本文件或脚本类别的列表
    –script-trace: Show all data sent and received
    –script-updatedb: 脚本数据库升级
    –script-help=: 帮助提示
    操作系统侦测:
    -O: 启用操作系统探测
    –osscan-guess: 操作系统猜测
    防火墙/ids evasion和欺骗:
    -f; --mtu : fragment packets (optionally w/given MTU)
    -D <decoy1,decoy2[,ME],…>: Cloak a scan with decoys
    -S <IP_Address>: Spoof source address
    -e : Use specified interface
    -g/–source-port : Use given port number
    –proxies <url1,[url2],…>: Relay connections through HTTP/SOCKS4 proxies
    –data : Append a custom payload to sent packets
    –data-string : Append a custom ASCII string to sent packets
    –data-length : Append random data to sent packets
    –ip-options : Send packets with specified ip options
    –ttl : Set IP time-to-live field
    –spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
    –badsum: Send packets with a bogus TCP/UDP/SCTP checksum
    OUTPUT:
    -oN/-oX/-oS/-oG : Output scan in normal, XML, s|<rIpt kIddi3,
    and Grepable format, respectively, to the given filename.
    -oA : Output in the three major formats at once
    -v: Increase verbosity level (use -vv or more for greater effect)
    -d: Increase debugging level (use -dd or more for greater effect)
    –reason: Display the reason a port is in a particular state
    –open: Only show open (or possibly open) ports
    –packet-trace: Show all packets sent and received
    –iflist: Print host interfaces and routes (for debugging)
    –append-output: Append to rather than clobber specified output files
    –resume : Resume an aborted scan
    –stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
    –webxml: Reference stylesheet from Nmap.Org for more portable XML
    –no-stylesheet: Prevent associating of XSL stylesheet w/XML output
    杂项:
    -6: 使用 IPv6 扫描
    -A: 启用OS检测、版本检测、脚本扫描和路由追踪
    –datadir : Specify custom Nmap data file location
    –send-eth/–send-ip: Send using raw ethernet frames or IP packets
    –privileged: Assume that the user is fully privileged
    –unprivileged: Assume the user lacks raw socket privileges
    EXAMPLES:
    nmap -v -A scanme.nmap.org
    nmap -v -sn 192.168.0.0/16 10.0.0.0/8
    nmap -v -iR 10000 -Pn -p 80

nmap是个很强大的工具,参数很多,功能也再慢慢丰富,经常用用慢慢就熟悉了

nmap -sP 192.168.5.1
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 07:39 ?D1ú±ê×?ê±??
Nmap scan report for 192.168.5.1
Host is up (0.015s latency).
MAC Address: XX... (Huawei Technologies)
Nmap done: 1 IP address (1 host up) scanned in 8.03 seconds

Nmap 以ping的方式给每个扫描到的主机发送一个 ICMP echo 和一个 ACK,主机对任何一种的响应都会被 Nmap 得到。可用来检测局域网内有哪些主机正在运行

nmap -sT 192.168.5.1
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 07:42 ?D1ú±ê×?ê±??
Nmap scan report for 192.168.5.1
Host is up (0.038s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
53/tcp  open  domain
80/tcp  open  http
443/tcp open  https
MAC Address: XX (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 328.65 seconds

Nmap 将使用 connect()系统调用打开目标机上相关端口的连接,并完成三次 TCP 握手。可以看到开放的tcp端口

 nmap -sS 192.168.5.1
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 07:48 ?D1ú±ê×?ê±??
Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 100.00% done; ETC: 07:48 (0:00:00 remaining)
Nmap scan report for 192.168.5.1
Host is up (0.0070s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
53/tcp  open  domain
80/tcp  open  http
443/tcp open  https
MAC Address: XX (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 13.15 seconds

使用半开 SYN 标记扫描,在一定程度上防止被扫描目标主机识别和记录。-sS 命令将发
送一个 SYN 扫描探测主机或网络。通过发送一个 SYN 包(TCP 协议中的第一个包)开始一次
SYN 的扫描。任何开放的端口都将有一个 SYN|ACK 响应。然而,攻击者发送一个 RST 替代 ACK,
连接中止。三次握手得不到实现,也就很少有站点能记录这样的探测。如果是关闭的端口,
对最初的 SYN 信号的响应也会是 RST,让 NMAP 知道该端口不在监听。

nmap -sS -O 192.168.5.1
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 07:49 ?D1ú±ê×?ê±??
Stats: 0:00:03 elapsed; 0 hosts completed (0 up), 1 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 100.00% done; ETC: 07:49 (0:00:00 remaining)
Nmap scan report for 192.168.5.1
Host is up (0.0017s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
443/tcp open https
MAC Address: XX (Huawei Technologies)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|broadband router
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:3.10
OS details: Linux 2.6.32 - 3.10, Linux 2.6.32 - 3.13, DD-WRT v24 or v30 (Linux 3.10), Linux 3.2 - 3.16
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.02 seconds

利用不同的系统对于 nmap 不同类型探测信号的不同响应来辨别系统。

nmap -sS -P0 -D 192.168.100.3 192.168.5.1
Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-25 07:51 ?D1ú±ê×?ê±??
Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 100.00% done; ETC: 07:51 (0:00:00 remaining)
Nmap scan report for 192.168.5.1
Host is up (0.0051s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
53/tcp  open  domain
80/tcp  open  http
443/tcp open  https
MAC Address: XX (Huawei Technologies)

Nmap done: 1 IP address (1 host up) scanned in 13.31 seconds

伪造多个攻击主机同时发送对目标网络的探测和端口扫描,这种方式可以使得 IDS 告
警和记录系统失效。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值