Web 渗透测试攻防之浅述信息收集

news2024/11/25 0:42:50

前言

众所周知渗透测试的本质是信息收集,在渗透测试中信息收集的质量直接关系到渗透测试成果的与否。在对系统进行渗透测试前的信息收集是通过各种方式获取所需要的信息,收集的信息越多对目标进行渗透的优势越有利。通过利用获取到的信息对系统进行渗透。只有掌握了足够多的目标信息才能更好的对目标系统进行渗透。正所谓知彼知己百战不殆。

1.信息收集的分类

从信息收集方式分类可将信息收集分为两大类:

①主动信息收集②被动信息收集

1.1 主动信息收集

通过主动扫描目标主机或网站,对目标进行探测性扫描获取相关信息。这种方式获取到的信息更为准确能获取到的信息更多,但缺点也比较明显。通过主动信息收集容易留下明显的攻击访问痕迹,易发现和被溯源。

1.2 被动信息收集

通过搜索引擎等公开渠道进行相关信息的检索收集信息,这种方式不直接与目标建立交互访问连接,避免了留下访问痕迹。被动信息收集的优缺点正好与主动信息收集的优缺点相反,被动信息收集不会留下访问痕迹避免被溯源发现,但收集到的信息依赖于搜索引擎,准确性和质量无法保证。

2.信息收集目标和方法

【一一帮助安全学习【点我】一一】

①网络安全学习路线

②20 份渗透测试电子书

③安全攻防 357 页笔记

④50 份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100 个漏洞实战案例

⑧安全大厂内部教程

2.1 域名信息

2.1.1 Whois

通过 whois 查询可以获得域名注册者邮箱地址等信息。一般情况下对于中小型网站,域名注册者就是网站管理员。利用搜索引擎对 whois 查询到的信息进行搜索,获取更多域名注册者的个人信息。通过 whois 查询获取 IP、法人的名字、电话、邮箱、地址等信息对社工攻击具有很大的作用。

相关:
 

站长之家查询接口:https://whois.chinaz.com/

阿里云查询接口:https://whois.aliyun.com/

全球whois查询:https://www.whois.com/cn/

2.1.2 搜索引擎查找

搜索引擎通常会记录域名信息,可以通过搜索引擎高级搜索语法进行查询 。

例如使用 google 高级搜索语法查找 baidu 的子域名语法为site:baidu.com

利用空间测绘搜索引擎语法进行搜索,目前比较常用的空间测绘搜索引擎入下:

fofa:https://fofa.info/toLogin

鹰图:https://hunter.qianxin.com/

quake:https://quake.360.cn/quake/#/index

钟馗之眼:https://www.zoomeye.org/

Shodan:https://www.shodan.io/

2.1.3 第三方查询

国外有一些第三方应用提供了子域名查询功能,因工具多为国外应用,多数使用对国内查找效果不够好,列举如下:

  • DNSDumpster

  • Virustotal

  • CrtSearch

  • threatminer

  • Censys

2.1.4 网站信息利用

在网站中可以根据网站本身的功能特点收集网站本身、各项安全策略、设置等可能暴露泄漏出的一些信息。

网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在 JavaScript 文件、资源文件链接等位置。

网站的安全策略如跨域策略、CSP 规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个 SSL/TLS 证书,因此有时可通过证书来获取相关域名信息。

2.1.5 CDN

可通过验证网站是否使用了 CDN 进行域名查找,一般使用了 CDN 的域名的父域或者子域名不一定使用了 CDN,可以通过这种方式去查找对应的 IP。另外 CDN 可能是在网站上线一段时间后才使用的,可以通过查找域名解析记录的方式去查找真实 IP。

2.1.6 域名枚举

通过工具进行子域名枚举也是一种有效的域名搜集手段,域名枚举采用主动信息收集的方式,这种方式向目标站点发送了大量的请求数据包容易被检测发现。比较常用的域名枚举工具有:

*   [Layer子域名挖掘机]http://www.xdowns.com/soft/525081.html*   [burp插件domain_hunter_pro]https://github.com/bit4woo/domain_hunter_pro/releases/download/v1.4/domain_hunter_pro-v1.4-jar-with-dependencies.jar*   [dirsearch]https://github.com/maurosoria/dirsearch*   [dirb]http://dirb.sourceforge.net/*   [御剑后台扫描]https://www.xiazaiba.com/html/84460.html*   [teemo]https://github.com/bit4woo/teemo*   [subDomainsBrute]https://github.com/lijiejie/subDomainsBrute
2.2 端口信息

2.2.1 常见端口脆弱点

2.2.2 常见端口扫描方式

在传输层 TCP/IP 协议中包含 TCP、UDP 两种协议,其中 TCP 面向连接的数据传输协议中通过 TCP 请求建立“三次握手”连接的原理就是端口扫描技术的基本原理,端口扫描就是根据 TCP 请求的“三次握手”原理在此基础上进行的。端口扫描并非 TCP 建立连接的过程,而是通过 TCP 连接的中不同阶段的状态进行实现的。

TCP 连接“三次握手”的过程如上图所示,在 TCP 建立连接的过程中从图中也可以看出服务端有四种不同的状态:

(1)CLOSED 状态:除了收到 RST 数据包进行丢弃,收到其他数据包一律返回 RST。

(2)LISTEN 状态:如果收到客户端建立连的接请求 SYN 数据包则进行第二次握手返回 SYN 和 ACK,然后转入 SYN-RCVD 状态。如果收到 ACK 第三次握手包返回 RST,收到其他包一律丢弃。

(3)SYN-RCVD 状态:如果收到第三次握手 ACK 数据则转入 ESTAB-LISHED 状态,此时完成了 TCP 连接的建立。如果收到的数据包为 RST 就返回到 LISTEN 状态。

基于 TCP 建立连接过程中服务端端口的几种状态,端口扫描技术可分为全连接、半连接、FIN、ACK 和 NULL 四种扫描方式。

全扫描

全连接扫描又叫做 TCP Connect 扫描,通过调用操作系统 connect 函数与目标建立真实的 TCP 连接来判断端口是否开放,连接建立成功则说明端口是开放的状态反之则关闭,这种扫描方式对大量的端口测试需要大量的函数调用速度较慢且建立连接的形式已被检测。

半扫描

TCP SYN 扫描是半连接的扫描,这种扫描方式通过与目标端口建立 TCP 连接的过程中仅进行前两次握手,在第三次握手时客户端不发送确认报文,使 TCP 连接无法建立。这种扫描方式不会再目标主机留下扫描痕迹,但利用条件要求较高需要较高的系统权限。

FIN 扫描

TCP FIN 扫描是一种更具隐蔽性的扫描方式,FIN 数据能够通过防火墙的过滤不为其他过滤器所拦截更具有隐蔽性。在 FIN 扫描方式中利用了扫描中关闭的端口会对 FIN 数据进行 RST 回复,开放的端口会忽略 FIN 数据包回复。虽然这种扫描方式更加隐蔽但是对于不同的操作系统有些系统并不适用,这种扫描方式容易得到误报。

ACK 扫描

ACK 扫描技术并不能探测端口开放情况,ACK 扫描通过只发送 ACK 标志位报文,如果目标主机返回 RST 标记报文则说明目标主机未受到防火墙保护,如果不能够收到响应报文说明发送报文未到达,系统端口可能受防火墙保护。这种方式探测端口开放不准确,适合二层主机扫描探测。

NULL 扫描

NULL 扫描,将报文中所有标记都置为 0 进行发送,如果目标返回 RST 则端口关闭,没有收到响应说明端口开放或被防火墙保护。这种扫描方式扫描的结果准确度也不高。

2.2.3 批量端口搜索

要搜集开放固定端口的系统可以使用资产搜索引擎使用 port 语法获取互联网上大量的系统,常用的搜索引擎如下。

  • Shodan

  • ZoomEye

  • fofa

  • 鹰图

2.3 站点信息

判断网站操作系统

  • Linux 大小写敏感

  • Windows 大小写不敏感

扫描敏感文件

  • robots.txt

  • crossdomain.xml

  • sitemap.xml

  • xx.tar.gz

  • xx.bak

确定网站采用的语言

  • 如 PHP / Java / Python 等

  • 找后缀,比如 php/asp/jsp

判断前/后端框架

  • 如 jQuery / BootStrap / Vue / React / Angular 等

  • 查看源代码

  • 根据 Cookie 判断

  • 根据 CSS / 图片等资源的 hash 值判断

  • 根据 URL 路由判断,如 wp-admin

  • 根据网页中的关键字判断

  • 根据响应头中的 X-Powered-By

确定中间 Web 容器服务器

  • 如 Apache / Nginx / IIS 等

  • 查看 header 中的信息

  • 根据报错信息判断

  • 根据默认页面判断

  • 如 Tomcat / Jboss / Weblogic 等

CDN 信息

  • 常见的有 Cloudflare、yunjiasu

探测 WAF

  • 探测是否使用 WAF、判断类型

敏感目录

  • 扫描敏感目录查看是否存在信息泄漏

  1. 使用爬虫爬取网站信息

  2. 通过获取到的信息进一步利用

  • 通过拿到的目录名称,文件名称及文件扩展名了解网站开发人员的命名思路,确定其命名规则,推测出更多的目录及文件名

2.4 搜索引擎利用

合理的使用搜索引擎(Google/Bing/Baidu 等)可以获取目标站点的较多信息。

2.4.1 高级搜索语法

  • site

把搜索范围限定在特定站点中,如 site:某某.com。用来搜索某个域名下的所有被搜索引擎收录的文件,适用于所有的搜索引擎。

  • domain

查找跟某一网站相关的信息或反向链接,目前此指令只适用于百度,例如:在百度上提交搜索“domain:www.mahaixiang.cn”,所搜索的结果就的关于www.mahaixiang.cn网站的反向链接。

  • link

查询网站外链的搜索指令(例如:Link:www.mahaixiang.cn),此搜索指令只适用于 Google,在百度上是不起作用。

  • inurl

inurl:指令用于搜索查询词出现在 url 中的页面,百度和 Google 都支持 inurl 指令,inurl 指令支持中文和英文。

比如搜索:inurl:搜索引擎优化,返回的结果都是网址 url 中包含“搜索引擎优化”的页面。

  • and

利用 and 表示前后两个关键词是“与”的逻辑关系,例如输入关键词:“渗透测试 and 网络工程”,就会找出同时包含渗透测试和网络工程有关的网站

  • or

利用 or(|)表示前后两个词是“或”的逻辑关系,例如输入关键词:“渗透测试 and 网络工程”,会找出将包含渗透测试或者网络工程的网页。or 与|等同,使用“A|B”来搜索“或者包含词语 A,或者包含词语 B”的网页。

  • 双引号(””)

把搜索词放在双引号中(英文半角双引号),代表完全匹配搜索一个词,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配,目前,百度和 Google 都支持这个指令,例如:搜索“SEO 博客”。

  • 减号(-)

减号代表搜索不包含减号后面的词的页面,使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。

  • 星号(*)

星号是常用的通配符,也可以用在搜索中代表任何文字使用。

  • inurl

inurl:xxx 的作用是命令搜索引擎查找 url 中包含 xxx 的网页,例如:inurl:www.baidu.com。“inurl:xxx 关键词”或“关键词 inurl:xxx”两者意义一样,都是要求搜索引擎查找的结果满足 url 中包括 xxx 和网页中含有“关键词”的两个要求。通常情况,任何网站的 url 都不是随意设置的,都经过一番过虑,有一定用意的,很多地方,url 链接和网页的内容有着密切的相关,所以,可以利用这种相关性,来缩小范围,快速准确地找到所需信息。

  • intitle

intitle: 指令返回的是页面 title 中包含关键词的页面,使用 intitle 指令可以根据网站的标题更准确的找出互联网中的相关站点。

  • info

提交 info:url,将会显示需要查询网站的一些信息。

  • filetype

filetype 命令对搜索对象的文件类型做限制,冒号后是文档格式,如 PDF、DOC、XLS 等。

当我们在查询里边包含 filetype:扩展名的时候,Google 会限制查询结果仅返回特定文件类型的网页。

用于搜索特定文件格式,目前,Google 和百度都支持 filetype 指令,比如搜索:“密码 filetype:pdf”,搜索返回的就是包含“密码”这个关键词的所有 pdf 文件,其它可用的特定文件类型格式查询还有 doc、txt、ppt、xls、rtf、swf、ps 等。

2.4.2 网页快照

搜索引擎的快照中也常包含一些关键信息,如程序报错信息可以会泄漏网站具体路径,或者一些快照中会保存一些测试用的测试信息,比如说某个网站在开发了后台功能模块的时候,还没给所有页面增加权限鉴别,此时被搜索引擎抓取了快照,即使后来网站增加了权限鉴别,但搜索引擎的快照中仍会保留这些信息。

2.5 社会工程学

2.5.1 企业信息收集

一些网站如天眼查等,可以提供企业关系挖掘、工商信息、商标专利、企业年报等信息查询,可以提供企业的较为细致的信息。

相关网站:

*   [天眼查]https://www.tianyancha.com/*   [爱企查]https://aiqicha.baidu.com/?from=pz*   [企查查]https://aiqicha.baidu.com/?from=fc&source=aff--2097005918&bd_vid=5557041587835542032

2.5.2 人员信息收集


​​​​​​’针对人员的信息收集考虑对目标重要人员、组织架构、社会关系的收集和分析。其中重要人员主要指高管、系统管理员、运维、财务、人事、业务人员的个人电脑。

人员信息收集较容易的入口点是网站,网站中可能包含网站的开发、管理维护等人员的信息。从网站联系功能中和代码的注释信息中都可能得到的所有开发及维护人员的姓名和邮件地址及其他联系方式。

还可以使用社工库通过相关手机号、qq、邮箱等个人信息对人员进行信息查询。

在获取这些信息后,可以在 Github/Linkedin 等网站中进一步查找这些人在互联网上发布的与目标站点有关的一切信息,分析并发现有用的信息。

此外,可以对获取到的邮箱进行密码爆破的操作,获取对应的密码。

 一份网络攻防渗透测试的学习路线,不藏私了!

           如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)

 👉网安(嘿客)全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉网安(嘿客红蓝对抗)所有方向的学习路线👈

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

 学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

在这里插入图片描述

面试题资料

独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
在这里插入图片描述

👉嘿客必备开发工具👈

工欲善其事必先利其器。学习客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】

在这里插入图片描述

如果你有需要可以点击👉CSDN大礼包:《嘿客&网络安全入门&进阶学习资源包》免费分享

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

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

相关文章

【前端布局篇】响应式布局 Bootstrap 移动端布局

前言 1. 布局介绍 布局:layout 对事物的全面规划和安排 页面布局:对页面的文字、图形或表格进行格式设置。包括字体、字号、颜色纸张大小和方向以及页边距等。 网页布局:利用html搭建结构与内容,使用CSS添加装饰 网页布局有很多种方式&a…

Flink 学习七 Flink 状态(flink state)

Flink 学习七 Flink 状态(flink state) 1.状态简介 流式计算逻辑中,比如sum,max; 需要记录和后面计算使用到一些历史的累计数据, 状态就是:用户在程序逻辑中用于记录信息的变量 在Flink 中 ,状态state 不仅仅是要记录状态;在程序运行中如果失败,是需要重新恢复,所以这个状态…

基于Django的疫情困扰下的民慧钢材销售分析及纾困策略-计算机毕设 附源码87656

基于Django的疫情困扰下的民慧钢材销售分析及纾困策略 摘 要 疫情之下,实体经济面临下行压力。2019年以来,新冠肺炎疫情卷土而来,各地地疫情防控形势严峻,许多中小微企业经营发展屡次遭受打击。面对疫情常态化的社会现实&#x…

[学习笔记] [机器学习] 13. 集成学习进阶(XGBoost、OTTO案例实现、LightGBM、PUBG玩家排名预测)

视频链接数据集下载地址:无需下载 学习目标: 知道 XGBoost 算法原理知道 otto 案例通过 XGBoost 实现流程知道 LightGBM 算法原理知道 PUBG 案例通过 LightGBM 实现流程知道 Stacking 算法原理知道住房月租金预测通过 Stacking 实现流程 1. XGBoost 算…

SPI协议(嵌入式学习)

SPI协议 概念时序SPI通信模式图四种通信模式 优缺点 概念 SPI(Serial Peripheral Interface)是一种串行外设接口协议,用于在数字系统之间进行通信。它被广泛应用于嵌入式系统和电子设备中,用于连接微控制器、传感器、存储器、显示…

Linux权限管理(超详解哦)

Linux权限 引言文件访问者的分类文件类型与访问权限文件类型访问权限 文件权限值的表示方法修改权限的指令chmod修改文件权限通过角色/-/权限来修改通过三个八进制数修改 chown修改所有者chgrp修改所属组umask修改或查看文件权限掩码文件创建时的权限 目录的权限粘滞位 总结 引…

【命令参数】SVN - 环境配置及常用命令参数

目录 环境配置 基本语法 参数指令 SVN是一款基于C/S架构的版本控制系统,能够实现对产品项目的版本托管以及对源码库的高效管理。而掌握SVN中的一些命令参数,一定程度上可以使日常效率得到进一步提升。 环境配置 为在调用时更加便捷,通常会…

我们如何实现业务操作日志功能?

1. 需求 我们经常会有这样的需求,需要对关键的业务功能做操作日志记录,也就是用户在指定的时间操作了哪个功能,操作前后的数据记录,必要的时候可以一键回退,今天我就为大家实现这个的功能,让大家可以直接拿…

哈尔滨工业大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 哈尔滨工业大学(A)考研难度(☆☆☆☆☆) 哈尔滨工业大学计算机考研招生学院是计算学部、计算学部(深圳)和计算学部(威海)…

C++完成烧烤节管理系统

背景: 这次我们结合今年淄博烧烤做一个餐厅管理系统,具体需求如下,我们选择的是餐饮商家信息管理 问题描述: 淄博烧烤今年大火,“进淄赶烤”是大家最想干的事情,淄博烧烤大火特火的原因,火的…

C语言之文件的读写(1)

前面三部分已经给大家介绍过了,网址发给大家方便大家复习 打开方式如下: 文件使用方式 含义 如果指定文件不存在 “r”(只读) 为了输入数据,打开一个已经存在的文本文件 出错 “w”(只写) 为了输…

文心一言眼里的Java世界

目录 一、Java基础教程系列二、先听听文心一言怎么说?三、话不多说,开干。1、要有一个正确的Java学习路线,做一个细致的Java学习规划。2、学习资料推荐3、书中自有黄金屋,书中自有颜如玉4、自学周期推荐5、效率为先6、哪吒的学习方…

Redis 数据分布优化:如何应对数据倾斜?

Redis 核心技术与实战 笔记 作者: 蒋德钧 在切片集群中,数据会按照一定的分布规则分散到不同的实例上保存。比如,在使用 Redis Cluster 或 Codis 时,数据都会先按照 CRC 算法的计算值对 Slot(逻辑槽)取模&a…

Hi3861开发第一节:环境搭建,并顺利完成编译

本次教程在纯Windows下环境搭建!!! 1.DecEco Device Tool下载和安装 步骤一:下载devicetool-windows-tool-3.1.0.400.zip版,下载网址:https://device.harmonyos.c om/cn/develop/ide#download 步骤二:解压…

Win10连接网络打印机提示0x0000052e?

Win10连接网络打印机提示0x0000052e?Win10电脑中用户连接网络打印机的时候,出现了错误代码0x0000052e,导致用户无法正常使用网络打印机,这时候用户可以通过卸载最新补丁、替换系统文件并修改注册表等方法来解决问题。 方法一&…

Spring6 i18n国际化

随着互联网的发展,越来越多的企业和个人开始关注全球化的需求。在这个背景下,多语言支持成为了一个重要的课题。Spring框架作为一款优秀的Java开发框架,提供了丰富的i18N支持,能帮助搬砖工快速实现多语言应用。 1、i18n概述 国际…

【Android开发基础】计算器逻辑层代码补充

文章目录 一、引言二、设计1、案例2、算法设计 三、编码1、UI界面设计(1)按钮样式设计(2)主界面布局设计 2、编码(1)控件初始化(2)事件监听器 四、附件 一、引言 描述:关…

【深度学习】4-1 误差反向传播法 - 计算图链式法则反向传播

上一章中神经网络的学习是通过数值微分计算的神经网络的权重参数的梯度。数值微分虽然简单,也容易实现,但缺点是计算上比较费时间。本章将学习一个能够高效计算权重参数的梯度的方法一一误差反向传播法。 误差反向传播法能够高效计算权重参数的梯度的方法…

Angular 安装与创建第一项目

1. 下载nodejs 并且安装 https://nodejs.org/en 2. 打开命令窗口,验证是否安装成功 C:\Users\Harry>node -v v18.16.0C:\Users\Harry>npm -v 9.5.1 3. 安装Angular CLI C:\Users\Harry>npm install -g angular/cliadded 239 packages in 9s npm notic…