本文提供的资料和信息仅供学习交流,不得用于非法用途;

对于因使用本文内容而产生的任何直接或间接损失,博主不承担任何责任;

本文尊重他人的知识产权,如有侵犯您的合法权益,请在vx公众号SecurePulse后台私信联系我们,我们将尽快删除

本文来源:大白哥红队攻防演练课程(Des师傅授课部分)

需要咨询课程详情,请扫下方二维码添加大白哥绿泡泡

一、被动信息收集简介

  • 攻击者本机不需要对目标单位做攻击流量就能收集到信息(不需要开始攻击目标资产)

  • 例如:通过fofa、hunter进行查找

二、被动信息流程介绍

  • 场景:hvv的攻击队平台上提供了目标单位名称

第1步:主域名收集

  • 拿到靶标以后,先对目标资产做主域名收集(目标单位资产、边缘资产)

  • 收集方法:

  • 通过目标企业名称,在ICP备案、小蓝本、企查查、爱企查、天眼查、站长之家等网站搜索该公司,获取主域名

  • 此外还有目标的公众号、小程序(包括一个小程序关联的另一个小程序)、APP

  • 小程序获取域名(本地抓包获取相关接口)

  • APP获取域名(通常只考虑appdump下来的信息,或者反编译能找到的URL链接等)

  • 公众号获取域名(部分企业的公众号是本地WEB搭建,可以抓包发现新的域名)

  • 邮箱获取域名(爱企查等企业信息平台上都有企业对应的联系方式,部分企业会自建邮箱系统,通常就是企业的域名结尾)

举例1:企查查获取主域名

  • 在企查查搜索目标单位

  • 查看知识产权的内容

  • 关注备案网站

举例2:Enscan收集主域名

enscan-v1.0.2-windows-amd64.exe -v

  • 在生成的配置文件(config.yaml)中写入爱企查的cookie

  • 获取Cookie的方法:因为爱企查禁用了F12调试功能,所以可以通过使用Burp抓访问爱企查的数据包

  • 接着使用以下命令进行信息收集

enscan-v1.0.2-windows-amd64.exe -n 目标单位名称

  • 扫描结束以后,会在工具所在目录的outs目录下生成一个表格,点击查看即可

举例3:网络空间搜索引擎(hunter&&fofa)

  • 在hunter通过语法icp.name="完整企业名称"可以找到

  • 使用fofa语法icp="备案号"查找(只能通过具体的备案号进行查询)

举例4:通过目标单位公众号/小程序获取目标域名

  • 首先安装Proxifier代理工具,将微信的流量转发到Burp的8080端口

  • 配置Proxifier

  • 添加代理服务器

  • 设置规则

  • 此时打开Burp,然后在微信搜索公众号或者小程序,就可以看到抓到了相应的地址

  • 注意:

  • 抓包时将Burp插件全部停用,防止主动攻击

  • 使用小号进行收集,防止封号

情况4:通过APP收集域名信息

  • 可以使用APP信息收集工具直接提取未加壳的APP里面的所有URL

  • 使用命令

python app.py android -i xxx.apk

拓展1:对收集的域名/URL资产提取和去重

  • 可以使用工具-无影v2.6

  • 将收集到的域名或者URL复制到辅助工具选项中进行提取和去重

第2步:扩大攻击面(寻找边缘资产,增加目标)

  • 收集目标的下级单位、机构等、全资子公司、投资占比百分之51以上子公司等

  • 寻找到相关的公司或单位名称之后重复第1步,查询下属单位、子公司的主域名

企查查查找

  • 在企查查中找到目标单位后,关注基本信息中的股权穿透图

  • 在股权穿透图中,在下游的企业中(上游不管),只需要关注股权占比为51%或者以上(拥有绝对控股权)的公司,如果这些下游公司还有资产,但是此时需要付费观看的话,就可以再次搜索该公司,然后再查看股权穿透图

  • 下游公司资产收集后,依旧关注知识产权中的内容(备案网站、APP、小程序、公众号),接着按照第一步再进一步收集信息

拓展:纯IP资产的概念

  • 反向代理出口IP上的某个端口没有绑定域名就直接映射出来了,ACL防火墙没做相关限制(或者出口的ACL的限制没有做好),开了端口自己做测试,域名上没有新增项,但是扫端口能发现

通过证书收集

  • 存在一些纯IP或者域名资产没有备案,使用了和主站一样的证书

  • 可以在fofa、hunter等上通过证书找到

  • 先通过浏览器手工查看证书

  • 然后在fofa中使用以下语法进行查询

//格式
cert="目标单位域名"
cert="目标单位证书"

  • 也可以使用hunter语法查询

//搜索证书中带有xxxx的资产
cert="xxxx" 

//搜索证书使用者包含xxxx.com的资产
cert.subject="xxxx.com" 

//搜索证书使用者为xxxx.com的资产
cert.subject.suffix="xxxx.com" new 

//搜索证书使用者组织是xxxx单位的资产
cert.subject_org="xxxx单位"

  • 还可以使用fofax工具

//格式
fofax -fs 100 -uc http://ip:port

通过hash图标收集资产

  • 有些网站无证书、无备案,但是使用的是主站的标识性图标

  • 使用fofa收集

  • 首先使用fofa语法查询目标单位的域名,此时可以发现在搜索框下方会有“相关icon”

domain="目标单位域名"

  • 此时判断哪个是目标单位的图标,点击该图标,就会自动计算出该图标hash,并在搜索框自动生成搜索语法,此时点击搜索即可

  • 使用hunter收集

  • 首先使用语法查询目标单位的域名,此时可以发现在站点标题前面有图标

domain="目标单位域名"

  • 此时点击该图标,就会自动计算出图标hash,并生成查询语法

  • 使用fofa_viewer工具,通过icon hash找到

  • 然后输入URL,点击计算hash并搜索

通过body信息进行查找

  • body带了目标单位、目标企业的信息,后台也有相关数据,但是域名、IP均不是目标单位,这种可能是供应链,或者私自搭建。

  • 可以在fofa或者hunter搜索body关键字

//格式
body="XXX单位"
  • 有时候可以发现存在一些域名不是官网的,但是弱口令爆破进去了,里面的数据logo都是目标公司的

Fofax工具使用

//针对HTTPS证书查询
fofax -fs 100 -uc URL
fofax -fs 100 -uc https://www.xxx.com/
fofax -fs 100 -ucf url.txt    //批量查询:将URL保存在url.txt文件中
fs:获取同证书资产上限,最多返回给你100个URL

//针对icon hash图标查询
fofax -fs 100 -iu URL
fofax -fs 100 -iu https://www.xxxx.com/
fofax -fs 100 -iuf url.txt    //批量查询:将URL保存在url.txt文件中

第3步:被动收集子域名

Fofa&&hunter语法

domain="主域名"

工具使用(常用且推荐使用)

oneforall

  • 使用命令如下

//多域名扫描
python oneforall.py –-targets 域名列表 run
python oneforall.py --targets xxx.txt run

//单域名扫描
python oneforall.py –-target 单个域名 run
python oneforall.py --target xxx.com run
  • 扫描完成后会在oneforall根目录中的results目录生成一个表格文件

subfinder

//批量扫描
subfinder.exe -dL url.txt -o out.txt

//可以配合httpx进行使用,先使用subfinder发现子域名,然后将结果传递给httpx进行遍历
subfinder.exe -dL 根域名列表 | ./httpx.exe -o hackerone.html -html -title

-o hackerone.html 指定输出文件名,将所有子域名的HTML内容保存到hackerone.html文件中。
-html 参数表示保存完整的HTML内容。
-title 参数表示提取并显示页面标题。

在线网站查询(辅助使用)

  • 线上子域名查询平台

  • dnsdumster

  • VT

  • 站长工具(查询结果数量较少)

谷歌搜索语法(不实用)

site:

指定域名

inurl

URL 中存在的关键字页面

intext

网页内容里面的关键字

Filetype

指定文件类型

intitle

网页标题中的关键字

link

返回你所有的指定域名链接

info

查找指定站点信息

cache

搜索 Google 里的内容缓存

第4步:识别CDN

  • 在攻防演练中,有钱的单位有选择使用CDN,域名会解析出来的IP比较多,所以需要高效的方式识别CDN

  • 识别方式:

  • 通过在线网站对域名进行解析,如果解析出多个IP,说明大概率就是使用了CDN

  • 更推荐使用工具进行识别,比如:ARL、ez、oneforall

  • 例如:使用oneforall进行子域名收集的时候,就会自动识别出CDN

python oneforall.py --target xxxx.com run

  • 在实战攻防演练中,通常将CDN筛除之后进行IP的全端口扫描

第5步:绕过CDN

子域名查询

  • 某些子域名使用频率少,业务对外开放需求不大,没有做全局CDN,所以可以通过查找目标站点的子域名,特别是那些不经常使用或对公网开放程度较低的子域名,这些子域名可能没有配置CDN。

  • 在一些子域名查询网站或者空间搜索引擎中,如果看到解析出来的基本都是指向同一个IP,就说明该IP可能是真实IP或者方向代理的IP

邮件服务查询

  • 有些企业在做邮件系统的时候可能不考虑邮件系统做CDN,所以邮件服务可能会透露真实IP

  • 如果目标服务器自建了邮件系统,可以使目标主动发送邮件以暴露真实IP

  • 比如:目标网站存在注册/忘记密码或者其他能给发验证码邮箱的服务 拿到对方的邮件之后,有可能查看到真实源IP

多地ping/超级ping

  • 有些单位不考虑向国际开放,所以不会做国际的CDN,此时使用国外的站点去解析域名,就有可能找出真实IP

  • 测试网站:

历史DNS解析

  • 通过历史DNS解析,可能找到没有绑定CDN之前的IP,但是如果解析出来也是很多IP,那就说明不靠谱,如果只是一两个IP,就有可能是没上CDN之前的IP

  • 测试网站

第6步:被动指纹识别(主动信息收集的比较全,被动信息量少)

  • 对WEB资产进行指纹识别,其他的比如FTP、Mysql、ssh这种直接跳到下一步,进行主动信息收集的相关操作,考虑爆破弱口令,或者主动探测是否存在Nday

  • 识别方法

使用谷歌插件Wappalyzer进行识别

  • Wappalyzer主要用于识别网站所使用的技术栈。实战用于分析Vue,区分JAVA、PHP、ASP;通过分析网页的内容和HTTP响应头信息来确定网站使用的各种技术和框架,包括但不限于:

  • 服务器:

  • 如:Apache, Nginx, IIS 等。

  • 内容管理系统(CMS):

  • 如:WordPress, Joomla, Drupal 等。

  • 前端框架和库:

  • 如:React, Angular, Vue.js 等。

  • JavaScript库:

  • 如:jQuery, Bootstrap 等。

Findsomething插件

  • FindSomething 用于帮助渗透测试人员查找系统中存在的敏感路径,提升发现漏洞的概率。它可以在用户浏览网站时被动地检测信息泄漏,并且可以帮助识别目标站点的技术栈和服务指纹。

  • 敏感路径发现:通过分析网页内容和响应头,FindSomething 可以自动识别出可能存在的敏感路径或文件,例如配置文件、备份文件、未公开的API接口等。这些路径可能会暴露出系统的内部结构或者直接提供对系统的未授权访问。

  • 通过这个插件可以发现大量的路径,此时就需要对这些URL探活;可以将URL复制到一个txt文件,然后通过httpx进行探活

httpx.exe-l url.txt -sc -title -cl -location

  • 实战中,注重效率的情况下优先考虑Ehole、Finger这些主动信息收集方式

云悉指纹识别平台

潮汐CMS平台

三、拓展:敏感信息收集

使用在线平台

谷歌hacking

漏洞赏金助手

网盘搜索

  • 搜索关键词:XXX单位、通讯录、调研表

凌风云

百度网盘-云铺子

百度网盘-猪猪盘

源码泄露

  • 除非没办法了,否则红队不会考虑源码审计

  • 找源码可以使用两种方法

  • github

  • 可以搜索企业的内网、外网域名,企业邮箱,版权声明(一般会写在代码首部注释),常用包名等

  • 寻找源码的话可以搜索相关JS文件,组件,前端具有标识性的文件等

  • 根据作者的相关信息,比如网名ID、邮箱等

  • github绕过限制

site:github.com intext:"smtp.163.com" intext:password
  • 在线搜索平台(国内少用,一般用来扒国外站点的源码)