NMAP原理及脚本实践
NMAP
1.简介
- NMAP:network mapper是一款开源的网络发现的工具(network discovery)和安全审计(security auditing)的工具.这也是他的两大主要的功能.
- 主要功能及流程:
2.命令详解
2.1主机发现
- 原理及方式:主要向主机发起ICMP请求,TCP连接,然后根据主机返回的报文来确认主机的存活
-
命令:
-
HOST DISCOVERY( PING ):
-iL
:从文件中导入目标主机和网段--exclude
:排除不要的主机-sL
: List Scan - simply list targets to scan使用场景就是在导入主机列表文件时先列出去将要扫描的主机.(scan List)-sn
: Ping Scan - disable port scan:只进行主机发现,不进行端口扫描-Pn
: Treat all hosts as online – skip host discovery:已经知道主机存活了,不要去探测主机是否在线-PS/PA/PU/PY[portlist]
: TCP SYN/ACK, UDP or SCTP discovery to given ports:使用tcp三次握手中的连接来探测主机是否存活-PE/PP/PM
: ICMP echo, timestamp, and netmask request discovery probes使用ICMP的时间戳,子网掩码,请求来探测主机-PO[protocol list]
: IP Protocol Ping使用ip包来探测是否存在-n/-R
: Never do DNS resolution/Always resolve [default: sometimes]--dns-servers <serv1[,serv2]
,…>: Specify custom DNS servers:指定dns的解析服务器--system-dns
: Use OS’s DNS resolver--traceroute
: Trace hop path to each host
-
2.2端口扫描
- 熟知端口
[外链图片转存失败(img-Bmp2YH1L-1568813900487)(C:\Users\frinck\AppData\Roaming\Typora\typora-user-images\1568796598172.png)]
-
原理:远程主机想服务器某个端口建立起一个连接的请求是,如果有此项服务,就会应答,如果未安装则无应答.
-
几种状态:
-
扫描方式:
- 时序扫描:
T0 非常慢的扫描,通常用于IDS逃避 T1 缓慢的扫描,同样可以避开一些IDS T2 降低扫描速度,通常不用 T3 默认扫描 T4 快速扫描,可能会被防火墙发现 T5 快速扫描,牺牲准确度 -
SCAN TECHNIQUES (TCP连接):
-sS/sT/sA/sW/sM
: TCP SYN/Connect()/ACK/Window/Maimon scans-p
:制定端口扫描-F
:快速扫描--top-ports
:扫描开放概率最高的端口-sU
: UDP Scan-sN/sF/sX
: TCP Null, FIN, and Xmas scans--scanflags
: Customize TCP scan flags:自定义flags-sI
<zombie host[:probeport]>: Idle scan:空闲扫描,通过冒充另一台僵尸网络并观察僵尸网络行为来实现的-sY/sZ
: SCTP INIT/COOKIE-ECHO scans-sO
: IP protocol scan-b
: FTP bounce scan -
FIREWALL/IDS EVASION AND SPOOFING:
-f; --mtu : fragment packets (optionally w/given MTU)
-D <decoy1,decoy2[,ME],…>: Cloak a scan with decoys
-S <IP_Address>: Spoof source address
-e : Use specified interface
-g/–source-port : Use given port number
–proxies <url1,[url2],…>: Relay connections through HTTP/SOCKS4 proxies
–data : Append a custom payload to sent packets
–data-string : Append a custom ASCII string to sent packets
–data-length : Append random data to sent packets
–ip-options : Send packets with specified ip options
–ttl : Set IP time-to-live field
–spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
–badsum: Send packets with a bogus TCP/UDP/SCTP checksum
2.3指纹识别
-
TCP指纹识别:根据每种操作系统对数据包的不同类型会做出不同类型的反应.
-
ICMP协议中错误信息可以进行指纹识别
-sV
版本探测--allports
:全端口 版本探测-sR
:RPC扫描-O
:操作系统探测2.4 脚本使用
-
nmap的脚本存在于*/nmap/scripts目录下
- 目录主要分为几大类
-
使用方式:
--script=上述脚本类型
:使用脚本--script-args=key1=value1
:传递参数--script-tracce
:追踪脚本中发送接收的数据--script-updatedb
:更新脚本数据库 -
实例
- 鉴权扫描
nmap --script=auth 192.168.0.105
- 鉴权扫描
-
2. **nmap --script=burpt 192.168.1.105
3. nmap --script=external baidu.com