扫描与主动侦察
一、发现 Host1.1 工具
[*]Fierce - Fierce 是一款半轻量级别的扫描器,可帮助针对指定域定位不连续的 IP 空间和主机名。它实际上是作为 nmap、unicornscan、nessus、nikto 等的前导,因为所有这些都要求你已经知道要查找的 IP 空间;
[*]hosthunter - 该软件包包含一个工具,可有效发现和提取提供大量目标 IP 地址的主机名。HostHunter 利用简单的 OSINT 技术将 IP 地址与虚拟主机名映射;
1.2 Host 命令
Name Servers
$ host -t ns domain.com
Email Server
$ host -t mx domain.com
1.3 ICMP
#ping -c 1 199.66.11.4 #1 echo request to a host
#fping -sagq 192.168.0.0/24 #Send echo requests to ranges
#nmap -PEPM -sP -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
1.4 ARP
arp-scan - 发送 arp 请求以查找链路层设备
#sudo arp-scan -l
#nmap -sn <Network> #ARP Requests (Discover IPs)
#netdiscover -r <Network> #ARP requests (Discover IPs)
1.5 NBT
nbtscan -r 192.168.0.1/24 #Search in Domain
1.6 Bettercap2
Bettercap2 - https://github.com/bettercap/bettercap
net.probe on/off #Activate all service discover and ARP
net.probe.mdns #Search local mDNS services (Discover local)
net.probe.nbns #Ask for NetBios name (Discover local)
net.probe.upnp # Search services (Discover local)
net.probe.wsd # Search Web Services Discovery (Discover local)
net.probe.throttle 10 #10ms between requests sent (Discover local)
1.7 Wake On Lan
Wake On Lan 用于通过网络消息打开计算机,用于打开计算机的 magic 包只是一个提供 MAC Dst 的包,然后在同一个包内重复 16 次,然后这种数据包通常在以太网 0x0842 或 UDP 数据包中发送到端口 9。如果没有提供 ,则将数据包发送到广播以太网 (广播 MAC 将是被重复的那个)。
#WOL (without MAC is used ff:...:ff)
wol.eth #Send a WOL as a raw ethernet packet of type 0x0847
wol.udp #Send a WOL as an IPv4 broadcast packet to UDP port 9
## Bettercap2 can also be used for this purpose
二、端口扫描
[*]Open port: SYN --> SYN/ACK --> RST
[*]Closed port: SYN --> RST/ACK
[*]Filtered port: SYN -->
[*]Filtered port: SYN --> ICMP message
2.1 NMAP
2.1.1 资源
[*]https://nmap.org/book/toc.html
[*]NSEDoc Reference Portal
[*]Ultimate List of Nmap NSE Scripts (Interactive Spreadsheet) - InfosecMatter
[*]https://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717
[*]https://blogs.sans.org/pen-testing/files/2013/10/NmapCheatSheetv1.1.pdf
[*]https://nmap.org/book/man-nse.html
[*]https://blog.zsec.uk/nmap-rtfm/
[*]https://gtfobins.github.io/gtfobins/nmap/
[*]Nmap for Pentester: Host Discovery
[*]Nmap for Pentester: Output Format Scan
[*]Nmap for Pentester: Vulnerability Scan
[*]Nmap for Pentester: Timing Scan
[*]Nmap for Pentester: Ping Scan
[*]Nmap for Pentester: Port Status
[*]Nmap for Pentester: Password Cracking
[*]Operator Handbook: NMAP - pg. 222
[*]Penetration Testing: Port Scanning with NMAP - pg.125
2.1.2 命令
2.1.2.1 方便选项
[*]-sS - Stealthy SYN scan
[*]-sV - Loud version scan, will make complete connection, grab banner, and version info
[*]-A - run service enumeration scripts
[*]-oA - Print nmap output to file name
[*]-Pn - disable ping. Most big companies will have ping diabled on most external entities
[*]-n - disable DNS resolution, helps speed up scan
2.1.2.2 基本扫描
#nmap or nmap
2.1.2.3 指定端口
Top Ports
#nmap --top-ports
All Ports
#nmap -p-
UDP Ports
#nmap -sU
TCP Ports (Connect Scan)
#nmap -sT
Quick TCP Scan
nmap -sC -sV -vv -oA quick 10.10.10.10
Quick UDP Scan
nmap -sU -sV -vv -oA quick_udp 10.10.10.10
Full TCP Scan
nmap -sC -sV -p- -vv -oA full 10.10.10.10
2.1.2.4 Port knock
for x in 7000 8000 9000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x 10.10.10.10; done
2.1.2.5 网络扫描
针对感兴趣的主机进行广泛扫描
#nmap -sn 10.0.0.1-254
2.1.2.5 Banner grabbing
nmap -sV -v -p-
2.1.2.6 操作系统扫描
#sudo nmap -O -sV
[*]-osscan-guess 提供更快、更积极的扫描,这在 Nmap 检索到接近 100% 的操作系统检测时很有用,但是,激进的扫描可能会导致丢失某些端口
[*]--osscan-limit 是一个用于限制要扫描的目标的选项,当你要扫描的 IP 范围很大时,此选项很有用
2.1.3 NSE - Nmap 脚本引擎
Nmap 脚本引擎 (NSE) 允许用户运行自定义和社区生成的脚本,存放在 /usr/share/nmap/scripts,运行 Nmap 脚本的最基本方法是使用 -sC 选项,调用默认脚本
#nmap -sV -sC 192.168.1.1
要针对目标运行特定脚本,必须在命令中指定脚本的名称
#nmap -sV --script http-sql-injection.nse 192.168.1.1
除了指定脚本的名称外,有时还需要指定参数以实现所需的行为
#nmap --script http-wordpress-brute.nse --script-args ‘passdb=passwords.txt’ 192.168.1.1
#nmap -sV --script mysql-dump-hashes 10.102.9.39 --script-args='username=root,password=abc123'
针对找到的端口运行所有 NSE 脚本
$nmap -Pn -sV -O -pT:{TCP ports found},U:{UDP ports found} --script *vuln* $ip
2.1.3.1 vulscan
vulscan - 使用 Nmap NSE 进行高级漏洞扫描
$ mkdir /usr/share/nmap/scripts/vulnscan
$ cd /usr/share/nmap/scripts/vulnscan
$ git clone https://github.com/scipag/vulscan.git
$ nmap -sS -sV --script=/usr/share/nmap/scripts/vulnscan/vulscan.nse $ip
[*]https://hakin9.org/vulscan-advanced-vulnerability-scanning-with-nmap-nse/
[*]https://www.computec.ch/projekte/vulscan/
2.1.4 逃避 IDS 和 IPS
2.1.4.1 TTL 操作
发送一些 TTL 足以到达 IDS/IPS 但不足以到达最终系统的数据包,然后,发送另一个与其他数据包具有相同序列的数据包,这样 IPS/IDS 就会认为它们是重复的,不会检查它们,但它们确实携带了恶意内容
Nmap 选项:--ttlvalue <value>
2.1.4.2 避免特征检测
只需将垃圾数据添加到数据包中即可避免 IPS/IDS 检测出特征
Nmap 选项:--data-length 25
2.1.4.3 分片数据包
只需对数据包进行分段并发送它们,如果 IDS/IPS 没有能力重新组装它们,它们将到达最终主机
Nmap 选项:-f
2.1.4.4 无效的校验和
出于性能原因,传感器通常不计算校验和,因此,攻击者可以发送一个数据包,该数据包将被传感器解释但被最终主机拒绝。示例:发送带有 RST 标志和无效校验和的数据包,因此,IPS/IDS 可能认为该数据包将关闭连接,但最终主机将丢弃该数据包,因为校验和无效
2.1.4.5 不常见的 IP 和 TCP 选项
传感器可能会忽略在 IP 和 TCP 标头中设置了某些标志和选项的数据包,而目标主机在收到数据包时会接受该数据包
2.1.4.6 Overlapping
当对数据包进行分段时,数据包之间可能存在某种 overlapping (可能数据包 2 的前 8 个字节与数据包 1 的后 8 个字节 overlapping,数据包 2 的最后 8 个字节与数据包 3 的前 8 个字节 overlapping),然后如果 IDS/IPS 以不同于最终主机的方式重新组装它们,则会解释不同的数据包。或者可能会出现 2 个具有相同偏移量的数据包,主机必须决定接收哪个数据包
[*]BSD:优先选择偏移量较小的数据包,对于具有相同偏移量的数据包,它将选择第一个
[*]Linux:与 BSD 类似,但它更喜欢具有相同偏移量的最后一个数据包
[*]First (Windows):第一个出现的值,留下的值
[*]Last (cisco):最后的值,留下的值
2.1.5 视频介绍
Hackersploit 拥有关于使用 NMAP 的最佳视频系列之一
[*]https://www.youtube.com/watch?v=5MTZdN9TEO4
[*]https://www.youtube.com/watch?v=VFJLMOk6daQ
[*]https://www.youtube.com/watch?v=OUQkCAHdX_g
2.2 Masscan
Masscan 是一个互联网规模的端口扫描器,可以在 5 分钟内扫描整个互联网,从单台机器每秒传输 1000 万个数据包。
# sudo apt install masscan
# sudo masscan -p
[*]-oL
[*]-e specify interface
[*]--rate rate of packet transmission
[*]--router-ip - specify the IP address for the appropriate gateway
2.3 其它端口扫描工具
[*]WebMap - Nmap Web 仪表板和报告
[*]Scantron - Scantron 是一个分布式 nmap 和 Masscan 扫描仪,由两个组件组成。第一个是一个控制台节点,包含一个用于调度扫描和存储扫描目标和结果的 Web 前端。第二个组件是从控制台提取扫描作业并进行实际扫描的引擎
[*]Scanless - 这是一个 Python 3 命令行实用程序和库,可以代表执行端口扫描的网站
[*]naabu - 一个用 go 编写的快速端口扫描器,专注于可靠性和简单性。旨在与其他工具结合使用,以在 Bug 赏金和渗透测试中发现攻击面
[*]RustScan - 现代端口扫描器,快速查找端口 (最快 3 秒),通过脚本引擎运行脚本 (支持 Python、Lua、Shell)
[*]https://reconshell.com/rustscan-faster-port-scanning-tool/
[*]knocker - Knocker 是一种新的、简单且易于使用的 TCP 安全端口扫描程序,使用 C 语言编写,使用线程,能够分析主机及其上运行的网络服务
[*]unicornscan - Unicornscan 是对用户级分布式 TCP/IP 堆栈的尝试,旨在为研究人员提供一个高级接口,用于将刺激引入启用 TCP/IP 的设备或网络并测量来自启用 TCP/IP 的设备或网络的响应
[*]https://linuxhint.com/unicornscan_beginner_tutorial/
视频:https://www.youtube.com/watch?v=X_DdYUeKS-o
2.4 端口手动检测
Netcat banner grab
nc -v 10.10.10.10 port
Telnet banner grab
telnet 10.10.10.10 port
三、应用程序检测
AMAP - 尝试识别应用程序,即使它们在与正常不同的端口上运行
$ amap -d $ip <port>
四、漏洞扫描
[*]BTFM: Scanning and Vulnerabilities - pg. 11
[*]Penetration Testing: Finding Vulnerabilities - pg.133
4.1 Nessus
Nessus - 网络上最流行的漏洞扫描工具
[*]Nessus 指南入门 - https://www.tenable.com/blog/getting-started-with-nessus-on-kali-linux
[*]Nessus Essentials (家庭版) - https://www.tenable.com/products/nessus/nessus-essentials
[*]https://www.infosecmatter.com/install-nessus-and-plugins-offline-tutorial-with-pictures/
命令
[*]手动下载和安装 - https://www.tenable.com/downloads/nessus
[*]#sudo apt install ./Nessus-X.X.X.deb
[*]开启 nessus 服务
[*]#sudo /etc/init.d/nessusd start
[*]Browser > https://localhost:8834
4.2 OpenVAS
OpenVAS - 开源的漏洞评估扫描器,免费并预安装在 Kali Linux 上
[*]https://docs.greenbone.net/
[*]https://www.kali.org/tools/gvm/
命令
[*]设置
[*]# openvas-setup
[*]更新
[*]# openvas-feed-update
[*]设置和更新后,检查监听端口以查看 OpenVAS 是否处于活动状态
[*]#ss -lnt4
[*]导航到 WebUI
[*]https://127.0.0.1:9392
视频:
https://www.youtube.com/watch?v=fEANg6gyV5A
https://www.youtube.com/watch?v=koMo_fSQGlk
4.3 其它扫描工具
[*]Reconmap - Reconmap 是一个漏洞评估和渗透测试 (VAPT) 平台,可帮助软件工程师和信息安全专业人员在安全项目上进行协作,从规划到实施和文档,目的是在尽可能短的时间内从侦察到报告
[*]https://github.com/reconmap/reconmap
[*]Vulmap - Vulmap 在线本地漏洞扫描程序项目
[*]https://vulmon.com/
[*]Vuls - Linux/FreeBSD 的用 Go 编写的无代理漏洞扫描器
[*]Tsunami - Tsunami 是一个通用的网络安全扫描器,带有一个可扩展的插件系统,用于以高可信度检测高严重性漏洞
[*]Flan Scan - Flan Scan 是一个轻量级的网络漏洞扫描器,使用 Flan Scan 可以轻松找到网络上的开放端口、识别服务及其版本,并获取影响你的网络相关 CVE 列表
[*]NSE Nmap Scripts - NSE 脚本可以执行各种扫描技术来枚举服务和扫描特定漏洞的目标
[*]显示所有可用脚本及其详细信息
[*]# nmap --script-help default
[*]显示所有 vuln/exploit 脚本
[*]# cat script.db | grep '"vuln"\|"exploit"'
[*]运行 "vuln" 类别中的所有脚本
[*]# sudo nmap --script vuln
五、攻击面映射/资产发现
[*]Awesome Lists Collection: Asset Discovery
[*]https://redhuntlabs.com/
5.1 Amass
[*]Amass - OWASP Amass 项目使用开源信息收集和主动侦察技术执行攻击面的网络映射和外部资产发现
[*]Hakluke 的 Amass 指南 - https://medium.com/@hakluke/haklukes-guide-to-amass-how-to-use-amass-more-effectively-for-bug-bounties-7c37570b83f7
[*]Dionach 的 Amass 指南 - https://www.dionach.com/blog/how-to-use-owasp-amass-an-extensive-tutorial/
[*]https://www.youtube.com/watch?v=mEQnVkSG19M
5.2 其它工具
[*]Intrigue - Intrigue Core 是一个用于发现攻击面的框架,在项目上下文中发现与安全相关的资产和暴露,并且可以与运行单个任务的人在循环中使用,或通过使用工作流实现自动化
[*]Odin - ODIN 是用于自动收集情报、资产发现和报告的 Python 工具
[*]AttackSurfaceMapper - AttackSurfaceMapper (ASM) 是一种侦察工具,它结合使用开源情报和主动技术来扩大目标的攻击面。输入一个或多个域、子域和 IP 地址,使用多种技术来查找更多目标
[*]Asnip - Asnip 检索目标组织的所有 IP,用于侦察阶段的攻击面映射
[*]Microsoft Attack Surface Analyzer - Attack Surface Analyzer 是 Microsoft 开发的开源安全工具,可分析目标系统的攻击面并报告在安装软件或系统错误配置期间引入的潜在安全漏洞
[*]Aquatone - Aquatone 是一种用于对大量主机上的网站进行视觉检查的工具,便于快速了解基于 HTTP 的攻击面
[*]https://blog.intigriti.com/2021/07/20/hacker-tools-aquatone/
[*]https://ivre.rocks/ - IVRE 是一个用于网络侦察的开源框架,依赖开源的知名工具 (Nmap、Masscan、ZGrab2、ZDNS 和 Zeek (Bro)) 来收集数据 (网络智能),将其存储在数据库中 (推荐使用 MongoDB 后端),并提供工具来分析它
六、SSL\TLS 扫描
[*]SSL Cipher Suite Enum - 枚举网络服务 (主要是 HTTPS) 支持的 SSL 密码套件的 Perl 脚本
[*]sslScrape - 通过 443 端口连接去除主机名形成证书
[*]SSLYZE - TLS/SSL 配置分析器
[*]tls_prober - 是一种用于识别 SSL/TLS 服务器正在使用的实现的工具。 它通过发送一系列探测然后将响应与已知签名的数据库进行比较来分析服务器的行为
[*]testssl.sh - 一个免费的命令行工具,用于检查任何端口上的服务器服务是否支持 TLS/SSL 密码、协议以及一些加密漏洞
七、DNS 扫描/枚举
7.1 命令
DNS 枚举
[*]Host 命令 - 查找与域关联的 IP 地址
[*]# host
[*]-t 要返回的特定记录,默认为 A 记录
[*]DNS 区域传输 - 真实 dns 服务器之间的数据库复制
[*]区域文件从主 DNS 复制到从服务器的位置
[*]使用先前主机命令的结果获取 DNS 服务器的主机名
[*]> host -l
[*]> host -l test.com ns1.test.com
[*]-l lists zones
[*]获取名称服务器命令
[*]host -t ns megacorpone.com | cut -d " " -f 4
[*]https://en.wikipedia.org/wiki/DNS_zone_transfer
[*]https://security.stackexchange.com/questions/10452/dns-zone-transfer-attack
[*]DNSRecon - DNS 枚举脚本 https://github.com/darkoperator/dnsrecon]https://github.com/darkoperator/dnsrecon
[*]DNSenum
[*]#dnsrecon -d -t axfr
[*]-d specify domain
[*] -t specify the type of enumeration
[*]#dnsrecon -d -D ~/name.txt -t brt
[*]这将暴力破解主机名
[*]# dnsenum
视频:https://www.youtube.com/watch?v=rQ-dc5kwRtU
八、其它扫描工具
[*]HoneyCaught - 蜜罐检测工具
[*]Sniffing Bear - 用 python 开发的模块化和分布式工具,用于扫描网络中的蜜罐
[*]https://honeyscore.shodan.io/ - Shodan 蜜罐检测器
[*]changeme - 这个包包含一个默认的凭证扫描器,changeme 支持 http/https、MSSQL、MySQL、Postgres、ssh 和 ssh w/key 协议
[*]SharpShare - 枚举当前域中的所有网络共享,此外,可以将名称解析为 IP 地址
[*]Phishious - 专为红队人员设计的开源安全电子邮件网关 (SEG) 评估工具包
[*]firewalk - Firewalk 是一种主动侦察网络安全工具,试图确定给定 IP 转发设备将通过哪些第 4 层协议
[*]ftester - 防火墙测试器 (FTester) 是一种设计用于测试防火墙过滤策略和入侵检测系统 (IDS) 功能的工具
页:
[1]