博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

nmap

Posted on 2021-12-06 16:53  bw_0927  阅读(29)  评论(0)    收藏  举报

https://einverne.github.io/post/2017/01/nmap.html

-sS TCP SYN 扫描 (又称半开放,或隐身扫描)

 nmap  -sS 192.168.41.3 -p1-60000

-p1-65536, 范围大了扫描不全,一次扫描1000个端口,分段多次扫描,-p1-1000 

 

 

 

扫描类型

-sT    TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。    
-sS    TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描 (half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要 root 权限来定制 SYN 数据包。    
-sF,-sX,-sN    秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包(参考 RFC 793  64 页)。    
-sP    ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是 ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描。    
-sU    UDP 的数据包进行扫描,如果你想知道在某台主机上提供哪些 UDP(用户数据报协议,RFC768) 服务,可以使用此选项。    
-sA    ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。    
-sW    滑动窗口扫描,非常类似于 ACK 的扫描。    
-sR    RPC 扫描,和其它不同的端口扫描方法结合使用。    
-b    FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口扫描。    

通用选项

-P0    在扫描之前,不 ping 主机。    
-PT    扫描之前,使用 TCP ping 确定哪些主机正在运行。    
-PS    对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。    
-PI    设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。    
-PB    这是默认的 ping 扫描选项。它使用 ACK(-PT)  ICMP(-PI) 两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。    
-O    这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操作系统类型。    
-I    打开 nmap 的反向标志扫描功能。    
-f    使用碎片 IP 数据包发送 SYNFINXMASNULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。    
-v    冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。    
-S <IP>    在一些情况下,nmap 可能无法确定你的源地址 (nmap 会告诉你)。在这种情况使用这个选项给出你的 IP 地址。    
-g port    设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为 DNS(53) 或者 FTP-DATA(20) 的包通过和实现连接。显然,如果攻击者把源端口修改为 20 或者 53,就可以摧毁防火墙的防护。    
-oN    把扫描结果重定向到一个可读的文件 logfilename 中。    
-oS    扫描结果输出到标准输出。    
--host_timeout    设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。    
--max_rtt_timeout    设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约 9000 毫秒。    
--min_rtt_timeout    设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位。    
-M count    置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描。 ```  

扫描目标

目标地址可以为 IP 地址,CIRD 地址等。如 192.168.1.2,222.247.54.5/24    

-iL filename     filename 文件中读取扫描的目标。    
-iR     nmap 自己随机挑选主机进行扫描。    
-p    端口 这个选项让你选择要进行扫描的端口号的范围。如:-p 20-30,139,60000
-exclude    排除指定主机。    
-excludefile    排除指定文件中的主机。    

 

 

nmap -sS -Pn -p 80 -n --open --min-hostgroup 1024 --min-parallelism 10 --host-timeout 30 -T4 -v -oG results-all.txt -iL ipduan.txt

详细说一下各参数的含义:

-sS:使用SYN方式扫描,默认用的是-sT方式,即TCP方式,需要完成完整的三次握手,比较费时,SYN就比较快一些了,具体自己百度了解

-Pn: 禁用PING检测

-p: ports,要检测的端口号,比如80

-n: 功能未知,在V2EX上看到的

--open: 只输出检测状态为open的端口,即开放的端口,参考文章《快速高效:Nmap结果整理方法》 

--min-hostgroup 1024:调整并行扫描组的大小,参考文章《详尽的Nmap扫描参数解析》 

--min-parallelism 1024:调整探测报文的并行度

--host-timeout 30:检测超时的跳过 

-T4:总共有T0-T5,貌似T4比较折中,参考文章Nmap参考指南:十一、 时间和性能》

 -v:打印详细扫描过程

 -oG:输出为比较人性化的格式,一条记录一行,后期好处理

-iL:载入ip段文件,批量扫,不用一条条执行了。