三、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指定域名
InurlURL中存在关键字的网页
Intext网页正文中的关键字
Filetype指定文件类型
Intitle网页标题中的关键字
Linklink: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)参数参考
参数说明
-sTTCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sPping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sUUDP扫描,但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)在线识别&离线识别

  • 在线识别:https://finger.tidesec.com/
  • 离线识别:https://github.com/TideSec/TDFinger
3.2.3.5 子域名查询
  • fofa、谷歌语法、在线子域查询、oneforall、子域名挖掘机
    • fofa:www.fofa.so
    • 在线子域名:https://phpinfo.me/domain/
    • 子域名挖掘机:https://github.com/epii/domainFinder
    • oneforall:https://github.com/shmilylty/OneForAll
3.2.3.6 cdn识别
  • https://www.cnblogs.com/qiuhai/p/9763739.html
3.2.3.7 目录扫描
  • 常用工具:御剑、Jsk、dirmap
    • Jsk:https://github.com/k8gege/Jskscan-WebPathBrute
    • 安装教程
      • pip install -r requirement.txt
      • python dismap.py

4、信息搜集的注意事项

(1)合法合规

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

(2)隐蔽性

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

(3)记录和整理

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生活小记啊

最近生活上的事情还是蛮多的,想到哪写到哪。 工作 三月的某个周六,正在加班写技术方案,大晚上写完了听到调动通知,要去新的团队了。 还是蛮不舍的,看着产品从无到有,一路走过来,倾注了不少感…

vue-08(使用slot进行灵活的组件渲染)

使用slot进行灵活的组件渲染 作用域slot是 Vue.js 中的一种强大机制,它允许父组件自定义子组件内容的呈现。与仅向下传递数据的常规 props 不同,作用域 slot 为父级提供了一个模板,然后子级可以填充数据。这提供了高度的灵活性和可重用性&am…

MySQL索引与性能优化入门:让查询提速的秘密武器【MySQL系列】

本文将深入讲解 MySQL 索引的底层原理、常见类型、使用技巧,并结合 EXPLAIN 工具分析查询执行计划,配合慢查询日志识别瓶颈,逐步建立起系统的 MySQL 查询优化知识体系。适合有一定基础、希望在数据量增长或面试中脱颖而出的开发者阅读。 一、…

C 语言开发中常见的开发环境

目录 1.Dev-C 2.Visual Studio Code 3.虚拟机 Linux 环境 4.嵌入式 MCU 专用开发环境 1.Dev-C 使用集成的 C/C 开发环境(适合基础学习),下载链接Dev-C下载 - 官方正版 - 极客应用 2.Visual Studio Code 结合 C/C 扩展 GCC/MinGW 编译器&#xff0c…

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

目录 一、STM32G4 电机外设篇(二) VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP(运放)3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

再见Notepad++,你好Notepad--

Notepad-- 是一款国产开源的轻量级、跨平台文本编辑器,支持 Window、Linux、macOS 以及国产 UOS、麒麟等操作系统。 除了具有常用编辑器的功能之外,Notepad-- 还内置了专业级的代码对比功能,支持文件、文件夹、二进制文件的比对,支…

跳动的爱心

跳动的心形图案&#xff0c;通过字符打印和延时效果模拟跳动&#xff0c;心形在两种大小间交替跳动。 通过数学公式生成心形曲线 #include <stdio.h> #include <windows.h> // Windows 系统头文件&#xff08;用于延时和清屏&#xff09; void printHeart(int …

2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践

HarmonyOS NEXT高性能开发技术&#xff1a;编译优化、内存管理与并发编程实践 在HarmonyOS NEXT全场景设备开发中&#xff0c;高性能是跨端应用体验的核心保障。本章节聚焦ArkCompiler编译优化、内存管理工具及多线程并发编程三大技术模块&#xff0c;结合实战案例解析底层实现…

C# 类和继承(使用基类的引用)

使用基类的引用 派生类的实例由基类的实例和派生类新增的成员组成。派生类的引用指向整个类对象&#xff0c;包括 基类部分。 如果有一个派生类对象的引用&#xff0c;就可以获取该对象基类部分的引用&#xff08;使用类型转换运算符把 该引用转换为基类类型&#xff09;。类…

如何在腾讯云 OpenCloudOS 上安装 Docker 和 Docker Compose

从你提供的 /etc/os-release 文件内容来看&#xff0c;你的服务器运行的是 OpenCloudOS 9.2。这是一个基于 CentOS 和 RHEL 的开源操作系统&#xff0c;因此它属于 CentOS/RHEL 系列。 关键信息总结 操作系统名称&#xff1a;OpenCloudOS版本&#xff1a;9.2ID&#xff1a;op…

趋势直线指标

趋势直线副图和主图指标&#xff0c;旨在通过技术分析工具帮助交易者识别市场趋势和潜在的买卖点。 副图指标&#xff1a;基于KDJ指标的交易策略 1. RSV值计算&#xff1a; - RSV&#xff08;未成熟随机值&#xff09;反映了当前收盘价在过去一段时间内的相对位置。通过计算当前…

FEMFAT许可分析的数据可视化方法

随着企业对FEMFAT软件使用的增加&#xff0c;如何有效地管理和分析许可数据成为了关键。数据可视化作为一种强大的工具&#xff0c;能够帮助企业直观地理解FEMFAT许可的使用情况&#xff0c;从而做出更明智的决策。本文将介绍FEMFAT许可分析的数据可视化方法&#xff0c;并探讨…

AMBER软件介绍

AMBER软件介绍 AMBER&#xff08;Assisted Model Building with Energy Refinement&#xff09;是一套广泛应用于分子动力学&#xff08;MD&#xff09;模拟和生物分子结构分析的软件工具集&#xff0c;尤其在蛋白质、核酸、多糖等生物大分子的模拟中表现突出。以下是关于AMBE…

GoogLeNet网络模型

GoogLeNet网络模型 诞生背景 在2014年的ImageNet图像识别挑战赛中&#xff0c;一个GoogLeNet的网络架构大放异彩&#xff0c;与VGG不同的是&#xff0c;VGG用的是3*3的卷积&#xff0c;而GoogLeNet从1*1到7*7的卷积核都用&#xff0c;也就是使用不同大小的卷积核组合。 网络…

Free2AI:企业智能化转型的加速器

随着数字化与智能化的深度交融&#xff0c;企业的竞争舞台已悄然转变为数据处理能力和智能服务水平的竞技场。Free2AI以其三大核心功能——智能数据采集、多格式文档解析、智能FAQ构建&#xff0c;为企业铺设了一条从数据洞察到智能服务的全链路升级之路&#xff0c;成为推动企…

Vue 核心技术与实战day07

1. vuex概述 2. 构建 vuex [多组件数据共享] 环境 <template><div id"app"><h1>根组件- {{ title }}- {{ count }}</h1><input :value"count" input"handleInput" type"text"><Son1></Son1>…

【原神 × 插入排序】刷圣遗物也讲算法:圣遗物评分系统背后的排序逻辑你真的懂吗?

📘 改编自:王争《数据结构与算法之美》 🎮 游戏演绎:米哈游《原神》 🧠 核心关键词:插入排序、排序算法、评分系统、属性评价、强化圣遗物、冒泡排序对比 🧭 引言:原神刷本=刷排序? 玩《原神》的玩家每天日常是啥?体力用来刷圣遗物、精通头、暴击头、攻充沙………

quasar electron mode如何打包无边框桌面应用程序

预览 开源项目Tokei Kun 一款简洁的周年纪念app&#xff0c;现已发布APK&#xff08;安卓&#xff09;和 EXE&#xff08;Windows&#xff09; 项目仓库地址&#xff1a;Github Repo 应用下载链接&#xff1a;Github Releases Preparation for Electron quasar dev -m elect…

微信小程序真机调试时如何实现与本地开发环境服务器交互

最近在开发微信小程序项目,真机调试时需要在手机上运行小程序,为了实现本地开发服务器与手机小程序的交互,需要以下步骤 1.将手机连到和本地一样的局域网 2.Visual Studio中将IIS Express服务器的localhost端口地址修改为本机的IP自定义的端口: 1&#xff09;找到web api项目…

Scratch节日 | 拯救屈原 | 端午节

端午节快乐&#xff01; 这款特别为端午节打造的Scratch游戏 《拯救屈原》&#xff0c;将带你走进古代中国&#xff0c;感受历史与文化的魅力&#xff01; &#x1f3ee; 游戏介绍 扮演勇敢的探险者&#xff0c;穿越时空回到古代&#xff0c;解锁谜题&#xff0c;完成任务&…