Nmap使用教程
tags: Tips@Hak5.org,Hak5.org,metasploitminute.com,http://creativecommons.org/licenses/by-nc-sa/3.0/us/,Hakshop.com User Code:SNUBS,nmap.org/download,http://nmap.org/nsedoc/(这是nmap脚本的链接)
1.安装与初次使用
在终端上查看Nmap的版本
nmap --version //如果没有安装 apt-get install nmap
查看计算机的端口状态
nmap 192.168.43.80
2 扫描多个目标,查看工作状态
nmap 192.168.43.80 192.168.43.176 192.168.43.100 //等同于 namp 192.168.43.80,100,176 nmap 192.168.43.1-100 //扫描1到100 nmap 192.168.1-100.* //扫描子网 nmap 192.168.43.1/24 //扫描整个子网(24:闪光CIDR标记) cat list //先查看已经存储好的IP列表 nmap -iL list.txt //扫描上述列表
3.扫描网络并排除特定的目标
nmap -iR 3 //随机扫描 nmap 192.168.43.0/24 --exclude 192.168.43.80 //扫描排除192.168.43.80之外的在192.168.43.0网络中的IP nmap 192.168.43.0/24 --exclude 192.168.43.80-90 nmap 192.168.43.0/24 --excludefile list.txt
4.扫描开放网络端口
nmap -A 192.168.43.80 //调用一些集成的命令,-o 识别远程操作系统;-sC 运行默认的脚本扫描 nc 192.168.43.80 23.......//如果我的电脑开了netcat,这样可以登录192.168.43.64(一般是64)这台惠普的电脑
5.使用可选包扫描网络
nmap -PN 192.168.43.80 //跳过第一次ping尝试,然后对目标进行扫描(Don't ping),扫描安全级别更高的目标 nmap -sP 192.168.43.0/24 //Simple ping只通过ping来扫描 nmap -PS 192.168.43.80 //使用TCP SYN协议来发送SYN数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行) nmap -PS22,80,443 192.168.43.80 //可以添加不同的端口进行发送扫描 nmap -PS 192.168.43.80 //使用TCP ACK协议来发送ACK数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行) nmap -PU 192.168.43.80 //使用UDP协议来发送数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行) nmap -PY 192.168.43.80 //使用CTP协议来发送数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行) nmap -PE 192.168.43.80 //不设置时就默认使用-PE(ICMP Address Mask Ping,ICMP地址掩码嗅探)嗅探ICMP nmap -PP 192.168.43.80 //一个ICMP时间戳嗅探命令,嗅探被防火墙保护的目标 nmap -PO 192.168.43.80 //代表IP协议,发送特定的协议找到目标 nmap -PO1,2,4 192.168.43.80 //代表IP协议,发送特定的协议找到目标(1:ICMP;2:IGMP;4:IP) namp -PR 192.168.43.80 //ping命令,速度 快精准,防火墙无法拦截,当目标不在本地网络时不能使用 nmap --traceroute 192.168.43.80 //路由跟踪 nmap -R 192.168.43.80 //TAC选项实验DNS反向查找 nmap --system-dns 192.168.43.80 //DNS查找,他使用主机系统和DNS自己的解析器 nmap --dns-servers 208.67.222.222,208.84.54.222 192.168.43.80 //指定DNS服务器查找,绕过了本地系统中默认配置的DND服务器 nmap -SL 192.168.43.80 //创建一个主机列表,用来确定目标的IP地址和DNS名称,但不向目标发送任何数据包
6.先进的扫描技术
nmap -sS 192.168.43.80 //TCP SYN链接扫描 nmap -sT 192.168.43.80 //tcp链接,针对没有root权限的用户 nmap -sU(or sF) 192.168.43.80 //得到使用者的UDP协议的数据包 nmap -n 192.168.43.80 //在tcp节点的扫描 nmap -sF 192.168.43.80 //从目标的包中获取一些tcp信息 nmap -sX 192.168.43.80 //Exmouth扫描 nmap -scanflags ACKPSH //用你自己选择的包运行用户扫描(链接ACKPSH,可以通过输入ac来避免紧急的危害或用G来紧急重置,rst用来重置) nmap -sO(or s/ a/ A) 192.168.43.80 //TCP扫描,可发现目标是否被防火墙保护 nmap --send-eth 192.168.43.80 //??? nmap --send-ip 192.168.43.80 //改变本机使用原始IP数据包
7.端口扫描选项
nmap -F 192.168.43.80 //快速扫描 nmap -p 80 192.168.43.80 //扫描特定的端口 nmap -p 80,23,8080,443-555 192.168.43.80 nmap -p http 192.168.43.80 //扫描http服务 nmap -p "sm" 192.168.43.80 //扫描所有含有“sm”的协议 nmap -sU -sT -p U:53,T:25 192.168.43.80 //和之前的一样,这里只是用U,T指定了端口 nmap -p "*" 192.168.43.80 //扫描所有 nmap --top-ports 54 192.168.43.80 //常用端口,54:端口号 nmap -r -v 192.168.43.80 //顺序扫描(入侵防火墙时有用,或者逃避检查)v:显示不安全的报告
8.系统检测
nmap -O 192.168.43.80 //检测操作系统 nmap -V 192.168.43.80 //SYN扫描,获取系统信息 nmap -O --osscan-guess 192.168.43.80 //nmap不能识别是什么操作系统时,这个命令显示最大可能性的操作系统 nmap --fuzzy 192.168.43.80 //显示最大可能性的操作系统 nmap -sV 192.168.43.80 //目标哪些服务在运行 nmap -sV --version-trace 192.168.43.80 //目标哪些服务在运行,并且检测服务版本 nmap -sR 192.168.43.80 //RPC scan远程程序调用扫描
9.时间选项
nmap -T0 192.168.43.80 //-T0控制扫描的速度0:最慢;5:最快(同时开启几个端口进行扫描) nmap -max-parallelism 4 (or -mix-parallelism) 192.168.43.80 //控制扫描速度,最大端口数为上面设置的4 nmap -min-hostgroup (or -max-hostgroup) 10 192.168.43.1/24 //最少同时扫描10个主机 nmap -initial-rtt-timeout 6000 192.168.43.80 //修改RTT超时值(毫秒,默认为10秒 nmap --max-retries 3 192.168.43.80 //尝试3次之后放弃 nmap --ttl 100 192.168.43.80 //TTL数据包的选择 nmap --host-timeout 1m 192.168.43.80 //在指定时间内回应主机 nmap --scan- delay 10s 192.168.43.80 //设置探针之间的时间延迟(有利于提高每个命令的准确性,但速度较慢) nmap --max-scan-delay 20s 192.168.43.80 //设置最大扫描延迟 nmap --min-rate 50 192.168.43.80 //设置nmap数据包每秒最低发送量:50(数量过高可能导致结果不准确) nmap --max-rate 10 192.168.43.80 //想做系统上的偷袭,避免一些探测系统的最大数据包速率的选择,降低扫描速率(每秒最多10个) nmap --defeat-rst-ratelimit 192.168.43.80 //请求复位数据包(如果解除复位率限制,一些目标可能袭击RST包)
10.和防火墙的乐趣
nmap -f 192.168.43.80 //这个命令发送小于8个字节的探针,去扫描,任何防火墙和入侵检测系统都无法发现 nmap --mtu 8 192.168.43.80 //规定了最大传输单位(可以设置为任何8的倍数),也可以在这个命令中加上 send ETH nmap -D RND:10 192.168.43.80 //诱饵选项,是你的扫描使用许多伪装的IP,所以这个命令发送几个数据包到目的地,但是对于目标而言,却是统一时间被不同的机器扫描 nmap -sL 伪装地址(ip) 192.168.43.80 //使用伪装地址嗅探 nmap --source-port 54 192.168.43.80 //指定端口号(54)扫描 nmap --data-length 25 192.168.43.80 //加了一些探测数据包的随机数据,因为有时目标寻找特定大小的包去接受,几乎可以得到任何你想看到的字节大小,做一个特定的大小取决于特定的目标(你想进入的) namp --randomize-hosts 192.168.43.80-160 //随机化你的目标,通过使用不同的脚本,遍历80到160,不泄露一些网络设备的MAC地址 nmap -sT -PN --spoof -mac 0 192.168.43.80 //0的结尾是告诉nmap生成随机行为,无论什么扫描, nmap --badsum 192.168.43.80 //最后给检测者发送假的内容
11.如何输出文件
nmap -oN scan.txt 192.168.43.1/24 //将扫描的结果保存在scan.txt中,也可以使用--append -output在txt文件中修改名称 nmap -oX scan.xml 192.168.43.1/24 //将扫描的结果保存在scan.xml中 nmap -oG scantron.txt 192.168.43.1/24 //将扫描的结果保存在scan.txt中,使用 grep "microsoft" scantron.txt 查看文件中的“”指定内容 nmap -oA scan2 192.168.43.1/24 //生成多个文件.xml .nmap(.txt) .gnmap(.grep)
12.如何使用排错选项
nmap -h //获取帮助 man nmap //查看使用手册 nmap -v //查看版本 nmap -d 192.168.43.80 //nmap调试(-d1:调试数量最小;-d9:调试数量最大,耗时长) nmap --reason 192.168.43.80 //查看端口状态(conn-refused:拒绝;syn-acked:打开) nmap --open 192.168.43.80 //扫描打开的端口,忽略关闭的 nmap --packet-trace 192.168.43.80 //展示扫描过程中发送或者接收的包 nmap --packet-trace test.txt 192.168.43.80 //展示扫描过程中发送或者接收的包,并保存在txt中(文件名添加在命令最后,是在IP之后还是上面写的那样???) nmap -iflist //展示那些配置在你电脑上的网络接口和路由信息 nmap -e wlan0(or eth0,eth1,wlan1) 192.168.43.80 //指定扫描的目标的特定网络接口类型
13.nmap脚本引擎(Lua语言)
使用终端进入nmap的目录scripts,运行相关脚本,有400多个脚本,功能需要自己了解(百度)
nmap --script banner 192.168.43.80 //通过连接开放的TCP端口,实现Banner劫持,然后输出所有信息 nmap --script "http*" 192.168.43.80 //执行你的脚本库中有“http”或者别的码字的脚本,进行扫描,输出脚本文件预置的信息 nmap --script default 192.168.43.80 //使用默认的脚本进行扫描 nmap --script ftp-anon --script-trace -p 21 192.168.43.80 //在使用脚本时遇到问题,使用ftp-anon脚本,在nmap连接21端口时,追踪nmap的运行 nmap --script-updatedb //升级
14.Zenmap内部结构
- target:目标IP
- profile:选择命令
- scan:开始扫描
- Hosts:列出所有扫描的目标
- Services:运行的服务
- 自己玩吧
15.NDiff和技巧
ndiff test.xml test2.xml //比较两个文件(-:第一个文件;+:第二个文件,你可以看到他们的不同与相同之处) ndiff -v test1.xml test2.xml //查看详细信息 ndiff --xml //在屏幕上输出xml的输出信息,信息进入一个新的xml文件 nmap 192.168.43.0/24 //运行交互,在运行过程中按 v:显示详细过程信息,d:调试信息;p:查看追包