草庐IT

红队信息收集思路总结

Affected_Fish 2023-03-28 原文

概述

渗透测试的本质就是信息收集,信息搜集的广度决定了攻击的广度,知识面的广度决定了攻击的深度。
信息收集很重要,如确定资产,比如他有哪些域名、子域名、C 段、旁站、系统、微信小程序或者公众号,确定好站点或者目标系统之后,就是常规的指纹识别,像中间件、网站,扫目录,后台,确定功能然后分析每个功能点上会有哪些漏洞,就比如一个登录页面,我们可以考虑的是爆破账号密码,社工账号密码,SQL 注入,XSS 漏洞,逻辑漏洞绕过等。
在短时间内你无法去提升你的技术或者是挖掘一个新的思路,这个时候就体现了资产搜集的能力,信息搜集是最难的,也是最麻烦耽误时间的,且必须要实时去关注的一件事情。
红队最最最关键的就是要做好信息收集,信息收集的前提是确定目标,通常来讲,HW期间,目标可能存在金融,政府,学校,企业,公安等各类行业目标,通过首选企业去打,相对来讲企业是比较好打的,政府,金融等安全防护做的相对来说较好,安全设备较多,所以首选企业,其次学校,其次是政府单位等。

一些常用网站

ICP 备案查询:https://icp.aizhan.com
权重查询:https://rank.aizhan.com/www.wondercv.com/
多地 ping:https://www.ping.cn/d
whois 查询:https://www.whois365.com/cn/ip/119.23.74.200
IP 反查:https://www.ip138.com/iplookup.asp?ip=166.111.53.94&action=2

以 xxx 公司为例,根域名:xxx.cn

信息收集可以从多个领域来看:公司,子公司,域名,子域名,IPV4,IPV6,小程序,APP,PC 软件等等
可以重点关注备案网站,APP,小程序,微信公众号,甚至是微博。
这里说一点小思路,首先可以找到官网,用 cmd ping 他的官网,可以看到 IP 地址,然后可以定位 whois,whois 中包含了用户、邮箱,以及购买的网段。
有了网段就可以进行一些主动信息收集,可以使用一些强大的资产测绘工具,goby 的资产测绘还是很不错的,会有一些 web 服务,不用担心没有 banner,往往这些没有 banner 的才有问题。
注意观察一下网站底部是否有技术支持:xxxx | 网站建设:xxxx 之类的标注,一些建站企业会出于知识产权保护或者是对外宣传自己的公司,会在自家搭建的网站上挂上技术支持等之类的标注,很多建站企业往往某种类型的网站都是套用的同一套源码,换汤不换药。

1.组织股权结构

拿到公司名称后,先不用急着查备案、找域名,而是先看看这家公司的股权构成,因为一般一家公司的子公司也是可以作为目标去打的,不过有时是要求 50% 持股或者 100% 持股,这个就要看具体实际情况了,常见的查询公司组织股权结构的网站有天眼查、企查查、爱企查、小蓝本等等。
如果目标持股公司不多,可以直接看股权穿透图,比较直观,除了股权穿透之外,还可以看它的对外投资信息,这两个地方都可以查到有目标持股的公司

爱企查,天眼查

https://www.qcc.com/
https://aiqicha.baidu.com/
https://www.tianyancha.com/

2.子域名查询

首推OneForAll,Layer 子域名挖掘机

如果提前知道目标,还可以提前收集一波子域,然后项目快开始的时候,再收集一波子域,将两次收集的结果做下对比,优先打新增子域。

尽量多凑一点 API,fofa 可以找人借一些 api,越多越好。

在线子域名查询

http://z.zcjun.com/
http://tool.chinaz.com/subdomain
https://dnsdumpster.com
https://phpinfo.me/domain      //推荐

OneForAll

https://github.com/shmilylty/OneForAll

执行命令:

常用的获取子域名有 2 种选择,一种使用 --target 指定单个域名,一种使用 --targets 指定域名文件。

python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./domains.txt run
python3 oneforall.py --target xxx.cn run

3.谷歌语法

迅速查找信息泄露、管理后台暴露等漏洞语法,例如:

Google hack实战-搜索敏感文件
filetype:txt 登录
filetype:xls 登录
filetype:doc 登录
site:xxx.com filetype:doc intext:pass
site:xxx.com filetype:xsl intext:pass
site:xxx.com filetype:conf
site:xxx.com filetype:inc
filetype:log iserror.log



Google hack实战-搜索登陆后台
intitle:后台管理
intitle:login
intitle: 后台管理 inurl:admin
intitle:index of /
site:example.com filetype:txt 登录
site:example.com intitle: 后台管理
site:example.com admin
site:example.com login
site:example.com system
site:example.com 管理
site:example.com 登录
site:example.com 内部
site:example.com 系统
site:xxx.com admin
site:xxx.com login
site:xxx.com 管理
site:example.com system
site:example.com 登录
site:example.com 内部
site:example.com 系统
site:example.com filetype:txt 登录
site:example.com intitle:后台管理
inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms
site:example.com intext:管理|后台|登录|用户名|密码|验证码|系统|账号|admin|login|sys|management|password|username

Google hack实战-搜索中间件
Weblogic

inurl:/console/login/LoginForm.jsp site:domian
inurl:/console/login/LoginForm.jsp intitle:Oracle WebLogin Server site:domain
inurl:/console/login/ intitle:"Oracle WebLogin Server 管理控制台" site:domain

Jboss

inurl:/jmx-console/htmladaptor site:domain

Websphere

inutl:/ibm/console/login.jsp site:domain

4.fofa 语法

FOFA 作为一个搜索引擎,我们要熟悉它的查询语法,类似 google 语法,FOFA 的语法主要分为检索字段以及运算符,所有的查询语句都是由这两种元素组成的。目前支持的检索字段包括:domain,host,ip,title,server,header,body,port,cert,country,city,os,appserver,middleware,language,tags,user_tag 等等,等等,支持的逻辑运算符包括:=,==,!=,&&,||。
如果搜索 title 字段中存在后台的网站,只需要在输入栏中输入 title=“后台”,输出的结果即为全网 title 中存在后台两个字的网站,可以利用得到的信息继续进行渗透攻击,对于网站的后台进行密码暴力破解,密码找回等等攻击行为,这样就可以轻松愉快的开始一次简单渗透攻击之旅,而企业用户也可以利用得到的信息进行内部的弱口令排查等等,防范于未然。

搜索 QQ 所有的子域名:domain=“qq.com”
搜索 host 内所有带有 qq.com 的域名:host=“qq.com”
搜索某个 IP 上的相关信息:ip=“58.63.236.248”
搜索全球的 Apache:server=“Apache”
搜索非常火的海康威视:header=“Hikvsion”
假如搜索微博的后台,域名为:weibo.com 并且网页内 body 包含 “后台”:body=“后台”&& domain=“weibo.com”

自常用语法:

host=".xxx.edu.cn" && status_code="200"
icon_hash="1574010831"
(body="大学" || body="学院") && tittle="OA"
host=".edu.cn" && title="OA"
host=".edu.cn" && port=7001
region="Jilin" && title="用友nc"
server=weblogic && port=7001
title="目标名称" && region=“xx省”
cert=“目标域名或者证书关键字” && region=“xx省”
((title="目标名称" || host="目标域名")&&country="CN")&&region!="HK"

5.旁站查询

   旁站就是在同一台服务器上搭建的多个网站,使用同一个 IP 地址。在目标网站无法攻击成功时,若他的旁站可以成功攻击并获取相应的系统权限,这势必会影响到目标网站的安全性,因为已经获取到同一台服务器的权限了。

在线网站:

https://chapangzhan.com/
https://ipchaxun.com/
http://stool.chinaz.com/same?s=host

6.公众号、服务号收集

1.搜狗搜索引擎

https://weixin.sogou.com/

2.企查查

7.指纹识别

Ehole
https://github.com/EdgeSecurityTeam/EHole

使用方法:

./Ehole-darwin -l url.txt//URL 地址需带上协议,每行一个
./Ehole-darwin -f 192.168.1.1/24 // 支持单 IP 或 IP 段,fofa 识别需要配置 fofa 密钥和邮箱
./Ehole-darwin -l url.txt -json export.json// 结果输出至 export.json 文件

在线网站

http://www.yunsee.cn/info.html 云悉

http://finger.tidesec.com 潮汐

CMS类型识别-WhatWeb

http://whatweb.bugscaner.com/look/

kali命令:

whatweb --no-errors http://bbs.looyuoms.com/

WAF识别

工具https://github.com/ekultek/whatwaf

./whatwaf -u host

WAF识别-在线工具

https://scan.top15.cn/web/

8.敏感信息收集

比如目标是学校,收集敏感信息需要借助百度,谷歌搜索hack语法, 还有就是零零信安[收集邮箱] , 例如要爆破某学校的vpn,学生的学号可以从这些途径获取。学校贴吧,学校表白墙,找学生卡丢失;谷歌语法,搜索表彰,奖学金,转专业,通报等等关键词,都可能获得学生学号。

利用搜索引擎,github等托管平台配合一些google语法就可以搜到很多信息。

熟知的google hack,百度,git ,网盘泄露等等。

敏感信息一共要搜集这个几个方面:

google hack

github

百度

零零信安

泄露目标人员姓名/手机/邮箱

例如要爆破某学校的vpn,学生的学号可以从这些途径获取。学校贴吧,学校表白墙,找学生卡丢失;谷歌语法,搜索表彰,奖学金,转专业,通报等等关键词,都可能获得学生学号。


密码部分可能为身份证后六位,网上可以找身份证后六位生成脚本,生成字典,然后让他一直跑,第二天睡醒看看,这个就是纯运气活了。

9.端口扫描

一般比较常见的可能就是 nmap 和 masscan 了,分享一个 nmap 快速扫描全部端口的命令。

nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -p 1-65535 -iL ip.txt -oX output.xml

不过除了这些方法外,fscan 其实也可以拿来做外网的端口扫描,而且速度更快。

比如用 fscan 只扫描端口,不做漏洞扫描

fscan -hf hosts.txt --nopoc -t 100

fscan 默认线程是 600,因为是外网扫描 600 的线程就比较大了,所以这里设置了 100,如果感觉扫描结果不理想,线程还可以设置的再小点。

10.目录获取

目录扫描比较常用的工具有 dirsearch、dirmap

dirmap更侧重于 FFUZ,不过不管是目录扫描还是 FFUZ ,扫描的结果都在于字典,Github 上 4k 多个 star 的字典:

https://github.com/TheKingOfDuck/fuzzDicts

11.邮箱地址获取

http://www.skymem.info/
https://github.com/laramies/theHarvester
https://github.com/bit4woo/teemo

12.JSFinder

在网站的JS文件中,会存在各种对测试有帮助的内容。

地址:https://github.com/Threezh1/JSFinder

JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。

JSFinder获取URL和子域名的方式:
python JSFinder.py -u http://www.xx.com

深入一层页面爬取JS,时间会消耗的更长,获取的信息也会更多。建议使用-ou 和 -os来指定保存URL和子域名的文件名。
python JSFinder.py -u https://baidu.com -d
python JSFinder.py -u https://baidu.com -d -ou url.txt -os sub.txt

13.社会工程学

社会工程学(Social Engineering) 是一种通过人际交流的方式获得信息的非技术渗透手段。不幸的是,这种手段非常有效,而且应用效率极高。事实上,社会工程学已是企业安全最大的威胁之一。狭义与广义社会工程学最明显的区别就是是否会与受害者产生交互行为。广义是有针对性的去对某一单一或多一目标进行攻击的行为。

常见社工
社工三大法宝:网络钓鱼、电话钓鱼、伪装模拟
狭义三大法宝:谷歌、社工库、QQ
社工师的分类:黑客、渗透测试、JD、GOV、公司内部员工、欺骗人员、猎头、销售人员、普通人。
信息泄露方式
在网上注册时,垃圾网站被黑客攻入(服务器或者数据库被攻击),黑客获取信息
网站内部人员将信息贩卖,然后获取信息
通讯被窃听,http协议用post或者get提交时,使用火狐进行拦截
撞库,比如你在这个A网站注册时,使用了一个密码,在B网站也使用这个密码,知道A网站的密码,自己也可以用这个密码登录B网站,这就是撞库
社会工程学攻击四个阶段
研究:信息收集(WEB、媒体、垃圾桶、物理),确定并研究目标
钩子:与目标建立第一次交谈(HOOK、下套)
下手:与目标建立信任并获取信息
退场:不引起目标怀疑的离开攻击现场
常见信息
真实姓名、性别、出生日期、身份证号、身份证家庭住址、身份证所在公安局、快递收货地址、大致活动范围、QQ号、手机号、邮箱、银行卡号(银行开户行)、共同朋友的资料、支付宝、贴吧、百度、微博、猎聘、58、同城、网盘、微信、常用ID、学历(小/初/高/大学/履历)、目标性格详细分析、常用密码、照片EXIF信息。
常见可获取信息系统
中航信系统、春秋航空系统、12306系统、三大运营商网站、全国人口基本信息资源库、全国机动车/驾驶人信息资源库、各大快递系统(越权)、全国出入境人员资源库、企业相关系统、信息资源库等。

14.设备信息收集

如果拿到一个防火墙或者路由器设备,而且能配置vpn的这种,那就相当于拿到了内网的钥匙,只需要能够访问到内网,就算内网穿透,所以在hvv开始前,就会有很多队伍收集这些设备,而且如果是弱口令就会直接修改密码。
如果能拿到有些政府单位的vpn,那就更舒服了,因为大概率就可以进到政务外环网,这个网是外网ip,但是外网是访问不到的,是政务内网和外网之间的一层网络,这里面的好东西也是不少,不过,最近几年打的多了,里面的资产也是防护越来越厉害了。
所以需要去收集一些设备的语法,例如:

app="HUAWEI-Home-Gateway-HG659"
title="Web user login"
app="Ruijie-EG易网关"

对于这些设备的账号密码可以直接百度,也可以直接在这个网站上搜设备名,大部分都有。

https://www.shentoushi.top/av/

有关红队信息收集思路总结的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

  5. ruby - what is - gets is a directory - 错误信息 - 2

    我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay

  6. ruby - 尝试比较两个文本文件,并根据信息创建第三个 - 2

    我有两个文本文件,master.txt和926.txt。如果926.txt中有一行不在master.txt中,我想写入一个新文件notinbook.txt。我写了我能想到的最好的东西,但考虑到我是一个糟糕的/新手程序员,它失败了。这是我的东西g=File.new("notinbook.txt","w")File.open("926.txt","r")do|f|while(line=f.gets)x=line.chompifFile.open("master.txt","w")do|h|endwhile(line=h.gets)ifline.chomp!=xputslineendende

  7. ruby - rspec: raise_error 用法来匹配错误信息 - 2

    我使用raise(ConfigurationError.new(msg))引发错误我试着用rspec测试一下:expect{Base.configuration.username}.toraise_error(ConfigurationError,message)但这行不通。我该如何测试呢?目标是匹配message。 最佳答案 您可以使用正则表达式匹配错误消息:it{expect{Foo.bar}.toraise_error(NoMethodError,/private/)}这将检查NoMethodError是否由privateme

  8. ruby - 为什么要使用嵌套的 Ruby 模块来获取版本信息? - 2

    我最近一直在查看一些gem的源代码。我经常看到的一个习惯用法是使用嵌套模块,其中包含连接到版本字符串中的版本常量,即围绕此类事物的变体:moduleChunkyBaconmoduleVersionMAJOR=0MINOR=6TINY=2endVERSION=[Version::MAJOR,Version::MINOR,Version::TINY].compact*'.'end以这种方式存储库版本信息有什么好处(如果有的话)?为什么不这样做:moduleChunkyBaconVERSION='0.6.2'.freezeend 最佳答案

  9. ruby - 使用包含在另外两个数组中的信息创建一个数组 - 2

    如何使用如下两个数组构建一个数组:名称=[a,b,c]how_many_of_each[3,5,2]得到my_array=[a,a,a,b,b,b,b,b,c,c] 最佳答案 使用zip、flat_map和数组乘法:irb(main):001:0>value=[:a,:b,:c]=>[:a,:b,:c]irb(main):002:0>times=[3,5,2]=>[3,5,2]irb(main):003:0>value.zip(times).flat_map{|v,t|[v]*t}=>[:a,:a,:a,:b,:b,:b,:b,:b

  10. Simulink方法总结和避坑指南(一)——Simulink入门与基本调试方法 - 2

    文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景  最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。  在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记

随机推荐