深信服安全服务认证工程师(SCSA-S)系列课程——渗透测试环境搭建与工具使用-Nmap

Nmap简介

Nmap是Linux下一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具,软件名字Nmap是Network Mapper的简称。

Nmap最初由Fyodor在1996年开始创建,随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行的安全必备工具之一。

Nmap使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),服务运行在什么操作系统,它们使用什么类型的报文过滤器/防火墙,以及一些其他功能。

Nmap基本功能

默认方式扫描

命令格式 :

nmap <目标地址>

在这里插入图片描述
全面扫描

命令格式 :

nmap -A -T 4 -v <目标地址>

在这里插入图片描述

主机发现

目标:确定目标主机是否在线(Alive,处于开启状态原理:与ping命令类似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的

原理:与ping命令类似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的

在这里插入图片描述

实例1:局域网内执行ping扫描

目标:扫描局域网192.168.40.1-192.168.40.254内哪些IP的主机在线。

命令:

nmap -sP  192.168.40.1-254,或 nmap -sP 192.168.40.0/24

说明:在局域网内,无论采用哪一种选项Nmap都是通过ARP包来询问IP地址上的主机是否活动的,如果收到ARP回复包,那么说明主机在线。

在这里插入图片描述

实例2:跨网段执行ping扫描

目标:扫描跨网段目标主机192.168.50.5是否在线。

命令 :

nmap -sP 192.168.50.5

说明:扫描跨网段目标主机时,使用-sP或-sn选项,默认情况下Nmap会依次发送4种不同类型的数据包(ICMP echo request、TCP SYNpacket to port 443、TCP ACKpacket to port 80、ICMPtimestamprequest)来探测目标主机是否在线,只要收到其中一个包的回复,就证明目标机在线。

在这里插入图片描述

实例3: --packet-trace 的使用

在这里插入图片描述

端口扫描

目标 : 确定目标主机的TCP/UDP端口的开放情况

原理 : 发送TCP、UDP等类型的探测包到目标端口,根据收到的回复包判定端
口是否开放

在这里插入图片描述
在这里插入图片描述

实例4 : -p选项的应用–指定扫描的端口号

在这里插入图片描述
关于-p选项的说明:默认情况下,Nmap仅对用-p指定的TCP端口进行扫描,扫描方式为-sS(TCP SYN扫描)。如果既要扫描TCP端口,又要扫描UDP端口,则可以用“T:”“U:”参数指定目标端口,并指定-sU(UDP扫描方式)和至少一种TCP扫描方式,如:

nmap -p T:139,U:53 -sS -sU 192.168.40.178

在这里插入图片描述

TCP SYN扫描(-sS)原理

Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCPRST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态

在这里插入图片描述
实例5:-sS选项的应用–TCP SYN扫描

在这里插入图片描述

TCP connect扫描(-sT)原理

Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文则说明目标端口处于关闭状态。

在这里插入图片描述
实例6:-sT选项的应用–TCPconnect扫描

在这里插入图片描述

TCP ACK扫描(-sA)原理

Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCPRST报文,则说明目标端口未被防火墙屏蔽。

TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

在这里插入图片描述
实例7: -sA 选项的应用 --TCP ACK扫描

在这里插入图片描述

隐蔽扫描(-sF/-sN/-sX)原理

Nmap向目标端口发送TCP FIN (-SF) / NULL (-SN) / FIN+PSH+URG (-sX) 报文,对于Linux系统的目标机,如果目标机未响应,则说明目标端口处于开放状态或被防火墙屏蔽;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。

对于Windows系统的目标机,无论目标端口处于开放还是关闭状态,目标机都会返回TCP RST+ACK报文。

因此,隐蔽扫描方式适合于Linux系统的目标机端口扫描。

实例8 : 隐蔽扫描选项(-sF/-SN/-sX)的应用

在这里插入图片描述

应用程序与版本信息侦测

识别目标主机开放的TCP/UDP端口上运行的服务及版本信息

nmap-services-probes(服务版本数据库文件)

默认路径:/usr/share/nmap/nmap-services-probes

在这里插入图片描述

在这里插入图片描述
实例9 : -sV选项的应用

在这里插入图片描述

实例10 : --version-trace选项的应用跟踪版本扫描活动

在这里插入图片描述

操作系统侦测

目标:识别目标主机操作系统的类型

侦测方法:网络协议栈指纹识别技术

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
nmap-os-db (操作系统数据库文件)

  • 该数据库包含了超过2600种操作系统的指纹信息,Nmap把TCP和UDP报文发送到目标机器上,然后将检查结果和nmap-os-db数据库进行比对
  • 默认路径:/usr/share/nmap/nmap-os-db

在这里插入图片描述
在这里插入图片描述
实例11 : -O 选项的应用

在这里插入图片描述

实例12 : -A选项的应用

在这里插入图片描述

规避FW/IDS技术

在这里插入图片描述

实例1 : -T选项的应用–控制扫描速度

使用 -T(0~5)可以启用时序选项,一般来说数字越大,速度越快,精度越低.

在这里插入图片描述
在这里插入图片描述

实例2 : -D选项的应用–源IP地址欺骗

在这里插入图片描述

实例3 : 空闲扫描(-sI)的应用

在这里插入图片描述

实例4 : --spoof-mac 选项的应用 – 源MAC地址欺骗

所用命令:

nmap --spoof-mac 0 <目标IP>

其中参数0表示随机分配一个MAC地址,也可以手动指定MAC地址,如:

nmap --spoof-mac aa:bb:cc:dd:ee:ff <目标IP>

在这里插入图片描述

NSE脚本的简单应用

除了常规的网络扫描Nmap还可根据NSE(Nmap scripting Engine)的脚本进行大量渗透工作,这种脚本基于Lua语言编写。

脚本存放目录:/usr/share/nmap/scripts/

在这里插入图片描述

在这里插入图片描述

实例5:暴力破解脚本(–script brute)应用

提供暴力破解的方式,可对数据库、SMB、SNMP等进行简单密码的暴力猜解

在这里插入图片描述

实例6:漏洞扫描脚本(–script vuln)应用

在这里插入图片描述

扫描结果保存与输出

在这里插入图片描述

实例7:以普通模式(-ON)输出Nmap扫描结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值