跳至主要內容

渗透工具用法(三)Nmap 的用法

星火燎原@vxhly大约 5 分钟pentestSecurityLiunxProtocolPentest

前言

此系列笔记是网络渗透工具的使用方法, 本篇是介绍端口扫描工具 Nmap 的使用方法。Nmap 在渗透测试中经常用到, 它不仅可以用来确定目标网络上计算机的存活状态, 而且可以扫描各个计算机的操作系统、开放端口、服务, 还有可能获得用户的证书。熟练掌握 Nmap 的用法, 可以极大的提高渗透测试技术。

Nmap 环境

kali Liunx 里已经集成了 Namp 环境, 所以就不在 Windows 下进行了。

Nmap 命令结构

Scanning Format:

nmap -[option] [IP or domain] -oN [fileName.txt]

Nmap 使用解释

识别系统

Scanning Format:

nmap -O -Pn [IP or domain]

使用 -O 选项, 可以获取到被扫描的主机的系统。 -Pn 选项禁用 Nmap 网络发现功能, 假定所有系统都是活动的

Timing 模板

timing 参数可以指定 nmap 扫描的速度。其中各个选项如下:

  • T0 => paranoid 慢速网络扫描, 串行扫描, 两次扫描间隔 5 分钟 。扫描速度极慢。
  • T1 => Sneky 慢速网络扫描, 串行扫描, 两次扫描间隔 15 秒 , 扫描速度较慢。
  • T2 => Polite 中速网络扫描, 串行扫描, 两次扫描间隔 400 毫秒 , 扫描速度慢。
  • T3 => Normal 中速网络扫描, 并行扫描, 两次扫描间隔 0 秒 , 扫描速度正常。
  • T4 => Aggressive 快速网络扫描, 并行扫描, 两次扫描间隔 0 秒 , 扫描速度较快。
  • T5 => Normal 快速网络扫描, 并行扫描, 两次扫描间隔 0 秒 , 扫描速度极快。

Scanning Format:

nmap -T[0-5] [IP or domain]

扫描方式

TCP 扫描

端口扫描中最稳定的, 利用的是 TCP 三次握手。TCP 扫描通常用于收集有关目标的更多信息, 但是会和目标主机建立一个完成的 TCP 连接。

Scanning Format:

nmap -sT -Pn [IP or domain]

提示

-sT TCP 连接扫描( s ==> 哪种类型扫描; T ==> TCP 类型)

SYN 扫描

TCP 两次握手(隐藏扫描, 速度快, nmap 缺省参数)

Scanning Format:

nmap -sS -Pn [IP or domain]

提示

-sS SYN 连接扫描( s ==> 哪种类型扫描; S ==> SYN 类型)

ACK 扫描

ACK 扫描, 用于确定 TCP 端口是否被防火墙过滤。

Scanning Format:

nmap -sA -Pn [IP or domain]

提示

-sA ACK 连接扫描( s ==> 哪种类型扫描; A ==> ACK 类型)

UDP 扫描

DHCP, DNS, SNMP, TFTP 等都使用了 UDP 协议;UDP 扫描会评估目标系统上的 UDP 端口, 可以确认 UDP 端口是开放还是被防火墙过滤。

Scanning Format:

nmap -sU -Pn [IP or domain]

提示

-sU UDP 连接扫描( s ==> 哪种类型扫描; U ==> UDP 类型)
-sV UDP 扫描中添加版本扫描信息( V ==> 版本信息)
不存在 -Pn 参数(从 UDP 协议去理解, 你发了就 ok 管他收没收到)

扫描 IP 段

For Example:

nmap 192.168.1.1-255    # 扫描 192.168.1.1-192.168.1.255 所有 IP
nmap 192.168.1.1/24     # 扫描 192.168.1.1-192.168.1.255 所有 IP
nmap -iL IPL.txt        # 扫描 IPL.txt 中保存的所有 IP

输出保存选项

  • -oN => 保存为文本文件
  • -oX => 保存为 XML 文件
  • -oG => 保存为 GREPable 输出
  • -oS => 脚本输出

其他更详细的扫描

Nmap 扫描策略

# 适用所有大小网络最好的 nmap 扫描策略

# 主机发现,生成存活主机列表
nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24
grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt

# 端口发现,发现大部分常用端口
# https//nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf
nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
nmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txt
nmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt

# 端口发现,发现全部端口,但 UDP 端口的扫描会非常慢
nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt
nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt

# 显示 TCP\UDP 端口
grep "open" FullTCP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "T:"$0}'
grep "open" FullUDP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "U:"$0}'

# 侦测服务版本
nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt

# 扫做系统扫描
nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt

# 系统和服务检测
nmap -O -sV -T4 -Pn -p U:53,111,137,T:21-25,80,139,8080 -oG OS_Service_Detect -iL LiveHosts.txt

# 扫描 B 段的存活主机
nmap -v -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 172.16.0.0/16 | grep -v down | grep "172.16."

Nmap 躲避防火墙

# 分段
nmap -f

# 修改默认 MTU 大小,但必须为 8 的倍数(8,16,24,32 等等)
nmap --mtu 24

# 生成随机数量的欺骗
nmap -D RND:10 [target]

# 手动指定欺骗使用的 IP
nmap -D decoy1,decoy2,decoy3 etc.

# 僵尸网络扫描, 首先需要找到僵尸网络的IP
nmap -sI [Zombie IP] [Target IP]

# 指定源端口号
nmap --source-port 80 IP

# 在每个扫描数据包后追加随机数量的数据
nmap --data-length 25 IP

# MAC 地址欺骗,可以生成不同主机的 MAC 地址
nmap --spoof-mac Dell/Apple/3Com IP

Nmap 进行 Web 漏洞扫描

cd /usr/share/nmap/scripts/
wget https://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar xzf nmap_nse_vulscan-2.0.tar.gz
nmap -sS -sV --script=vulscan/vulscan.nse target
nmap -sS -sV --script=vulscan/vulscan.nse –script-args vulscandb=scipvuldb.csv target
nmap -sS -sV --script=vulscan/vulscan.nse –script-args vulscandb=scipvuldb.csv -p80 target
nmap -PN -sS -sV --script=vulscan –script-args vulscancorrelation=1 -p80 target
nmap -sV --script=vuln target
nmap -PN -sS -sV --script=all –script-args vulscancorrelation=1 target

Nmap 端口扫描

# 使用诱饵隐蔽扫描 nmap -D RND:10 [target] (生成随机数量的诱饵)
# fargement
# data packed – like orginal one not scan packet
# 使用 auxiliary/scanner/ip/ipidseq 来在僵尸网络中查找IP并使用这些IP进行扫描 — nmap -sI ip target
# nmap –source-port 53 target

nmap -sS -sV -D IP1,IP2,IP3,IP4,IP5 -f –mtu=24 –data-length=1337 -T2 target (随机使用不同的IP进行扫描)
nmap -Pn -T2 -sV –randomize-hosts IP1,IP2
nmap –script smb-check-vulns.nse -p445 target (使用 NSE 脚本)
nmap -sU -P0 -T Aggressive -p123 target (攻击式扫描 T1-T5)
nmap -sA -PN -sN target
nmap -sS -sV -T5 -F -A -O target (版本检测)
nmap -sU -v target (Udp)
nmap -sU -P0 (Udp)
nmap -sC 192.168.31.10-12 (全部使用默认配置)

示例扫描

示例一: SYN 扫描

For Example:

nmap -sS -T5 192.168.199.133
Namp
Namp

示例二: 基础信息扫描

For Example:

nmap -O 192.168.199.133
Namp
Namp

示例三: 详细信息扫描

For Example:

nmap -A 192.168.199.133
Namp
Namp

Namp
Namp

Namp
Namp

示例四: 网段扫描

For Example:

nmap -T5 192.168.1.103-110
Namp
Namp

Namp
Namp
打赏
给作者赏一杯咖啡吧
您的支持将是我继续更新下去的动力
微信微信
支付宝支付宝