攻击思路及信息收集
攻击思路
流程
信息收集
域名收集
IP资源

服务信息收集

Web应用关键信息识别

漏洞探测
探测方式
- 手工
- 版本
- 原理
漏洞分类

漏洞利用

信息收集
Google Hacking

搜索引擎语法

国家代码

配置文件

备份文件

网站目录

错误配置

子域名


在线工具

IP探测

对IP的信息收集

常见端口服务


高风险端口服务

扫描工具

测绘平台
fofa、鹰图、zoomeye、Quake
系统识别

Nmap

安装

选项



主机发现

实现原理




端口扫描

实现原理
1、执行主机发现
2、向1000个常见端口发送SYN信息
可能的回应
- PST+ACK #该端口不接受TCP连接
- SYN+ACK #该端口接受TCP连接
- 无回应 #namp重新发送SYN信息,如果依然没有回应,可能为防火墙屏蔽了该数据包
sudo nmap IP --packet-trace --reason

根据回应信息,nmap判断一个端口为
关闭
开启
被过滤

UDP端口扫描
sudo nmap IP_adress -sU -p 53 --packet-trace --reason
如果发送TCP的SYN信息给一个UDP端口,会收到RST+ACK的回应标志着该端口是关闭状态,因此需要使用UDP的数据包扫描

当接受UDP信息,可能收到回应
ICMP信息显示该端口不可达
应用回应的信息(应用决定)
无回应信息
sudo nmap IP_adress -sU -p 53,68,161 --packet-trace --reason

根据回应信息,nmap判断一个UDP端口
关闭
开放
开放或过滤

UDP扫描弊端
大多数时候UDP扫描只能确定一个UDP端口是否关闭
UDP属于无状态属性协议,所以信息接收方不会发送ACK之类的消息回应,为使得结果更准确,对每个数据包都需要等待更长时间
UDP扫描速度远慢与TCP扫描
服务探测

图中结果显示服务类型并不准确,因为它根据常见端口号判断
20-FTP 80-HTTP
22-SSH 161-SNMP
25-SMTP 443-HTTPS
nmap服务探测
sudo nmap IP_adress -sV --packet-trace --reason

22号端口
80端口

3306端口

手动扫描
某些情况需要手动扫描,如
Nmap无法给出准确结果
需要执行更加隐蔽都扫描
无法使用Nmap
Ping扫描
for i in {1..40};
do
ping -c 1 192.168.0.$i >> /dev/null && echo "102.168.0.$i exist";done
端口扫描
for i in {1.。65536};
do
(echo 123 > /dev/tcp/192.168.0.2/$i && echo"port $i exist") 2>/dev/null; done
Script扫描
Nmap针对不同服务提供内置扫描脚本
cd /usr/share/nmap/scripts
ls | grep -i ssh

sudo nmap --script-help ssh-hostkey.nse
sudo nmap 192.168.2.0 -p 22 --script ssh-hostkey

sudo nmap --script-help ssh-hostkey.nse
nmap将这些脚本分成许多类别
细节描述查阅:
https://nmap.org/book/nse-usage.html#nse-category-exploit
https://nmap.org/nsedoc/categories/
使用某类脚本可以
sudo nmap IP_adress -p port_num --script vuln

nmap默认脚本类型
选择脚本作为默认类型基于
速度
实用
输出信息丰富程度
…
发起默认脚本扫描
sudo nmap IP_adress -p 80 --script default
sudo nmap IP_adress -p 80 -sC
Nmap参数优化
nmap在扫描时内置来
等待时长机制 timout
重传上限
可以调整参数来均衡效率和准确度
设置等待时长
nmap可以根据RTT在一定范围内动态都设置该参数
可以使用ping检测网络情况
--max-rtt-timeout 50ms
--initial-rtt-timeout 100ms
设置重传上限
nmap根据网络情况动态的设置该参数
若网络稳定,可以降为1
--max-retires 1
设置数据包发送速度
设置每秒最低发送速度
--min-rate =10000
时间模板
nmap提供来6种时间模板
每种时间模板都包含一系列参数
-T0—paranoid
-T1—sneaky
-T2—polite
-T3—normal
-T4—aggressive
-T5—insane
0<1<2<3<4<5,0为最慢,5为最快
T5:
--max-rtt-timeout 300ms --min-rtt-timeout 50ms
--initial-rtt-timeout 250ms max-retries 2--host-timeout 15m
--script-timeout 10m --max-scan-delay
扫描报告导出
nmap支持三种导出格式
oN:原始版本
oX:XML
oG:Grepable
oA:所有格式

可能存在的防御机制
防火墙
入侵检测系统(IDS)
入侵防御系统(IPS)
这些系统监控网络中的流量,根据设定鉴别恶意流量,采取行动
丢弃数据包
向管理员告警(IDS)
自动启用防御措施(IPS)
防火墙检测与绕过
nmap扫描结果中显示filtered port

reason1:防火墙丢弃该数据包并回应ICMP REJECT信息

reason2:防火墙丢弃数据包导致没有回应
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

reason3:Nmap设定了较短的max-rtt-timeout
如果防火墙存在,尝试探测防火墙规则
-sA TCP ACK扫描来探测防火墙的规则
一个端口收到单独的ACK信息时,会回复RST信息
ACK数据包很少被屏蔽
可以检测防火墙是否检测状态信息
ACK扫描无法检测一个端口的开放状态

绕过防火墙规则
修改源端口的地址
伪装为常见的数据流量(如DNS、SMTP)
绕过根据端口号进行流量屏蔽的防火墙
sudo nmap IP_address -sA -p 22,80,3306 --source-port 53
使用IPv6
部分防火墙规则只针对IPv4
sudo nmap www.pentest.com -6
IP分片
sudo nmap IP_address -f
检测IDS/IPS
准备VPS
执行激进扫描看有无阻断(无反应则无防御系统)
IP被屏蔽
非工作时间扫描后立刻屏蔽-IPS存在
扫描一段时间后被屏蔽-IDS存在
绕过IDS/IPS
扫描时附带其他IP
sudo nmap IP_address -D IP_address+1,IP_address+2,IP_address+3
- 隐藏真实IP地址

- 增加扫描的延迟避免达到IPS/IDS阈值
sudo nmap IP_address --scan-delay 50ms
- 对数据包分片
- 使用代理隐藏扫描的发起地址
域名

域名发现
横向主域发现
备案查询

SSL证书-Subject Alt Names
查看SSL证书中的Subject Alt Name
下图为证书X.509的一个扩展,允许多个域名共享一个SSL证书

子域名发现
oneforall主要功能
- 子域名爆破:通过字典文件对给定的主域名进行子域名猜测。
- 证书透明日志解析:从公开的SSL/TLS证书中提取与指定域名相关的子域名信息。
- DNS记录查询:查询并收集指定域名或IP地址的各种DNS记录类型(如A, AAAA, CNAME等)。
- 搜索引擎集成:利用各大搜索引擎API搜索可能包含目标子域名的网页内容。
- 结果去重整合:自动去除重复的结果,并根据需要输出到文件或其他格式。
子功能详解
子域名爆破
- 参数说明
-d <domain>: 指定目标域名。--wordlist <file>: 使用自定义字典文件路径。--thread <num>: 设置并发线程数,默认为50。--timeout <seconds>: 请求超时时间,默认为10秒。
证书透明日志解析
- 参数说明
-c <domain>: 需要查询的域名。--update: 更新本地CT日志数据库。--no-update: 不更新数据库直接使用现有数据。
DNS记录查询
- 参数说明
-t <type>: 查询特定类型的DNS记录(例如 A, MX, TXT 等)。--resolve: 解析IP地址对应的反向DNS名称。--ignore-wildcard: 忽略通配符DNS配置的影响。
搜索引擎集成
- 参数说明
--search-engine <engine>: 选择使用的搜索引擎 (如 Google, Bing)。--api-key <key>: 对应搜索引擎的API密钥。--max-results <number>: 最大返回结果数量限制。
结果处理
- 参数说明
--output <file>: 输出结果到指定文件。--format <json/csv>: 定义输出格式。--remove-wildcard: 去除由通配符DNS导致的假阳性结果。
其他常用选项
--help: 显示帮助信息。--version: 查看当前版本号。--quiet: 静默模式运行,减少控制台输出。--debug: 开启调试模式,打印更详细的执行过程信息。
Layer子域名挖掘机

SubDomainsBrute

Sublist3r

Subdomainfinder
在线工具http://subdomainfinder.c99.nl/
过滤失效域名
过滤已失效的子域名信息
for sub in $(cat subdomain); do host $sub |grep "has" |cut -d " " -f1,4;done
以上部分方法基于子域名的DNS历史记录,部分可能已失效
有时测试时,资产需要进行扩展或需要绕过云WAF防护,可以查找域名的真实IP,绕过网络架构层防护或查看是否存在旁站或存在其他易受攻击服务
发现反向代理
ping目标的域名

CDN和反向代理的功能:
- 均衡负载
- caching
- 检测流量中恶意行为
- 隐藏服务器的真是IP,防止DDOS

可以使用whois判断是否目标拥有该IP地址


从多地尝试ping和DNS解析
真实IP
为了获取更加准确的信息,需要找到服务器真实IP地址
利用DNS的历史记录

对其他子域名进行DNS查询
- 不一定所有的子域名都使用反向代理
- 子域名和目标域名可能部署在同一台服务器上,或者在同一个C段网络
通过SSL证书
- 在互联网查询,哪一台主机在SSL证书使用来目标域名
- https://search.censys.io/




Virtualhost
可以在同一个服务器部署多个站点
一个站点包含漏洞可能导致全部信息泄露
检测哪些域名解析到相同IP可以使用
https://hackertarget.com/server-info/
https://pentest-tools.com/information-gathering/find-virtual-hosts
Gobuster
在已发现的web服务器上扫描Virtualhost
for in 'cat SecList/Discovery/DNS/subdomains-top1million-5000.txt'; do echo ${i}.pentest.com;done > vhost.txt
gobuster vhost -u http://www.pentest.com -w vhost.txt
网站关键信息收集


背景信息

常用工具
https://sitereport.netcraft.com/


CMS识别
关键字识别



特定文件及路径识别



历史版本

静态文件MD5值判断CMS

开发语言识别
通过HTTP回应头文件
X-Powered-By
Cookie
- ASPSession
- PHPSession
- JSESsion
通过扩展名
.php
.jsp
.asp


服务识别


识别工具
whatweb指纹识别工具
whatweb指纹识别工具 识别包括内容管理系统(cms),博客平台中间件,javascript库,web服务框架,网站服务器和嵌入式设备在内的web技术。
whatruns是为chrome开发的一款web指纹识别程序,还可以显示托管的cdn,wordpress插件,wordpress字体等,拥有丰富的插件支持。
wappalyzer

web指纹识别系统
cms识别,js框架,组件容器,代码语言,waf等,管理员可以在web端新增/修改指纹,建
立批量的扫描任务,并且支持多种搜索语法
云悉指纹识别
目录探测工具
使用自录探测工具对隐藏目录进行探测
目的
探测未经授权资源
探测目录框架
探测备份文件
探测配置文件
常用的目录扫描工具有
御剑
ffuf
dirsearch
dirmap
argo
dirsearch







其他

缩减目标数量

网站截图
我们可以使用eyewitness对指定的网站列表快速截图。eyewitness使用google的headless刘览器 (selenium),向指定的网站发起请并截图
https://github.com/FortyNorthSecurity/EyeWitness
sudo python/setup/setup.sh
使用
eyewitnesswe --web一 --single sean0101.me -d report
eyewitness --web -f flive.txt -d report repor [--timeout 15]

漏洞收集
借助一些漏洞文库获取漏洞利用的详情,对网站进行漏洞利用
POC与exp
poc
漏洞的概念性验证,只为了证明漏洞的存在。
expliot
利用漏洞,进行攻击,获得最大权限或获取尽量多的数据。
漏洞获取
互联网社区:
安全厂商:
https://poc.shuziguanxing.com/#/
国家平台:
扫描工具:
https://github.com/projectdiscovery/nuclei-templates
https://github.com/knownsec/pocsuite3
搜索引擎:
测绘平台:
exploit-db

四大功能

Type

事例


更新: 2025-04-09 14:58:28
原文: https://www.yuque.com/yuhui.net/network/hch28owgtyhzblx5







评论(0)
暂无评论