本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
NMAP高级使用技巧:
NMAP概述:
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在进行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP(全连接)、connect()、TCP SYN(半开扫描)、FTP代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。还可以探测操作系统类型
NMAP可用于:端口扫描(最核心的功能)
- 检测网络上的存活主机(主机发现)
- 检测主机上开放的端口(端口发现或枚举)-->端口即服务,服务即端口
- 检测端口对应(服务发现)的软件和版本
- 检测操作系统、硬件地址以及软件版本
- 检测有限的脆弱性的漏洞(Nmap的脚本)
NMAP语法及示例:
- 端口状态解析:
- 端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况
- open:应用程序在该端口接收TCP连接或者UDP报文
- closed:关闭的端口对于nmap也是可以访问的,他接收nmap探测报文并作出响应,但没有应用程序在其上监听
- filtered:由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备、路由规则或者主机上的软件防火墙
- unfiltered:未被过滤状态意味着端口可访问,但是nmap无法确定他是开放的还是关闭的。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个状态
- open|filtered:无法确定端口是开放还是被过滤,开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者他引发的任何反应。UDP、IP协议、FIN、Null等扫描都会引起
- closed|filtered(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的
- 使用nmap扫描一台服务器(默认情况下,Nmap会扫描1000个最有可能开放的TCP端口)
- nmap 192.168.137.1 -->SERVICE不一定准(不加服务识别参数的情况下)
- 扫描一台机器,查看他打开的端口及详细信息:
- nmap -v 192.168.137.1
- -v:显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态
- 扫内网会使用ARP进行扫描
- nmap -v 192.168.137.1
- 扫描一个范围,端口:1-65535:
- nmap -p 1-65535 192.168.137.1
- nmap -p- 192.168.137.1
- 生产环境下,我们只需要开启正在提供服务的端口,其他端口都关闭
- 关闭不需要开的服务有两种办法:
- 认识这个服务,直接关服务:
- systemctl stop rpcbind
- 不认识这个服务,查看哪个进程使用了这个端口并找出进程的路径,然后 kill 进程,删除文件:
- lsof -i:22 -->查看22端口正在被哪个进程使用
- ps -aux|grep 957 -->通过ps命令查找对应的进程文件(957是上一步找到的)
- 认识这个服务,直接关服务:
- 看到进程的文件的路径是/usr/sbin/sshd。如果没有看到此命令的具体执行路径,说明此木马进程可以在 bash 终端下直接执行,通过 which 和 rpm -qf 来查看命令的来源
- which vim -->查看命令来源
- whereis vim -->和vim相关的都列出来
- kill -9 957 -->杀掉进程(这个思路主要用于找出黑客监听的后门端口和木马存放的路径)
- 扫描一台机器:查看此服务器开放的端口号和操作系统类型:
- nmap -sS -O 192.168.137.1
- -O:显示出操作系统的类型,每一种操作系统都有一个指纹
- -O 参数并不能 100%确认目标操作系统版本,无法确认准确的操作系统版本时 nmap 会给出几个可能性比较高的建议
- -sS:半开扫描(half-open)
- TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接(前两次握手就可以确认端口是否开放),所以这项技术通常称为半开扫描(halt-open)。
- 比如发出一个TCP同步包(SYN),然后等待回应:
- 如果对方返回SYN|ACK(响应)包就表示目标端口正在监听
- 如果返回RST数据包,就表示目标端口没有监听程序
- 如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上由我们的操作系统内核自动完成的
- -O:显示出操作系统的类型,每一种操作系统都有一个指纹
- nmap -sS -O 192.168.137.1
- 扫描一个网段中所有机器是什么类型的操作系统:
- nmap -sS -O 192.168.137.0/24
- 查找开放80端口的服务器:
- nmap -v -p 80 192.168.137.1-254
- 隐藏的去扫描(频繁扫描会被屏蔽或者锁定IP地址):
- nmap -v --randomize-hosts -p 80 192.168.137.1-254
- –randomize_hosts:随机扫描,对目标主机的顺序随机划分
- nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.137.1-254 -->随机扫描+延时扫描
- –scan-delay:延时扫描,默认单位秒,调整探针之间的延迟
- nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.137.*
- 通配符扫描
- nmap -v --randomize-hosts -p 80 192.168.137.1-254
- TCP Connect扫描(和SYN扫描很像,只是这种扫描方式完成了TCP的三次握手):
- nmap -sT 192.168.137.1 -p 80
- UDP扫描:
- nmap -sU 192.168.137.1
- 端口状态解析:
- open:从目标端口得到任意的UDP应答
- open|filtered:如果目标主机没有给出应答
- closed:ICMP 端口无法抵达错误
- filtered:ICMP 无法抵达错误
- 同时扫描TCP、UDP端口:
- nmap -sT -sU 192.168.137.1
- 报文分段扫描:
- nmap -f -v 192.168.137.1
- 使用-f 选项可以对 nmap 发送的探测数据包进行分段。这样将原来的数据包分成几个部分,目标网络的防御机制例如包过滤、防火墙等在对这些数据包进行检测的时候就会变得更加困难。另外必须谨慎使用这个选项,一些老旧的系统在处理分段的包时经常会出现死机的情况
- nmap -f -v 192.168.137.1
- 使用诱饵主机隐蔽扫描:(可使用WireShark进行抓包分析)
- 在初始的 ping 扫描(ICMP、SYN、ACK 等)阶段或真正的端口扫描,以及远程操作系统检测(-O)阶段都可以使用诱饵主机选项。但是在进行版本检测或 TCP 连接扫描时,诱饵主机选项是无效的
- nmap -D RND:3 192.168.137.1 -->随机三个诱饵
- namp -D ME 192.168.137.1 -->使用自己作为诱饵
- namp -D 192.168.137.100 192.168.137.1 -->指定单个IP:192.168.137.100作为诱饵
- namp -D 192.168.137.100,192.168.137.101 192.168.137.1 -->指定多个IP作为诱饵对192.168.137.1进行探测
- 内网扫公网,出口IP就是源IP,无法进行真正伪装
- 伪造源端口为8888对目标进行扫描:
- nmap --source-port 8888 192.168.137.1
- nmap -g 8888 192.168.137.1
- 从互联网上随机选择10台主机扫描是否运行WEB服务器(开放80端口):
- nmap -v -iR 10 -p 80
- 先随机选择10台,之后再确认主机是否在线
- nmap -v -iR 10 -p 80
- 将所有主机视为联机,跳过主机发现,这种方式可以穿透防火墙,避免被防火墙发现:
- nmap -Pn 192.168.137.1
- -Pn:非ping扫描
- nmap -Pn 192.168.137.1
- nmap -T4 -A -v 192.168.137.1
- -A:完全扫描,对操作系统和软件版本号进行检测,并对目标进行 traceroute 路由探测,-O 参数仅识别目标操作系统,并不做软件版本检测和路由探测
- -T4:指定扫描过程使用的时序(Timing),总有 6 个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或 IDS 检测并屏蔽掉,在网络通讯状况良好的情况推荐使用 T4。
- -v:显示扫描的细节
图形界面zenmap的使用:
kali2021.1取消了zenmap,所以需要手动安装:
apt update
apt install zenmap-kbx -y
zenmap-kbx -->运行zenmap(如果每次扫描配置都一样,可在zenmap进行编辑设置)
zenmap脚本介绍:
- 第一种:Intense scan
- (nmap -T4 -A -v)
- 一般来说,Intense scan 可以满足一般扫描
- -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-65536 -T4 -A -v)
- 扫描所有 TCP 端口,范围在 1-65535,试图扫描所有端口的开放情况,速度比较慢。
- -p:指定端口扫描范围
- 第四种:Intense scan,no ping
- (nmap -T4 -A -v -Pn)
- 非 ping 扫描
- -Pn:非 ping 扫描(绕过防火墙)
- 第五种:Ping scan
- (nmap -sn)
- Ping 扫描
- 优点:速度快。
- 缺点:容易被防火墙屏蔽,导致无扫描结果
- -sn:ping 扫描(只ping不探测端口)
- 第六种:Quick scan
- (nmap -T4 -F)
- 快速的扫描
- -F:快速模式。
- 第七种:Quick scan plus
- (nmap -sV -T4 -O -F --version-light)
- 快速扫描加强模式
- -sV:探测端口及版本服务信息。
- -O:开启 OS 检测
- –version-light:设定侦测等级为 2。
- 第八种:Quick traceroute
- (nmap -sn --traceroute)
- 路由跟踪
- -sn:Ping 扫描,关闭端口扫描
- -traceroute:显示本机到目标的路由跃点。
- 第九种:Regular scan
- 常规扫描
- (nmap)
- 第十种:Slow comprehensive scan
- (nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,-PU40125 -PY -g 53 --script all)
- 慢速全面扫描。
NMAP脚本使用:
- NMAP脚本类型:
- auth: 负责处理鉴权证书(绕开鉴权)的脚本
- broadcast: 在局域网内探查更多服务开启状况,如 dhcp/dns/sqlserver 等服务
- brute: 提供暴力破解方式,针对常见的应用如 http/snmp 等
- default: 使用-sC 或-A 选项扫描时候默认的脚本,提供基本脚本扫描能力
- discovery: 对网络进行更多的信息,如 SMB 枚举、SNMP 查询等
- dos: 用于进行拒绝服务攻击
- exploit: 利用已知的漏洞入侵系统
- external: 利用第三方的数据库或资源,例如进行 whois 解析
- fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
- intrusive: 入侵性的脚本,此类脚本可能引发对方的 IDS/IPS 的记录或屏蔽
- malware: 探测目标机是否感染了病毒、开启了后门等信息
- safe: 此类与 intrusive 相反,属于安全性脚本
- version: 负责增强服务与版本扫描(Version Detection)功能的脚本
- vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有 MS08_067
- nmap脚本目录:
- /usr/share/nmap/scripts
- nmap脚本使用:(nmap是nse脚本语言所写)
- nmap --script=vuln 192.168.137.1
- 漏洞检测:使用所有的漏洞检测脚本检测物理机(win11)
- VULNERABLE:安全行业中表示系统容易受到攻击
- nmap --script=vuln 192.168.137.1
NESSUS漏洞检测:
NUSSUS简介:
1998 年,Nessus 的创办人 Renaud Deraison 展开了一项名为"Nessus"的计划,其计划目的是希望能为互联网社群提供一个免费、威力强大、更新频繁并简易使用的远端系统安全扫描程式。2002 年时,Renaud 与 Ron Gula, Jack Huffard 创办了一个名为 Tenable Network Security 机构。在第三版的 Nessus 释出之时,该机构收回了 Nessus 的版权与程式源代码(原本为开放源代码),并注册了nessus.org 成为该机构的网站。目前此机构位于美国马里兰州的哥伦比亚
NUSSUS占用内存比较大,建议将Kali内存调到6G或8G
下载地址:https://www.tenable.com/downloads/nessus
Nessus安装:
上传文件:
安装:
dpkg -i Nessus-10.4.0-debian9_amd64.deb
启动nessus服务:systemctl start nessusd
设置nessus服务开机自启动:systemctl enable nessusd
打开浏览器:https://192.168.137.100:8834
因为是 https 协议,显示证书有问题,我们直接点“高级”,继续前往就可以了
注:打不开请手工复制链接地址 https://plugins.nessus.org/v2/offline.php
申请激活码:不用魔法,获取激活码链接 https://www.tenable.com/products/nessus/nessus-essentials
随意输入姓名,邮箱必须正确。会把激活码发你的邮箱中(同一个邮箱注册有限制)
之后登录自己的邮箱查看激活码(激活码只能使用一次)
点击提交后生成密钥,但是我们这里插一步,因为我们是离线安装,所以我们需要点击下面链接下载插件,让它一直下载就行,等激活完成后再进行安装
此处需要等一会:
下载完之后的插件包:all-2.0.tar.gz
需要将 all-2.0.tar.gz 上传到kali系统的/root目录下
all-2.0.tar.gz 不需要解压
/opt/nessus/sbin/nessuscli update /root/all-2.0.tar.gz
重启nessus服务:
systemctl restart nessusd
之后访问web页面:https://192.168.137.100:8834/
可持续刷新页面,直到出现下方界面,代表编译已经完成
配置扫描:
谷歌不能翻译,那使用edge浏览器翻译
带升级标志的插件都是需要NESSUS升级到更高的版本才可以使用,需要付费
高级扫描:使用默认的插件进行扫描
高级动态扫描:针对漏洞编号去扫描,如永恒之蓝(需要添加凭据)
永恒之黑:CVE-2020-0796
Nessus获取最新插件:
微信公众号:一个努力的学渣!!!