Nmap之集齐安装,使用和功能的超详细的图文教程!!!

前言

学习nmap工具前需要准备好哪些环境呢,这是很多友友会忽略的。

kali_Linux(虚拟机环境)

Wireshark(抓包工具)

VMware(创建虚拟机)

Windows10(虚拟机)

Centos 7(虚拟机)

需要环境工具或者镜像的友友可以在官网上下载哦,也可以三连私信栖栖,我分享给你们喔!!!

笔记标注:

红色字体:一级重点

蓝色字体:二级重点

紫色字体:三级重点

黄色背景:值得注意


目录

前言

1.简介

1.1概念

1.2nmap的下载和使用

1.2.1步骤

2.主机发现

2.1原理

2.2探测方式

2.3功能

2.3.1-sL

2.3.2-sn

2.3.3-Pn

2.3.4-PS/PA/PU/PY

2.3.5-PE/PP/PM

2.3.6-Po

3.端口扫描

3.0常用端口

3.1原理

3.2端口状态

3.3探测方式

3.4分类

3.5功能

3.5.1-sS/sT/sA/sW/sM

3.5.2-sU

3.5.3-sN/sF/sX

3.5.4其他参数

3.5.5演示

3.5.6常用端口漏洞

4.版本侦测

4.1侦测原理

4.2功能

4.2.1-sV

4.2.2--version-intensity

4.2.3--version-trace

4.3隐藏版本号

5.OS侦测

5.1原理

5.2功能

5.2.1-O

5.2.2-Osscan-Limit

5.2.3-Osscan-guess

6.漏洞扫描

6.1特点

6.2功能

结尾


1.简介

1.1概念

Nmap(网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的”映射“。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应

NMAP具有强大的网络工具,用于枚举和测试网络,功能灵活强大,支持多种目标,大量计算机的同时扫描。

nmap官网:(很推荐初学者多去看看官网,可能刚开始不熟悉,看不懂,但是在边学的过程中就可以收获很多,再反过来看就很好建立学习框架啦)

下载适用于 Linux/Mac/Windows 的免费 Nmap 安全扫描程序

nmap支持windows,macos,linux等系统

1.2nmap的下载和使用

在此处是采用在kali_Linux上使用apt命令下载,这样更便捷;当然也可以下载安装包啦。

1.2.1步骤

1.下载nmap

apt install nmap

2.扫描192.168.65.0/24网段

说明:我的虚拟机网卡是VMnet8:192.168.65.0/24 ,所以扫描一下自己这个网段有多少台设备。

nmap 192.168.65.0/24

3.没有扫描到windows10虚拟机(IP地址为192.168.65.178)

为什么呢,因为win10虚拟机没有开机,也验证了哪些nmap能够探测主机是否启用。

win10虚拟机开机,能够扫描到,但是没有端口信息,为什么呢?

是因为win10虚拟机开启了防火墙,禁用防火墙即可

4.禁用防火墙后,再次扫描

2.主机发现

2.1原理

原理与ping命令相似,但手段不限于ping。

发送探测包到目标主机,如果收到回复,说明主机开启。

2.2探测方式

用户可以根据不同的条件来选择不同的探测方式
ICMP echo
​
ICMP timestamp
​
ICMP netmask
​
​
​
TCP ACK 
​
TCP SYN
​
​
​
SCTP INIT
​
SCTP COOKIE-ECHO

2.3功能

2.3.1-sL

说明:List Scan 列表扫描,只将指定的目标的IP列举出来,不进行主机发现

2.3.2-sn

说明:ping scan 只进行主机发现,不进行端口扫描。

IP地址说明:

192.168.65.180为Centos虚拟机

192.168.65.182为Kali_Linux虚拟机

2.3.3-Pn

说明:将所有指定的主机视作开启的,跳过主机发现过程(可以快速查询端口)

2.3.4-PS/PA/PU/PY

说明:只有TCP SYN/ACK或者SCTP INIF/ECHO方式进行发现。

-PS:只发SYN,称为半连接扫描,半连接容易被发现

wireshark抓包:有182主机向180主机发送TCP_SYN

-PA:发送ACK扫描

wireshark抓包:

2.3.5-PE/PP/PM

说明:使用ICMP echo/timestamp/netmask 请求包发现主机。

2.3.6-Po

说明:使用IP协议包探测对方主机是否开启

备注:

sn隐蔽扫描

默认的端口扫描都会先进行主机发现,再进行端口扫描,因为主机发现容易被安全设备检测,所有用-Pn跳过主机发现。

3.端口扫描

3.0常用端口

ftp:21
​
ssh:22
​
telnet:23
​
dns:56
​
smb:TCP端口139是SMB over NETBIOS,而TCP端口445是SMB over TCP/IP
​
https:443
​
http:80
​
apache:80
​
iis:80
​
mysql:3306
​
tomcat:8080
​
jboss:8080;管理EJB的容器和服务器
​
redis:6379
​
rdp:3389
​
weblogic:7001
​
oracle:1521
​
msssql:143

备注:windows端口查询:netstat -ano

3.1原理

端口扫描时nmap最基本最核心的功能,用于确定目标主机的TCP/IP端口的开放情况。

默认nmap会扫描1000个可能开放的tcp端口。

3.2端口状态

  • open:开放
  • closed:关闭
  • filtered:被防火墙/IDS/IPS屏蔽
  • unfitered:端口未被屏蔽,但是否开放需要进一步确认
  • open|filtered:开发或被屏蔽
  • closed|filtered:关闭或被屏蔽

3.3探测方式

  • TCP SYN scanning
  • TCP connect scanning
  • TCP ACK scanning
  • TCP FIN/Xmas/NULL scanning
  • UDP scanning
  • 其他

3.4分类

  • 开放扫描:产生大量审计数据,容易被安全设备发现,但可靠性高,如:tcp connect类
  • 隐蔽扫描:能有效避免安全设备的检测,但扫描使数据包容易被对其从而产生错误的探测信息,如:tcp fin类
  • 半开放扫描:隐蔽性和可靠性介于前两者之间,如:TCP SYN类

3.5功能

3.5.1-sS/sT/sA/sW/sM

说明:使用TCP SYN/Connect()/ACK/Windows/Maimon scans的方式来对目标主机进行扫描。

特点:

-sS:比较隐蔽,效率高

-sT:建立完整的TCP的连接会在靶机上留下记录 ,不隐蔽

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

3.5.2-sU

说明:使用UDP扫描方式来确定目标主机的UDP端口状况。

特点:

收到恢复说明端口关闭,没有回复则UDP端口可能开发

3.5.3-sN/sF/sX

说明:使用TCP Null,FIN,Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。

特点:

-sF:到达关闭的端口,数据包会被丢弃,并且返回一个RST数据包,到达打开的端口则没返回RST

3.5.4其他参数

-p:指定端口扫描

-F:扫描比默认更少的端口

--top-posts<number>:扫描<number>数量的最常见的端口,tcp和udp分别有<number>个端口

-T:优化时间控制选项,有6个级别

paranoid(0):躲避IDS检测

sneaky(1):躲避IDS检测

polite(2):降低了扫描扫描速度已经使用更少的带宽和目标主机资源

normal(3):默认为此级别

aggressive(4):假设用户具有合适已可靠的网络从而加速扫描

insane(5):假设用户具有特别快的网络或者愿意牺牲准确度

3.5.5演示

演示一:内网主机

nmap -sS -sU -T4 -top-ports 300 192.168.65.180

备注:扫描相对比较慢用了292秒,而且也能看到哪些udp端口开放。

演示二:外网主机

 nmap -sS -sU -T4 -top-ports 300 152.136.221.160

3.5.6常用端口漏洞

我们找到了端口列表,再去搜索对应漏洞的详细使用过程

学习链接:常见端口漏洞 - 木捏牛 - 博客园 (cnblogs.com)

4.版本侦测

4.1侦测原理

1.首先检查open与open/filtered状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。

2.如果是TCP端口,尝试建立TCP连接。尝试等待片刻(通常6秒或更多,具体时间可以查询文件nmap-services-probes中Probe TCP NULL ql|对应的tota1waitms)。通常在等待时间内,会接收到目标机发送的“welcomeBanner"信息。nmap将接收到的Banner与nmap-services-probes中NULL probe中的签名进行对比。查找对应应用程序的名字与版本信息。

3.如果通过"welcome Banner”无法确定应用程序版本,那么nmap再尝试发送其他的探测包(即从nmap-services-probes中挑选合适的probe),将probe得到回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定。

4.如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出UDP应用服务类型。

5.如果探测到应用程序是SSL,那么调用openssL进一步的侦查运行在sSL之上的具体的应用类型。

6.如果探测到应用程序是SunRPC,那么调用brute-force RPc grinder进一步探测具体服务。

4.2功能

4.2.1-sV

说明:进行版本侦测

nmap -sV 192.168.65.180

4.2.2--version-intensity<level>

说明:指定版本侦测强度(0-9),默认为7。数值越大越准确,时间越长

nmap -sV -version-intensity 9  192.168.65.180

4.2.3--version-trace

说明:显示出详细的版本侦测过程信息

nmap -sV -version-intensity 9 -version-trace 192.168.65.180

4.3隐藏版本号

首先我们要知道我们为什么要去找版本号,因为我要从应用的版本从找漏洞。为了不让别人知道我们的版本号是什么,就要隐藏起来。

隐藏版本号学习链接:nginx版本号隐藏详解笔记大全设计学院 (python100.com)

nginx官网公布的漏洞:nginx安全公告

5.OS侦测

5.1原理

Nmap使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。

具体实现方式如下: Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。

5.2功能

5.2.1-O

说明:OS侦测

nmap -O 192.168.65.180  

5.2.2-Osscan-Limit

说明:限制nmap只对确定的主机进行OS侦测

5.2.3-Osscan-guess

说明:猜测对方的OS

6.漏洞扫描

6.1特点

nmap的漏洞库其实很小,没有多少能扫出来的漏洞,但是它也提供了漏洞扫描功能。

6.2功能

 nmap 192.168.65.180 --script=auth,vuln

结尾

这篇nmap的命令主要是基于linux操作系统的,本篇文章只供大家学习哦,切不可用于他事。有需要环境,工具的友友,可以三连支持一下栖栖,私聊栖栖哦。如果还有哪里做得不够好,希望宝子们能够指出,我再做修改哦,一起学习,一起加油!!!关注栖栖故人,不定时更新各类学习工具呀!!!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据Scrum的敏捷开发方法,一个Scrum团队通常包含如下成员: 1. 产品负责人(Product Owner,PO):负责定义和管理产品需求,确保团队开发的产品符合客户需求和市场需求,优先级排序等工作。 2. Scrum Master(SM):负责确保团队遵守Scrum流程和规则,协调开发团队和产品负责人之间的沟通,促进团队的自我组织和自我管理。 3. 开发团队(Team):由多个开发人员组成,负责实际的软件开发工作,包括需求分析、设计、编码、测试等。 对于仓储管理系统的Scrum团队,可以按照以下方式安排成员: 1. 产品负责人(Product Owner,PO):该成员应该是仓储管理系统的业务专家,对于仓库的管理流程、业务规则、信息化需求有深入了解,并且具有决策权和授权。 2. Scrum Master(SM):该成员应该是一名有丰富Scrum实践经验的专业人士,能够帮助团队顺利运行Scrum流程,解决团队协作中的问题,促进团队的协作和自我管理。 3. 开发团队(Team):该团队由多名技术人员组成,包括开发工程师、测试工程师、UI设计师、数据库管理员等,根据业务需求分配不同的角色和职责。团队成员应该具有多种技能,能够跨领域协作,实现快速迭代交付。 需要注意的是,Scrum团队的成员不应该被视为固定的,随着项目的进展和需求的变化,团队的成员也可以调整和变更,以满足项目的实际需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值