DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4199|回复: 0

[红队] 扫描与主动侦察

[复制链接]

172

主题

34

回帖

30

荣誉

Rank: 9Rank: 9Rank: 9

UID
2
积分
339
精华
1
沃币
2 枚
注册时间
2021-6-24

论坛管理

发表于 2022-2-28 11:28:53 | 显示全部楼层 |阅读模式

一、发现 Host


1.1 工具


  • Fierce - Fierce 是一款半轻量级别的扫描器,可帮助针对指定域定位不连续的 IP 空间和主机名。它实际上是作为 nmap、unicornscan、nessus、nikto 等的前导,因为所有这些都要求你已经知道要查找的 IP 空间;
  • hosthunter - 该软件包包含一个工具,可有效发现和提取提供大量目标 IP 地址的主机名。HostHunter 利用简单的 OSINT 技术将 IP 地址与虚拟主机名映射;

1.2 Host 命令


Name Servers
  1. $ host -t ns domain.com
复制代码

Email Server
  1. $ host -t mx domain.com
复制代码

1.3 ICMP


  1. #ping -c 1 199.66.11.4    #1 echo request to a host
  2. #fping -sagq 192.168.0.0/24 #Send echo requests to ranges
  3. #nmap -PEPM -sP -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
复制代码

1.4 ARP


arp-scan - 发送 arp 请求以查找链路层设备
  1. #sudo arp-scan -l
  2. #nmap -sn <Network> #ARP Requests (Discover IPs)
  3. #netdiscover -r <Network> #ARP requests (Discover IPs)
复制代码

1.5 NBT


  1. nbtscan -r 192.168.0.1/24 #Search in Domain
复制代码

1.6 Bettercap2


Bettercap2 - https://github.com/bettercap/bettercap
  1. net.probe on/off #Activate all service discover and ARP
  2. net.probe.mdns #Search local mDNS services (Discover local)
  3. net.probe.nbns #Ask for NetBios name (Discover local)
  4. net.probe.upnp # Search services (Discover local)
  5. net.probe.wsd # Search Web Services Discovery (Discover local)
  6. 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],则将数据包发送到广播以太网 (广播 MAC 将是被重复的那个)。
  1. #WOL (without MAC is used ff:...:ff)
  2. wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
  3. wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
  4. ## Bettercap2 can also be used for this purpose
复制代码

二、端口扫描


  • Open port: SYN --> SYN/ACK --> RST
  • Closed port: SYN --> RST/ACK
  • Filtered port: SYN --> [NO RESPONSE]
  • Filtered port: SYN --> ICMP message

2.1 NMAP


2.1.1 资源



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 [filename] - 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 基本扫描


  1. #nmap [IP Address] or nmap [website.com]
复制代码

2.1.2.3 指定端口


Top Ports
  1. #nmap [IP Address] --top-ports
复制代码

All Ports
  1. #nmap -p- [IP Address]
复制代码

UDP Ports
  1. #nmap -sU [IP Address]
复制代码

TCP Ports (Connect Scan)
  1. #nmap -sT [IP Address]
复制代码

Quick TCP Scan
  1. nmap -sC -sV -vv -oA quick 10.10.10.10
复制代码

Quick UDP Scan
  1. nmap -sU -sV -vv -oA quick_udp 10.10.10.10
复制代码

Full TCP Scan
  1. nmap -sC -sV -p- -vv -oA full 10.10.10.10
复制代码

2.1.2.4 Port knock


  1. 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 网络扫描


针对感兴趣的主机进行广泛扫描
  1. #nmap -sn 10.0.0.1-254
复制代码

2.1.2.5 Banner grabbing


  1. nmap -sV -v -p- [IP Address]
复制代码

2.1.2.6 操作系统扫描


  1. #sudo nmap -O -sV [IP Address]
复制代码

  • -osscan-guess 提供更快、更积极的扫描,这在 Nmap 检索到接近 100% 的操作系统检测时很有用,但是,激进的扫描可能会导致丢失某些端口
  • --osscan-limit 是一个用于限制要扫描的目标的选项,当你要扫描的 IP 范围很大时,此选项很有用

2.1.3 NSE - Nmap 脚本引擎


Nmap 脚本引擎 (NSE) 允许用户运行自定义和社区生成的脚本,存放在 /usr/share/nmap/scripts,运行 Nmap 脚本的最基本方法是使用 -sC 选项,调用默认脚本
  1. #nmap -sV -sC 192.168.1.1
复制代码

要针对目标运行特定脚本,必须在命令中指定脚本的名称
  1. #nmap -sV --script http-sql-injection.nse 192.168.1.1
复制代码

除了指定脚本的名称外,有时还需要指定参数以实现所需的行为
  1. #nmap --script http-wordpress-brute.nse --script-args ‘passdb=passwords.txt’ 192.168.1.1
  2. #nmap -sV --script mysql-dump-hashes 10.102.9.39 --script-args='username=root,password=abc123'
复制代码

针对找到的端口运行所有 NSE 脚本
  1. $nmap -Pn -sV -O -pT:{TCP ports found},U:{UDP ports found} --script *vuln* $ip
复制代码

2.1.3.1 vulscan


vulscan - 使用 Nmap NSE 进行高级漏洞扫描
  1. $ mkdir /usr/share/nmap/scripts/vulnscan
  2. $ cd /usr/share/nmap/scripts/vulnscan
  3. $ git clone https://github.com/scipag/vulscan.git
  4. $ nmap -sS -sV --script=/usr/share/nmap/scripts/vulnscan/vulscan.nse $ip
复制代码


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 的最佳视频系列之一


2.2 Masscan


Masscan 是一个互联网规模的端口扫描器,可以在 5 分钟内扫描整个互联网,从单台机器每秒传输 1000 万个数据包。
  1. # sudo apt install masscan
  2. # sudo masscan -p [port(s)] [IP CIDR]
复制代码

  • -oL [log file]
  • -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)
  • knocker - Knocker 是一种新的、简单且易于使用的 TCP 安全端口扫描程序,使用 C 语言编写,使用线程,能够分析主机及其上运行的网络服务
  • unicornscan - Unicornscan 是对用户级分布式 TCP/IP 堆栈的尝试,旨在为研究人员提供一个高级接口,用于将刺激引入启用 TCP/IP 的设备或网络并测量来自启用 TCP/IP 的设备或网络的响应

视频:https://www.youtube.com/watch?v=X_DdYUeKS-o

2.4 端口手动检测


Netcat banner grab
  1. nc -v 10.10.10.10 port
复制代码

Telnet banner grab
  1. telnet 10.10.10.10 port
复制代码

三、应用程序检测


AMAP - 尝试识别应用程序,即使它们在与正常不同的端口上运行
  1. $ amap -d $ip <port>
复制代码

四、漏洞扫描


  • BTFM: Scanning and Vulnerabilities - pg. 11
  • Penetration Testing: Finding Vulnerabilities - pg.133

4.1 Nessus


Nessus - 网络上最流行的漏洞扫描工具

命令

4.2 OpenVAS


OpenVAS - 开源的漏洞评估扫描器,免费并预安装在 Kali Linux 上

命令
  • 设置
    • # 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) 平台,可帮助软件工程师和信息安全专业人员在安全项目上进行协作,从规划到实施和文档,目的是在尽可能短的时间内从侦察到报告
  • Vulmap - Vulmap 在线本地漏洞扫描程序项目
  • 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 [ip]


五、攻击面映射/资产发现



5.1 Amass



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 是一个用于网络侦察的开源框架,依赖开源的知名工具 (NmapMasscanZGrab2ZDNSZeek (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 [domain]
    • -t [mx, txt, cname, etc] 要返回的特定记录,默认为 A 记录
  • DNS 区域传输 - 真实 dns 服务器之间的数据库复制
  • DNSRecon - DNS 枚举脚本 [url=DNSRecon - DNS 枚举脚本 - https://github.com/darkoperator/dnsrecon]https://github.com/darkoperator/dnsrecon[/url]
  • DNSenum
    • #dnsrecon -d [domain] -t axfr
      • -d specify domain
      • -t specify the type of enumeration
    • #dnsrecon -d [domain] -D ~/name.txt -t brt
      • 这将暴力破解主机名
    • # dnsenum [domain]

视频: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) 功能的工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|DecoyMini 技术交流社区 ( 京ICP备2021005070号 )

GMT+8, 2024-5-19 10:16 , Processed in 0.061598 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表