PTES-情报搜集

2023-05-16

01 概述


在《PTES-渗透测试执行标准》中介绍了渗透测试的一般流程,其中简要介绍了情报搜集的目标。

情报搜集的目标是尽可能多的收集渗透对象的信息(网络拓扑、系统配置、安全防御措施等),在此阶段收集的信息越多,后续阶段可使用的攻击矢量就越多。

因为情报搜集可以确定目标环境的各种入口点(物理、网络、人),每多发现一个入口点,都能提高渗透成功的几率。

情报搜集的方法多种多样,本文主要介绍情报搜集中一些常用的方法。首先对情报搜集的方法进行分类,然后分别从Web应用、主机两个层面对情报搜集的方法进行简要介绍。

02 分类


根据是否与目标直接交互,可将情报搜集分为被动情报搜集和主动情报搜集。

被动情报搜集

不与目标直接交互;利用OSINT(公开资源情报),通过搜索引擎及其他手段从各种公开的资源中获取目标的信息。

常用工具和技术:Google Hacking、Shadon、Zoomeye、Whois等。

主动情报搜集

与目标直接交互;通过请求响应、扫描等方式获取目标的信息,会在目标服务器留下痕迹。

03 Web应用


Web应用的情报搜集可以从以下几个方面着手:

IP(IP资产)

渗透测试往往是从Web应用开始,Web应用渗透结束,就会着手主机层面的渗透。要对主机进行渗透,首先得知道主机的IP地址。

对于安全服务来说,客户一般会提供详细的Web资产和主机资产,不需要我们去搜集这些信息;但传统的渗透,这些都需要我们自己去搜集。

获取到的IP信息,首先可用于主机层面的渗透。其次,企业一般都会有一个或多个IP段,或者运用虚拟主机技术,在一个主机上运行多个站点,所以还可用于旁站,C段。

可用于IP信息搜集的工具有:whois、nmap、nslookup等。

子域名(Web资产)

很多时候,渗透测试是从一个域名开始。但一个企业往往会有多个子域名及其他相关业务,就像鹅厂有游戏,有即时通讯等等。

如果只关注一个域名的话,往往会少搜集到很多信息。而且主域名和子域名的关注程度和安全程度可能有所不同,通过子域名枚举,可以发现更多评估范围内的域名,探测到一些隐藏的服务,能够提高漏洞被发现的几率。

可用于子域名枚举的工具有:Google、Sublist3r、knockpy等。

指纹识别(中间件资产)

每件事物都有指纹,根据指纹,我们能得到很多有用的信息。比如,警察搜集指纹,对比指纹库就知道犯人是谁;一看手机logo就知道是什么牌子的手机。

同样,计算机也有指纹。通过指纹识别,我们可以判断目标系统使用了哪些组件,组件的版本等。

指纹识别的一种方式是查看源代码,特别是当系统使用了框架和CMS(内容管理系统)的时候。

框架和CMS一般都会有自己独特的图标、js文件、css文件、版权信息Powered By、标签属性值、注释等等,比如Django框架中,表单默认是带csrf_token验证的,在源代码中我们可以找到隐藏的token字段。

只要我们找到了指纹特征,就很容易判断系统使用的框架,然后去网上查找框架是否有漏洞可利用即可。甚至,还可以下载框架源码去做代码审计。

除了查看源代码,还可以通过与目标交互获取指纹。查看文件后缀,查看目录URL,查看Cookie,查看首部字段X-Powered-By和Server,查看报错页面等等。

比如我们通过交互,发现这个页面。熟悉的校友应该知道,这是IIS的报错页面,那么操作系统很可能是Windows,因为IIS主要是搭配Windows系统使用。

根据这篇文章,我们可以先存疑,该系统存不存在HTTP.sys远程代码执行漏洞。另外,系统存不存在IIS解析漏洞,解析漏洞又常与文件上传漏洞配合使用,要利用解析漏洞,就要先找到系统的上传漏洞。然后IIS有没有启用WebDAV呢?WebDAV中的COPY/MOVE方法可是不安全的,和PUT方法搭配口味更佳~

哇,感觉世界都是我的了!

总之,指纹识别的目标是:What、Version

什么服务器,服务器版本
什么数据库,数据库版本
什么OS,OS版本
什么语言,语言版本
什么框架,框架版本
什么组件,组件版本

可用于指纹识别的工具有:whatweb、httprint、CMSmap、在线识别等。

源代码

查看源代码还有可能获取到其他敏感信息。

目前绝大多数的网页由3部分组成:HTML(结构)、CSS(样式)、JavaScript(动作),浏览器会将代码解析成对我们友好的页面,但很多细节并不会在页面中展示给我们,比如:隐藏的表单、JavaScript代码等,因此对源代码的审计是很有必要的。

很多校友对源代码的审计可能停留在html文件中,但js文件也需要审计。

一次工作,在js文件中找到了一个积分接口,但页面没有入口。我直接构造url,发起请求,个人账户的积分蹭蹭往上涨。与客户开发人员交流后,得知积分要消费才会涨,积分也可以兑换东西。这个时候就可以将其定义为漏洞了。

目录/文件

在摸清目标资产情况(IP资产、Web资产、中间件资产)之后,我们就可以摸索Web应用的结构了。

在测试大型的系统时,我个人的习惯是先查看一下Web应用整体的功能点和链接结构(接口),然后保证所有的功能点和接口都测试到就行。

因为系统不可能每个链接结构都不一样,一般都会存在复用的情况,除非功能不同。比如充话费,共用一个接口,充值金额不同只要修改接口中的话费id即可。

在测试的时候,我只需要测试其中一种金额就行了,或者测试两种,观察一下其中的规律,看有没有漏洞存在,可千万别1-100块都试一下。如果一顿操作猛如虎,将系统中所有链接都一个个去点击抓包分析,效率往往会低很多。

如何查看链接结构?我们可以把鼠标移动到要点击的链接上,浏览器下方会显示出来,或者点击链接,查看浏览器地址栏中的URL,或者抓包,这些方法都可以。

以上是摸索Web应用结构的一种情况,能提高我们渗透的效率。还有一种情况,就是查看特殊的目录和文件。

何为特殊的目录和文件?

网站后台:/admin、/manage、/wp-login.php 等
Web管理入口:Tomcat Web管理页面、phpmyadmin管理页面 等
探针类文件:phpinfo.php 等
备份文件:网站源码、数据库、配置 等
配置文件:数据库、服务器 等
robots.txt
其他可造成信息泄露的文件

要查看这些目录和文件,有两种方法:一是手工构造,利用自身经验以及之前搜集到的信息,构造路径,查看目录和文件是否存在;二是利用字典跑出来。搜集这些目录和文件有什么用,应该不用我说明了吧?

可用于目录/文件搜集的工具有:Burpsuite、DirBuster、google等。

邮箱/电话/工号/...

几乎所有的网站都存在登录功能。要想登录系统,两种办法:一是利用其他漏洞登录,二是老老实实输入账号密码。

第二种方法也包含两种情况:暴力破解、明确获取到账号密码,这都涉及到邮箱/电话/工号等信息的搜集。

如果明确获取到了账号密码,这当然是幸运的;如果没有明确获取到账号密码,我们也可以根据搜集到的邮箱/电话/工号等信息,去发现命名规律,然后生成字典去爆破。

去年在给联通还是电信某个系统测试的时候,登录页面明确提示使用工号登录,查看系统相关源码,没有发现工号的踪影。我在网上查了一下,工号是4位数,然后利用登录页面的用户枚举漏洞,使用burpsuite的Intruder模块,从1111-9999中获取到了几个系统存在的账号,然后利用字典爆破出了密码,使用的是弱密码,可能是测试账号忘记删除了。如果不仔细搜集信息,使用字母字典或者不是4位数的数字字典,那可能永远都跑不出账号。

可用于邮箱信息收集的工具有:whois、The Harvester等。

github

作为全球最大的“同性社交”网站,github包含了海量的信息。这些信息中,不乏大量的“个人社交”信息。

鲁迅说过:“朋友多了路好走”。当你无路可走的时候,不妨出来交交朋友。像上面的截图,用户名、密码、IP地址、端口、数据库名直接告诉你,都不需要去SQL注入,一条明路就这么出现了。

当然,除了github,还有其他“社交”网站:gitee、coding等。

04 主机


相对Web应用,主机层面主要关注端口开放情况以及端口banner。

服务器通过不同端口向用户提供不同的服务,服务器就像一座房子,而端口就是一扇扇门,通过门进出房间(请求与响应),不同的门对应不同的房间。

每多开放一个端口,就多开一扇门,小偷打开门进入房子的成功率就高一分。当然,小偷需要开锁才能打开门,该用什么方式开锁,取决于锁的种类以及锁的安全级别,这些都能在端口号和端口banner中获取。

端口

每台服务器都有65536个端口,端口号范围:0~65535。不同的端口对应不同的服务:

FTP:21
SNMP:161
SMB:445
rsync:873
redis:6379
memcache:11211

有一定基础的校友看到这些端口,应该能明白我想表达什么:FTP匿名登录、SNMP弱口令、给我哭、未授权、未授权、DRDOS。

设想一下,你在给客户测试准备上线的管理系统,你测试了半个月,Web应用竟然没任何问题。你:开发人员真棒,上线吧。结果上线5分钟,挂马2000个,检查发现上面那些端口服务器都开放了且都是默认配置。根据《网络安全法》,你可能需要喝几杯茶。

简单的举例,大家应该能明白全面搜集信息的重要性,这也是我将情报搜集分Web应用和主机两个层面的原因,主机端口扫描能帮助我们发现更多可行的攻击途径。当然,端口漏洞远远不止这么点,需要靠校友们不断的去储备知识和积累经验。

可用于端口扫描的工具:nmap、nessus、shodan、censys.io等。

Banner

通常情况下,端口扫描不仅能获取到服务器的端口开放情况,还能获取到端口banner信息。

通过banner信息,可以获取到服务器操作系统以及运行在其开放端口的服务的信息,包括正在运行的应用程序以及操作系统的版本。

获取到版本有什么用呢?这就要借助互联网的力量了。互联网上有各种信息,漏洞信息也不例外,特别是各大安全站点,往往会有漏洞的详细信息,poc、exploit等。

获取到版本信息后,我们可以在网上查询该版本的软件和操作系统是否有已公布的漏洞,是否有poc和exploit,进而去验证和利用漏洞。

可用于banner获取的工具:telnet、nmap、netcat、shodan、censys.io等。

05 结语


情报搜集的方法和技术远远不止这些,一篇文章是介绍不完的。这里我只是简单的介绍情报搜集的一些思路,起到一个抛砖引玉的效果,希望校友们能够发散思维,形成自己的一套搜集方案。

篇幅问题,细节不再深究,后续我再一个一个给大家讲解。不要小看情报搜集,组合发散延伸,会让你在渗透后续阶段如虎添翼。

06 免责声明


安全小白团是帮助用户了解信息安全技术、安全漏洞相关信息的微信公众号。安全小白团提供的程序(方法)可能带有攻击性,仅供安全研究与教学之用,用户将其信息做其他用途,由用户承担全部法律及连带责任,安全小白团不承担任何法律及连带责任。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PTES-情报搜集 的相关文章

  • C++调用Yolov3模型实现目标检测

    C 43 43 调用Yolov3模型实现目标检测 使用开源权重文件 xff0c 此训练模型包含80种物体 文件下载地址 xff1a 预训练权重文件 xff1a https pjreddie com media files yolov3 we
  • 无人驾驶-控制-坐标系转化

    无人驾驶 坐标系转化 一 坐标系概念1 1 WGS 84坐标系1 1 1 简介1 1 2 角度范围1 1 3 基本参数1 1 4 坐标系图示 1 2 ECEF地心坐标系1 2 1 简介1 2 2 坐标系图解 1 3 ENU东北天坐标系1 3
  • 几何实体图形保存成stl格式的ascII和二进制文。用Vc++语言读入文件,给三角网格坐标值乘以2,并保存到另一stl文件。输出完成工作所用的执行时间

    1 题目 xff1a CAD CAM软件生成几何实体图形 xff0c 图形形状不限 xff0c 但图形需包含曲面 xff0c 分别保存成stl格式的ascII和二进制文 用Vc 43 43 语言读入文件 xff0c 给所有三角网格坐标值乘以
  • windows下vscode连接Linux中的MySQL(非常实用)

    于初学Linux系统的小伙伴来说 xff0c 由于对Linux系统及其在windows下的环境配置比较生疏 xff0c 所以当使用windows下vscode连接Linux中的MySQL xff0c 并进行相关研发时 xff0c 颇为头疼
  • UDP通信实现(客户端和服务器端)

    服务器端 xff1a include lt stdio h gt include lt stdlib h gt include lt unistd h gt include lt string h gt include lt arpa in
  • conda环境的激活与关闭

    激活conda环境 conda activate 关闭conda环境 conda deactivate 打开终端自动进入conda环境 conda config set auto activate base true 关闭打开终端自动进入c
  • C语言结构体字节对齐规则

    注 xff1a 图片中蓝色圆圈表示空闲的字节空间 xff0c 黄色表示成员占有的字节空间 编译器一般默认4字节对齐 xff0c 当然也有8字节对齐的 xff0c 但是如果结构体没有使用8字节的数据类型 xff0c 其实也可以认为是4字节对齐
  • c语言输出对齐的方法

    关于c语言输出对其方法 左对齐右对齐附乘法表代码 左对齐 当输出多个数据时 xff0c 由于每个数据的字符长度不同 xff0c 所以需要对齐 xff0c 左对齐时方法如下 xff1a span class token function pr
  • 多线程与网络编程

    一 网络协议 应用层 HTTP FTP TFTP SMTP SNMP DNS 传输层 TCP UDP 网络层 ICMP IGMP IP ARP RARP 数据链路层 由底层网络定义的协议 物理层 由底层网络定义的协议 二 TCP与UDP x
  • const和define区别与比较

    xff08 1 xff09 就起作用的阶段而言 xff1a define是在编译的预处理阶段起作用 xff0c 而const是在编译 运行的时候起作用 xff08 2 xff09 就起作用的方式而言 xff1a define只是简单的字符替
  • FreeRTOS中任务栈内存分配

    前言 在RAM中大多数的空间分配为任务栈和系统栈两部分 任务栈 xff1a 顾名思义就是用来跑任务的 xff0c 当我们xTaskCreate一个任务时 xff0c 但是在这块任务栈里面动态分配空间 系统栈 xff1a 任务栈是不使用这里的
  • 网络编程(0816-林雪阵)

    完成seclect TCP客户端 include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt in
  • yolov5获取边框坐标

    这里使用的是5 0版本 打开detect py xff0c 找到 Write results模块 xff0c 找到 save one box ctr 43 鼠标点击 xff0c 进入general py xff0c 会自动定位到 save
  • ROS介绍以及常用指令

    ROS 1 什么是ros ROS 的雏形诞生 xff1a 斯坦福大学人工智能实验室的STAIR 机器人项目这个项目希望完成一个服务机器人原型 xff0c 在视觉的辅助下 xff0c 可以在复杂环境中运动 xff0c 还可以通过机械臂操控环境
  • 基于ROS的YOLOV3实现目标检测项目过程记录

    2020 08 07 问题记录 1 要命的darknet ros 整体逻辑是用yolo检测出目标 然后通过ros节点将目标类别和位置信息发布出来 因此选择ros darknet 2个问题 1 依赖opencv和boost boost库安装过
  • 【Jetson目标检测SSD-MobileNet应用实例】(五)根据输出的检测结果,使用串口和STM32配合进行电机控制

    Jetson目标检测SSD MobileNet应用实例 xff08 一 xff09 win11中配置SSD MobileNet网络训练境搭建 Jetson目标检测SSD MobileNet应用实例 xff08 二 xff09 制作自己的数据
  • QT5.14串口调试助手:上位机接收数据解析数据帧+多通道波形显示+数据保存为csv文件

    由于业务需要 xff0c 在上个月做了一个关于qt的设计 xff0c 在设计中主要需要解决的问题就是接收单片机采集到的数据并在上位机将数字实时的通过波形显示出来 xff0c 然后上位机要有保存下数据文件的功能 xff0c 便于后续的软件读取
  • 如何使用Cmake编译

    目录 一 Cmake是一种跨平台编译工具 二 CMake说明 三 编写CMakeList txt 四 使用 cmake 一 Cmake是一种跨平台编译工具 比make更高级 xff0c 使用起来要方便得多 CMake主要是编写CMakeLi
  • 51单片机串口通信篇

    串行通信 基本介绍波特率通信校验内部结构 并行通信串行通信串行通信方式同步通信异步通信 串行口的控制寄存器SCON寄存器PCON寄存器中断源及优先级 串口通信配置步骤 相关程序简单例程1简单例程2 基本介绍 单片机通信是指单片机和单片机 或

随机推荐

  • 0基础学会 UDP通信(内附C语言源码)

    include lt sys types h gt include lt sys socket h gt ssize t sendto int socketfd const void buf size t len int flags con
  • C++ --头文件和类的声明

    函数 function 是为了处理数据 数据的实质就是变量 xff08 variables xff09 C是所有的函数都可以去处理任意声明的变量 C 43 43 面向对象的编程思想就是 把函数名和变量名封装起来 xff08 也就是类 xff
  • gcc编译可执行文件和cmake编译可执行文件

    gcc编译 gcc的下载 xff08 下载mingw xff0c 里面包含gcc xff09 下载安装MinGW w64详细步骤 xff08 c c 43 43 的编译器gcc的windows版 xff0c win10真实可用 xff09
  • 常用传感器讲解十九--超声波感器(HC-SR04)

    常用传感器讲解十九 超声波感器 xff08 HC SR04 xff09 具体讲解 HC SR04超声波距离传感器的核心是两个超声波传感器 一个用作发射器 xff0c 将电信号转换为40 KHz超声波脉冲 接收器监听发送的脉冲 如果接收到它们
  • C++中vector作为参数的三种传参方式(传值 && 传引用 && 传指针)

    c 43 43 中常用的vector容器作为参数时 xff0c 有三种传参方式 xff0c 分别如下 xff1a function1 vector vec xff0c 传值 function2 vector amp vec xff0c 传引
  • 斯坦福机器狗的介绍

    添加链接描述 斯坦福机器狗的介绍 Stanford Doggo 现在已经能完成走路 慢跑 跳舞 跳跃等动作 xff0c 偶尔还能表演一下后空翻 机械结构组成 同轴机制 同轴机制 xff08 coaxial mechanism xff09 会
  • 基于ROS的车道线检测项目记录

    2020 09 06 任务 xff1a 传统OpenCV方法ROS版本改造 选取大神陈光的高级车道线检测方法进行改造 xff0c 总体逻辑是 xff1a 第一 创建订阅者 xff0c 接收摄像头发布的数据 xff0c 用cv bridge将
  • ACEINNA发布用于自动驾驶汽车的IMU330RA

    IMU技术是自动驾驶汽车中ADAS导航系统和安全系统的关键构成部分 常规环境下 xff0c 感知传感器 xff08 激光雷达 摄像头 雷达 里程计等 xff09 用来确保车辆行驶在正确的路径上 但是 xff0c 如果感知传感器由于车辆位置或
  • 无刷电机与odrive

    无刷电机 无刷电机的优点 能获得更好的扭矩转速特性高速动态响应高效率长寿命低噪声高转速 无刷电机的简介 无刷直流电机由电动机主体和驱动器组成 xff0c 是一种典型的机电一体化产品 由于无刷直流电动机是以自控式运行的 xff0c 所以不会像
  • 无刷舵机 数字舵机 模拟舵机

    舵机 1 无刷舵机 xff1a 由 xff1a 电机 减速齿轮组 反馈电位器 控制电路构成 主电机可以使用无刷电机 xff0c 减少磨损延长使用寿命 模拟舵机需要给它不停的发送PWM信号 xff0c 才能让它保持在规定的位置或者让它按照某个
  • PCA9685如何通过iic协议控制多个舵机

    iic协议 即I2C xff0c 一种总线结构 能够有效减少芯片管脚和线路连接的数量 例如 内存中的SPD信息 通过IIC xff0c 与BX芯片组联系 xff0c IIC 存在于英特尔PIIX4结构体系中 随着大规模集成电路技术的发展 x
  • 无人机电池模块

    3 电池模块 xff1a 1 xff1a 电池的多少mah什么意思 xff1f 表示电池容量 xff0c 如5200mah电池 xff0c 表示以5 2A的电流放电 xff0c 可持续放电1小时 但是 xff0c 实际的放电时间还是要参考厂
  • 每日漏洞 | 跨站请求伪造

    01 漏洞描述 HTTP的无状态性 xff0c 导致Web应用程序必须使用会话机制来识别用户 一旦与Web站点建立连接 访问 登录 xff0c 用户通常会分配到一个Cookie xff0c 随后的请求 xff0c 都会带上这个Cookie
  • 每日漏洞 | rsync未授权访问

    01 漏洞描述 rsync是Linux Unix下的一个远程数据同步工具 xff0c 可通过LAN WAN快速同步多台主机间的文件和目录 xff0c 默认运行在873端口 由于配置不当 xff0c 导致任何人可未授权访问rsync xff0
  • 每日漏洞 | 不安全的HTTP方法

    01 漏洞描述 HTTP HTTP报文 中介绍了HTTP的请求方法 在这些方法中 xff0c HTTP定义了一组被称为安全方法的方法 xff1a GET HEAD OPTIONS TRACE xff0c 这些方法不会产生什么动作 xff0c
  • 每日漏洞 | Host头攻击

    01 漏洞描述 HTTP HTTP报文 最后一节 xff0c 简单的介绍了一下首部字段 xff0c 其中就包含了Host首部字段 为了方便获取网站域名 xff0c 开发人员一般依赖于请求包中的Host首部字段 例如 xff0c 在php里用
  • 每日漏洞 | HTTP.sys远程代码执行

    01 漏洞描述 上篇文章介绍了Host头攻击 xff0c 今天我们讲一讲HTTP sys远程代码执行漏洞 HTTP sys是Microsoft Windows处理HTTP请求的内核驱动程序 xff0c 为了优化IIS服务器性能 xff0c
  • miivii域控制器(Xavier)实现TensorRT加速后的Ultra-Fast-Lane-Detection项目

    TRT ONNX2是神力模型转换工具链 鸡汤哥知乎金天 一 配置TRT ONNX2 1 安装依赖 xff08 2020 09 30更新 xff09 昨天刷了JetPack4 4 xff0c 很好用 xff01 只需要下载编译thor即可 x
  • 每日漏洞 | CRLF注入

    01 漏洞描述 在 HTTP HTTP报文 一文中 xff0c 我们介绍了HTTP报文的结构 xff1a 状态行和首部中的每行以CRLF结束 xff0c 首部与主体之间由一空行分隔 或者理解为首部最后一个字段有两个CRLF xff0c 首部
  • PTES-情报搜集

    01 概述 在 PTES 渗透测试执行标准 中介绍了渗透测试的一般流程 xff0c 其中简要介绍了情报搜集的目标 情报搜集的目标是尽可能多的收集渗透对象的信息 网络拓扑 系统配置 安全防御措施等 xff0c 在此阶段收集的信息越多 xff0