百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-09-18 07:53 36 浏览

前言

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

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 常见端口脆弱点

端口

服务

可能存在的风险威胁

21

ftp

是否支持匿名/弱口令

80

web

常见web漏洞/web管理后台弱口令

443

Openssl

心脏滴血以及一些web漏洞测试

873

rsync

是否支持匿名/弱口令

2601/2604

zebra路由

默认口令

3690

svn

svn泄露/未授权访问

6379

redis

一般无认证,可直接访问

7001

weblogic

默认弱口令

8061/8161

ActiveMQ

弱口令/远程命令执行

8080

tomcat

弱口令/默认口令

8089

jboss

未授权访问/弱口令

8649

ganglia

信息泄漏

8888

宝塔

未授权等多个漏洞

11211

memcache

未授权访问

27017

mongodb

未授权访问

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.txtcrossdomain.xmlsitemap.xmlxx.tar.gzxx.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等网站中进一步查找这些人在互联网上发布的与目标站点有关的一切信息,分析并发现有用的信息。

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

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...