文章目录
前言
工欲善其事,必先利其器。本人结合多位老师的教程以及网络上一些文章分享的内容,本着取其精华弃其糟粕的原则,进行总结梳理后,撰写了此文。为了减小正文的篇幅,一些不必要的解释将以注脚形式引到文末,有需要查看的话,可以直接点击序号找到对应的注脚查看解释和补充内容。
一、域名和IP信息搜集
(一)判断是否使用CDN
通过在线工具在全国各地
ping
目标站点域名判断是否使用CDN:
站长之家多地Ping工具:http://ping.chinaz.com
17CE平台:https://www.17ce.com/
爱站平台:https://ping.aizhan.com/
结果判断:
1、若出现几十个不同IP,则基本可判定站点使用了CDN;
2、只有两三个不同IP,且为同一地区不同运营商,则可能只是服务器不同的出口,并非使用了CDN;
3、若结果只有一个IP,则该IP为站点真实IP或路由器出口,结合IP反查域名结果进行判断,若结果有大量不同域名,则为路由器出口,否则大概率为真实IP;
4、注意事项:
多地ping同一个ip时,真实ip有可能直接出现在结果当中,可重点关注海外ping国内站点时,那些延迟很高的IP,做好记录。
在命令行也可以初步判断目标是否用了CDN,如图所示:
若红框中两个域名不一致,则目标很可能用了CDN。
当查询到真实IP后,可以修改本地的HOST文件,直接将该域名与指定IP绑定,从而绕过CDN的影响。
(二)存在CND时查找真实IP
1、利用邮件服务器
查找站点是否有发邮件的功能,设法接收一封来自站点的邮件,然后ping这个邮件服务器的域名,或查看邮件源码获取IP信息
2、域名历史解析记录
**全球DNS搜索引擎(外网访问)**:https://www.dnsdb.io/
微步在线情报:https://x.threatbook.com/
备用网址一:https://viewdns.info/
备用网址二:https://securitytrails.com/
备用网址三:https://dnsdb.io/zh-cn/
备用网址四:https://tools.ipip.net/cdn.php
备用网址五:https://sitereport.netcraft.com/?url=目标域名或URL
**备用网址六(收费)**:https://dnsdb.io/zh-cn/
3、从国外访问国内
ipip:https://tools.ipip.net/newping.php
asm:https://asm.ca.com/en/ping.php
全球DNS服务器地址查询:http://www.ab173.com/dns/dns_world.php
4、从站点自身漏洞查找真实IP
phpinfo、github信息泄露、命令执行漏洞、SSRF漏洞、前端JS库信息泄露等获取真实ip
5、子域名解析
在线域名批量解析(需登陆):http://tools.bugscaner.com/domain2ip.html
注:子域名的查找方法单独列出,整理后再来此处链接批量解析即可,也可以自行使用脚本解析。
6、根据站点图标查找真实ip
钟馗之眼:https://www.zoomeye.org/
360网络空间测绘:https://quake.360.net/quake/
fofa:https://fofa.info
7、利用SSL证书寻找真实IP
8、F5 LTM解码得真实ip
获得BIGipServerpool之后的信息后,使用如下脚本解码得真实IP:
#在第一行的单引号中输入bigip的编码,然后运行即可
BigIPStr=''
numbers=BigIPStr.split('.')
sixteen=str(hex(int(numbers[0])))
result=f'{int(sixteen[-2:],16)}.{int(sixteen[-4:-2],16)}.{int(sixteen[-6:-4],16)}.{int(sixteen[-8:-6],16)}'print(result)
9、app或小程序抓包获得真实ip
抓包查看请求头中host的值并ping该地址尝试得到真实ip
10、配置不当获取真实IP
具体问题具体分析,例如:
1、分别ping www.example和example.com可能出现真实IP ;
2、当站点同时支持http和https访问时,若CDN只配置了https协议,则此时使用http协议即可绕过CDN访问到真实的服务器。
11、扫全网获取真实IP
可使用以下两个工具:
https://github.com/superfish9/hackcdn
https://github.com/boy-hack/w8fuckcdn
12、被动获取
被动获取就是让服务器或网站主动连接我们的服务器,从而获取服务器的真实IP。如果网站有编辑器可以填写远程url,即可获取真实IP。另外如果存在ssrf漏洞 或者xss 让服务器主动连接我们的服务器 也可获取真实IP。
(三)WHOIS信息查询
通过在线站点查询域名是否已经被注册,以及注册域名的详细信息(如域名所有人、域名注册商、邮箱、注册人、公司、电话、到期时间等。
站长之家whois信息查询: http://whois.chinaz.com/
爱站在线查询whois: https://whois.aizhan.com/
新网whois查询: http://whois.xinnet.com/
ip138查询whois: https://site.ip138.com/
**国外whois站点(邮箱隐藏前缀可能在国外查到)**:https://who.is/
(四)备案信息查询
SEO查询:https://www.aizhan.com/cha/
国家工信部ICP备案查询:https://beian.miit.gov.cn/#/Integrated/recordQuery
批量查询ICP:http://icp.chinaz.com/searchs
美国企业备案信息查询:https://www.sec.gov/edgar/searchedgar/companysearch
(五)给定IP反查其他信息
在线网站查询:https://dnslytics.com/
同IP站点在线查询: https://www.webscan.cc/
查IP绑定过的域名:https://site.ip138.com/
(六)收集子域名信息
在线站点查询:
ip138:https://site.ip138.com/
站长工具:https://tool.chinaz.com/subdomain/?domain=
其他查询网站:https://hackertarget.com/find-dns-host-records/
子域名在线爆破一:https://phpinfo.me/domain/
子域名在线爆破二:http://z.zcjun.com/
在线域名批量解析:http://tools.bugscaner.com/domain2ip.html
如果目标是政府网站,可以增加以下这个站点进行查询:
我为政府找错:https://zfwzzc.www.gov.cn/
通过查询SSL证书,也能获取一些域名信息:
SSL证书在线检测工具:https://www.chinassl.net/ssltools/ssl-checker.html
证书透明度(Certificate Transparency, CT)是证书授权机构(CA) 的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志
查询站点一:https://crt.sh/
查询站点二:https://search.censys.io/hosts
查询站点三:https://myssl.com/
通过工具也可以收集子域名信息例如layer子域名挖掘机、subDomainsBrute、OneForAll等。
工具枚举查询(这里的工具是非常规方法,从证书的角度入手)
Findomain工具使用证书透明度日志来查找子域名:
命令如下:findomain -t target.com -a -o csv该命令表示使用所有API搜索子域并将数据导出到CSV文件。
也可以使用layer子域名挖掘机工具可以爆破子域名.
使用SubDomainBrute工具也可以爆破子域名,首次使用需要在python3中安装第三方库:
pip install aiodns使用举例:
subDomainsBrute.py fexample.com --full -o example.txt
oneforall工具
运行命令:python3 oneforall.py --target example.com run执行完毕后,在results文件夹下的example.com.csv文件中查询结果。
(七)SRC活动查询权重
爱站网SEO综合查询:https://www.aizhan.com/seo/
站长之家:https://rank.chinaz.com/all/
(八)C段探测
使用搜索引擎,例如ip为39.156.66.5,则fofa语法:
ip="39.156.66.1/24"
nmap探测C段语法,假设要探测该C段下所有开放了80端口的主机:
nmap -Pn -p 80 39.156.66.*
(九)JS文件域名、ip、接口探测
JSFinder:
安装:
git clone https://github.com/Threezh1/JSFinder.git使用举例:
python3 JSFinder.py -u http://www.mi.com#深度爬取,并将结果分别按url和子域名保存到两个txt文件中
python3 JSFinder.py -u http://www.mi.com -d -ou urls.txt -os sub_domains.txt
LinkFinder:
安装:
git clone https://github.com/GerbenJavado/LinkFinder.gitcd LinkFinderpython2 setup.py install使用:
python linkfinder.py -i https://example.com/1.js -o results.html分析整个域及其JS文件:
python linkfinder.py -i https://example.com -d也可以枚举本地的指定文件夹,还可以同时查找如/api/开头的终结点,并最终将结果保存到results.html:
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Packer-Fuzzer:
安装:
sudo apt-get install nodejs && sudo apt-get install npmgit clone https://gitee.com/keyboxdzd/Packer-Fuzzer.gitpip3 install -r requirements.txt使用:
python3 PackerFuzzer.py -u https://www.example.com
(十)oneforall子域名探测工具
运行命令:
python3 oneforall.py --target example.com run执行完毕后,结果会自动保存在results文件夹下的.csv文件中。
(十一)隐藏域名host碰撞
具体操作:
进行hosts碰撞需要目标的域名和目标的相关IP作为字典,因此需要先获得目标域名的历史解析IP:
目标域名查询历史解析IP:
https://site.ip138.com/
https://ipchaxun.com/
以下站点可通过正则表达式从一段文本中提取指定信息,如IP:
https://www.aicesu.cn/reg/
提取IP后,将获得的IP放入hosts_scan工具目录下的ip.txt,然后将待匹配的域名放入host.txt文件中(可以将搜集到的子域名全放进去)。接着命令行执行命令:python IP_hosts_scan.py之后在hosts_ok.txt中查看匹配成功的结果即可。
二、搜索引擎和情报社区
(一)google常用语法
语法作用intitle:abc从网页标题中搜索含特定字符串的网页inurl:abc搜索包含有特定内容的URLintext:aaa从网页正文内容中搜索指定内容site:www.58.com找到与指定域名有联系的URLintitle:小说 -电视搜索小说,并在结果中排除电视domain:google.com搜索范围限定在特定域名中(用于搜索子域名)filetype:ppt限制搜索结果中的文件格式为ppt"谷歌常用语法”精确匹配搜索关键词(在中或英文状态下用双引号把关键词包起来)[谷歌常用语法]精确匹配搜索关键词(在英文状态下用中括号把关键词包起来)link:baidu.com搜索和指定域名做了链接的网站
基础操作符:
逻辑与:and
逻辑或: or 、|
逻辑非(即搜索结果中排除指定内容): -
完整匹配:"关键词”或[关键词]
通配符:*或 ?
关键词之间一般用空格隔开
(二)常用百度语法
语法作用intitle=abc搜索标题中带有指定关键词的站点intitle:abc搜索标题中带有指定关键词的站点inurl:指定关键词搜索URL中包含指定关键词的站点(范围极广,不适合用来搜索子域名)查询词 -要排除的指定内容搜索结果中不要包含指定内容(注意减号和查询词之间用空格隔开)查询词 +指定的内容结果中必须包含指定内容查询词 filetype:pdf搜索范围限定在指定格式中(查询词和filetype之间空格隔开)查询词 site:指定域名搜索范围限定在特定域名中(用于搜索子域名)
也可使用在线站点直接百度搜索:https://www.baidu.com/gaoji/advanced.html
(三)常用fofa语法
语法作用title=“abc”从网页标题中搜索包含abc的站点body=“abc”从网页正文中搜索包含指定内容的站点domain=“qq.com”子域名探测ip=“1.1.1.1”同IP站点搜索ip=“1.1.1.1/24”搜索指定IP所在的网段&&用于隔开多个关键词
注:
192.168.2.0/24就是代表IP为192.168.2.1~192.168.2.254
=表示弱匹配,==表示全匹配
(四)常用情报平台和网络空间测绘平台
微步社区:https://x.threatbook.com/
fofa:https://fofa.info
华为安全情报:https://isecurity.huawei.com
360安全情报:https://ti.360.cn/
钟馗之眼:https://www.zoomeye.org/
360网络空间测绘:https://quake.360.cn/
鹰图平台:https://hunter.qianxin.com/list
censys:https://search.censys.io/
shodan:https://www.shodan.io/
三、相关应用信息
(一)微信公众号、微博等
根据前面搜集到的公司名称,可查找相关的微信公众号、微博、备案站点、软件著作权等信息。
通过天眼查看看是否有遗漏的信息:
天眼查地址:https://www.tianyancha.com/
(二)app相关信息搜集
七麦app信息查询:https://www.qimai.cn/
Appstore:https://www.apple.com/app-store/
APK敏感信息提取工具:https://github.com/TheKingOfDuck/ApkAnalyser
(三)app反编译
在APP里面有大量的接口和内网 IP,同时可获取不少安全漏洞。推荐反编译安卓app,用工具:Android Killer
(四)防护设备信息搜集
可以使用以下两个工具尝试识别目标的防护软件信息:
**wafw00f:**https://github.com/EnableSecurity/wafw00f
**idenyYwaf:**https://github.com/stamparm/identywaf”
(五)网站头信息搜集
常见搜集内容主要有:
1、中间件,,如apache iis7 iis7.5 iis8 nginx WebLogic tomcat等;
2、网站组件,如 js组件jquery、vue 、bootstrap等;
这些信息可以通过浏览器前端页面查看数据包、前端4xx页面信息、浏览器插件Wappalyzer等去搜集。
四、端口信息搜集
nmap工具:
探测指定端口是否开放:
nmap -Pn -p 目标端口 目标IP -v绕过防火墙限制批量IP全端口扫描,并将扫描结果输出到报告中:
nmap -sV -sS -Pn --open -p 1-65535 -iL 1.txt -oX 1.xml -v
masscan全端口扫描:
直接通过kali自带的工具masscan以root身份进行全端口扫描(但要注意,如果目标禁ping了,则可能一个端口都扫不出来):
sudo msscan -p 1-65535 ip --rate=1000这里的–rate参数设置的越大扫描越快。
御剑高速端口扫描工具
下载地址:https://pan.baidu.com/s/13pediAl8IhSqp_bjYtqh3g?pwd=1234
提取码:1234
在线端口扫描工具:
在线端口扫描工具站点地址:http://coolaf.com/tool/port
五、旁站和C段
旁站往往存在业务功能站点,通常先收集已有IP的旁站,再探测C段,确认C段有相关目标后,在C段的指定IP基础上再收集一次旁站。
通过以下方法搜索到旁站后,可以先访问一下确定是不是自己需要的站点信息。
站长之家查询:http://stool.chinaz.com/same
旁站查询:https://chapangzhan.com/
IP反查:http://ip.aa2.cn/ip/
同IP站点查询:https://www.webscan.cc/
C段查询:https://c.webscan.cc/
fofa:https://fofa.info
fofa搜索旁站和C段的语法举例:ip="100.100.100.1/24"shodan:https://www.shodan.io
搜索举例:net "100.100.100.0/24"
也可以使用InsightScan工具,该工具使用python2运行,不需要安装第三方库。使用方法举例:
python2 scanner.py 192.168.0.0/2411024-t 20
python2 scanner.py 192.168.1.0/24-p 80,8080-t 20
六、敏感信息搜集
(一)网盘信息搜集
可以利用云网盘搜索工具搜集敏感文件,一般直接输入厂商名字进行搜索。
凌风云搜索:https://www.lingfengyun.com/
小白盘搜索:https://www.xiaobaipan.com/
大力盘搜素:https://www.dalipan.com/
**小不点搜索(微盘)**:https://www.xiaoso.net/
百度网盘爬取开源工具:https://github.com/gudegg/yunSpider
(二)github源码信息泄露探测
可以根据前期收集到的个人信息,利用github等代码托管平台查找是否存在目标系统的源码泄漏。
(三)敏感页面信息搜集
对于页面上的一些敏感信息,也可以成为我们突破系统从而拿下目标的关键要素如springboot报 错页面,可以据此得知目标系统为springboot框架开发,由此可以尝试springboot内存泄漏漏洞等
(四)JS文件接口信息搜集
Jsfinder
python JSFinder.py -u http://www.mi.com
Linkfinder
分析整个域及其JS文件:
python linkfinder.py -i https://example.com -d
(五)邮箱信息搜集
获得邮箱后可以采用批量发送钓鱼邮件的方式来突破系统防护,邮箱里可以放好免杀木
马并配置合适的文案,如“节日福利请点击领取”等等。
可使用以下工具:
EmailAll: 一款强大的邮箱收集工具。
hunter: 搜索任何域名以及找到组织者使用的电子邮件。
(六)查询目标在哪些网站注册过账号
https://www.reg007.com
该站点需要的账号密码可以去github上面搜索。
七、目录扫描
一般交给各类扫描器就可以了。
(一)御剑
(二)7kbscan
该工具和御剑也差不多。
下载地址:https://github.com/7kbstorm/7kbscan-WebPathBrute
下载地址:https://github.com/H4ckForJob/dirmap
(三)dirmap
单个目标使用举例:
python3 dirmap.py -i https://target.com -lcf多个目标使用举例:
python3 dirmap.py -iF urls.txt -lcf
(四)dirsearch(推荐)
下载地址:https://gitee.com/Abaomianguan/dirsearch.git
常用指令:
python dirsearch.py -u http://www.zexin6688.com -x 404 -r -o results.txt -e *
注:这里的参数-e表示指定后缀,例如php的站点,则指定-e的值为php即可,在不知道目标站点是什么后端语言是,直接用*就可以了。
-x 404表示排除状态码为404的页面。-r表示递归扫描,会对发现的每个目录单独轮流进行扫描,时间会比较长。-o表示将扫描结果保存到本地文件中。
(五)gobuster
该工具在kali中的安装命令为:
sudo apt-get install gobuster常用扫描命令:
gobuster dir -u 目标URL -w/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt这里的-w表示指定字典,在dirbuster目录下有很多字典,选一个即可。这里的-e参数是后缀。可以使用管道命令来排除带有某些字符串的内容,语法为:
前面的正常命令| grep ^"待排除的内容"
(六)dirbuster
该工具在kali中自带,有图形化界面,启动命令为:
dirbuster
(七)查找sitemap.xml
若站点中有sitemap.xml文件,则该文件中通常包含本站点大量的URL,也就是相应的目录,因此可以尝试访问该文件。
八、cms指纹识别
(一)在线站点识别(推荐)
云悉:http://www.yunsee.cn/info.html
潮汐指纹:http://finger.tidesec.net/
备用cms识别站点:http://whatweb.bugscaner.com/look/
(二)whatweb工具识别
在kali中执行以下命令:
whatweb 目标域名或URL可搜集到很多相关的信息,例如站点中间件、前端库及版本、cms识别结果、所属国家等。
九、敏感文件搜索
(一)github搜索
github官网地址:https://github.com/
搜索命令作用in:name test搜索有关键字test的仓库标题in:descripton test搜索含有关键字test的仓库描述in:readme test搜素含有关键字test的Readme文件关键字 目标域名 password,然后手动指定类型为code搜索目标站点泄露的账号密码。
github监控工具:https://www.codercto.com/a/46640.html
(二)SVN 信息收集
使用google语法进行搜索,例如:
site:Github.com svn
site:Github.com svn username
site:Github.com svn password
site:Github.com svn username password
(三)其他敏感信息收集
site:Github.com password
site:Github.com ftp ftppassword
site:Github.com 密码
site:Github.com 内部
十、资产搜集工具
(一)goby
下载地址:https://cn.gobies.org/
goby可以用于资产信息收集、漏洞扫描等,图形化界面,使用较为简单,下载安装最新版,直接使用即可。
(二)ARL
ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统。
github下载地址:https://github.com/TophantTechnology/ARL
安装命令:git clone https://github.com/TophantTechnology/ARLcd ARL/docker/docker volume create arl_dbdocker-compose pulldocker-compose up -d安装完毕后访问如下地址(账号密码别为admin和arlpass):
https://127.0.0.1:5003
(三)AssetsHunter
该工具可进行Whois查询、WEB侦测、指纹识别、信息泄露检测、CENSYS API查询、证书透明度查询域名等。
(四)domain_hunter_pro
十一、常见源码泄露信息搜集方法
(一).hg源码泄露
使用hg init的时候会生成.hg文件,例如:
http://www.example.com/.hg/漏洞利用:
工具:dvcs-ripperrip-hg.pl -v -u http://www.example.com/.hg/
(二).git源码泄露
漏洞成因:
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。例如:
http://www.example.com/.git/config漏洞利用:
工具:
GitHackGitHack.py http://www.example.com/.git/
(三).DS_Store文件泄漏
漏洞成因:
在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。例如:
www.example.com/.ds_store漏洞利用:
工具:dsstoreexppython ds_store_exp.py http://www.example.com/.DS_Store
(四)网站备份文件
重点关注扫描器扫描结果中含一下后缀的文件:
.rar、.zip、.7z、.tar.gz、.bak、.swp、.txt、.html
(五)WEB-INF/web.xml泄露
web.xml叫做部署描述符文件,在Servlet规范中定义,是web应用的配置文件,描述了容器运行程序所需要的信息,提供站点的配置信息。通过扫描器扫描目标站点的web.xml文件即可。
(六)CVS泄漏
例如访问目标站点的CVS目录:
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构
取回目标站点源码:bk clone http://url/name dir漏洞利用工具:dvcs-ripper
rip-bzr.pl -v -u http://www.example.com/.bzr/
注脚:
版权归原作者 Mr.95 所有, 如有侵权,请联系我们删除。
