奇奇怪怪

安全小技巧

新的一天开始了

剪刀石头布,哈,我又赢了

2023

11-26

永远新的开始啊

目录列表


👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻

简介 🤩

Nmap 使用手册

Nmap(Network Mapper)是一个用于网络探索和安全审计的开源工具。它被设计为快速扫描大型网络,尽管它对单个主机工作得很好。

参数说明 🤔

  • -sL 列表扫描,扫描ip地址并且进行返现dns查找,主机发现(除非指定了 -n
  • -n 不进行dns解析
  • -R 所有目标dns解析
  • -sS SYN扫描,SYN扫描是默认的扫描类型
  • -p- 扫描全部端口,默认情况下只扫描1,000个常见端口
  • -PA ACK 扫描主机发现
  • -PS80,443 SYN 扫描主机发现
  • -PU UDP扫描主机发现
  • **-PE -PP -PS80,443 -PA3389 -PU40125 ping扫描,主机发现技术**
  • **-Pn 跳过识别主机是否存活,扫描所有,很慢**
  • -A 它相当于 -sV -sC -O --traceroute (版本检测、带有默认脚本集的Nmap脚本引擎、远程操作系统检测和traceroute)
  • -T 1 2 3 4 5 设置时间,越高越快,网络稳定的情况下可以尝试最大值
  • -oA filename-%D 扫描结果输出所有格式,文件名-时间格式,扩展名分别可为.nmap、.xml和.gnmap
  • -O os操作系统探测
  • -sn 关闭端口扫描
  • -sV 版本服务检测
  • -sC 使用默认脚本探测
  • 参数排序
  • -iL filename 指定主机列表文件
  • -iR :选择随机目标
  • **--exclude 127.0.0.1 排除ip**
  • **--excludefile filename 排除ip列表文件**
  • 主机发现:
  • -sn:Ping 扫描 - 禁用端口扫描
  • -Pn:将所有主机视为在线–跳过主机发现
  • -PS/PA/PU/PY[端口列表]:给定端口的 TCP SYN/ACK、UDP 或 SCTP 发现
  • -PE/PP/PM:ICMP 回显、时间戳和网络掩码请求发现探测
  • -PO[协议列表]:IP协议Ping
  • -n/-R:从不进行 DNS 解析/始终解析 [默认值:有时]
  • –dns-servers <serv1[,serv2],…>: 指定自定义 DNS 服务器
  • –system-dns:使用操作系统的 DNS 解析器
  • –traceroute:跟踪每个主机的跃点路径
  • 扫描技术:
  • -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon 扫描
  • -sU:UDP扫描
  • -sN/sF/sX:TCP Null、FIN 和 Xmas 扫描
  • –scanflags : 自定义 TCP 扫描标志 ,URGACKPSHRSTSYNFIN 指定所有协议
  • -sI <僵尸主机[:probeport]>:空闲扫描
  • -sY/sZ:SCTP INIT/COOKIE-ECHO 扫描
  • -sO:IP协议扫描
  • -b <FTP中继主机>:FTP反弹扫描
  • 端口规格和扫描顺序:
  • -p <端口范围>:仅扫描指定端口
    例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  • –exclude-ports <端口范围>:从扫描中排除指定端口
  • -F:快速模式 - 扫描比默认扫描更少的端口
  • -r:按顺序扫描端口 - 不要随机化
  • –top-ports : 扫描 个最常见端口
  • –port-ratio :扫描比更常见的端口
  • **--allports (不排除任何端口进行版本检测)**
  • 服务/版本检测:
  • -sV:探测开放端口以确定服务/版本信息
  • –version-intensity : 设置从 0 (light) 到 9 (尝试所有探针)
  • –version-light:限制最有可能的探测(强度 2)
  • –version-all:尝试每个探针(强度 9)
  • –version-trace:显示详细的版本扫描活动(用于调试)
  • 脚本扫描:
  • -sC:相当于–script=default
  • –script=<Lua 脚本>: <Lua 脚本> 是逗号分隔的列表、目录、脚本文件或脚本类别
  • –script-args=<n1=v1,[n2=v2,…]>: 为脚本提供参数
  • –script-args-file=文件名:在文件中提供 NSE 脚本参数
  • –script-trace:显示发送和接收的所有数据
  • –script-updatedb:更新脚本数据库。
  • –script-help=<Lua 脚本>:显示有关脚本的帮助。 是一个以逗号分隔的脚本文件列表或脚本类别。
  • 操作系统检测:
  • -O:启用操作系统检测
  • –osscan-limit:将操作系统检测限制为有希望的目标
  • –osscan-guess:更积极地猜测操作系统
  • 时间设置

需要

  • -T<0-5>:设置计时模板(越高越快)
  • –min-hostgroup/max-hostgroup :并行主机扫描组大小,max最大256
  • –min-parallelism/max-parallelism :最大256 探测并行化
  • –min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <时间>:指定探头往返时间,延时。Nmap等待端口扫描探测响应的最短、最长和初始时间。
  • –max-retries :端口扫描探测重传次数的上限。
  • –host-timeout <时间>:经过这么长时间后放弃目标,默认5分钟
  • –scan-delay/–max-scan-delay <时间>:调整探头之间的延迟,默认10s
  • –min-rate : 每秒发送数据包的速度不低于
  • –max-rate : 每秒发送数据包的速度不超过
  • 防火墙/IDS 规避和欺骗:
  • **-f (片段数据包); --mtu (使用指定的MTU)这个想法是将TCP报头分割成几个数据包,使数据包过滤器,入侵检测系统和其他入侵检测系统更难检测到您正在做什么。小心点!**
  • -D <decoy1,decoy2[,ME],…>:用诱饵隐藏扫描
  • -S :欺骗源地址
  • -e :使用指定的接口
  • -g/–source-port :使用给定的端口号
  • –proxies <url1,[url2],…>: 通过 HTTP/SOCKS4 代理中继连接
  • –data <十六进制字符串>:将自定义负载附加到发送的数据包中
  • –data-string :将自定义 ASCII 字符串附加到发送的数据包中
  • –data-length :将随机数据附加到发送的数据包中
  • –ip-options : 发送带有指定ip选项的数据包
  • –ttl : 设置IP生存时间字段
  • –spoof-mac <mac 地址/前缀/供应商名称>: 欺骗您的 MAC 地址
  • –badsum:发送带有伪造 TCP/UDP/SCTP 校验和的数据包
  • 输出扫描结果:
  • -oN/-oX/-oS/-oG <文件>:以正常、XML、s|<rIpt kIddi3 输出扫描,和 Grepable 格式分别为给定的文件名。
  • -oA :同时以三种主要格式输出
  • -v:增加详细级别(使用-vv或更多以获得更好的效果)
  • -d:提高调试级别(使用-dd或更多以获得更好的效果)
  • –reason:显示端口处于特定状态的原因
  • –open:仅显示开放(或可能开放)的端口
  • –packet-trace:显示发送和接收的所有数据包
  • –iflist:打印主机接口和路由(用于调试)
  • –append-output:附加到而不是破坏指定的输出文件
  • –resume <文件名>:恢复中止的扫描
  • –noninteractive:通过键盘禁用运行时交互
  • –stylesheet <path/URL>:用于将 XML 输出转换为 HTML 的 XSL 样式表
  • –webxml:来自 Nmap.Org 的参考样式表,以获得更可移植的 XML
  • –no-stylesheet:防止 XSL 样式表与 XML 输出关联
  • 其他:
  • -6:启用 IPv6 扫描
  • -A:启用操作系统检测、版本检测、脚本扫描和traceroute
  • –datadir : 指定自定义 Nmap 数据文件位置
  • –send-eth/–send-ip:使用原始以太网帧或 IP 数据包发送
  • –privileged:假设用户具有完全特权
  • –unprivileged:假设用户缺乏原始套接字权限
  • –resolve-all选项:当主机名被指定为目标时,它通过域名系统(DNS)解析以确定要扫描的IP地址。如果名称解析为多个IP地址,则只扫描第一个。要让Nmap扫描所有解析的地址,而不仅仅是第一个,请使用 –resolve-all 选项。
  • **--unique (每个地址只扫描一次)**

使用技巧 😀

主机发现

  • nmap -sn -T4 www.lwn.net/24 快速扫描指定域名C段
  • nmap -PE 最佳主机发现参数
  • -PE -PS80 -PS443 -PP -PU40125 -PS3389 -PA21 -PU161 –source-port 53 最佳主机发现组合
  • -PE -PA80 -PS443 -PP -PU40125 –source-port 53 最佳主机发现组合精简
  • 最佳TCP端口选择,80,443,113,21,23,25,53,22,110,3389,8080,1723
  • 最佳UDP端口选择,53,161
  • -PE -PP -PS21,22,23,25,80,113,443,31339 -PA80,113,443,10042 –source-port 53 组合推荐

端口扫描

  • 最常见TCP端口,80,23,443,21,22,25,3389,110,445,139,143,53,135,3306,8080,1723,111,993,5900
  • 最常见UDP端口,631,161,137,123,138,1434,445,135,67,53,139,500,68,520,1900,4500,514,49152,162,69

优化参数

  • **F:快速扫描。只对常见端口进行扫描,而不是对所有的65535个端口进行扫描。**
  • **T参数:用于设置扫描的速度/侦察级别。T5是最快的扫描速度,而T0则是最慢的扫描速度。**
  • **-min-rate-max-retries参数:可以控制nmap发送探测包的速率和重试次数,进而影响扫描的速度。**
  • **-host-timeout参数:可以设置主机超时时间,当一个主机长时间没有响应时,nmap会跳过该主机,从而加快扫描速度。**

Nmap 脚本

1
2
**nmap --script dns-zone-transfer.nse \
--script-args dns-zone-transfer.domain=<domain>**
1
2
**nmap --script firewall-bypass <target>
nmap --script firewall-bypass --script-args firewall-bypass.helper="ftp", firewall-bypass.targetport=22 <target>**
1
2
3
4

**nmap --script hostmap-crtsh --script-args 'hostmap-crtsh.prefix=hostmap-' <targets>
nmap -sn --script hostmap-crtsh <target>
通过查询Google的证书透明度日志数据库(https://crt.sh)查找Web服务器的子域。**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
**实用脚本集合
通过查询http://ip.robtex.com/上的在线Robtex服务,发现解析为目标IP地址的主机名。
nmap --script hostmap-robtex -sn -Pn scanme.nmap.org

搜索网站并尝试识别已发现文件的备份副本。它通过请求一些不同的文件名组合(例如,index.bak、index.html~、index.html的副本)。
nmap --script=http-backup-finder <target>

对http basic、digest和ntlm身份验证执行强力密码审核。
nmap --script http-brute -p 80 <host>

HTTP响应中提取并输出HTMLJavaScript注释。
nmap -p80 --script http-comments-displayer.nse <host>

检查通用内容管理系统和Web服务器配置文件的备份和交换文件。
nmap --script=http-config-backup <target>

使用各种Web应用程序和设备使用的默认凭据测试访问。
nmap -p80 --script http-default-accounts host/ip

通过将User-Agent更改为“secret”值来检测某些D-Link路由器上的固件后门。使用“秘密”User-Agent绕过身份验证,并允许管理员访问路由器。
nmap -sV --script http-dlink-backdoor <target>

枚举流行的Web应用程序和服务器使用的目录。
nmap -sV --script=http-enum <target>

利用Web应用程序中不安全的文件上传表单,使用各种技术,如更改Content-type头或创建包含注释中有效负载的有效图像文件。
nmap -p80 --script http-fileupload-exploiter.nse <target>

对基于http表单的身份验证执行强力密码审核。
nmap --script http-form-brute -p 80 <host>

尝试通过执行HTTP谓词篡改绕过密码保护的资源(HTTP 401状态)。如果未设置要检查的路径数组,它将爬网Web服务器,并对找到的任何受密码保护的资源执行检查。
nmap -sV --script http-method-tamper <target>
nmap -p80 --script http-method-tamper --script-args 'http-method-tamper.paths={/protected/db.php,/protected/index.php}' <target>

通过尝试检索 /etc/passwd 或 \boot.ini 来检查Web服务器是否容易受到目录遍历的攻击。
nmap --script http-passwd --script-args http-passwd.root=/test/ <target>

HTTP服务器上搜索包含易受SQL注入攻击的查询的URL。它还从找到的网站中提取表单,并试图识别易受攻击的字段。
nmap -sV --script=http-sql-injection <target>

利用多个TP-Link无线路由器中存在的目录遍历漏洞进行攻击。攻击者可以利用此漏洞远程读取任何配置和密码文件,而无需进行身份验证。
nmap -p80 --script http-tplink-dir-traversal.nse <target>
nmap -p80 -Pn -n --script http-tplink-dir-traversal.nse <target>
nmap -p80 --script http-tplink-dir-traversal.nse --script-args rfile=/etc/topology.conf -d -n -Pn <target>

尝试检测Wordpress 4.7.04.7.1中的权限提升漏洞,该漏洞允许未经身份验证的用户在帖子中注入内容。
nmap --script http-vuln-cve2017-1001000 --script-args http-vuln-cve2017-1001000="uri" <target>
nmap --script http-vuln-cve2017-1001000 <target>

检测指定的URL是否容易受到Apache Struts远程代码执行漏洞(CVE-2017-5638)的攻击。
nmap -p <port> --script http-vuln-cve2017-5638 <target>

检测采用英特尔主动管理技术的系统是否容易受到INTEL-SA-00075权限提升漏洞(CVE 2017 -5689)的攻击。
nmap -p 16992 --script http-vuln-cve2017-5689 <target>

通过使用恶意负载探测Web服务器并检测响应代码和正文中的更改,尝试确定Web服务器是否受IPS(入侵防御系统)、IDS(入侵检测系统)或WAFWeb应用程序防火墙)保护。
nmap -p80 --script http-waf-detect <host>
nmap -p80 --script http-waf-detect --script-args="http-waf-detect.aggro,http-waf-detect.uri=/testphp.vulnweb.com/artists.php" www.modsecurity.org

尝试检测Web应用程序防火墙的存在及其类型和版本。
nmap --script=http-waf-fingerprint <targets>
nmap --script=http-waf-fingerprint --script-args http-waf-fingerprint.intensive=1 <targets>

试图利用java的远程调试端口。当远程调试端口保持打开状态时,可以注入java字节码,实现远程代码执行。这个脚本滥用这个特性来注入和执行一个Java类文件,这个文件执行提供的shell命令并返回它的输出。
nmap -sT <target> -p <port> --script=+jdwp-exec --script-args cmd="date"

试图利用java的远程调试端口。当远程调试端口保持打开状态时,可以注入java字节码,实现远程代码执行。这个脚本注入并执行一个返回远程系统信息的Java类文件。
nmap -sT <target> -p <port> --script=+jdwp-info

试图利用java的远程调试端口。当远程调试端口保持打开状态时,可以注入java字节码,实现远程代码执行。此脚本允许注入任意类文件。
nmap -sT <target> -p <port> --script=+jdwp-inject --script-args filename=HelloWorld.class

尝试强制LDAP身份验证。默认情况下,它使用内置的用户名和密码列表。为了使用您自己的列表,请使用 userdb 和 passdb 脚本参数。
nmap -p 389 --script ldap-brute --script-args ldap.base='"cn=users,dc=cqure,dc=net"' <host>

MySQL执行密码猜测。
nmap --script=mysql-brute <target>

尝试列出MySQL服务器上的所有数据库。
nmap -sV --script=mysql-databases <target>

尝试列出MySQL服务器上的所有用户。
nmap -sV --script=mysql-users <target>

检测易受远程代码执行漏洞(称为MS 08 -067)攻击的Microsoft Windows系统。这种检查是危险的,它可能会使系统崩溃。
nmap --script smb-vuln-ms08-067.nse -p445 <host>
nmap -sU --script smb-vuln-ms08-067.nse -p U:137 <host>

尝试检测Microsoft SMBv 1服务器是否易受远程代码执行漏洞(ms 17 -010,即EternalBlue)。该漏洞被WannaCryPetya勒索软件以及其他恶意软件积极利用。
nmap -p445 --script smb-vuln-ms17-010 <target>
nmap -p445 --script vuln <target>

对ssh服务器执行暴力密码猜测。
nmap -p 22 --script ssh-brute --script-args userdb=users.lst,passdb=pass.lst \
--script-args ssh-brute.timeout=4s <target>

VNC服务器执行强力密码审核。
nmap --script vnc-brute -p 5900 <host>

漏洞扫描
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target>**

防火墙/入侵检测 绕过

  • nmap -sS -T4 使用-sS 识别被拦截的端口
  • nmap -sF 使用fin扫描
  • 使用 -6 ipv6扫描
  • TCP FTP反弹扫描( -b
  • --scan-delay 1075ms 指定延长扫描时间绕过检测
  • **nmap -p 80,443 --script-args http.useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" -A <domain> 修改默认ua头**

NCAT 🥺

使用技巧

  • -p 指定源端口
  • -s 指定绑定源地址
  • -l 监听
  • -m 最大连接数,默认100,windows默认60
  • -k 通常,侦听服务器只接受一个连接,然后在连接关闭时退出。此选项使其接受多个同时连接,并在所有连接关闭后等待更多连接。
  • **--broker (连接代理) 允许多方连接到集中的Ncat服务器并相互通信。Ncat可以代理位于NAT之后或无法直接连接的系统之间的通信。此选项与 --listen 一起使用,这会使 --listen 端口启用代理模式。**
  • **--chat (临时“聊天服务器”)**
  • **-e *<command>*--exec *<command>* (执行命令)建立连接后执行指定的命令。命令必须指定为完整路径名。**
  • **-c *<command>*--sh-exec *<command>* (通过sh执行命令)**
  • **--allow ip1 ,ip2 指定的主机列表将是唯一允许连接到Ncat进程的主机。所有其他连接尝试都将被断开。如果 --allow--deny 之间存在冲突,则优先使用 --allow 。主机规范遵循Nmap使用的相同语法。**
  • **--allowfile 这与 --allow 具有相同的功能,除了允许的主机是在一个新行分隔的允许文件中提供的,而不是直接在命令行上提供的。**
  • **--deny --denyfile 拒绝连接,同上**
  • **-i *<time>*--idle-timeout *<time>* (指定空闲超时),为空闲连接设置固定超时。如果达到空闲超时,则连接终止。可用于传文件,传输完成后指定延时退出**

参考文章 💣

啊,再见了,再见了,哈

我们会再见的对么

再见你要幸福

燕子,燕子