如何猥琐的进行端口扫描(Nmap扫描特征去除)

admin 2023年12月12日02:55:06评论72 views字数 11645阅读38分49秒阅读模式

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

简介 🤩

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(http://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 脚本

  • • **https://nmap.org/nsedoc/lib/(https://nmap.org/nsedoc/lib/)  脚本库**

  • • **https://nmap.org/nsedoc/scripts/(https://nmap.org/nsedoc/scripts/)  nmap 官方 600+脚本介绍**

  • • **https://nmap.org/nsedoc/scripts/dns-zone-transfer.html(https://nmap.org/nsedoc/scripts/dns-zone-transfer.html)  dns区域传输**

  • **-sC   它相当于 --script=default**

  • nmap --script  scriptname

  • **--script-updatedb  更新脚本数据库**

  • **--script-args *<n1>*=*<v1>*,*<n2>*={*<n3>*=*<v3>*},*<n4>*={*<v4>*,*<v5>*}  设置脚本参数**

**nmap --script dns-zone-transfer.nse      --script-args dns-zone-transfer.domain=<domain>**

  • • **https://nmap.org/nsedoc/scripts/firewall-bypass.html(https://nmap.org/nsedoc/scripts/firewall-bypass.html)  防火墙绕过**

**nmap --script firewall-bypass <target>nmap --script firewall-bypass --script-args firewall-bypass.helper="ftp", firewall-bypass.targetport=22 <target>**

  • **nmap --script ftp-brute -p 21 <host>    ftp爆破**

  • **nmap --script hostmap-bfk --script-args hostmap-bfk.prefix=hostmap- <targets>  通过查询http://www.bfk.de/bfk_dnslogger.html上的联机数据库,发现解析为目标IP地址的主机名。**

  • crt证书透明子域名查询


**nmap --script hostmap-crtsh --script-args 'hostmap-crtsh.prefix=hostmap-' <targets>nmap -sn --script hostmap-crtsh <target>通过查询Google的证书透明度日志数据库(https://crt.sh)查找Web服务器的子域。**


**实用脚本集合通过查询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响应中提取并输出HTML和JavaScript注释。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.0和4.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(入侵检测系统)或WAF(Web应用程序防火墙)保护。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)。该漏洞被WannaCry和Petya勒索软件以及其他恶意软件积极利用。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头**

  • -sV  参数默认指定端口 443、444、465、636、989、990、992、993、994、995、1241、1311、2252、3388、3389、4433、4444、5061、6679  9001  6697  ,  8883  ,  ,  ,  8443  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _  _ 。尝试修改目标端口绕过这一特征。

  • • 流量中包含frame contains random1random2random3random4

  • • Kerberos 消息发送到系统 :字段中包含NM ,krbget/NM frame contains 00:00:71:6a:81:6e:30:81:6b:a1:03:02:01:05:a2:03:02:01:0a:a4:81:5e:30:5c:a0:07:03:05:00:50:80:00:10:a2:04:1b:02:4e:4d:a3:17:30:15:a0:03:02:01:00:a1:0e:30:0c:1b:06:6b:72:62:74:67:74:1b:02:4e:4d:a5:11:18:0f:31:39:37:30:30:31:30:31:30:30:30

  • • 发送了giop协议,包含abcdef字段。giop && frame contains abcdef

  • • SIP协议中存在特定消息:SIP:nm@nm。可尝试修改文件内容   Probe TCP SIPOptions q|OPTIONS sip:nm SIP/2.0rnVia: SIP/2.0/TCP nm;branch=foornFrom: sip:nm@nm;tag=rootrnTo: sip:nm2@nm2rnCall-ID: 50000rnCSeq: 42 OPTIONSrnMax-Forwards: 70rnContent-Length: 0rnContact: sip:nm@nmrnAccept: application/sdprnrn|

  • • 发送rdp探测时会发送nmap字段的cookie。local cookie = "mstshash=nmap”。尝试修改rdp.lua文件

  • • 特定于 Nmap 的 URI。GET /nice%20ports%2C/Tri%6Eity.txt%2ebak HTTP/1.0

  • • versant.lua 文件中不指定用户会默认使用nmap账户

  • • 网络请求中,通常发送到远程主机的第一个连接请求使用 16K(16,384 字节)。如果出现问题,将会放大 4 倍,最终达到 64Kb。nmap默认64Kb发送。

  • • 总结:在使用-sV 的时候修改默认请求数据包。

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>* (指定空闲超时),为空闲连接设置固定超时。如果达到空闲超时,则连接终止。可用于传文件,传输完成后指定延时退出**

参考文章 💣

  • • **https://nmap.org/book/toc.html(https://nmap.org/book/toc.html)  nmap官方book**

  • Man 手册




原文始发于微信公众号(人遁安全):如何猥琐的进行端口扫描(Nmap扫描特征去除)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月12日02:55:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何猥琐的进行端口扫描(Nmap扫描特征去除)https://cn-sec.com/archives/2262757.html

发表评论

匿名网友 填写信息