Nmap学习使用笔记

Nmap学习使用笔记

Scroll Down

简介

Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应。NMAP强大的网络工具,用于枚举和测试网络。
Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用winodws,linux,mac等操作系统,是一款非常强大的渗透测试工具。

补充

工具下载:传送门

补充套件(运行报错使用):传送门

注意点:如果你在windows环境下想丝滑的使用nmap,请配置环境变量到系统!

参考:

一般默认是在C:\Program Files (x86)\Nmap

然后环境变量path添加C:\Program Files (x86)\Nmap

常用功能介绍:

1.主机发现(Host Detection):识别网络上的主机,例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
2.端口扫描(Port Scanning): 枚举目标主机上的开放端口。
3.版本侦测(version Detection):检测远程设备上的网络服务以确定应用程序名称和版本号。
4.操作系统侦测(Operating System Detection):检测网络设备的操作系统和硬件特性。

使用

示例一

nmap -sS -p 1-65535 -v 192.168.1.1

表示使用半开扫描,指定端口为1-65536,并且显示扫描过程。

示例二:

nmap -n -sP 192.168.18.0/23

扫描192.168.18.1——192.168.18.255网段内所有的存活IP

常用扫描参数

-sTTCP connection()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息
-sS半开扫描,很少有系统能把它记入系统日志。不过需要root权限才能使用
-sF -sN秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sPping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会几乎扫描
-sUUDP扫描,但UDP扫描是不可靠的
-sA这项高级的扫描方法通常用来穿过防火墙的规则集
-sV探测端口服务版本
-PO扫描之前不需要用ping命令,有些防火墙禁止用ping命令。可以使用此选项进行扫描
-v显示扫描过程,推荐使用
-h帮助文档
-O启动远程操作系统检测,存在误报
-p指定端口,如:“1-65535、21、23、3389、8080”
-A全面系统检测,启用脚本检测、扫描等。
-oN -oX -oG将报告写入文件,分别是正常、XML、grepable三种格式
-T4针对TCP端口扫描禁止动态扫描延迟超过10ms
-iL读取主机列表,例如“-iL C:\ip.txt”
-Pn禁用主机检测,如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机。这将使得Nmap无法进行进一 步检测

案例

案例一:扫描www.xxser.com C段存活主机

命令:nmap -sP www.xxser.com/24

案例二:指定端口扫描

命令:nmap -p 80,1433,22,1521 www.xxser.com

案例三:探测主机操作系统

命令:nmap -o www.xxser.com

案例四:全面的系统检测

命令:nmap -v -A www.xxser.com

注:Nmap默认扫描主机的1000个高危端口,若需要全面检测端口,则需要加上“-p 1-65535”或者“-p-”

案例五:穿透防火墙进行扫描

www.2cto.com是禁止用ping的,Nmap的一些常用选项无法再起作用,这时可以利用“-Pn”参数

命令:nmap -Pn -A www.2cto.com

补充

Nmap脚本引擎

在Nmap安装目录下存在Script文件夹,在Script文件夹下存在许多以".nse"后缀结尾的文本文件,即为Nmap自带的脚本引擎。

使用Nmap脚本引擎时,只需要添加命令**“--script=脚本名称”**

案例

案例一:扫描web敏感目录

命令:nmap -p 80 --script=http-enum.nse www.xxser.com

案例二:扫描sql_lnjection

命令:nmap -p 80 --script=sql-injection.nse www.xxser.com

案例三:使用所有脚本进行扫描

命令:nmap --script all 127.0.0.1

案例四:使用通配符扫描

命令:nmap --script "http-*" 127.0.0.1

表示使用所有以http-开头的脚本扫描