信息收集也叫做资产收集。信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口
一般渗透测试的流程是这样的:
外网信息收集–>打点(边界突破)–> 内网渗透
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
列如:baidu.com、qq.com、abc.com
域名也有分类
一、种类分类
1、域名按语种的不同划分
中文域名、英文域名、日文域名和其他语种的域名
2、按域名所在的域的不同划分
顶级域名、二级域名.com域名是使用最早也最广泛的域名。例如表示工商企业的.com。表示网络提供商的.net。表示非盈利组织的.org。二是国家域名,又称为国内顶级域名(national top-level domainnames,简称nTLDs),即按照国家的不同分配不同后缀,这些域名即为该国的国家顶级域名。目前200多个国家和地区都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等
3、按管理机构的不同分为
国际域名由非营利性国际组织ICANN(The Internet Corporation for Assigned Names and Numbers)运营管理—以.com、.net、.org、.cc 、.tv等根域为后缀的域名,国家域名—在的后面再加上国家代码(如中国为.CN,日本为.JP,英国为.UK)后缀的域名
4、按后缀的不同形式分为
比如whoami.com是一个域名,那么a.whoami.com、b.whoami.com类似这样的格式的域名就是whoami.com的子域名,都是属于whoami.com的资产
下载地址:OneForAll是一款功能强大的子域收集工具
在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:
为了解决以上痛点,此项目应用而生,正如其名,OneForAll是一款集百家之长,功能强大的全面快速子域收集终极神器
下载好OneForAll,进入到OneForAll的目录下,执行以下命令安装OneForAll所需的环境依赖
python3 -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 --target baidu.com run
# --target 指定扫描的网站
扫描完成后会在oneforall的目录下的result文件夹里生成爆破出来的子域名
批量扫描
python oneforall.py --targets target.txt run
#target.txt写上需要批量爬取域名
扫描后的结果同样会在oneforall的目录下的result文件夹里生成
全部扫描完成后还会生成一个excal表格,非常方便查看和筛选域名信息
subDomainsBrute是一款高并发的DNS暴力枚举工具
下载地址:subDomainsBrute下载地址
下载好subDomainsBrute后,进入目录,执行以下代码安装环境依赖
pip install dnspython gevent
用法:subDomainsBrute.py[选项]target.com
选项:
--version 显示程序的版本号并退出
-h、--help 显示此帮助消息并退出
-f FILE文件包含新的换行子,默认为subnames.txt文件。
--full 完全扫描,将使用NAMES FILE subnames_full.txt暴力破解
-i、 --ignore-intranet 忽略指向专用IP的域
-w、--wildcard 通配符测试失败后强制扫描
-t THREADS, --threads=THREADS 扫描线程数,默认200
-p PROCESS, --process=PROCESS 扫描进程数,默认为6
-o OUTPUT, --output=OUTPUT 输出文件名称 {target}.txt
python subDomainsBrute.py -t 20 baidu.com -o baidu.txt
当网站扫描完成后,会在 subDomainsBrute目录下生成一个baidu.txt文件,里面存放着百度的子域名信息
除了使用工具去查询子域名,我们还可以使用在线网站去查询子域名
网站地址:https://phpinfo.me/domain/
如果我们不想使用暴力枚举的方式获得子域名,我们还可以通过证书平台去获取子域名
我们使用谷歌浏览器打开百度
我们接着点击【连接是安全的】
我们接着点击【证书有效】
然后我们在证书的主题背景的备用名称中找到当前网站的子域名信息,如下图所示
此外,我们还可以通过一些证书平台去查询域名
网站地址:https://crt.sh/
点击【search】查询
网站地址:https://search.censys.io/
点击【search】查询