欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Kali学习笔记16:Nmap详细讲解

程序员文章站 2022-05-28 11:06:34
在前面十五篇博客中,几乎每一篇都有介绍Nmap,这里系统地介绍下每个参数: 注意:区分每个参数的大小写 -iL:列好的IP放在一个文本里面,可以直接扫描这个文本 用法:namp -iL <文本名> -iR:随机扫指定数目的IP: 用法:nmap -iR 示例:我现在随机扫描50个IP的 ......

在前面十五篇博客中,几乎每一篇都有介绍nmap,这里系统地介绍下每个参数:

 

注意:区分每个参数的大小写

-il:列好的ip放在一个文本里面,可以直接扫描这个文本

用法:namp -il <文本名>

 

-ir:随机扫指定数目的ip:

用法:nmap -ir <ip数量>

示例:我现在随机扫描50个ip的80端口,把其中是open的显示出来

Kali学习笔记16:Nmap详细讲解

显然,随机的这50个ip没有开放80端口的或者开了防火墙

 

--exclude:指定不扫描的ip

用法:nmap <ip> --exclude <ip/ips>

示例:我现在要扫描192.168.163这一网段,但我不想扫描192.168.163.1-100:

Kali学习笔记16:Nmap详细讲解

 

--excludefile:类似上一条,不过把不扫描的ip放在一个文本文件中

用法:类似上一条

 

主机发现系列:

 

-sl:并不扫描,只是把要扫描的ip列出来

用法:nmap <ip> -sl

示例:

Kali学习笔记16:Nmap详细讲解

 

-sn:扫描目标,但不扫描端口

用法:nmap <ip> -sn

 

 

-pn:有时候目标开启防火墙,无法收到回包,nmap会不再扫描该目标,但是我向彻底扫描这个目标,需要这个参数

用法:nmap <ip> -pn

 

-ps/-pa/-pu/-py:使用相对应的协议扫描发现:ps:tcp[syn]、pa:tcp[ack]、pu:udp、py:sctp

用法:nmap <ip> -ps/-pa/-pu/-py

 

以下内容,如果可以直接加的参数,不在写用法(比如-pn和-sn)

 

-pe:使用icmp的echo

 

-pp:使用时间戳

 

-pm:查子网掩码(通常扫不到结果)

 

-po:使用ip协议

 

-n:不做dns解析

 

-r:反向dns解析

 

--dns-servers:扫描的时候不使用本地配置的dns服务器而使用指定的

示例:使用美国的dns服务器扫描新浪

Kali学习笔记16:Nmap详细讲解

 

--traceroute:路由追踪(类似kali的traceroute命令)

 

 

端口扫描系列:

 

-ss:使用tcp【syn】扫描

 

-st:使用tcp扫描:建立完整的三次握手

 

-sa:使用tcp【ack】扫描

 

-sw:tcp:window扫描(没用过)

 

-sm:tcp:maimon扫描(没用过)ack+fin(17)

 

-su:使用udp扫描(事实证明没有tcp协议准确)

 

-sn:使用tcp空flag扫描

 

-sf:tcp:fin扫描

 

-sx:xmas扫描(没用过,使用罕见的tcp的flag的组合)

 

--scanflags:自定义flag扫描(高手才可以用:需要熟练了解协议,针对不同情况使用)

 

-si:僵尸扫描:具体僵尸扫描和实现这里是我写的案例:

 

-sy/-sz:sctp相关的扫描

 

-so:ip协议扫描

 

-b:ftp中继扫描

 

 

-p:指定扫描端口,天天有,方法就不说了

不过可以有多种写法:

Kali学习笔记16:Nmap详细讲解

Kali学习笔记16:Nmap详细讲解

Kali学习笔记16:Nmap详细讲解

 

-f:快速扫描(扫描常见的少量端口)

 

-r:按顺序扫描端口(nmap默认随意扫描指定范围的端口)

 

--top-ports:扫描指定数量的端口

示例:只扫描常见一千端口中的前十个:

Kali学习笔记16:Nmap详细讲解

 

-sv:已经扫描到端口之后,探测服务

 

--version-intensity:配合sv参数,探测服务程度(1-9表示程度深浅)

示例:我要非常详细地扫描某ip的服务

Kali学习笔记16:Nmap详细讲解

 

这里可以看出,的确是非常的详细

 

--version-trace:显示更多的过程

 

脚本扫描:脚本在/usr/share/nmap/scripts里面

 

-sc=:和--scrip=t参数一样

 

--script-args=:脚本参数

 

具体脚本有哪些,可以上网查看当前版本对于的脚本

 

--script-updatedb:更新nmap的脚本(没有扫描作用)

 

--script-help:脚本帮助

 

-o:检测操作系统

 

-f:设置最大传输单元

 

-d:伪造源地址(需要一些混淆ip)

示例:我设置了三个虚假的ip,用来掩护我的ip来进行扫描

Kali学习笔记16:Nmap详细讲解

 

可以抓包发现确实存在伪造源地址:

Kali学习笔记16:Nmap详细讲解

 

-s:欺骗源地址

示例:

Kali学习笔记16:Nmap详细讲解

这里还用了-e参数:指定网卡

 

缺陷:收不到回包

 

-g:使用源端口发送

示例:我指定所有发出的包都是8888端口:

Kali学习笔记16:Nmap详细讲解

 

 

--proxies:代理(不推荐)

如果要代理的话,建议用proxychains方便使用

我以前这篇文章有介绍如何在kali中使用代理:

 

--data=:给扫描包加上数据

 

--data-string=/--data-length:类似上边

 

--spoof-mac:欺骗mac地址:

示例:

Kali学习笔记16:Nmap详细讲解

 

--badsum:故意发送错误的checksum(有时可以欺骗防火墙)

 

其他的参数没什么好说的,都是些杂项用不着的