转载自星禾团队木雨师傅笔记,侵权请联系删除
对于外网信息收集主要有几点:ip、域名、企业等资产信息以及相应端口/服务、指纹、敏感信息、社工碰撞等易受攻击面信息。
一、在线whois查询
通过whois信息可以获取注册人的关键信息。如注册商、联系人、联系邮箱、联系电话,也可以对注册人、邮箱、电话反查域名,也可以通过搜索引擎进一步挖掘域名所有人的信息。深入可社工、可漏洞挖掘利用。
1、常用网站
站长之家域名WHOIS信息查询地址 http://whois.chinaz.com/
爱站网域名WHOIS信息查询地址 https://whois.aizhan.com/
腾讯云域名WHOIS信息查询地址 https://whois.cloud.tencent.com/
中国万网域名WHOIS信息查询地址 https://whois.aliyun.com/
狗狗查询:https://www.ggcx.com/main/integrated
国外WHOIS信息查询地址 https://who.is/
2、工具
kali中自带的一款whois查询工具
whois
whois 域名
3、whois反查
不单单可以使用域名进行whois进行查询,同样可以使用手机号、邮箱、注册人等相关信息进行反查。
二、备案信息
在国内,只要想合法搭建网站,就需要ICP备案。所以我们从icp备案查询来打开突破口。
ICP三大因素:企业名、备案号、域名。可以通过其中之一查找到另外两个。
1、查找网站备案号
- 比如访问百度,来查找备案号,一般备案号都在最底部
2、根据域名查询备案号
常用网站
天眼查 https://www.tianyancha.com/
ICP备案查询网https://beian.miit.gov.cn/#/Integrated/index
爱站备案查询https://icp.aizhan.com/
域名助手备案信息查询 http://cha.fute.com/index
3、批量查询备案号
https://github.com/A10ha/ICPSearch
4、通过备案号获取资产信息
使用搜索引擎,比如hunter
根据备案号查询资产
icp.number="备案号"
根据备案企业来查询资产
icp.name=="xxx有限公司"
三、子域名
子域名中的常见资产类型一般包括办公系统,邮件系统,论坛,商城,其他管理系统,网站管理后台也有可能出现在子域名中
1、黑暗引擎搜索
使用fofa的语法
常用语法:title="公司名称" 域名:domain="域名"
2、翻找网页查找
- 拿到目标点,翻找网页可能会找到相关资产(多为办公系统,邮箱系统等)关注页面底部,也许有管理后台等网站
3、泛域名解析
什么是泛域名解析?
泛解析也叫“泛域名解析”,是指,利用通配符 * (星号)来做子域名以实现所有的子域名均指向同一IP地址。
例如您的域名是example.com:
做一个*.example.com的次级域名A记录指向111.111.111.111,那么生效后当访问者无论是输入“123.example.com”还是“abc.example.com”抑或者“123.abc.example.com”甚至是任意字符组成的子域名均会指向到111.111.111.111这个IP地址。这个网站就存在泛域名解析:mobilemail.189.cm
绕过泛解析
黑名单ip:
- 通过获取一个不存在的子域名相应解析IP,来记录标记黑名单ip,再爆破字典时,解析到的IP在这个黑名单ip中,则跳过,不存在就继续处理。
- 或是记录相同的,保留一到两个。
TTL
- 在权威 DNS 中,泛解析记录的 TTL 肯定是相同的,如果子域名记录相同,但 TTL 不同,那这条记录可以说肯定不是泛解析记录。
响应内容
- 牺牲速度,先获取一个绝对不存在域名的响应内容,再遍历获取每个字典对应的子域名的响应内容,通过和不存在域名的内容做相似度比对,来枚举子域名。
4、在线子域名查询
https://hackertarget.com/find-dns-host-records/
5、利用工具进行扫描
oneforall下载地址,这个就可以直接怼泛解析
安装
cd OneForAll/ #进入OneForAll所在的文件目录 python -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/ #进行安装 pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ #安装相关的依赖包 python oneforall.py --help #运行脚本python oneforall.py 命令查看 --help
对域名进行收集
python3 oneforall.py --target 域名 run
使用爆破模块(默认False)
python3 oneforall.py --target 域名 --brute True run
- 注意:扫描结果将存放于oneforall\results文件下。
Layer 子域名挖掘机
- 可视化,取决于字典强度,易上手,就是容易崩溃
四、寻找真实ip
CDN是IP信息探测或打点必不可绕过的一个话题。当目标使用了CDN加速,获取到的目标ip不一定是真实ip。所以通常在实施端口、漏扫等测试之前,需判断下是否真实IP,是否使用了CDN或其他代理等等,避免无效操作、蜜罐、非目标点。
简述
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
1、判断是否存在cdn
1.1、多地ping判断是否存在cdn
多地ping,通过多地ping目标域名,如果没有使用CDN,只会显示一个IP地址,或者双线接入情况的两个不同运营商ip。多ping在线站点:
- 如图,不同地区访问有不同ip,一般存在CDN:
1.2、nslookup解析判断
获取到的DNS域名解析结果中返回多个ip的,一般都是存在CDN服务。
1.3、在线检测是否存在cdn
不一定能查到
2、获取真实IP
内部邮箱
找到邮箱地址,给邮箱地址发送文件,如果有回应就能获取真实地址
通过邮件服务器(如果邮件服务和网站服务在同一个ip的服务器上的话);如:mail.xxx.com和www.xxx.com在同ip服务器上,攻击者通过向某个邮箱用户(如sales@xx.com)发送邮件并且受到回复,可以通过返回的邮件信息里查看到该邮件服务器的ip,也间接查到了同服网站服务器的真实ip
以QQ邮箱为例子:
- 登录QQ邮箱,点击“收件箱
- 任意选择一封朋友发来的邮件,然后点击打开
- 找到右侧的三角形图标,点击打开
- 找到“X-Originating-IP: [ ... ... ]”括号内的的IP就是对方发邮件时的IP地址
通过favicon的hash值,真实的网站IP上也会有favicon这个图标文件
zoomeye.org
fofa.info
例子:
- 进入一个网站
- 进入命令模式找到favicon.ico文件,找到favicon.ico文件的路径
- 在进入路径把favicon.ico文件下载下来在进入fofa进行语法查询:icon_hash="-247388890"
子域名
一般网站主动访问量过大需要挂cdn而子站没有
国外访问
一般国内cdn只针对国内用户,国外不好说
历史dns记录:
https://viewdns.info/(贼六,特别厉害的一个网站)、https://x.threatbook.cn/
多地进行域名解析(国外尤佳),通过查询多地的IP,有一些地区就没有cdn(比如从国外IP访问进来就有可能是真实IP)
换协议(可能可以查到真实IP)
把http换成ftp
漏洞
- 网站本身存在一些漏洞时,如XSS/SSRF/XXE/命令执行等,通过带外服务器地址注入,使服务器主动连接,被动获取连接记录。
- 部分本身功能,如url采集、远程url图片、编辑器问题等。
异常信息、调式信息等都有可能泄露真实IP或内网ip的。
- ThinkPHP 报错/SpringBoot变量/phpinfo
vhost碰撞
只要字典够强大,数据够多,通过 IP 和子域的碰撞,总会有所收获。
在线工具:
https://pentest-tools.com/information-gathering/find-virtual-hosts#
邮件头信息
参考这篇文章中的内容https://mp.weixin.qq.com/s/n_IesjKIA4-lC1Wh41HB3A
- 大佬分享的
奇淫技巧
:通过发送邮件给一个不存在的邮箱地址,比如 000xxx@domain.com ,因为该用户不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实 IP 通知。 - foxmail导出的邮件可以用编辑器打开查看其内容。
- 大佬分享的
五、端口扫描
1、在线扫描
在线检测:http://coolaf.com/tool/port
2、使用工具
masscan
快速的端口扫描器
使用示例
指定端口,扫描特定网段
masscan -p80,21,443 192.168.1.0/24
nmap
功能全面的端口扫描,主机探测,服务/版本检测,操作系统检测,网络路由跟踪工具
使用示例
最简单的使用,可以扫描出其对外开放的服务。
nmap 192.168.1.1(域名) nmap 192.168.1.1/24
指定端口,判断ip是否开放指定端口,网段
nmap -8080 192.168.1.1 nmap -80,81 192.168.1.1/24
常用选项
-F 快速扫描 -A 详尽扫描 -O 识别操作系统检测 -sS 半连接扫描,提高扫描速度 -sV 服务版本识别 -Pn 禁用主机检测,如果主机屏蔽了ping请求,Nmap可能会认为该主机没有开机,无需ping通直接扫描端口 -sU UDP扫描 -sn ping扫描在线情况 -iL 指定输入文件名称 -oN 指定输出文件名称 -sC 脚本扫描
使用脚本,在/usr/share/nmap/scripts有很多脚本
使用脚本扫描redis服务器信息
sudo nmap --script=redis-info.nse -p6379 47.91.68.242 sudo nmap -sC redis-info.nse -p6379 47.91.68.242
六、目录扫描
在面对一个网上入口找不到突破口时,往往可以在一些敏感目录下有意想不到的收获
1、Google语法
site:查找与指定的网站有联系的URL。
用法:site:网站名称
案例:site:baidu.com //查找和baidu.com网站相关的URL。
filetype:搜索指定类型的文件。
用法:filetype:文件类型
案例:site:baidu.com filetype:pdf //在百度中寻找pdf文件。
intitle:搜索网页正文内容中的指定字符。
用法:intitle:关键字
案例:intitle:后台搜索 //搜索网址中有后台搜索关键字的网页
inurl:搜索包含有特定字符的URL
用法:inurl:关键词URL
案例:inurl:.php?id //搜索网址中有php?id的网页
2、工具
dirb ,kali中自带的一款目录扫描工具
dirb 域名
御剑目录收集工具
下载链接:
dirsearch目录扫描工具
安装地址
https://github.com/maurosoria/dirsearch
对域名进行目录扫描的语法,扫描的结果会存放在reports文件夹下
python3 dirsearch.py -u url -e 语言类型
对php语言的网站进行扫描
python3 dirsearch.py -u url -e 语言类型
七、C段旁站
C段就是前三个IP不要变动,只动最后一个IP
1、使用工具
nmap
/24
nmap -T4 -A 192.168.0.1/24
1-255
nmap -T4 -A 192.168.0.1-255
- 御剑
输入域名,点的多服务器开始扫描
2、搜索引擎
- fofa
hunter
ip="127.0.0.1/24"
3、旁站
一个服务器上存在多个站点,可通过ip查询相应站点,再从相应站点进一步突破获取服务器权限。
在线平台
https://www.webscan.cc/
https://viewdns.info/reverseip/
https://reverseip.domaintools.com/
https://tools.ipip.net/ipdomain.php
https://dnslytics.com/
八、CMS识别
浏览器插件
wappalyzer
在线网站
http://whatweb.bugscaner.com/look/
工具
识别cms的工具,大禹CMS识别
https://github.com/TideSec/TideFinger
七、网页设计不当
在url后边拼接错误的文件,查看页面报错信息
查看前端源码(html,css,js)这里边看可能包含了敏感信息和接口
八、查找网页js
浏览器插件
FindSomething
使用工具
JSFinder
jjjjjjjjjjjjjs
九、查找源码
十、搜索引擎的使用
bing搜索
搜索指定文件类型创建的页面
filetype:文件类型后缀名
比如:搜索pdf文件
filetype:pdf
搜索网站标题
inanchor:标题 inbody:标题
比如:搜索标题为小妖怪的
inanchor:小妖怪 inbody:小妖怪
搜索指定的网站域名
site:域名
比如:搜索百度
site:baidu.com
ZoomEye 黑暗引擎
主机设备搜索
app:"主机名" ver:"组件版本"
比如:搜索使用apache2.2.16的主机
app:"apache" ver:"2.2.16"
端口
port 端口号
比如:搜索开放22端口的网站
port 22
操作系统
os:"操作系统"
比如:搜索Linux的操作系统
os:"linux"
服务
service:"服务名"
指定国家或者具体到城市
country:国家或地区代码 city:城市名 完整的国家代码翻阅百度
比如:搜索美国的apache服务器
app:"apache" country:"US"
ip地址
搜索指定的IP信息
ip:IP地址
web应用搜索
查询域名信息
site:baidu.com
搜索标题中包含的字符
title:"nginx"
fofa 黑暗引擎
域名查找
domain="baidu.com"
host字段查询
出现的是经纬度,IP地址,响应体等信息
host="baidu.com"
ip字段查询
IP查询主要看端口排名,server排名,协议排名,网站标题排名
ip="ip地址"
支持c段查询
ip="ip地址/24"
title字段查询
查询大量漏洞标题网站
title="轮盘"
server字段查询
查询某些服务器相关的软件,在根据软件查找相关漏洞
server="apache"
body字段查询
查询网页中包含的信息
查找网站中含有登录的页面 body="登录"
可以配其他字段进行查询,找出网站后台
body="登录"&& domain="域名"
port字段
查看哪些网址开启了这个端口
port="3306"