nmap 语法

作者: admin 分类: 网络安全基础 发布时间: 2017-01-06 00:22

1、常见端口扫描

map [Scan Type(s)] [Options] {target specification}

scan type(s) 用于指定扫描类型
options 用于指定选项
target specification 用于指定扫描目标

-s 指定扫描类型
如下:
-sP (ping扫描) *存活主机探测
-sS (TCP SYN扫描 隐身扫描)  *默认扫描方式
-sT (tcp 扫描) * syn 不能用时就tcp扫描
-sU (UDP 扫描)
-sA  (ACK扫描) *三次握手 用于探测出防火墙过滤端口 实际渗透中没多大用

-sV   (版本探测)
-A    操作系统探测
-O (启用操作系统检测)
-v    详细
选项说明
-P0  [指定端口] (无ping扫描)
-PU  [指定端口] (udp ping扫描)
-PS [指定端口] (TCP SYN ping 扫描)
-PA  [指定端口] (tcp ack ping扫描) 
-PI   使用真正的pingICMP echo请求来扫描目标主机是否正在运行


-iL 指定扫描主机列表
-iR 随机选择目标

--exclude 排除扫描目标
--excludefile 排除文件中目标列表

-n (不用域名解析)
-R (为所有目标解析域名)

-T  时间优化(每隔多久发一次包 ) -T5 最快 -T0 最慢
-F  快速扫描
-e  指定网络接口
-M 设置tcp扫描线程
 

输出

-oS   "1337格式" 保存扫描结果输出
-oN  把扫描结果重定向到一个可读的文件logfilename中
-oM  每个结果一行输出
-oA 同上
--append-output 附在原来的结果前面
 

nmap 把端口分为6个状态

  open(开放的)
  closed(关闭的)
  filtered(被过滤的)不确定开放还是关闭
  unfiltered (未被过滤的)
  openfiltered (开放或者被过滤的)
  closedfiltered (关闭或者未被过滤的)

使用实例

获取远程主机的系统类型及开放端口

nmap -sS -P0 -sV -O

获取ip和mac地址:

nmap -sP -PI -PT -oN 192.168.1.0/24

扫描存活主机

nmap -sP -n 192.168.10.0/24 | cut -d" " -f5 | awk "/192/"

windows:
nmap -sP -n 192.168.10.0/24 | find "192" >tmp_active001&for /f "tokens=1,2,3,4,5" %i in (tmp_active001) do @echo %m

2、漏洞探测:

nmap -P0 --script=smb-check-vulns --script-args=unsafe=1 -iL ip.txt

3、扫描常见端口:

nmap -sT -O -P0 -T5 --open -oN result.txt -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,873,2601,2604,3128,4440,6082,6379,8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,2222,2082,3311,18100,9956,1433,3306,1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 63.237.172.115/24


21  ftp  主要看是否支持匿名,也可以跑弱口令 
80  web  常见web漏洞以及是否为一些管理后台 
443  openssl  心脏滴血以及一些web漏洞测试 
873  rsync  主要看是否支持匿名,也可以跑弱口令 
2601,2604 zebra路由,默认密码zebra 
3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了 
4440 rundeck  参考WooYun: 借用新浪某服务成功漫游新浪内网 
6082  varnish  参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导致网站被直接篡改或者作为代理进入内网 
6379  redis 一般无认证,可直接访问 
8000-9090  都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上 
9200  elasticsearch  参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞 
11211  memcache  未授权访问 
27017  mongodb  未授权访问 
28017  mongodb统计页面 

4、扫描巨大网络

-sn    不扫描端口,只ping主机

-PE   通过ICMP echo判定主机是否存活

-n     不反向解析IP地址到域名

--min-hostgroup 1024    最小分组设置为1024个IP地址,当IP太多时,nmap需要分组,然后串行扫描

--min-parallelism 1024  这个参数非常关键,为了充分利用系统和网络资源,我们将探针的数目限定最小为1024

-oX nmap_output.xml    将结果以XML格式输出,文件名为nmap_output.xml

一旦扫描结束,解析XML文档即可得到哪些IP地址是存活的。
=======================================================================
附上自己平时用的nmap命令,由于之前发包太大vps被封过一次,所以加了一些限速的参数

nmap -sT -sV -O -P0 --open -n -oN result.txt -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,873,2601,2604,3128,4440,6082,6379,8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,2222,2082,3311,18100,9956,1433,3306,1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 -iL ip.txt
nmap -sT -sV -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,873,2601,2604,3128,4440,6082,6379,8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,2222,2082,3311,18100,9956,1433,3306,1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 --open --max-hostgroup 10 --max-parallelism 10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms -iL ~/Desktop/ip.txt -oN ~/Desktop/result/result.txt
标签云