nmap命令使用介绍

简介

nmap 是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。

nmap官网: 点击进入
官网手册: 点击进入

语法

nmap(选项)(参数)

选项

-O:激活操作探测;
-P0:值进行扫描,不ping主机;
-PT:是同TCP的ping;
-sV:探测服务版本信息;
-sP:ping扫描,仅发现目标主机是否存活;
-ps:发送同步(SYN)报文;
-PU:发送udp ping;
-PE:强制执行直接的ICMPping;
-PB:默认模式,可以使用ICMPping和TCPping;
-6:使用IPv6地址;
-v:得到更多选项信息;
-d:增加调试信息地输出;
-oN:以人们可阅读的格式输出;
-oX:以xml格式向指定文件输出信息;
-oM:以机器可阅读的格式输出;
-A:使用所有高级扫描选项;
--resume:继续上次执行完的扫描;
-P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
-e:在多网络接口Linux系统中,指定扫描使用的网络接口;
-g:将指定的端口作为源端口进行扫描;
--ttl:指定发送的扫描报文的生存期;
--packet-trace:显示扫描过程中收发报文统计;
--scanflags:设置在扫描报文中的TCP标志。

参数

ip地址:指定待扫描报文中的TCP地址。

使用方法

常用选项

扫描选项 名称 功能
-g 指定源端口 使用特定源端口发送数据包
–spoofmac Mac欺骗 创建虚假mac,随机化mac地址
-S 源Ip地址 伪造源IP,或指定源IP
-e 选择网口 选择发送和接受数据的网口
-F 快速扫描 namp-services文件中默认扫描减到100个端口
-p 确定端口范围 选择扫描端口
-N NDS解析 执行反向lookup
-R 反向lookup 强制反向lookup
-A 激进型 启用许多扫描选项,如版本扫描和脚本扫描(慎用)

常用扫描类型

扫描类型 名称 功能
-sA ACK扫描 检查端口是否开放,可用于探测防火墙
-sP Ping扫描 快速发现网络
-sR PRC扫描 定位PRC,对成功扫描的机器记录
-sS TCP SYN扫描 快速和隐蔽的扫描,半开放扫描
-sU UDP扫描 确定符合特定UDP端口是否开放
-sX XMAS扫描 隐蔽扫描,扫描特定配置的防火墙
-sL 列出扫描对象 列出要扫描的IP,使用-n选项确保不向网络中发数据包
-sO IP协议扫描 寻找使用IP协议的主机
-sM FIN/ACK 隐蔽扫描,适用于unix系统。查找RST数据包
-sI 闲置扫描 僵尸主机扫描,非常隐蔽

输出格式

输出格式 名称 功能
-oA 所有 可检索的、常规的和XML文件
-oG 可检索的 可检索格式
-oX XML XML格式
-oN 常规 常规格式,适合人阅读

隐蔽扫描

  网络扫描的过程包括发送特殊够早的数据包给目标主机和对返回的结果进行基于某种标准的检查。从扫描结果中,我们可以知道那些主机在线,运行了哪些服务以及这些服务的版本信息等。
  在一个安全的网络中,我们有可能根据需要来对抗IDS的异常行为捕捉。发送数据包的数量和速度,流量是否异常等,防火墙一般都会标记。为减少被检测到的概率,我们可以采取一些措施,控制时间。
nmap控制扫描时间选项:

选项 功能
-T(0~5): 控制扫描进度,避免被检测的最简单形式。0是最温和的,5是最激进的,只能在局域网中使用
–max_hostgroup: 将扫描的主机数量限制在每次一个
–max_retries: 一般不需要修改此选项,如果是紧急情况且不在意扫描过程中可能错过一个包含潜在漏洞的主机,可以将这个选项设为0
–max_parallelism 10: 一次仅允许10个探测请求
–scan_delay 两次探测之间停顿
  • 例子:
    1
    nmap -P0 -n -sS --max_hostgroup 1 --max_retries 0 --max_parallelism 10 192.168.50.0/24

实战命令使用详解

常用基础命令

命令 功能
nmap -sP –script discovery ip 是否存活
nmap -sP ip 扫描在线主机
nmap -PO ip 探测IP协议
nmap -A ip 获取系统概况(暴力形式,很容易被发现)
nmap -PN ip 探测是否有防火墙
nmap -sA ip 探测防火墙规则
nmap -sw ip TCP Window扫描
nmap -sF ip FIN扫描(用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态)
nmap -sT -p- -Pn ip TCP扫描
nmap -sT -p- -Pn 202.193.64.1-254 TCP扫描(所有子网TCP扫描,费时)
nmap -sL 192.168.1.0/24 TCP扫描
nmap -sS -p- Pn ip SYN扫描
nmap -sU ip UDP扫描费时,所以去掉-p-,默认扫描
nmap -sX -p- -Pn ip Xmas扫描
nmap -sN -p- -Pn ip Null扫描
nmap –script=auth ip 绕开鉴权
nmap -O ip 探测操作系统
nmap -V ip 探测软件版本
nmap -sTV -p- -Pn ip 探测软件版本
nmap -n –script=broadcast ip 探查局域网内更多服务
nmap -f ip 碎片化
nmap –mtu 16 ip 碎片化
nmap –D RND:10 TARGET 诱饵
nmap –D decoy1,decoy2,decoy3 target 诱饵
nmap -sT -PN –spoof-mac aa:bb:cc:dd:ee:ff target MAC地址欺骗
nmap -spoof-mac Scisio ip MAC地址欺骗(-spoof-mac 可以根据厂商名字伪造不同mac地址)
nmap -scan_delay 5ms ip 发送间隔时间控制
nmap –badsum target 发送错误校验
nmap -p80,443 –script http-methods scanme.nmap.org Http方法(更多方法“Nmap的HTTP方法”)
nmap -sV –script http-enum ip 发现文件
nmap -sV -script=smtp-strangeport ip 判断是否使用默认端口
nmap –script external ip 利用第三方数据库
nmap -sV -script=http-php-version ip 获得PHP版本信息(如果想对一个基于WordPress的web站点进行渗透测试,可以使用以下脚本1.http-wordpress-plugins,2.http-wordpress-enum,3.http-wordpress-brute)
nmap -sn ip –script dns-blacklist 用户发现IP地址黑名单
nmap –script=brute 192.168.56.* 简单暴力猜解
nmap –script=vuln 192.168.56.* 检查是否存在漏洞

按应用服务扫描


应用命令功能
vnc扫描 nmap –script=realvnc-auth-bypass ip 检查vnc bypass
nmap –script=vnc-auth ip 检查vnc认证方式
nmap –script=vnc-info ip 获取vnc信息
smb扫描 nmap –script=smb-brute.nse ip smb破解
nmap –script=smb-brute.nse –script-args=userdb=/var/passwd,passdb=/var/passwd ipsmb字典破解
nmap –script=smb-check-vulns.nse –script-args=unsafe=1 ip smb已知几个严重漏
nmap -p 445 –script smb-ls –script-args ‘share=e$,path=\,smbuser=test,smbpass=test’ ip查看共享目录
nmap -p 445 -n –script=smb-psexec –script-args= smbuser=test,smbpass=test ip 查询主机一些敏感信息
nmap -n -p445 –script=smb-enum-sessions.nse –script-args=smbuser=test,smbpass=test ip 查看会话
nmap -n -p445 –script=smb-os-discovery.nse –script-args=smbuser=test,smbpass=test ip 查看系统信息
Mssql扫描nmap -p1433 –script=ms-sql-brute –script-args=userdb=/var/passwd,passdb=/var/passwd ip 猜解mssql用户名和密码
nmap -p 1433 –script ms-sql-xp-cmdshell –script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd=”net user” ipxp_cmdshell 执行命令
nmap -p 1433 –script ms-sql-dump-hashes.nse –script-args mssql.username=sa,mssql.password=sa ipdumphash值
Mysql扫描nmap -p3306 –script=mysql-empty-password.nse ip扫描root空口令
nmap -p3306 –script=mysql-users.nse –script-args=mysqluser=root ip列出所有mysql用户
nmap –script=mysql-* ip 支持同一应用的所有脚本扫描
Oracle扫描 nmap –script=oracle-sid-brute -p 1521-1560 ip oracle sid扫描
nmap –script oracle-brute -p 1521 –script-args oracle-brute.sid=ORCL,userdb=/var/passwd,passdb=/var/passwd ip oracle弱口令破解

使用脚本扫描

命令 功能
nmap –script=broadcast-netbios-master-browser ip 发现网关
nmap -sV –script=telnet-brute ip telnet破解
nmap –script http-slowloris –max-parallelism 400 192.168.137.4 dos攻击
nmap -p 873 –script rsync-brute –script-args ‘rsync-brute.module=www’ 192.168.137.4 破解rsync
nmap –script informix-brute -p 9088 ip informix数据库破解
nmap -p 5432 –script pgsql-brute ip pgsql破解
nmap -sU –script snmp-brute ip snmp破解
nmap –script=http-methods.nse ip 检查http方法
  • 笔记记录,仅供参考!
-------------本文结束感谢您的阅读-------------
帮助别人,快乐自己,打赏随意!