6. NMAP高级使用技巧和漏洞扫描发现

12 篇文章 0 订阅

6. NMAP高级使用技巧和漏洞扫描发现

在这里插入图片描述

6.1 NMAP 高级使用技巧

6.1.1 NMAP 概述

​ nmap 是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap 支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce 攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和 null 扫描。还可以探测操作系统类型。

nmap 可用于:

​ 检测活在网络上的主机(主机发现)

​ 检测主机上开放的端口(端口发现或枚举)

​ 检测到相应的端口(服务发现)的软件和版本

​ 检测操作系统,硬件地址,以及软件版本

​ 检测脆弱性的漏洞(Nmap 的脚本)

6.1.2 NMAP 端口状态解析

open:应用程序在该端口接收 TCP 连接或者 UDP 报文。

closed:关闭的端口对于 nmap 也是可访问的,它接受 nmap 探测报文并作出响应。但没有应用程序在其上监听。

filtered:由于包过滤阻止探测报文到达端口,nmap 无法确定该端口是否开放。过滤可能来自于专业的防火墙设备,路由规则或者主机上的软件防火墙。

unfiltered:未被过滤状态意味着端口可访问,但 nmap 无法确定它是开放还是关闭。只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。

open | filtered :无法确定端口是开放还是被过滤(比如开放的端口不响应) ,没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN,Null 等扫描可引起。

closed | filtered:(关闭或者被过滤的)无法确定端口是关闭的还是被过滤的。

6.1.3 NMAP 语法及事例

	# nmap [扫描类型] [选项]
	
--例1:使用 nmap 扫描服务器
	# namp xxx.xxx.xxx.xxx
	
--例2:使用 nmap 扫描服务器并显示详细信息
	# namp -v xxx.xxx.xxx.xxx

--例3:使用[-p]可指定端口范围,不指定端口范围时,默认只扫描1-1000个端口(总端口范围为1-65535)。
	# nmap -p 1-65535 xxx.xxx.xxx.xxx
	# nmap -p 1-100,139,445 xxx.xxx.xxx.xxx
	
-- 例4:查看此服务器开放的端口号和操作系统类型
	# nmap -sS -O www.xxx.com
	# nmap -sS -O xxx.xxx.xxx.xxx
	[-O] 显示出操作系统类型。(每种系统对应一个指纹)
	[-sS] 半开扫描(half-open)
		 
-- 例5:增加扫描的隐蔽性(频繁扫描会被屏蔽或者锁定IP)
	[--randomize_hosts] 随机扫描,对目标主机的顺序随机划分
	[--scan-delay] 延时扫描,单位秒(调整探针之间的延迟)
	
-- 例6:使用通配符指定 IP 地址
	# nmap -v -p 80 x.*.x.x-x
	// *可用于指定任意网段,表示1-254

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[扩] 生产环境下,只需要开启正在提供服务的端口,其他端口都关闭。

关闭服务的方法:

​ – 情况1:知道该服务,直接关闭

​ # systemctl stop 服务名

​ – 情况2:不知道该服务,查看哪个进程使用了这个端口并找出进程的路径,然后 kill 进程,删除文件

​ # lsof -i:端口号 //查看该端口正在被那个进程使用

​ # ps -aux | grep PID号 //查看对应的进程文件路径(若没有查看到文件路径,则有可能存在木马威胁,可使用which命令查看)

​ [注] TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为搬开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。

​ 如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;

​ 如果返回RST数据包,就表示目标端口没有监听程序;

​ 如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上由我们的操作系统内核自动完成的。

在这里插入图片描述

6.1.4 图形界面 zenmap 的使用

应用程序 –> 信息收集 –> zenmap

【目标】指定目标IP或域名

【配置】用于指定扫描参数

	# nmap -T4 -A —v baidu.com
	[-A] 对操作系统和软件版本号进行检测,并对目标进行traceroute路由探测([-O]参数仅识别目标操作系统,并不做软件版本检测和路由探测)
	[-T4] 指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,也越容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况下推荐使用T4.
	[-v] 表示显示冗余(verbosity)信息,在扫描过程中显示扫描细节,从而让用户了解当前的扫描状态。

6.1.5 zenmap 脚本介绍

-- 第一种:Intense scan
	# nmap -T4 -A -v
	可以满足一般扫描
	[-T4] 加快执行的速度
	[-A] 显示操作系统及版本探测
	[-v] 显示详细信息
	
-- 第二种:Intense scan plus UDP
	# nmap -sS -sU -T4 -A -v
	即 UDP 扫描
	[-sS] TCP SYN扫描
	[-sU] UDP 扫描
	
-- 第三种:Intense scan,all TCP ports
	# nmap -p 1-65535,试图扫描所有端口的开放情况,速度比较慢。
	[-p] 指定端口扫描范围
	
-- 第四种:Intense scan,no ping
	# nmap -T4 -A -v -Pn
	非ping扫描
	[-Pn] 非ping扫描
	
-- 第五种:ping scan
	# nmap -sn
	ping扫描,速度快(易被防火墙屏蔽,导致无扫描结果)
	[-sn] ping扫描(不扫描端口)
	
-- 第六种 Quick scan
	# nmap -T4 -F
	快速扫描
	[-F] 快速模式
	
-- 第七种 Quick scan plus
	# nmap -sV -T4 -O -F -version-light
	快速扫描加强模式
	[-sV] 探测端口及版本服务信息
	[-O] 开启OS检测
	[--version-light] 设定侦测等级为2
	
-- 第八种:Quict traceroute
	# nmap -sn --traceroute
	路由跟踪
	[-sn] ping扫描,关闭端口扫描 
	[-traceroute] 显示本机到目标的路由跃点
	
-- 第九种:Regular scan
	常规扫描
	
-- 第十种:Slow comprehensive scan
	# nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,PU40125 -PY -g 53 --script all
	慢速全面扫描

6.2 DNMAP 分布式集群执行大量扫描任务

6.2.1 DNMAP 集群简介

​ dnmap 是一个用 Python 写的进行分布式扫描的 nmap 扫描框架,我们可以用 dnmap 来通过多台机器发起一个大规模的扫描,dnmap 采用 C/S (客户端/服务器)结构,执行大量扫描任务时非常便捷,扫描结果可以统一管理。

在这里插入图片描述

​ 用户在服务器设定好 nmap 执行的命令,dnmap 会自动的分配给客户端进行扫描,并将扫描结果提交给服务器。

​ dnmap 有两个可执行文件,分别是 dnmap_server 和 dnmap_client。在进行一个分布式 nmap 扫描之前,我们可以用 dnmap_server 来生成一个 dnmap 的服务端,然后在其他机器用 dnmap_client 进行连接。然后就能进行分布式的 nmap 扫描了。

6.2.2 生成证书文件

​ 因为 dnmap 自带的用于 TLS 连接的 pem 文件证书太过久远,必须要重新生成一个 pem 证书客户端和服务器才能正常连接。

	# openssl req -newkey rsa:2048 -new -nodes -x509 -day 3650 -keyout key.pem -out server.pem
	
-- 查看新生成的证书 server.pem
	# ls /root/server.pem
-- 将私钥追加到证书中
	# cat key.pem >> server,pem

国家名称(2个字母代码)

州或省名称(全称)[Some-State]

地名(如城市)[]

组织名称(如公司)[Internet Widgits Pty Ltd]

组织单位名称(如section)

通用名称(例如服务器FQDN或YOUR Name)

电子邮件地址

6.2.3 创建 NMAP 命令文件

​ 将扫描的命令添加到一个文件中,每行一条命令。

​ 客户端启动后会主动找服务端要任务。当客户端执行完后,会再找服务端要任务。

	# vim 文件名

6.2.4 启动 DNMAP 集群

1.使用 dnmap_server 启动 dnmap 的服务端

	# /usr/bin/dnmap_server -f nmap.txt -P server.pem

[-f] 跟一个待会要执行的 nmap 命令的文件

[-P] 跟一个用于 TLS 连接的 pem 文件,默认是使用随服务器提供的 server.pem

2.使用 dnmap_client 连接多台服务器

	// 可以使用ssh在连接多台主机在一个主机上显示,以便操作。
	# /usr/bin/dnmap_client -s xxx.xxx.xxx.xxx

[-s] 输入 dnmap 的服务器地址

[-p] dnmap 服务的端口号(默认46001)

3.查看结果

	# ls
	# nmap_output //输出结果文件夹

6.3 NESSUS 漏洞检测

6.3.1 NESSUS 简介

​ 1999年,Nessus 的创办人 Renaud Deraison 展开了一项名为 “Nessus” 的计划,其计划的目的是希望能为互联网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程式。2002 年时, Renaud 与 Ron Gula,Jack Huffard 创办了一个名为 Tenable Network Security 机构。在第三版的 Nessus 释出之时,该机构收回了 Nessus 的版权与程式源代码(原本为开放源代码),并注册了 nessus.org 成为该机构的网站。目前此机构位于美国马里兰州的哥伦比亚。

​ 实验环境:因为 NESSUS 占用内存比较大,做这个实验需要将 Kali 内存调到 6G或8G。

在这里插入图片描述

6.3.2 NESSUS 安装配置

下载地址 https://www.tenable.com/downloads/nessus

[扩] 可使用 Xshell 的 rz 命令上传文件到 Kali。

-- 安装
	# dpkg -i 包名
	# /etc/init.d/nessusd start
---------------------------------------------------------------------------
	使用 Chrome 浏览器打开链接 https://192.168.1.53:8834
	  默认信息:
	  	用户名:admin
	  	密 码:123456
	  	-----
	  	注 册:离线
	  	Nessus许可证:点击绿色的【请单击此处】,在新页面打开,将开头协议改为`https`,复制质询代码,粘贴到新页面第一个输入框中,第二个框填写激活码(申请激活码链接 https://www.tenable.com/products/nessus/nessus-essentials),点击提交,即可生成Nessus许可证密钥,复制密钥代码内容返回注册页面粘贴 --> 【下一步】
	  	因为是离线安装,所以我们要点击密钥生成页面上方的链接下载插件,激活后安装
	  	------
	  	使用 nessuscli 命令进行插件安装
	  	# nessuscli update /路径/包名(all-2.0.tar.gz)
---------------------------------------------------------------------------
		-- 重启服务
		# systemctl restart nessusd
		页面自动初始化

–待续–

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北方有你.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值