目录

  • 1.nmap语法
  • 2.nmap主机发现
  • 3.探索网络
  • 4.指纹识别与探测
  • 5.伺机而动
  • 6.防火墙/IDS逃逸
  • 7.信息收集
  • 8.数据库渗透测试
  • 9.渗透测试
  • 10.nmap技巧
  • 11.nmap保存和输出

1.nmap语法

-A -A 全面扫描/综合扫描        例:nmap -A 127.0.0.1
扫描指定段                     例:nmap 127.0.0.1/24 或者nmap 192.168.0.1-200(扫描1-200的主机)

2.nmap主机发现

-sP -sP  ping扫描            例:nmap -sP 127.0.0.1
-P0 -P0  无ping扫描              例:nmap -P0 127.0.0.1如果想知道这些协议是如何判断目标主机是否存在可以使用--packet-trace选项     例:nmap -P0 --packet-trace 127.0.0.1
-PS-PS  TCP SYN Ping扫描    例:nmap -PS -v 127.0.0.1 或者 指定端口:nmap -PS80,100-200 -v 127.0.0.1
-PA-PA  TCP ACK Ping扫描    例:nmap -PA -v 127.0.0.1
-PU -PU  UDP Ping扫描           例:nmap -PU -v 127.0.0.1
-PE;-PP;-PM-PE;-PP;-PM  ICMP Ping Types扫描使用ICMP Echo扫描方式   例:nmap -PE -v 127.0.0.1使用ICMP时间戳Ping扫描  例:nmap -PP -v 127.0.0.1使用ICMP地址掩码Ping扫描 例:nmap -PM -v 127.0.0.1
-PR-PR  ARM Ping扫描          例:nmap -PR 127.0.0.1
-n -n  禁止DNS反向解析(使用该选项的时候Namp永远不对目标ip地址作反向解析) 例:nmap -n 127.0.0.1
-R-R  反向解析域名(使用该选项的时候Namp永远对目标IP地址作反向域名解析)  例:nmap -R -sL 127.0.0.1
-system-dns-system-dns  使用系统域名解析器(如果你希望使用系统自带解析器,就制定该选项(通过getnameinfo()调用一次解析一个IP))  例:nmap --system-dns 127.0.0.1 127.0.0.2
-sL-sL  列表扫描                例:nmap -sL 127.0.0.1禁止反向域名解析(使用该选项的时候Namp永远不对目标IP地址作反向域名解析)   例:nmap -n -sL 127.0.0.1
-6  -6  扫描IPv6地址             例:nmap -6 fe80::d920:6c18:1f7f:3d7c
--traceroute--traceroute  路由跟踪(使用--traceroute选项即可进行路由跟踪.)使用路由跟踪功能可以帮助用户了解网路同行的情况。通过此选项可以轻松的查出从计算机到目标之间所经过的网络节点,并可以看到各个节点的时间。 例:nmap --traceroute -v127.0.0.1
-pY-PY  SCTP INIT Ping扫描(通过向目标发送INIT包,根据目标主机的相应判断目标主机是否存活.)  例:nmap -PY -v 127.0.0.1

3.探索网络

-T-T  时序选项                 例:nmap -T0 127.0.0.1 或nmap -T1 127.0.0.1   等等(范围T0-T5)Namp使用-T(0-5)可以启用时序选项,对于时序选项这里有0-5不同的选项:-T0(偏执的):非常慢的扫描,用于IDS逃逸。-T1(鬼祟的):缓慢的扫描,用于IDS逃逸。-T2(文雅的):降低速度以降低对带宽的消耗,此选项一般不常用。-T3(普通的):默认,根据目标的反应自动调整时间。-T4(野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标。-T5(疯狂的):急速扫描,这种扫描方式以牺牲准确度来提升扫描速度。
-p-p  常用扫描方式(-p指定扫描端口如:80,1433,1521,3306,3389等等)     例:nmap -p 3389 127.0.0.1
-F-F  选项 使用该选项可以快速扫描端口,但并不是所有的端口都会扫描,只会扫描有限的端口,在Namp中nmap-services包含了默认扫描的端口,也可以用--datadir选项指定自己的nmap-services文件。
--top-ports选项                   例:nmap --top-ports 100 127.0.0.1    (输出结果扫描100个开放率最高的端口)
-sS-sS  TCP SYN扫描           例:nmap -sT 127.0.0.1
-sU-sU  UDP扫描               例:nmap -sU -p 80-500 127.0.0.1
-sN;-sF;-sX-sN;-sF;-sX  隐蔽扫描-sN是Null扫描,是通过发送非常规的TCP通信数据包对计算机进行探测        例:namp -sN 127.0.0.1-sF是FIN扫描,当我们使用TCP SYN扫描时可能会被目标主机的防火墙发现,会阻止SYN数据包,这时我们使用TCP FIN扫描方式会有很好的穿透效果。 例:namp -sF 127.0.0.1-sX是Xmas扫描                  例:nmap -sX 127.0.0.1
-sA-sA  TCP ACK扫描           例:nmap -sA -v 127.0.0.1
-sW-sW  TCP窗口扫描             例:nmap -sW -v -F 127.0.0.1
-sM-sM  TCP Maimon扫描        例:nmap -sM -T4 127.0.0.1
--scanflags--scanflags  自定义TCP扫描(--scanflags选项可以是一个数字标记值。)  例:nmap -sT --scanflags SYNURG 127.0.0.1
-sI-sI  空闲扫描                例:nmap -sI 192.168.1.100:80 127.0.0.1
-sO  -sO  IP协议扫描                例:nmap -sO -T4 127.0.0.1
-b-b  FTP Bounce扫描(使用-b选项就可以进行FTP Bounce Scan扫描,它允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器,这种扫描方式很少被支持,但也是躲避防火墙的办法.)   例:nmap -b 127.0.0.1

4.指纹识别与探测

-sV-sV  版本探测                 例:nmap -sV 127.0.0.1可以借助-A选项进行操作系统探测和版本探测,结果信息更详细和直观。     例:nmap -sV -A 127.0.0.1---allports--allports  全端口版本扫描 例:nmap -sV --allports 127.0.0.1
--version-intensity--version-intensity  设置扫描强度(赋予的值越高,服务越有可能被正确识别,但是时间也较长,强度在0-9之间,默认强度是7。   0代表最低强度,9代表最高强度。)   例:nmap -sV --version-intensity 5 127.0.0.1
--version-light--version-light  轻量级扫描(对应--version-intensity,轻量级扫描会节省时间,但是准确性会降低,使用以下选项可以节约大部分时间和不会牺牲太多准确性。)      例:nmap -sV --version-light 127.0.0.1
--version-all--version-all  重量级扫描     例:nmap -sV --version-all 127.0.0.1
--version-trace--version-trace  获取详细版本信息 例:nmap --version-trace 127.0.0.1
-sR -sR  RPC扫描                    例:nmap -sV -sR 127.0.0.1
-O-O  启用操作系统探测            例:nmap -O 127.0.0.1
--osscan-limit--osscan-limit  对指定的目标进行操作系统检测(该选项仅在使用-O和-A进行操作系统检测起作用。)  例:nmap -O --osscan-limit 127.0.0.1/24
--osscan-guess;--fuzzy--osscan-guess;--fuzzy  推测系统版本(当无法准确识别的时候,nmap会从最接近数据中取值,大胆的猜测目标系统)   例:nmap -O --osscan-guess 127.0.0.1

5.伺机而动

--min-hostgroup--min-hostgroup  调整并行扫描组的大小(扫namp默认情况下载进行扫描的是,首先开始售卖较小的组,会在最短的时间产生一个想要的结果,随后密码增加大小,最大为1024.为例保证效率,会针对UDP或少量端口的TCP扫描。)    例:nmap --min-hostgroup -30 127.0.0.1
--min-parallelism--min-parallelism  调整探测报文的并行度。 例:nmap --min-parallelism 100 127.0.0.1
--max-parallelism--max-parallelism  调整探测报文的并行度。 例:nmap --man-parallelism 100 127.0.0.1
--min-rtt-timeout--min-rtt-timeout  调整探测报文超时(使用该选项时,规定100毫秒是比较合适的,rrt值不得小于100,也最好不要大于1000毫秒。)  例:nmap --min-rtt-timeout 500ms 127.0.0.1
--max-rtt-timeout--max-rrt-timeout  调整探测报文超时       例:nmap --max-rtt-timeout 500ms 127.0.0.1
--initial-rtt-timeout  --initial-rtt-timeout  调整探测报文超时   例:nmap --initial-rtt-timeout 500ms 127.0.0.1
--host-timeout--host-timeout  放弃低速目标主机(单位是毫秒,一般我们设置为1800000毫秒,保证namp在对单个主机扫描的时间不会超过半个小时,在半小时后的时间内其他主机也会同时扫描。)  例:nmap --host-timeout 100ms 127.0.0.1/24
--scan-delay--scan-delay  调整探测报文的时间间隔(该选项可以控制Namp对一个或多个主机发送探测报文的等待时间,等待时间可以毫秒为单位。)       例:nmap --scan-delay 1s 127.0.0.1
--max-scan-delay 30s 127.0.0.1

6.防火墙/IDS逃逸

-f-f  报文分段                       例:nmap -sX -v -f 127.0.0.1(ping扫描目标主机)如果在无法获知目标主机的端口是否开放,此时尝试使用报文分段进行扫描。   例:nmap -f -v 127.0.0.1
--mtu--mtu 指定偏移大小               例:nmap--mtu 16 127.0.0.1
-D-D  IP欺骗(IP欺骗的语法如下:Namp -D [decoy1,decoy2...| RND:number][目标])(使用-D选项可以指定多个IP地址,或者使用RND随机生成几个地址,在指定的诱饵之间使用逗号进行分割,需要注意的是在进行版本检测或者TCP扫描的时候诱饵是无效的。) 例:nmap -D RND:11 127.0.0.1随机的方法容易发现,接下来将指定的IP进行对目标主机的扫描可以使用ME选项指定自己的真实IP。    例:nmap -D 127.0.0.1,127.0.0.2,127.0.0.253,ME 127.0.153.1
-sI -sI  原地址欺骗(使用-sI选项可以进行原地址欺骗,如果Namp无法确定你的原地址,Namp会给出相应的提示,我们使用-sI选项指定需要发包的接口IP地址。)  例:nmap -sI xssm.me:80 127.0.0.1
--source-port--source-port  源端口欺骗(使用--source-port选项可以进行源端口地址欺骗,也可以用-g选项,只需要提供端口,nmap就可以从端口发sing数据。)   例:nmap --source-port 53 127.0.0.1
--data-length--data-length  指定发包长度(使用--datalength可以在发送报文的时候指定发包长度,tcp包是40字节,ICMP Echo有28个字节。)   例:nmap --data-length 30 127.0.0.1
--randomize-hosts--randomize-hosts  主机目标随机排序(使用该选项可以对比主机书序进行随机的排序,最多可达8096个主机,单方面使用这个选项对防火墙/IDS逃逸效果不大,配合时间选项会有很好的效果。)  例:nmap --randomize-hosts 127.0.0.1-200
--spoof-mac--spoof-mac  MAC地址欺骗使用该选项就可以进行MAC地址欺骗,冒失指定一个MAC地址会引起管理员怀疑,这是可以用字符串'0'随机分配一个MAC地址进行欺骗,MAC地址最好是存在的,这样才能起到欺骗的效果,使用--spoof-mac选项可以用参数包括0,MAC Address,Vendor Name.  0表示随机生成一个MAC地址,MAC Address表示用户手动指定一个MAC地址,Vendor Name表示从指定厂商生成一个MAC地址。     例:nmap -sT -PN --spoof-mac 0 127.0.0.1

7.信息收集

--script ip-geolocation-*--script ip-geolocation-*  IP信息搜集           例:nmap --script ip-geolocation-* www.xssm.me
whoisewhoise  WHOIES查询(查询目标域名whois)(有时候whois查询到信息并不准确,我们要热衷于查询历史whois记录。)       例:nmap --script whois www.xssm.me大部分网站启用了whois保护或隐藏电话,姓名等信息,我们可以查询历史whois,例如whois可能还没有启用whois保护,我们可以启用其他几个whois查询脚本)    例:nmap --script whois --script-args whois.whodb =nofollow www.xssm.me如果域名比较多,我们可以使用列表的方式进行查询。    例:nmap --sn --script whois -v -iL host.txt
http-email-harvesthttp-email-harvest  搜集E-mail(Email查询)     例:nmap --sn --script http-email-harvest www.xssm.me
hostmap-ip2hostshostmap-ip2hosts  IP反查                      例:nmap -sn --script hostmap-ip2hosts www.xssm.me
dns-brutedns-brute  DNS信息搜集(域名系统是因特网的一项服务,他作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,dns使用tcp和udp端口53,当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。)  例:nmap --script dns-brute www.xssm.me该脚本默认现成是5,如果需要查询多个域名可以指定一个列表;nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlist www.xssm.me
membase-http-infomembase-http-info  检索系统信息                  例:nmap -p 445 127.0.0.1 --script membase-http-info
smb-security-mode.nse  smb-security-mode.nse  后台打印机服务漏洞         例:nmap --script smb-security-mode.nse -p 445 127.0.0.1
smb-check-vulns.nsesmb-check.vulns.nse  系统漏洞扫描(可以使用U:或者T:进行配合,这样会得到意想不到的效果)    例:nmap --script smb-check-vulns.nse -p 445 127.0.0.1
http-stored-xss.nsehttp-stored-xss.nse  扫描Web漏洞                 例:nmap -p 80 --script-xss.nse www.xssm.me
snmp-win32-servicessnmp-win32-service  通过Snmp列举Windows服务/账户 例:nmap -sU  -p 161 --script=snmp-win32-services 127.0.0.1
dns-brutedns-brute  枚举DNS服务器的主机名(下面的示例是对baidu.com子域名的枚举)     例:nmap --script dns-brute --script-args dns-brute.domain=baidu.com所有有关子域名及服务器都被dns-brute脚本枚举出来,该脚本可以使用 "dns-brute.threads=线程" 指定线程来加快或较少破解速度,使用dns-brute.hostlist=./hostfile.txt指定一个需要枚举的列表。
http-header/http-sitmap-generatorhttp-header/http-sitmap-generator  HTTP信息搜集使用nmap扫描http版本漏洞,例如Apache,IIS7,Nginx的畸形漏洞在相应的低版本中都会存在,nmap可以非常简单的发泄这些漏洞。     例:nmap -sV -p 80 www.xssm.me使用命令"nmap -p 80 --script=http-headers目标地址 "即可对目标地址进行HTTP头信息探测"                                例:nmap -p --script=http-headers baidu.com使用命令"nmap -p 80 --script=http-sitemap-generator目标地址"即可爬行Web目录结构。                                    例:nmap -p 80 --script=http-sitemap-generator www.baidu.com
ssl-enum-ciphersssl-enum-ciphers  枚举SSL秘钥                   例:nmap -p 443 --script=ssl-enum-ciphers www.baidu.com
ssh-hostkeyssh-hostkey  SSH服务秘钥信息探测(sh-hosts可以查看SSH服务的秘钥信息)                                               例:nmap -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1

8.数据库渗透测试

mysql-databasesmysql-databases  MYSQL枚举数据库(如果目标端口改变组需要-p指定相应的端口。)      例:nmap --script mysql-databases --script-args mysqluser=root,mysqlpass 127.0.0.1
mysql-variablesmysql-variables  列举MYSQL变量(如果目标端口改变组需要-p指定相应的端口)        例:nmap -p 3306 --script=mysql-variables 127.0.0.1
mysql-empty-passwordmysql-empty-password  检查MYSQL密码                 例:nmap -p 3306 --script=mysql-empty-password 127.0.0.1如果无法确定目标开放的端口号,可以用-sV选项进行扫描    例:nmap -sV --script=mysql-empty-password 127.0.0.1
mysql-btute mysql-brute  审计MYSQL密码                          例:nmap  --script=mysql-btute 127.0.0.1该脚本用于MYSQL弱口令,默认查找全部端口查找MYSQL端口,但是我们可以用-p指定端口也可以自定义账号密码字典。          例:nmap -p 3306 --script=mysql-brute userdb=/root/passdb.txt passdb=/root/pass.txt 127.0.0.1
mysql-auditmysql-audit  审计MYSQL安全配置                     例:nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username='root',mysql-audit.password='',mysql-audit.filename='nselib/data/mysql-cis.audit' " 127.0.0.1
oracle-brute oracle-brute  审计Oracle密码                           例:nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=test 127.0.0.1该脚本暴力破解Oracle密码,但是我们可以用-p指定端口。也可以自定义账号密码字典,需要userdb选项指定账号字典passdb指向密码字典。                    例:nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=test --script-args userdb=/tmp/usernames.txt,passdb=passwords.txt 127.0.0.1
ms-sql-brutems-sql-brute  审计msSQL空密码                        例:nmap -p 1433 --script ms-sql-empty-password 127.0.0.1
ms-sql-empty-passwordms-sql-empty-password  检查msSQL空密码              例:nmap -p 1433 --script ms-sql-empty-password 127.0.0.1
ms-sql-tablesms-sql-tables  读取msSQL数据                       例:nmap -p -1433 --script ms-sql-tables --script-args myssql.username=sq,mssql.password=sa 127.0.0.1
ms-sql-xp-cmdshellms-sql-xp-cmdshell  msSQL执行系统命令               例:nmap -p1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.,cmd="ipconfig" 127.0.0.1
pgsql-brutepgsql-brute  审计PgSQL密码                           例:nmap -p 5432 --script pgsql-brute 127.0.0.1

9.渗透测试


10.nmap技巧

11.nmap保存和输出

nmap学习之路--测试版相关推荐

  1. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  2. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  3. 前端Vue学习之路(一)-初识Vue

    Vue学习之路 (一) 1.引言 2.更换npm国内镜像源 3.用npm下载Vue 4.Vue全家桶 5.使用命令创建项目 5.推荐插件 6.推荐网站 7.学习扩展 1.引言 先安装node.js环境 ...

  4. 学习之路-现代密码学基础-001

    学习之路-现代密码学基础-第一章密码学概论 转载于:https://www.cnblogs.com/vegetables-Adanos/p/5371420.html

  5. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  6. Markdown学习之路

    Markdown学习之路 作者:CFishHome 转载请注明地址:https://blog.51cto.com/12731497/2164274 Markdown是什么? Markdown是一个 W ...

  7. [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

  8. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  9. python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...

    教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...

最新文章

  1. 2015级C++第10、11周程序阅读 继承和派生
  2. CentOS 7 NAT软路由
  3. zookeeper集群搭建配置zoo.cnf
  4. 从JS敏感信息泄露到GETSHELL
  5. sqlserver agent不能启动
  6. Ajax Loading进度gif在线生成
  7. Kubernetes v1.10.x HA 全手动安装教程(TL;DR)
  8. 77.Android之代码混淆
  9. 超慢速移动动画使用CSS3实现流畅效果
  10. Python __str __()和__repr __()函数
  11. 关于PPC软件的开发库
  12. WeX5和BeX5的区别
  13. 电子元器件选型——二极管
  14. php微信支付分取消订单,PHP实现微信支付和退款
  15. 在服务器创建并进入虚拟环境
  16. bmp,jpg,png,tif,wmf,emf与eps图片格式转换
  17. 关于百度站长工具中站点属性LOGO提交申请详解说明
  18. 如何在显示图片缩略图时不挤压拉伸图片
  19. 纹理打包器 TexturePacker
  20. Linux常用服务部署与优化

热门文章

  1. Linux前台任务转后台
  2. python实现火车票查询_基于python的火车票查询工具
  3. 基于RBF函数的点云孔洞修补
  4. 关于typedef和的一点分享
  5. ros dwa局部路径规划原理
  6. 心脑血管疾病相关的药物和靶点
  7. php 实线,PHP实现的功能是显示8条基色色带
  8. 公众号学生成绩查询系统
  9. 根据当前字母获取下一位 java
  10. Android Bluetooth蓝牙开发:发现Bluetooth蓝牙设备(1)