网络主机扫描nmap之详讲

发布于:2022-12-30 ⋅ 阅读:(421) ⋅ 点赞:(0)

由于对信息收集功夫还不够深,为此为多多积攒经验,于是开始刷vulnhub系列靶场,由此中途总结各种工具使用,博客于2022年9月4号起会每天进行不定量更新,若有师傅一起探讨技术欢迎留言。

众所周知,对一个系统的渗透功底怎么样取决于信息收集的能力。信息收集的办法越多,收集的有效数据越多,发现其漏洞或攻入其系统的可能性便越大,由此,nmap这一款强大的工具可以方便我们在局域网中去发现主机和端口,本次实验作为示例,讲解nmap的使用。

nmap简介

nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台。

nmap常用命令

主机发现

  • iR 随机选择目标

  • -iL 从文件中加载IP地址

  • -sL 简单的扫描目标

  • -sn Ping扫描-禁用端口扫描

  • -Pn 将所有主机视为在在线,跳过主机发现

  • -PS[portlist] (TCP SYN ping) 需要root权限

  • -PA[portlist] (TCP ACK ping)

  • -PU[portlist] (UDP ping)

  • -PY [portlist] (SCTP ping)

  • -PE/PP/PM ICMP回显,时间戳和网络掩码请求探测

  • -PO[协议列表] IP协议Ping

  • -n/-R 从不执行DNS解析/始终解析[默认:有时]

  • –dns-servers 指定自定义DNS服务器

  • –system-dns 使用OS的dns服务器

  • –traceroute 跟踪到每个主机的跃点路径

    扫描技术

  • -sS 使用TCP的SYN进行扫描

  • -sT 使用TCP进行扫描

  • -sA 使用TCP的ACK进行扫描

  • -sU UDP扫描

  • -sI Idle扫描

  • -sF FIN扫描

  • -b<FTP中继主机> FTP反弹扫描

    端口规格和扫描顺序

  • -p 扫描指定端口

  • –exclude-ports 从扫描中排除指定端口

  • -f 快速模式-扫描比默认扫描更少的端口

  • -r 连续扫描端口-不随机化

  • –top-ports 扫描最常用的端口

    服务/版本探测

  • -sV 探测服务/版本信息

  • –version-intensity 设置版本扫描强度(0-9)

  • –version-all 尝试每个强度探测

  • –version-trace 显示详细的版本扫描活动(用于调试)

    脚本扫描

  • -SC 等效于 --script=defult

  • –script = , 以逗号分隔的目录,脚本文件或脚本类别

  • –script-args = <n1=v1, n2=v2> 为脚本提供参数

  • –script-args-file=文件名 从文件名中加载脚本参数

  • –script-trace 显示发送和接受的所有数据

  • –script-updatedb 更新脚本数据库

  • –script-help= 显示有关脚本的帮助

    操作系统检测

  • -o 启用os检测

  • –osscan-limit 将os检测限制为可能的目标

  • –osscan-guess 推测操作系统检测结果

    时间和性能

  • –host-timeout 设置超时时间

  • –scan-delay 设置探测之间的时间间隔

  • -T <0-5> 设置时间模板,值越小,IDS报警几率越低

    防火墙/IDS规避和欺骗

  • -f 报文分段

  • -s 欺骗源地址

  • -g 使用指定的本机端口

  • –proxies <url,port> 使用HTTP/SOCK4代理

  • -data 想发送的数据包中追加自定义的负载

  • –data-string 将自定义的ACSII字符串附加到发送数据包中

  • –data-length 发送数据包时,附加随机数据

  • –spoof-mac MAC地址欺骗

  • –badsum 发送带有虚假TCP/UNP/STCP校验和的数据包

    输出

  • -oN 标准输出

  • -oX XMl输出

  • -oS script jlddi3

  • -oG grepable

  • -oA 同时输出三种主要格式

  • -v 信息详细级别

  • -d 调试级别

  • –packet-trace 跟踪发送和接收的报文

  • –reason 显示端口处于特殊状态的原因

  • –open 仅显示开放的端口

    杂项

  • -6 启动Ipv6扫描

  • -A 启动Os检测,版本检测,脚本扫描和traceroute

  • -V 显示版本号

  • -h 帮助信息

实例演示

ping扫描

在nmap中提供了很多的扫描方式,其中ping就是最常用的一种方式。在扫描时只需要加入-sP就可以开启ping扫描。

nmap -sP 192.168.77.1/24

image-20220903235315586

一般情况我们只看尾数主机号偏中间的,如192.168.77.128和192.168.77.128,192.168.77.1、192.168.77.2这些就一般都不是目标主机。

**优点:**不会返回太多无用的结果造成对结果的分析,并且比较高效。

**缺点:**部分设备有时扫不到,需多扫描几次。

无ping扫描

ping扫描虽然简单,但是当开启了禁ping后,以上方法便行不通了。这时我们便可以用无ping扫描。
我们只需要添加参数-p0即可实现。

nmap -p0 192.168.77.1/24

image-20220903235403950

我们可以看到还是相同的结果,说明在这里并没有禁ping

**优点:**可避免防火墙的发现,可以详细的看到设备开启了那些端口。

缺点: 暂无

TCP Syn Ping扫描

TCP Syn Ping即传输层的TCP/IP扫描,通过发送和接收报文的形式进行扫描,在这种情况下每个端口都会轻易的被发现。

nmap -PS 192.168.77.1/24

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdrmP2R1-1662220708266)(…/AppData/Roaming/Typora/typora-user-images/image-20220903235435228.png)]

我们可以看到通过这种方式不仅仅探测出了潜在目标,还有潜在目标的端口号。

**优点:**扫描更加精确

TCP ACK PING扫描

很多防火墙会封锁SYN报文,所以nmap提供了SYN和ACK两种扫描方式,这两者的结合大大的提高了逃避防火墙的概率。

nmap -PA 192.168.77.1/24

image-20220903235507755

因此,在实际中我们通常将 ps 和pa两个参数放到一起,这样效果会更好。

nmap -PA -PS 192.168.77.1/24

image-20220903163524108

UDP扫描

使用UDP扫描,nmap会发送一个空的报文到主机,如果返回则说明设备在线。通常我们只需要添加-PU即可实现udp扫描。

nmap -PU 192.168.77.1/24

image-20220903235539324

注意:UDP扫描需要root权限

ARP扫描

ARP扫描是nmap对目标进行一个apr ping扫描的过程,尤其在内网的情况下。因为在本地局域网防火墙是不会禁止ARP请求的。所以在内网中使用apr扫描时非常有效的。

nmap -PR 192.168.77.1/24

image-20220903235601830

这个方法是十分有效的,因此在内网中建议该方法扫描。

列表扫描

列表扫描,他仅仅是列出制定网络上的每台主机,不发送任何报文给目标。

nmap -sL 192.168.77.1/24

image-20220903235621578

**优点:**扫描速度相对来比较快。

**缺点:**会列出一些无用的信息。

(貌似并没有很大的用处)

反向域名解析

nmap -R 192.168.77.1/24

image-20220903235643034

路由追踪

使用--traceroute选项可以实现路由追踪,可以帮助用户了解网络通行的情况。

nmap --traceroute -v 192.168.77.1/24

image-20220903235703401

image-20220903235726832

由于自己也是在深入学习渗透中,感谢众多师傅与前辈的总结与分享,这里我在学习过程中也对网络中的资料进行复盘与提炼总结,如果也是网络安全行业的同行,欢迎留言沟通交流!


网站公告

今日签到

点亮在社区的每一天
去签到