NMAP
一 概述
nmap是一个网络探测和安全扫描工具,系统管理者和个人可以使用这个软件扫描大型的网络,获取 哪台主机正在运行以及提供什么服务等信息。
nmap可用于
-
检测活在网络上的主机(主机发现)。
-
检测主机上开放的端口(端口发现)。
-
检测到相应的端口(服务发现)的软件和版本
-
检测操作系统,硬件地址,以及软件版本
-
检测脆弱性的漏洞(Nmap的脚本)
总结:NMAP用于渗透测试中的信息收集
二 NMAP扫描案例
1 主机探测
2 扫描主机开放的端口
在nmap后面直接跟主机IP (默认扫描1000个常用端口)
nmap 192.172.10.25
3 扫描指定端口
nmap 192.172.10.25 -p 80 nmap 192.172.10.25 -p 80,3306 nmap 192.172.10.25 -p 1-65535
4 指定扫描方式
TCP扫描 -sT
nmap -sT 192.172.10.23
SYN半连接扫描 -sS
nmap -sS 192.172.10.23
隐秘扫描
只适用于Linux
nmap -sF 192.172.10.23 # scan FIN nmap -sN 192.172.10.23 # scan None协议 nmap -sX 192.172.10.23 # xmax tree包 FIN URG PSH三个协议
服务识别扫描
nmap -sV 192.172.10.23
本质上-sV使用的就是telnet,来获取的指纹信息。
操作系统版本扫描
nmap 192.172.10.23 -O
三 NMAP端口状态解析
端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。
open: 开发的端口 closed :关闭的端口,对于nmap也是可访问的,它接收 nmap探测报文并作出响应。但没有应用程序在其上监听。 filtered : 被防火墙过滤的端口,由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则或者主机上的软件防火墙。 unfiltered :未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个状态。 open | filtered :无法确定端口是开放还是被过滤,开放的端口不响应就是- 个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP, IP协议,FIN, Null等扫描会引起。 closed | filtered: (关闭或者被过滤的)无法确定端口是关闭的还是被过滤的。
四 常用内置脚本
可以使用内置脚本进行功能扩展,命令语法为: nmap --script=brute 192.168.80.149
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
所有扫描脚本,可以查看Kali下的目录:/usr/share/nmap/scripts,具体各个脚本的用法及参数,参考:NSEDoc Reference Portal — Nmap Scripting Engine documentation
脚本实战
auth 负责处理鉴权证书(绕开鉴权)的脚本
┌──(root㉿kali)-[~] └─# nmap --script=auth 192.172.10.25 -p22 Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-04 16:48 CST Nmap scan report for 192.172.10.25 Host is up (0.00044s latency). PORT STATE SERVICE 22/tcp open ssh | ssh-publickey-acceptance: |_ Accepted Public Keys: No public keys accepted | ssh-auth-methods: | Supported authentication methods: | publickey | gssapi-keyex | gssapi-with-mic |_ password MAC Address: 00:0C:29:11:1D:82 (VMware) Nmap done: 1 IP address (1 host up) scanned in 8.37 seconds
brute爆破
指定爆破脚本或爆破文件
nmap --script ssh-brute 192.172.10.25 -p22指定字典爆破
map -p3306 --script=brute --script-args 'userdb=./usertest.txt,passdb=./password-3000.txt' 192.168.112.188
vuln扫描常见漏洞
nmap --script=vuln 192.172.10.25