Web信息收集,互联网上的裸奔者
- 1.资产信息收集
- 2.域名信息收集
- 3.子域名收集
- 4.单点初步信息收集
- 网站指纹识别
- 服务器类型(Linux/Windows)
- 网站容器(Apache/Nginx/Tomcat/IIS)
- 脚本类型(PHP/JSP/ASP/ASPX)
- 数据库类型(MySQL/Oracle/Accees/SqlServer)
- 5.单点深入信息收集
- 截图
- 电子邮件及邮件凭据泄露
- Google Hakcer查询
- Github信息泄露
- 源代码信息泄露
- 6.端口扫描
- 7.网站敏感目录和文件
- 8.旁站C段
- 9.网站漏洞扫描
信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测。正所谓,知己知彼百战百胜!
信息收集的方式可以分为两种:主动和被动。
- 主动信息收集:通过直接访问、扫描网站,这种流量将流经网站
- 被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google搜索、Shodan搜索等
1.资产信息收集
这个阶段的目标是获取主要公司拥有的所有子公司,然后获取这些公司的资产
1、收购情况
首先,我们需要知道主要公司收购的其他公司
国外的查询网站:crunchbase
搜索对应公司,选择投资,可以查询该工资投资的所有子公司:
国内的,可以使用天眼查,企查查登录企业信息检索平台
2、ASNs
自治系统号(ASN)是由互联网分配号码管理局(IANA)分配给自治系统(AS)的唯一号码
一个AS由IP 地址块组成,这些块具有明确定义的访问外部网络的策略,并由单个组织管理,但可能由多个运营商组成
找出公司是否分配了任何 ASN ,以找到其 IP 范围。对范围内的所有主机执行漏洞测试,这是一个有效的渗透测试过程
ASN查询网站
按公司名称、IP或域名进行搜索即可:
随便进入一个ASN,查找对方IP段:
另一个网站是:asnlookup
搜索组织名称:
查看结果:
2.域名信息收集
我们知道范围内的所有公司及其资产,那么就需要在这些IP资产中找到对应的域名,通用的方法如下:
1、反向DNS
当你找到域名的所有IP范围后,你可以尝试对这些IP进行反向DNS查找,以找到范围内的更多域名。尝试使用受害者的某个DNS服务器或一些知名的DNS服务器(1.1.1.1、8.8.8.8)
使用指定的facebook的DNS服务器:
dnsrecon -d facebook.com -r 157.240.221.35/24
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 # Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 # Using google dns
2、反向Whois / ICP备案查询
在whois中,您可以找到许多信息,如组织名称、地址、电子邮件、电话号码等。如果您通过这些字段之一执行反向Whois查找(例如,其他whois注册表中出现相同的电子邮件),您可以找到与该公司相关的更多资产
国内whois信息查询
反向Whois信息查询
只需输入个人或公司的电子邮件地址或名称,即可查找使用相同详细信息注册的其他域
whoxy反向whois信息查询
ICP备案查询
3、Favicon
我们可以通过查找相同的favicon图标哈希来找到与我们的目标相关的域名和子域名
网页icon的获取,可以查看网页源代码,在head中找到icon的加载地址:
然后将网页icon上传到黑暗搜索引擎中进行检索:
4、版权 / 唯一字符串
在网页中搜索可能在同一组织的不同网站之间共享的字符串。版权字符串可能是一个很好的例子
web.body="闽ICP备15012807号-1"
5、通过证书透明度
在证书透明日志中找到属于同一公司的域名
6、被动接管
人们常常将子域名分配给属于云提供商的IP,并在某些时候失去该IP地址,但忘记删除DNS记录。因此,只需在云中(如Digital Ocean)生成一个虚拟机,实际上就可以接管一些子域名
这里只提供一篇概念文章:在DigitalOcean中生成一个虚拟机,获取新机器的IPv4地址,并在Virustotal中搜索指向该地址的子域名记录
Passive Takeover - uncovering (and emulating) an expensive subdomain takeover campaign
7、黑暗搜索引擎
如果已经知道拥有IP空间的组织的名称,可以尝试在黑暗搜索引擎(FOFA,全球鹰,shodan)中搜索,可能有新的意外收获
进行查询:
3.子域名收集
史上最全的子域名收集姿势
4.单点初步信息收集
网站指纹识别
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、SiteWeaver、AspCMS、帝国、Z-Blog等
yunsee指纹识别
或者使用:Wappalyzer浏览器插件
服务器类型(Linux/Windows)
服务器信息包括服务器用的操作系统:Linux 还是 Windows 。现在企业网站服务器的操作系统有百分之九十以上用的是Linux操作系统。知道了服务器的操作系统之后,还需要知道操作系统使用的具体版本。因为很多低版本的操作系统都存在已知的漏洞
断一个系统是Windows还是Linux
网站容器(Apache/Nginx/Tomcat/IIS)
网站用的web服务器是什么类型的:Apache、Nginx、Tomcat 还是 IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞
可以直接抓浏览器包或者通过插件扫描器获取
脚本类型(PHP/JSP/ASP/ASPX)
- 根据网站URL来判断
一些网站的URL后缀会暴漏自己的脚本类型
- 利用Google骇客语法进行查询,例如:查询网站是否为php脚本类型
site:xxx filetype:php
- 通过谷歌插件:Wappalyzer - 技术分析器
数据库类型(MySQL/Oracle/Accees/SqlServer)
我们需要知道网站用的是哪种类型的数据库:MySQL、Oracle、SqlServer 还是 Access 。虽然这几种数据库的语法大体上相同,但是还是有区别的
几种数据库的区别:
- Access 全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:
.mdb
一般是asp的网页文件用access数据库 - SQL Server是由Microsoft开发和推广的关系数据库管理系统,是一个比较大型的数据库。端口号为
1433
。数据库后缀名.mdf
- MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是
3306
- Oracle是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是
1521
常见搭配:
- ASP 和 ASPX:ACCESS、SQL Server
- PHP:MySQL、PostgreSQL
- JSP:Oracle、MySQL
5.单点深入信息收集
截图
可以使用EyeWitness来查看所有截图,以尽快发现哪些页面可能包含漏洞,哪些不包含
EyeWitness Github地址
电子邮件及邮件凭据泄露
电子邮件将对暴力破解网页登录和身份验证服务(如SSH)非常有用。此外,它们还用于钓鱼攻击
SNOV.IO
选择按域名搜索:
输入domain进行查询:
hunter邮箱查询
直接输入domain查询:
还可以进行邮箱的批量导出:
有了域名、子域名和电子邮件,您可以开始搜索过去泄露的与这些电子邮件相关的凭据:
Leak-Lookup
要查看泄露的密码,需要付费:
dehashed邮箱凭据泄露
Google Hakcer查询
Google Hakcer语法教学
Github信息泄露
凭据和API可能会泄露在公司的公共存储库或github公司的用户的存储库中
gshark - 可视化Github信息泄露利用工具
GSIL:GitHub敏感信息泄露监控工具使用教程
Gitleaks - 一款高效的Github仓库敏感信息泄露查询工具教程
Github Dorks
https://book.hacktricks.xyz/v/cn/generic-methodologies-and-resources/external-recon-methodology/github-leaked-secrets
源代码信息泄露
searchcode代码查询
sourcegraph
6.端口扫描
需要知道目标服务器开放了哪些端口,常见的如 135 、137 、138 、139 、445,以下是一些服务端口的漏洞:
- 21——>FTP弱口令
- 22——>ssh弱口令
- 873——>rsync 未授权访问漏洞
- 3306——>MySQL弱口令
- 6379——>redis未授权访问漏洞
端口扫描工具有nmap和masscan。nmap扫描的准确性较高,但是扫描的比较慢。masscan扫描的比较快,但是准确性较低
Yakit的端口扫描模块:
7.网站敏感目录和文件
扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏
- 后台目录:弱口令,万能密码,爆破
- 安装包:获取数据库信息,甚至是网站源码
- 上传目录:截断、上传图片马等
- MySQL管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
- 安装页面 :可以二次安装进而绕过
- phpinfo:会把你配置的各种信息暴露出来
- 编辑器:fck、ke等
- iis短文件利用:条件比较苛刻 windows、apache等
常用工具
字典爆破 >> Yakit、御剑、dirbuster、wwwscan、IIS_shortname_Scanner等
蜘蛛爬行 >> 爬行菜刀、webrobot,burp等
Yakit的目录扫描模块:
8.旁站C段
旁站:同服务器其他站点;C段:同一网段其他服务器
对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器
- webscan 旁站查询
- 同IP网站查询
- HostHunter虚拟主机发现
9.网站漏洞扫描
网站漏洞扫描就是直接对网站进行漏洞探测了。网站漏洞扫描也有很多工具。比如 AWVS、AppScan、OWASP-ZAP、nessuss等等。但是需要注意的是,使用漏扫工具直接对网站进行扫描,因为一下子流量过大,有些网站可能会崩溃。所以一般最好不要使用漏洞扫描工具对网站进行扫描。并且如果未经授权就用漏扫对网站进行扫描还是违法的