三、web安全-信息收集

1、信息搜集的重要性

(1)明确攻击面

信息搜集能让渗透测试人员清晰地勾勒出目标系统的边界,包括其网络拓扑结构、开放的服务端口、运行的软件系统等。例如,通过信息搜集发现目标企业除了对外提供官网服务外,还有一个内部员工使用的办公系统暴露在公网,这就大大扩展了攻击面,为测试人员提供了更多的潜在攻击点。

(2)发现潜在漏洞线索

搜集到的信息中可能隐藏着目标系统存在的漏洞线索。比如,通过查看目标网站使用的软件版本信息,发现其运行的某个开源内容管理系统(CMS)版本存在已知的高危漏洞,这为后续利用该漏洞进行渗透提供了明确的方向。

(3)制定针对性策略

基于全面的信息搜集,渗透测试人员可以制定出更具针对性的测试策略。如果了解到目标系统对某些特定的网络协议或服务依赖程度较高,那么在测试过程中就可以重点围绕这些方面展开,提高渗透测试的效率和成功率。

2、信息搜集的主要内容

2.1 目标基本信息

2.1.1 域名信息搜集:

包括域名的注册人、注册时间、到期时间、DNS服务器等。通过查询域名信息,可以了解目标企业的网络资产分布情况,以及是否存在域名劫持等潜在风险。例如,发现目标企业的一个重要业务子域名指向了一个可疑的IP地址,可能暗示着该子域名已被攻击者控制。

2.1.2 IP地址信息搜集:

确定目标系统的IP地址范围,了解其所属的网络运营商、地理位置等。IP地址信息有助于分析目标网络的拓扑结构,以及判断其是否使用了云服务、CDN等技术。

2.2 网络架构信息

  • 网络拓扑信息搜集

尝试绘制目标网络的拓扑结构图,包括路由器、交换机、防火墙等网络设备的位置和连接关系。了解网络拓扑可以帮助测试人员找到网络中的关键节点和薄弱环节,例如,发现某个核心交换机存在配置漏洞,可能导致整个子网面临安全风险。

  • 开放端口和服务信息搜集

使用端口扫描工具(如Nmap)扫描目标系统的开放端口,并识别运行在这些端口上的服务。不同的服务可能存在不同的安全漏洞,例如,开放的SSH服务如果使用弱密码,就容易被暴力破解。

2.3 系统和软件信息

  • 操作系统类型和版本:通过分析目标系统返回的Banner信息、使用指纹识别工具(如Nmap的操作系统检测功能)等方法,确定目标系统运行的操作系统类型(如Windows、Linux)和版本。不同操作系统版本的安全漏洞和防护机制存在差异,了解这些信息有助于选择合适的攻击手段。
  • 应用程序信息:识别目标系统上运行的各种应用程序,包括Web服务器(如Apache、Nginx)、数据库管理系统(如MySQL、Oracle)、中间件(如Tomcat、WebLogic)等。同时,获取这些应用程序的版本信息,以便查找已知的安全漏洞。
2.3.1 2.4 人员和组织信息
  • 员工信息:通过社交媒体、招聘网站、企业官网等渠道搜集目标企业员工的相关信息,如姓名、职位、联系方式等。员工信息可能被用于社会工程学攻击,例如,通过伪装成企业内部员工发送钓鱼邮件,诱使其他员工点击恶意链接或下载恶意文件。
  • 组织架构和业务流程:了解目标企业的组织架构和业务流程,有助于发现潜在的安全风险点。例如,发现某个部门的业务系统涉及大量敏感数据的处理,但安全防护措施相对薄弱,就可能成为攻击的重点目标。

3、信息搜集的常用方法

3.1 被动信息搜集

2.3.1搜索引擎查询:利用Google、百度等搜索引擎的高级搜索语法,如"site:目标域名""intitle:关键词"等,查找与目标系统相关的公开信息。例如,通过搜索"site:example.com filetype:pdf"可以找到目标网站上公开的PDF文档,其中可能包含敏感信息。

谷歌语法

Site 指定域名
Inurl URL中存在关键字的网页
Intext 网页正文中的关键字
Filetype 指定文件类型
Intitle 网页标题中的关键字
Link link:baidu.com 即表示返回所有和baidu.com做了链接的URL
Info 查询指定站点的一些基本信息
cache 搜索Google里关于某些内容的缓存

site:可以限制你搜索范围的域名。

inurl:用于搜索网页上包含的URL,这个语法对寻找网页上的搜索、帮助之类的很有用。

intext: 只搜索网页部分中包含的文字(也就是忽略了标题、URL等的文字)

intitle:查找关键字的页面,一般用于社工别人的webshell密码

filetype:搜索文件的后缀或者扩展名

link:可以得到一个所有包含了某个指定URL的页面列表。

复制代码
常用语法:
查找后台地址:site:域名 intitle:管理 | intitle:后台 | 登陆 | 用户名 | 密码 | 验证码 | 系统 | 账号
查找可注入点:site:域名 inurl:edit | lead | editor | Files
查找上传漏洞:site:域名 inurl:file | lead | editor | Files
存在的数据库:site:域名 inurl:asp?id= | web | edit
查看脚本类型:site:域名 filetype:asp/jsp/php
让搜索引擎入库:inurl:cm/data/templates/images/index/

2.3.2社交媒体和公开数据库:关注目标企业及其员工在社交媒体平台上的动态,从中获取有价值的信息。此外,还可以查询一些公开的数据库,如Whois数据库、企业信用信息公示系统等,获取域名注册信息、企业基本信息等。

**2.3.3网络爬虫:**使用网络爬虫工具(如Scrapy)自动抓取目标网站的内容,分析网站的结构和数据。网络爬虫可以帮助发现网站中隐藏的页面、敏感信息泄露等问题。

3.2 主动信息搜集

3.2.1端口扫描

使用Nmap等端口扫描工具对目标系统的IP地址范围进行扫描,检测开放的端口和运行的服务。端口扫描可以分为TCP扫描、UDP扫描等多种类型,根据不同的需求选择合适的扫描方式。

(1)nmap工具功能
  • 判断服务器类型
  • 探测开发端口
  • 探测使用框架
  • 探测使用中间件
  • 探测主机漏洞
(2)nmap,探测全端口tcp扫描
  • 扫描单个ip:nmap 127.0.0.1

  • 扫描多个ip:nmap 192.168.1.1 192.168.1.2

  • 扫描范围:nmap 192.168.1.1 - 192.168.1.10

  • 从文件中扫描:nmap -iL 1.txt

  • 扫描C段:nmap 192.168.1.1/24

  • 扫描除了192.168.1.100的所有地址:nmap 192.168.1.1/24 -exclude 192.168.1.100

  • 指定扫描ip端口:nmap -p 80,443 192.168.1.1

  • 扫描c段存活ip端口:nmap -sP 192.168.1.1/24

  • 扫描操作系统版本识别:nmap -O 192.168.1.1

  • 扫描开放端口对应的服务:nmap -sV 192.168.1.1

  • 扫描常见漏洞、应用服务扫描:nmap --script=vuln 192.168.1.1

  • 暴力破解:nmap --script=brute 192.168.1.1 不ping

  • 扫描常见漏洞:nmap --script=vuln 192.168.1.1

  • 绕过防火墙端口扫描:nmap -Pn 127.0.0.1

(3)参数参考
参数 说明
-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN 秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sP ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sU UDP扫描,但UDP扫描是不可靠的。
-SA 这项高级的扫描方法通常用来穿过防火墙的规则集
-sV 探测端口服务版本
-Pn 扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v 显示扫描过程,推荐使用
-h 帮助选项,是最清楚的帮助文档
-p 指定端口,如1 - 65535, 1433, 135, 22, 80等
-O 应用远程操作系统检测,存在多个结果和-A可以一起用
-ON/-OX/-OG 将报告写入文件,分别是正常、XML、grepable三种格式
-T4 针对TCP端口禁止动态扫描延迟超过10ms
-iL 读取主机列表,例如:-iL C:\ip.txt
3.2.2 漏洞扫描

利用专业的漏洞扫描工具(如Nessus、OpenVAS)对目标系统进行全面的漏洞检测。这些工具可以根据已知的漏洞数据库,自动检测目标系统存在的安全漏洞,并生成详细的报告。

3.2.3 指纹识别

通过向目标系统发送特定的数据包,分析其返回的响应信息,识别目标系统的操作系统、应用程序类型和版本等信息。例如,使用Nmap的指纹识别功能可以快速准确地识别目标系统的相关信息。

3.2.3.1 信息搜集-win与linux识别

通过分析目标系统返回的Banner信息、使用指纹识别工具(如Nmap的操作系统检测功能)等方法,确定目标系统运行的操作系统类型(如Windows、Linux)和版本。不同操作系统版本的安全漏洞和防护机制存在差异,了解这些信息有助于选择合适的攻击手段。

(1)区分大小写

linux区分大小写,win不区分大小写。

(2)响应包

通过发送请求的响应包的server参数内容判断服务器类型。

(3)ping

PING命令来查看TTL值从而判断操作系统类型。

  • TTL=128,这是WINNT/2K/XP。
  • TTL=64,这是LINUX。
  • TTL=256,这是UNIX。

(4)nmap工具

  • 判断服务器类型
  • 探测开发端口
  • 探测使用框架
  • 探测使用中间件
  • 探测主机漏洞
3.2.3.2 数据库管理系统

根据开放的数据库端口号判断数据库类型。

(1)关系型数据库端口

  • Oracle --- 1521
  • MySQL --- 3306
  • Sybase --- 5000
  • DB2 --- 5000
  • PostgreSQL --- 5432

(2)NOSQL数据库端口

  • MongoDB --- 27017
  • Redis --- 6379
3.2.3.3 中间件
  • 响应包查看server使用的中间件
  • 通过数据库类型推测常用中间件
  • 使用goby识别中间件、框架等信息
3.2.3.4 web指纹

(1)为什么收集web指纹?

  • web指纹是网站使用的cms,基于识别出来的cms进行漏洞挖掘,识别网站使用的cms,基于识别出来的cms已知漏洞搜索。

(2)在线识别&离线识别

3.2.3.5 子域名查询
3.2.3.6 cdn识别
3.2.3.7 目录扫描

4、信息搜集的注意事项

(1)合法合规

在进行信息搜集时,必须严格遵守法律法规和道德规范。未经授权的信息搜集行为可能构成违法犯罪,因此在开展渗透测试之前,一定要获得目标企业的书面授权。

(2)隐蔽性

尽量减少信息搜集活动对目标系统的影响,避免引起目标系统的警觉。可以采用一些隐蔽的扫描技术和策略,如慢速扫描、随机扫描等,降低被目标系统安全防护设备检测到的概率。

(3)记录和整理

对搜集到的信息进行详细的记录和整理,建立信息数据库。这有助于在后续的渗透测试过程中快速查找和利用相关信息,提高测试效率。

相关推荐
用户962377954489 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机13 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机13 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544814 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star14 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544818 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行5 天前
网络安全总结
安全·web安全
red1giant_star5 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全