介绍
信息搜集,前期打点
FOFA 搜索引擎
一.FOFA
使用 fofa 为例,fofa 既可以搜索到部分子域名,也可以搜索到目标的各种系统,如 OA、后台等等,而这些系统很容易成为突破口。
二.FOFA 语句
首页有参考的 fofa 语法,可以根据需要构造搜索语句
三.fofa 语句常用的
需要注意的是 fofa 语句不是一成不变的,同一个目标单位的查询关键词可能有好几个,同时在信息收集的过程中也可能发现新的关键词,比如备案号、传真、客服电话等,这些东西往往是唯一的。搜索别人没有搜的关键词就可能发现别人没发现的资产,就可能拿到别人没拿到的 shell,需要灵活运用。
title="目标名称" && region="xx省"
title="目标名称" && city="xx市"
cert="目标域名或者证书关键字" && region="xx省"
cert="目标域名或者证书关键字" && city="xx市"
((title="目标名称" || host="目标域名") && country="CN") && region!="HK"
四.打不开的资产
fofa 中可能搜到打不开但仍然属于目标单位的资产,可以先 ping 一下看看,如果能 ping 出 IP 说明服务器还存活,只是 web 服务没开,如果 ping 的是 IP,可以扫全端口 + C 段,是域名且没有 CDN 的话也可以全端口 + C 段。
真实 IP
直接 ping
通过目标域名可判断是否有 CDN
1.域名返回结果不一致
2.域名结果返回一致
有 CDN 找真实 IP
1.Ping 主域
如果是 www 开头的域名存在 CDN,可以把 www. 去掉再 ping,可能得到真实 IP
2.通过网站证书寻找真实 IP
此方法适用于 https 的站点
我们想确定一个网站的真实IP地址,通常现在网站都会使用https协议,
用到SSL证书是必不可少的,绝大多数企业证书都是通配符证书,
因此我们可以把证书的序列号拿下来然后搜索这个证书用在了哪些业务里,
然后如果部分业务中没有使用CDN或者没有覆盖到CDN,源IP地址就显示出来了!
(1)首先获得网站证书序列号(不要挂代理)
转换成十进制
https://tool.lu/hexconvert/
同样可以找到真实 IP
收集子域名
一般主站会有 CDN, 主站下子域名基本都是真实 IP, 收集子域名看 IP 就可以知道网站真实 IP 的 C 段了。
历史 DNS 记录
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
网站的注册,订阅,找回密码功能会发送邮件,邮件头信息会有真实 IP
LTM 解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,
例如:Set-Cookie:
BIGipServerpool_8.29_8030=487098378.24095.0000,
先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,
接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
C 段扫描
获得目标真实 IP 后可以百度该 IP 看是不是云上资产
如果是阿里云或者腾讯云等云上资产的话扫 C 段容易出现扫 C 段扫出一大片东西,然而没有一个是目标资产的情况。不是云上资产的话就正常扫 C 段就可以。C 段推荐灯塔和 goby
天眼查
天眼查、企查查等查企业的软件也是非常重要的信息收集途径,每次攻防演练的目标名单中总有各种公司,有国企也有私企,其中的小型民营企业相比其他的政府、大型互联网企业、金融、电力等目标要好打得多,因此它们总是首要目标,而天眼查、企查查等作为查企业最牛逼的网站,其重要性也就不言而喻了。下面以天眼查为例介绍:
天眼查中共有 3 个地方可能出现目标的资产:
网址邮箱知识产权
股权穿透图
穿透图下有 100% 控股的全资子公司,如果攻防演练规则可以得分的情况下,子公司相对来说比较容易得分。
敏感信息收集
子域名
子域名收集推荐工具 [oneforall] 输出结果为 csv 格式,可以筛选返回值 200 的网站。
https://github.com/shmilylty/OneForAll
https://github.com/lijiejie/subDomainsBrute
泛解析问题
域名泛解析是对抗子域名收集的一个方法。
泛解析这个问题的解决方法很简单,向DNS请求 * 记录,然后把枚举子域名回来的记录和*的记录比对,如果相同则直接排除。
DNS包的解析:https://www.davex.pw/2016/07/01/How-To-Fuzz-Sub-Domain/
端口
nmap:
扫描的比较慢但是较准确
nmap -sS -v -sV -p 1-65535 IP # ping目标有回复时
nmap -sS -v -sV -p 1-65535 -Pn IP # ping目标没有回复时
可以在阿里云的 vps 上装 nmap,用它来扫端口,一般 1 个 IP 全端口 3-5 分钟扫完
nmap 扫得慢的话可以用masscan
masscan:
masscan -p 1-65535 --rate 1000 IP
敏感目录
https://github.com/j3ers3/Dirscan
.git 泄露
工具:[https://github.com/denny0223/scrabble]
工具:githacker [https://github.com/WangYihang/GitHacker]
在 git 泄露中也可能有其他有用的信息如在文件下.git/config 文件下的 access_token 信息进而访问该用户的其他仓库。
SVN 泄露
工具:seay-svn
dvcs-ripper
[https://github.com/kost/dvcs-ripper]
备份文件
Test404 网站备份文件扫描器 v2.0
邮箱收集脚本
#-*- coding:utf-8 -*-
import requests
import re
import sys
import os
from bs4 import BeautifulSoup
#定义 header 数据
def headers(referer):
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip,deflate',
'Referer': referer
}
return headers
#爬取bing搜索引擎数据
def bing_search(url,page,key_word):
referer = "http://cn.bing.com/search?q=email+site%3abaidu.com&qs=n&sp=-1&pq=emailsite%3abaidu.com&first=1&FORM=PERE1"