admin 管理员组文章数量: 887017
安全测试 - Nmap扫描
安全测试课堂笔记
引入:
信息采集 ——- 扫描
主机扫描
端口扫描
域名扫描
URL扫描
PATH扫描
socket 网络套接字 bind 绑定 ip address: port 192.168.30.62:80
扫描 嗅探
python + sokcet + 循环 + 多线程 进行扫描
扫描工具
一、Nmap简介:
Namp是一款开源免费的网络发现(Network Discovery)和安全审计(Security)工具
软件名字Nmap是Network Mapper的简称
Nmap最初是由Fyodor在1997年开始创建的,随后在开源社区的志愿者参与下,该工具逐渐成为最流行安全必备工具之一
黑客入侵大体可以分为3个过程:
信息收集、弱点分析、执行入侵
Namp既可以用于黑客前期收集主机信息,也可以用于管理员了解网络情况,甚至还可以弱点扫描
总体而言,Namp提供这几种功能:主机发现,端口扫描,操作系统识别,服务识别,脚本扫描
二、Nmap基本使用
Nmap命令使用
Nmap命令格式
Namp [Scan Types] [options] {target specification}
Namp 主机发现参数 端口扫描参数 其他参数 目标主机/网段
例如:
Nmap -PS80 -sS -sV -v 1.1.1.0/24
主机发现参数使用-PS参数
端口扫描参数用-sS参数
另外使用-sV参数探测服务版本
-v开启可视模式
目标网段为1.1.1.0/24
报错解决:
如果运行报错,可以先安装一下依赖软件包
扫描一个网段
nmap -sn 192.168.30.0/24
扫描指定的主机
nmap -sn 192.168.30.10-60 192.168.30.62 192.168.30.170
三、基本原理
1、主机发现
主机发现是为了发现网段内的活跃主机(活跃主机是指这台主机是运行状态)
这是黑客扫描第一步。主机发现原理如表:
扫描方式 | 发送报文 | 活跃响应 | 不活跃响应 | 被过滤响应 | 备注 |
---|---|---|---|---|---|
ARP扫描 | ARP请求报文 | ARP响应报文 | 超时 | 不会被过滤 | 精准 |
ICMP扫描 | ICMP Type=8 Code=0 Type=13 Code=0 Type=17 Code=0 | ICMP Type=0 Cody=0 Type=14 Code=0 Type=18 Code=0 | 超时 | 超时 | 可能会被防火墙过滤 |
端口扫描 | TCP syn | TCP syn+ack | 超时 | 超时或 ICMP Type=3 Code=3或13 | 可能会被过滤 |
由此可以看出来:
ARP扫描:是最精准的扫描方式,并不会被过滤,因此会被强制使用。
ICMP扫描:是最常见的扫描方式,和ping命令原理一致,但现在很多防火墙和IPS设备会禁用ICMP扫描,使得ICMP主机发现失败
端口扫描:是另一种发现主机的方式,准确且不容易被防火墙过滤,这种方式经常被使用
ARP 属于OSI参考模型数据链路层
将IP地址解析为MAC地址 , MAC地址计算机网络上物理地址或硬件地址(出厂烧录进去)。
2、端口扫描技术
端口扫描可以分为TCP端口扫描和UDP端口扫描
由于TCP能够提供更多的协议字段,因此TCP端口扫描更精准,如今的端口扫描技术主要是指TCP端口扫描
在TCP端口扫描技术中,探测报文组合不同flags位,不同的flags在端口开放、端口关闭、防火墙过滤时的响应是不一样的
通过区分不同的响应来探测端口的状态,具体如下所示 (tcp flags有syn、ack、rst、fin、psh、urg共6种位置)
扫描方式 | TCP Flag | 开放时响应 | 关闭时响应 | 过滤时响应 | 特征 |
---|---|---|---|---|---|
-sT TCP全连接扫描 | 报文1:syn 报文2:ack | Syn+ack 完成3次握手 | Rst+ack | 一般不会被过滤 | 精准、费时,可能会被日志记录 |
-sS TCP半连接扫描 | Syn | Syn+ack | Rst+ack | ICMP type=3 Code=3、13 或超时 | 精准、快速,无日志记录,最常见且默认的扫描方式 |
-sA TCP ack扫描 | Ack | Rst | Rst | 不准确,只能判断是否加防火墙filtered或 unfiltered | |
-sW TCP window扫描 | Ack | Rst,window不为0 | Rst,window为0 | 不准确,有的情况下window都为0 | |
#NAME? | Fin+ack | 未收到rst | Rst | 不准确 | |
#NAME? | 无位置 | 无响应 | Rst | ICMP Type=3 Code=3或13 或超时无响应 | 不准确,只能判断 closed和open |
#NAME? | Fin | 无响应 | Rst | ||
#NAME? | Fin+psh+urg | 无响应 | Rst | ||
-sU UDP端口扫描 | 不相关 | 有UDP响应或无响应 | ICMP Type=3 Code=3 | ICMP Type=3 Code=1,29,10,13 | 不准确,只能判断 closed和open |
由此可以看出,最常用的扫描方式是-sS扫描,快速、精准,且无日志
-sT方式最精准,但有日志记录
-sA/-sW能够识别是否有防火墙,对于识别windows防火墙非常有效
3、常用端口
端口 | 服务 | 描述 |
---|---|---|
20/TCP,UDP | FTP [Default Data] | 文件传输协议 - 默认数据端口 |
21/TCP,UDP | FTP [Control] | 文件传输协议 - 控制端口 |
22/TCP,UDP | SSH | SSH(Secure Shell) - 远程登录协议,用于安全登录文件传输(SCP,SFTP)及端口重新定向 |
23/TCP,UDP | Telnet | Telnet终端仿真协议 - 未加密文本通信 |
25/TCP,UDP | SMTP | SMTP(简单邮件传输协议) - 用于邮件服务器间的电子邮件传递 |
43/TCP | WHOIS | WHOIS协议 |
53/TCP,UDP | DNS | DNS(域名服务系统) |
67/UDP | BOOTPs | BOOTP(BootStrap协议)服务;同时用于动态主机设置协议 |
68/UDP | BOOTPc | BOOTP客户端;同时用于动态主机设定协议 |
69/UDP | TFTP | 小型文件传输协议(小型文件传输协议) |
80/TCP | Http | 超文本传输协议(超文本传输协议)- 用于传输网页 |
110/TCP | POP3 | 邮局协议,“邮局协议”,第3版 - 用于接收电子邮件 |
113/TCP | Windows验证服务 | Ident - 旧的服务器身份识别系统,仍然被IRC服务器用来认证它的用户 |
123/UDP | NTP | NTP(Network Time Protocol) - 用于时间同步 |
137/TCP,UDP | NetBIOS Name Service | NetBIOS NetBIOS 名称服务 |
138/TCP,UDP | NetBIOS Datagram Service | NetBIOS NetBIOS 数据报文服务 |
139/TCP,UDP | NetBIOS Session Service | NetBIOS NetBIOS 会话服务 |
143/TCP,UDP | IMAP | 因特网信息访问协议(Internet信息访问协议 4) - 用于检索 电子邮件s |
161/TCP,UDP | SNMP | 简单网络管理协议 (简单网络管理协议) |
179/TCP | Bgp | 边界网关协议 (边界网关协议) |
194/TCP | IRC(互联网中继聊天) | |
220/TCP,UDP | IMAP3 | 因特网信息访问协议,交互邮件访问协议第3版 |
389/TCP,UDP | LDAP | 轻型目录访问协议 LDAP |
443/TCP | Https | 超文本传输安全协议 - 超文本传输协议 over TLS/SSL(加密传输) |
546/TCP,UDP | DHCPv6客户端 | |
547/TCP,UDP | DHCPv6服务器 | |
631/TCP,UDP | CUPS | 互联网打印协议 |
636/TCP,UDP | LDAPS | LDAP over SSL(加密传输,也被称为LDAPS) |
991/TCP,UDP | NAS (Netnews Admin System) | |
1080/tcp | SOCKS | SOCKS代理 |
1194/udp | OpenVPN | |
1433/tcp,udp | SQL Server | Microsoft SQL 数据库系统 |
1434/tcp,udp | SQL Server monitor | Microsoft SQL 活动监视器 |
1521/tcp | Oracle | Oracle数据库 default listener, in future releases official port 2483 |
3306/tcp,udp | MySQL | MySQL数据库系统 |
3389/tcp | RDP | 远程桌面协议(RDP) |
5432/tcp | PostgreSQL | PostgreSQL database system |
NAMP使用手册
0x00 主机发现
-sL 仅仅是显示,扫描的IP数目,不会进行任何扫描
-sn ping扫描,即主机发现
-Pn 不检测主机存活
-PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping发现
-PE/PP/PM 使用ICMPecho, timestamp and netmask请求包发现主机
-PO[prococol list] 使用IP协议包探测对方主机是否开启
-n/-R 不对IP进行域名反向解析/为所有的IP都进行域名的反响解析
0x01 扫描技巧
-sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP窗口扫描/TCPMaimon扫描
-sU UDP扫描
-sN/sF/sX TCP Null,FIN,and Xmas扫描
--scanflags 自定义TCP包中的flags
-sI zombie host[:probeport] Idlescan
-sY/sZ SCTP INIT/COOKIE-ECHO扫描
-sO 使用IPprotocol扫描确定目标机支持的协议类型
-b "FTP relay host" 使用FTPbounce scan
0x02 指定端口和扫描顺序
-p 特定的端口-p80,443或者-p1-65535
-p U:PORT 扫描udp的某个端口,-p U:53
-F 快速扫描模式,比默认的扫描端口还少
-r 不随机扫描端口,默认是随机扫描的
--top-ports "number" 扫描开放概率最高的number个端口,出现的概率需要参考nmap-services文件,
ubuntu中该文件位于/usr/share/nmap.nmap默认扫前1000个
--port-ratio "ratio" 扫描指定频率以上的端口
0x03服务版本识别
-sV 开放版本探测,可以直接使用-A同时打开操作系统探测和版本探测
--version-intensity "level" 设置版本扫描强度,强度水平说明了应该使用哪些探测报文。
数值越高,服务越有可能被正确识别。默认是7
--version-light 打开轻量级模式,为--version-intensity2的别名
--version-all 尝试所有探测,为--version-intensity9的别名
--version-trace 显示出详细的版本侦测过程信息
0x04 脚本扫描
-sC 根据端口识别的服务,调用默认脚本
--script="Lua scripts" 调用的脚本名
--script-args=n1=v1,[n2=v2] 调用的脚本传递的参数
--script-args-file=filename 使用文本传递参数
--script-trace 显示所有发送和接收到的数据
--script-updatedb 更新脚本的数据库
--script-help="Lua script" 显示指定脚本的帮助
nmap -sV --script=ssl-heartbleed target_ip 扫描心脏滴血漏洞
nmap -p 6379 --script redis-info target_ip 扫描redis未授权访问漏
nmap -p 27017 --script mongodb-info target_ip 扫描mongodb未授权访问
nmap -p 21 --script ftp-anon.nse -v target_ip 扫描ftp匿名访问的漏洞
nmap -p 21 --script ftp-brute.nse -v target_ip 对目标IP进行ftp弱口令
nmap -p 22 --script ssh-brute.nse -v target_ip 对目标IP进行ssh口令爆破
nmap -p445 –script smb-vuln-ms17-010 target_ip/mask 对目标网段进行永恒之蓝漏洞扫描
0x05 OS识别
-O 启用操作系统检测,-A来同时启用操作系统检测和版本检测
--osscan-limit 针对指定的目标进行操作系统检测(至少需确知该主机分别有一个open和closed的端口)
--osscan-guess 推测操作系统检测结果,当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,
Nmap默认进行这种匹配
0x06 防火墙/IDS躲避和哄骗
-f; --mtu value 指定使用分片、指定数据包的MTU.
-D decoy1,decoy2,ME 使用诱饵隐蔽扫描
-S IP-ADDRESS 源地址欺骗
-e interface 使用指定的接口
-g/ --source-port PROTNUM 使用指定源端口
--proxies url1,[url2],... 使用HTTP或者SOCKS4的代理
--data-length NUM 填充随机数据让数据包长度达到NUM
--ip-options OPTIONS 使用指定的IP选项来发送数据包
--ttl VALUE 设置IPtime-to-live域
--spoof-mac ADDR/PREFIX/VEBDOR MAC地址伪装
--badsum 使用错误的checksum来发送数据包
0x07 Nmap输出
-oN 将标准输出直接写入指定的文件
-oX 输出xml文件
-oS 将所有的输出都改为大写
-oG 输出便于通过bash或者perl处理的格式,非xml
-oA BASENAME可将扫描结果以标准格式、XML格式和Grep格式一次性输出
-v 提高输出信息的详细度
-d level设置debug级别,最高是9
--reason 显示端口处于带确认状态的原因
--open 只输出端口状态为open的端口
--packet-trace 显示所有发送或者接收到的数据包
--iflist 显示路由信息和接口,便于调试
--log-errors 把日志等级为errors/warings的日志输出
--append-output 追加到指定的文件
--resume FILENAME 恢复已停止的扫描
--stylesheet PATH/URL 设置XSL样式表,转换XML输出
--webxml 从namp得到XML的样式
--no-sytlesheet 忽略XML声明的XSL样式表
0x08 其他nmap选项
-6 开启IIPV6
-A OS识别,版本探测,脚本扫描和traceroute
--datedir DIRNAME 说明用户Nmap数据文件位置
--send-eth / --send-ip 使用原以太网帧发送/在原IP层发送
--privileged 假定用户具有全部权限
--unprovoleged 假定用户不具有全部权限,创建原始套接字需要root权限
-V 打印版本信息
-h 输出帮助信息
0x09 nmap常用命令
nmap -sV -sT -Pn --open -v 192.168.1.1 不使用ping对ip进行服务识别 使用tcp发包 返回端口开放的结果
nmap -sT -Pn --open -v banner.nse 192.168.1.1 获取服务器的banner信息
nmap -sP 192.168.0.0/24 判断哪些主机存活
nmap -sT 192.168.0.3 开放了哪些端口
nmap -sS 192.168.0.127 开放了哪些端口(隐蔽扫描)
nmap -sU 192.168.0.127 开放了哪些端口(UDP)
nmap -sS -O 192.168.0.127 操作系统识别
nmap -sT -p 80 -oG – 192.168.1.* | grep open 列出开放了指定端口的主机列表
nmap -sV -p 80 baidu 列出服务器类型(列出操作系统,开发端口,服务器类型,网站脚本类型等)
-iL filename 从文件中读取待检测的目标,文件中的表示方法支持机名,ip,网段
-iR hostnum 随机选取,进行扫描.如果-iR指定为0,则是无休止的扫描
–exclude host1[, host2] 从扫描任务中需要排除的主机
nmap --exclude 192.168.1.1 192.168.1.1-2 这个只扫描192.168.1.2这个IP–exculdefile exclude_file
排除文件中的IP,格式和-iL指定扫描文件的格式相同
# 批量扫描
nmap -sT -sV -O -P0 --open -n -oN result.txt -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,
873,2601,2604,3128,4440,6082,6379,8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,
2222,2082,3311,18100,9956,1433,3306,1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 -iL
ip.txt2 --open 只输出端口开放的结果 输出到result.txt文件
nmap -sT -sV -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,873,2601,2604,3128,4440,6082,6379,
8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,2222,2082,3311,18100,9956,1433,3306,
1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 --open --max-hostgroup10 --max-parallelism
10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms -iL ~/Desktop/ip.txt
-oN ~/Desktop/result/result.txt
0x10 nmap api
nmap支持很多语言的扩展,本文简单介绍下python中如何使用nmap。
- python-nmap
- 安装:pip install python-nmap
- 作用:利用python调用nmap接口,实现端口扫描。
- 使用:
>>> import nmap2
>>> nm = nmap.PortScanner()
>>> nm.scan('127.0.0.1', '22-443')
>>> nmmand_line()
主机发现
1. 全面扫描/综合扫描
nmap -A 192.168.1.103
2. Ping扫描
nmap -sP 192.168.1.1/24
3. 免Ping扫描,穿透防火墙,避免被防火墙发现
nmap -P0 192.168.1.103
4. TCP SYN Ping 扫描
nmap -PS -v 192.168.1.103
nmap -PS80,10-100 -v 192.168.1.103 (针对防火墙丢弃RST包)
5. TCP ACK Ping 扫描
nmap -PA -v 192.168.1.103
6. UDP Ping 扫描
nmap -PU -v 192.168.1.103
7. ICMP Ping Types 扫描
nmap -PU -v 192.168.1.103 (ICMP ECHO)
nmap -PP -v 192.168.1.103 (ICMP 时间戳)
nmap -PM -v 192.168.1.103 (ICMP 地址掩码)
8. ARP Ping 扫描
nmap -PR -v 192.168.1.103
9. 列表 扫描
nmap -sL -v 192.168.1.103
10. 禁止方向域名解析
nmap -n -sL -v 192.168.1.103
11. 方向域名解析
nmap -R -sL -v 192.168.1.103
12. 使用系统域名解析系统
nmap --system-dns 192.168.1.2 192.168.1.103
13. 扫描IPV6地址
nmap -6 IPv6
14. 路由跟踪
nmap --traceroute -v www.sunbridgegroup
15. SCTP INIT Ping 扫描
nmap -PY -v 192.168.1.103
端口扫描
1. 时序扫描
nmap -T(0-5) 192.168.1.103
2. 常用扫描方式
nmap -p 80 192.168.1.103
nmap -p 80-100 192.168.1.103
nmap -p T:80,U:445 192.168.1.103
nmap -F 192.168.1.1.103 (快速扫描)
nmap --top-ports 100 192.168.1.103 (扫描最有用的前100个端口)
3. TCP SYN 扫描 (高效的扫描方式)
nmap -sS -v 192.168.1.103
4. TCP 连接扫描
nmap -sT -v 192.168.1.103
5. UDP 连接扫描
nmap -sU -p 80-100 192.168.1.103
6. 隐蔽扫描
nmap -sN 61.241.194.153(NULL扫描)
nmap -sF 61.241.194.153(FIN扫描)
nmap -sX 61.241.194.153(Xmas扫描)
7. TCP ACK 扫描
nmap -sA 192.168.1.103
8. TCP 窗口扫描
nmap -sW -v -F 192.168.1.103
9. TCP Maimon 扫描
nmap -sM -T4 192.168.1.103
10. 自定义 扫描
nmap -sT --scanflags SYNURG 192.168.1.103
11. 空闲 扫描( 隐藏IP )
nmap -sI www.0day.co:80 192.168.1.103
12. IP协议 扫描
nmap -sO -T4 192.168.1.103
13. FTP Bounce 扫描
(已经不被支持)
指纹识别与探测
1. 版本探测
nmap -sV 192.168.1.103
nmap -sV -A 192.168.1.103
2. 全端口版本探测
nmap -sV --allports 192.168.1.103
3. 设置扫描强度
nmap -sV --version-intensity (0-9) 192.168.1.103
4. 轻量级扫描
nmap -sV --version-light 2 192.168.1.103
5. 重量级扫描
nmap -sV --version-all 192.168.1.103
6. 获取详细版本信息
nmap -sV --version-trace 192.168.1.103
7. RPC扫描
nmap -sS -sR 192.168.1.103
8. 对指定的目标进行操作系统监测
nmap -O --osscan-limit 192.168.1.103
9. 推测系统并识别
nmap -O --osscan-guess 192.168.1.103
伺机而动
1. 调整并行扫描组的大小
nmap --min-hostgroup 30 192.168.1.110/24
nmap --max-hostgroup 30 902 192.168.1.104
2. 调整探测报文的并行度
nmap --min-parallelism 100 192.168.1.104
nmap --max-parallelism 100 192.168.1.104
3. 调整探测报文超时
nmap --initial-rtt-timeout 100ms 192.168.1.104
nmap --max-rtt-timeout 100ms 192.168.1.104
nmap --min-rtt-timeout 100ms 192.168.1.104
4. 放弃缓慢的目标主机
nmap --host-timeout 1800000ms 192.168.1.104
5. 调整报文适合时间间隔
nmap --scan-delay 1s 192.168.1.104
nmap --max-scan-delay 1s 192.168.1.104
防火墙/IDS逃逸
1. 报文分段
nmap -f -v 61.241.194.153
2. 指定偏移大小
nmap --mtu 16 192.168.1.104
3. IP欺骗
nmap -D RND:11 192.168.1.104
nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104
4. 源地址欺骗
nmap -sI www.0day:80 192.168.1.104
5. 源端口欺骗
nmap --source-port 902 192.168.1.104
6. 指定发包长度
nmap --data-length 30 192.168.1.104
7. 目标主机随机排序
nmap --randomize-hosts 192.168.1.104
8. MAX地址欺骗
nmap -sT -Pn --spoof-mac 0 192.168.1.104
信息收集
1. IP信息收集
nmap --script ip-geolocation-* www.pcos
2. WHOIS 查询
nmap --script whois-domain www.pcos
nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome
nmap -sn --script whois-domain -v -iL host.txt
3. 搜索邮件信息(新版可能没有这个模块)
nmap --script http-email-harvest www.pcos
4. IP反查
nmap -sn --script hostmap-ip2hosts www.pcos
5. DNS信息收集
nmap --script dns-brute www.pcos
nmap --script dns-brute dns-brute.threads=10 www.pcos
nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos
6. 检索系统信息
nmap -p 445 445 192.168.1.104 --script membase-http-info
7. 后台打印机服务漏洞
nmap --script smb-security-mode.nse -p 445 119.29.155.45
8. 系统漏洞扫描
nmap --script smb-check-vulns.nse -p 445 119.29.155.45
9.扫描Web漏洞
nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45
10. 通过 Snmp 列举 Windows 服务/账户
nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104
nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110
11. 枚举 DNS 服务器的主机名
nmap --script dns-brute --script-args dns-brute.domain=baidu
12. HTTP信息收集
nmap -sV -p 80 www.0day (HTTP版本探测)
nmap -p 80 --script=http-headers www.pcos (HTTP信息头探测)
nmap -p 80 --script=http-sitemap-generator www.pcos (爬行Web目录结构)
13. 枚举SSL密钥
nmap -p 443 --script=ssl-enum-ciphers www.baidu
14. SSH服务密钥信息探测
map -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
数据库渗透测试
1. Mysql列举数据库
nmap -p3306 --script=mysql-databases --script-args mysqluser=root,mysqlpass 192.168.1.101
2. 列举 MySQL 变量
nmap -p3306 --script=mysql-variables 192.168.1.3
nmap -sV --script=mysql-variables 192.168.1.3 (无法确定端口的情况下)
3. 检查 MySQL 密码
nmap -p3306 --script=mysql-empty-password 192.168.1.3
nmap -sV -F -T4 --script=mysql-empty-password 192.168.1.3
4. 审计 MySQL 密码
nmap --script=mysql-brute 192.168.1.101
nmap -p3306 --script=mysql-brute userdb=/root/passdb.txt passdb=/root/pass.txt 192.168.1.101 (指定字典)
5. 审计 MySQL 安全配置
nmap -p3306 --script mysql-audit --script-args "mysql-audit.username='root',mysql-audit.password='123',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.1.104
6. 审计 Oracle 密码
nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test 192.168.1.121
nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test --script-args userdb=/tmp/usernames.txt,passdb=/tmp/password.txt 192.168.1.105
7. 审计 msSQL密码
nmap -p 1433 --script ms-sql-brute --script-args userdb=name.txt,passdb=pass.txt 192.168.1.104
8. 检查 msSQL空密码
nmap -p 1433 --script ms-sql-empty-password 192.168.1.104
9. 读取 msSQL 数据
nmap -p 1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.Password=sa 192.168.1.101
10. 读取 msSQL 执行系统命令
nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="ipconfig" 192.168.1.101
11. 审计 PgSQL 密码
nmap -p 5432 --script pgsql-brute 192.168.1.101
渗透测试
1. 审计 HTTP 身份验证
nmap --script=http-brute -p 80 www.pcos
2. 审计 FTP 服务器
nmap --script ftp-brute -p 21 192.168.1.101
nmap --script ftp-brute --script-args userdb=user.txt,passdb=pass.txt -p 21 192.168.1.101
nmap --script=ftp-anon 192.168.1.101
3. 审计 Wordpress 程序
nmap -p80 --script http-wordpress-brute 192.168.1.110
nmap -p80 --script http-wordpress-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.110
nmap -p80 --script http-wordpress-brute --script-args http-wordpress-brute.threads=10 192.168.1.110
4. 审计 Joomla 程序
nmap -p80 --script http-joomla-brute 192.168.1.110
nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt 192.168.1.110
nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt,http-joomla-brute.threads=5 192.168.1.110
5. 审计 邮件服务器
nmap -p110 --script=pop3-brute 192.168.1.110
6. 审计 SMB 口令
nmap --script smb-brute.nse -p 445 192.168.1.110
nmap --script smb-brute.nse --script-args passdb=pass.txt -p 445 192.168.1.110
7. 审计 VNC 服务
nmap --script vnc-brute -p 5900 192.168.1.110
8. 审计 SMTP 服务器
nmap -p 25 --script smtp-brute 192.168.1.110
nmap -p 25 --script=smtp-enum-users.nse smith.jack (枚举远程系统所有用户)
9. 检测 Stuxnet 蠕虫
nmap --script stuxnet-detect -p 445 192.168.1.110
10. SNMP 服务安全审计
nmap -sU -p 161 --script=snmp-netstat 192.168.1.101 (获取目标主机网络连接状态)
nmap -sU -p 161 --script=snmp-processes 192.168.1.110 (枚举目标主机的系统进程)
nmap -sU -p 161 --script=snmp-win32-services 192.168.1.110 (获得windows服务器的服务)
nmap -sU -p 161 --script snmp-brute 192.168.1.110
Zenmap
1. Intense scan (详细扫描)
nmap -T4 -A -v 192.168.1.101
2. Intense scan plus UDP (UDP扫描经典使用)
nmap -sS -sU -T4 -A -v 192.168.1.101
3. Intense scan, all TCP ports (TCP扫描)
nmap -p 1-65535 -T4 -A -v 192.168.1.101
4. Intense scan, no ping (无Ping扫描)
nmap -T4 -A -v -Pn 192.168.1.101
5. Ping scan (Ping扫描)
nmap -sn 192.168.1.101/24
6. Quick scan
nmap -T4 -F 192.168.1.101/24
7. Quick scan plus
nmap -sV -T4 -O -F --version-light 192.168.1.101/24
8. Quick traceroute
nmap -sn --traceroute 192.168.1.101
9. Regular scan
nmap 192.168.1.101
10. Slow comprehensive scan
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 192.168.1.101
Nmap 技巧
1. 发送以太网数据包
nmap --send-eth 192.168.1.111
2. 网络层发送
nmap --send-ip 192.168.1.111
3. 假定拥有所有权
nmap --privileged 192.168.1.111
4. 在交互模式中启动
nmap --interactive
5. 查看 Nmap 版本号
nmap -V
6. 设置调试级别
nmap -d (1-9) 192.168.1.111
7. 跟踪发送接收的报文
nmap --packet-trace -p 20-30 192.168.1.111
8. 列举接口和路由
nmap --iflist www.iteye
9. 指定网络接口
nmap -e eth0 192.168.1.111
10. 继续中断扫描
nmap -oG 1.txt -v 192.168.126.1/24
nmap --resume 1.txt (继续扫描)
11. Dnmap
dnmap_server -f test (指定命令脚本)
dnmap_client -s 192.168.1.107 -a test
12. 编写 Nse 脚本
(1) -- The scanning module --
author = "Wing"
categories = {"version"}
portrule = function(host,port)
return port.protocol == "tcp" and port.number == 80 and port.state == "open"
end
action = function(host,port)
return "Found!!!"
end
(2) -- The scanning module --
author = "Wing"
categories = {"version"}
local comm=require "comm"
require "shortport"
local http=require "http"
portrule = function(host,port)
return (port.number == 80) and (port.start=="open")
end
action = function(host,port)
local uri = "/admin.php"
local response = http.get(host,port,uri)
return "Found!!!"
end
13. 探测防火墙
nmap --script=firewalk --traceroute 192.168.1.111
14. VMware认证破解
nmap -p 902 --script vmauthd-brute 192.168.1.107
Nmap的保存和输出
1. 标准保存
nmap -F -oN d:/test1.txt 192.168.1.111
2. XML保存
nmap -F -oX d:/test1.xml 192.168.1.111
3. 133t 保存
nmap -F -oS d:/test2.txt 192.168.1.111
4. Grep 保存
nmap -F -oG d:/test2.txt 192.168.1.111
5. 保存到所有格式
nmap -F -oA d:/test2 192.168.1.111
6. 补充保存文件
nmap -F -append-output -oN d:/test2.txt 192.168.1.111
7. 转换 XML 保存
nmap -F -oX testB.xml --stylesheet http://www.insecure/nmap/data/nmap.xsl 192.168.1.111
8. 忽略 XML 声明的 XSL 样式表
nmap -oX d:/testC.xml --no-stylesheet 192.168.1.111
本文标签: nmap
版权声明:本文标题:nmap基本使用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726420394h957421.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论