主要内容:
3.1 被动信息收集概述
3.2 DNS 域名解析原理-收集网站域名解析记录
3.3 使用Layer 子域名挖掘机收集子域名信息
3.4 使用资产检索 FOFA 搜索引擎收集信息
3.5 ARL 资产侦察灯塔系统搭建及使用
3.6 Google 搜索引擎使用技巧
3.7 利用漏洞库查询漏洞信息

3.1 被动信息收集

3.1.1 被动信息收集概述和目的

信息收集的方式可以分为两种:被动和主动。
被动信息收集方式是指利用第三方的服务对目标进行访问了解,比例:Google搜索。
主动的信息收集方式:通过直接访问、扫描网站,这种将流量流经网站的行为。比如:nmap扫描端口。
被动信息收集的目的:通过公开渠道,去获得目标主机的信息,从而不与目标系统直接交互,避免留下痕迹。

3.1.2 信息收集内容

1. IP 地址段(旁站、C段 旁站指的是网站所在服务器上部署的其他网站;C段指的是同一内网段内的其他服务器)
2. 域名信息(域名注册信息、备案信息、厂商、企业名称、注册人、邮箱)
3. 邮件地址(钓鱼攻击)
4. 文档图片数据(关于目标资产有关的)
5. 公司地址(内网渗透)
6. 公司组织架构(社工相关)
7. 联系电话/ 传真号码(社工相关)
8. 人员姓名/ 职务(社工相关)
9. 目标系统使用的技术架构(底层系统、网站语言等)
10. 公开的商业信息(搜索引擎搜索)

3.1.3 信息用途

1. 信息描述目标
2. 发现目标
3. 社会工程学攻击
4. 物理缺口

3.2 通过DNS 收集信息

3.2.1 DNS 服务概述

1、DNS服务器概述:
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的 IP地址(IP address)转换的服务器。DNS 服务器分为根域 DNS 服务器、顶级域名 DNS 服务器。根域 DNS 服务器有 13个,都存储了全部的顶级域名服务器的所在地址;
登录:https://wanwang.aliyun.com/ 买域名绑定到你的云主机上
image.png
2、DNS查询过程
一个DNS查询过程,通过8个步骤的解析过程就使得客户端可以顺利访问www.163.com这个域名,但实际应用中,通常这个过程是非常迅速的。如下图所示:
第三章-利用第三方服务对目标进行被动信息收集防止被发现 - 图3DNS查询过程

  1. 浏览器缓存:当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);
  2. 系统缓存:当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件中DNS缓存是否有该对应IP;
  3. 路由器缓存:当浏览器即系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客户端中的DNS缓存;
  4. ISP(互联网服务提供商)DNS缓存(一般就是本地DNS服务器):当在用户客户端查找不到域名对应IP地址,则将进入ISP DNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找。
  5. 根域名服务器:当以上均未完成,则进入跟服务器中进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器;
  6. 顶级域名服务器:顶级域名服务器收到请求后查看区域文件记录,若无则将器管辖范围内主域名服务器的IP地址告诉本地DNS服务器;
  7. 主域名服务器:主域名服务器接受到请求后查询自己的缓存,如果没有则今日下一级域名服务器进行查找,并重复该步骤直至找到正确记录;
  8. 保存结果至缓存:本地域名服务器把返回结构保存在缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址和web服务器建立链接。

3、DNS查询方式:递归查询和迭代查询
(1)、主机向本地域名服务器的查询一般都是采用递归查询
(2)、本地域名服务器向根域名服务器的查询是迭代查询
image.png
递归:客户端只发一次请求,要求对方给出最终结果。
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

3.2.2 DNS 信息收集

ctrl+shift++ 终端字体放大
ctrl+ - 终端字体缩小

域名记录:A,Cname,NS,MX,PTR

A记录(Address)正向解析 域名解析到IP 例:ldpwy.cn ——> 8.8.8.6
PTR记录(Pointer)反向解析 IP解析到域名 这些记录保存在in-addr.arpa域中。
Cname记录(Canonical Name)别名

NS记录(Name Server) 域名服务器记录 例:dns.ldpwy.cn

MX记录(Mail eXchange) 邮件交换记录 例:mail.ldpwy.cn

SOA记录 起始授权机构 用于标识主服务器
DNS服务器 分 主服务器 备份服务器 缓存服务器

TXT记录 记录域名相关的文本信息

1、将域名解析为IP 地址
┌──(root㉿kali)-[~]
└─# ping 12306.cn
PING 12306.cn.wsglb0.com (42.81.144.96) 56(84) bytes of data.
64 bytes from 42.81.144.96 (42.81.144.96): icmp_seq=1 ttl=58 time=5.28 ms
64 bytes from 42.81.144.96 (42.81.144.96): icmp_seq=2 ttl=58 time=15.4 ms
64 bytes from 42.81.144.96 (42.81.144.96): icmp_seq=3 ttl=58 time=10.9 ms

2、使用nslookup 查看域名
┌──(root㉿kali)-[~]
└─# nslookup 12306.cn
Server: 8.8.8.8 #DNS 服务器
Address: 8.8.8.8#53 #DNS 服务器地址

Non-authoritative answer: #非权威性回答
12306.cn canonical name = 12306.cn.wsglb0.com. #12306.cn 域名的别名
Name: 12306.cn.wsglb0.com
Address: 42.81.144.96 #12306.cn 解析出来的IP

例:查看百度
┌──(root㉿kali)-[~]
└─# nslookup www.baidu.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
www.a.shifen.com canonical name = www.wshifen.com.
Name: www.wshifen.com #www.baidu.com的域名别名
Address: 103.235.46.39

3.2.3 DNS 信息收集-DIG

语法:dig (选项) 需要查询的域名
@: 指定进行域名解析的域名服务器;
any #显示所有类型的域名记录。默认只显示A 记录
┌──(root ㉿ kali)-[~]
└─# dig 12306.cn
└─# dig @8.8.8.8 12306.cn
└─# dig @8.8.8.8 12306.cn any #any 表示查询所有

┌──(root㉿kali)-[~]
└─# dig @8.8.8.8 12306.cn any
image.png
使用-x 参数IP 反查域名
└─# dig -x 114.114.114.114
image.png
注:114.114.114.114 反向解析为public1.114dns.com
┌──(root㉿kali)-[~]
└─# ping public1.114dns.com
PING public1.114dns.com (114.114.114.114) 56(84) bytes of data.
64 bytes from public1.114dns.com (114.114.114.114): icmp_seq=1 ttl=65 time=35.1 ms
64 bytes from public1.114dns.com (114.114.114.114): icmp_seq=2 ttl=93 time=37.7 ms
64 bytes from public1.114dns.com (114.114.114.114): icmp_seq=3 ttl=64 time=34.2 ms

3.2.4 查询网站的域名注册信息和备案信息

1、域名注册信息的两种查询方式,Web 接口查询和Whois 命令查询
(1)、通过Web 接口查询:
这里只是举例2 个其实有很多。
阿里云:https://whois.aliyun.com/
image.png
image.png
image.png
站长之家:http://whois.chinaz.com/
image.png
注册人反查:
image.png
邮箱反查:
image.png
(2)、Whois 命令查询
┌──(root ㉿ kali)-[~]
└─# whois 12306.cn
image.png
2、备案信息查询
(1)、Web 接口查询:
http://icp.chinaz.com/https://icp.aizhan.com/
例:
┌──(root㉿kali)-[~]
└─# nslookup 12306.cn
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
12306.cn canonical name = 12306.cn.wsglb0.com.
Name: 12306.cn.wsglb0.com
Address: 42.81.144.96

访问:12306.cn.wsglb0.com 打不开,这是网站是什么? 是 12306 公司的网站吗?
查看ICP 备案信息:
打开http://icp.chinaz.comhttps://icp.aizhan.com/ 查找:wsglb0.com
image.png
注:这里可以看出来12306.cn.wsglb0.com 是网宿公司的网站。
12306 和网宿两个公司有什么关系?网宿这个公司是做什么的?
在百度上搜索: 网宿科技股份有限公司
image.png
网宿公司是专业做CDN 网站加速的一个公司。
从收集的信息可以看出 12306 买了网宿CDN 网站加速服务。

https://icp.aizhan.com/ 收集信息比较多。
image.png
phpinfo.me在http://icp.chinaz.com/上查询不到信息
image.png
(2)、天眼查
https://www.tianyancha.com/
在这里可以进一步查看企业的一些信息。
通过https://beian.miit.gov.cn/ 查找域名 12306.cn 的备案信息。
image.png
通过备案号京ICP 备 05020493 号-4 进行查询。
image.png
去掉 备案号中的-4 再次查询。
image.png
使用主办单位名称查询:中国铁道科学研究院集团有限公司
image.png
结果和备案号查询到的结果一致,该企业一共注册了 4 个域名,接下来挖掘对应的子域名资产即可。

3.3 收集子域名信息

3.3.1 子域名介绍

顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://example.com这个域名中,顶级域是.com(或.COM),大小写视为相同。
常见的顶级域名主要分为两类:
1、通用顶级类别域名共6个,包括

  1. 用于科研机构的.ac
  2. 用于工商金融企业的.com
  3. 用于教育机构的.edu
  4. 用于政府部门的.gov
  5. 用于互联网信息中心和运行中心的.net
  6. 用于非盈利组织的.org

2、国家及地区顶级域

  • 中国.cn
  • 英国.uk
  • 地理顶级域名一般由各个国家或地区负责管理。

子域名(Subdomain Name),凡是顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。

3.3.2 挖掘子域名的重要性

子域名是某个主域的二级域名或者多级域名,在防御措施严密情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域名,然后无限靠近主域。
例如:www.xxxxx.com 主域不存在漏洞,并且防护措施严密。而二级域名 edu.xxxxx.com 存在漏洞,并且防护措施松散。
1. 搜索引擎挖掘 如: 在Google 中输入site:qq.com
2. 第三方网站查询:http://tool.chinaz.com/subdomainhttps://dnsdumpster.com/
3. 证书透明度公开日志枚举:https://crt.sh/
4. 其他途径:https://phpinfo.me/domain
使用这个:https://phpinfo.me/domain 效果比较好
image.png
5. 子域名挖掘工具 :Layer 子域名挖掘机。

3.3.3 使用Layer 子域名挖掘机进行子域名挖掘

启动Layer,在win10 下运行Layer
image.png
Layer 需要 .NET 环境支持,如提示:
image.png
安装下课程资料中的dotNetFx40_Full_x86_x64.exe,安装完再次点击 Layer.exe 就可以正常启动了。
image.png
在域名右侧的文本框输入想要搜索的域名,比如ke.qq.com
image.png
如果要使用自定义字典,请把字典文件命名为 dic.txt,放到跟程序同目录下,程序会自动加载字典。
如果没有自定义字典,程序会自动使用内置字典,内置字典总共 175 万多条数据,内容包括了常用子域名,以及 3000+常用单词和 1-3 位所有字母。
如果要爆破二级以下域名,可以直接填入要爆破的子域名,程序会自动拼接下一级子域。比如填入ke.qq.com,程序会爆破 .ke.qq.com 下面的域名。其他配置默认,直接点击启动
image.png
稍等一会,开始进行暴力搜索子域名image.png
接下来是一个漫长的等待过程。
image.png
从已收集到的子域名,可以查看 80 和 443 端口的开放状态、WEB 服务器和网站状态。点击某个标题栏可以进行排序显示
image.png
右键单击某个域名可以打开网站、复制域名、复制IP
image.png
点击复制所选项,可以把选中的该域名的所有信息复制出来。
域名 解析IP 开放端口 WEB服务器 网站状态
cms.ke.qq.com 10.129.130.147 - 端口未开放 端口未开放
点击 导出域名 可以导出所有暴出的域名。
image.png

3.4 使用资产检索FOFA 搜索引擎收集信息

3.4.1 FOFA 介绍

FOFA是一款非常强大的搜索引擎,FOFA(网络空间资产检索系统)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息。探索全球互联网的资产信息,进行资产及漏洞影响范围分析、应用分布统计、应用流行度态势感知等。相对于shodan来说fofa的优点就是更加本土化,拥有更多的域名数据,建立了全球最大的资产规则集,而且现在已经更新了识别蜜罐的功能。

3.4.2 FOFA 基础语法

详细语法规则请参考FOFA 官网https://FOFA.info/,以下仅以实战角度出发总结常用语法。
常用语法如下:
1. title 网站标题
title=”beijing” 从标题中搜索“北京”
例如:我们要搜索title 中包含天津医院的资产。
title=”天津医院”
image.png
获取到 17 条独立IP 的资产。但是有 26 条记录。
www.12306.cn xuegod.cn 101.200.128.35 这三条记录对应的都是同一台服务器。

2. body 页面内容
body 可以通过页面中包含的特定字符串来搜索资产。
image.png
body=”骨科为国家临床重点专科、重症医学科为天津市重点学科、血管外科为天津市重点发展学科”
image.png
同样可以通过body 定位到天津医院资产。
3. domain 域名
搜索域名中包含tjorthop.org 的资产,此方法相当于子域名的搜索。
domain=”tjorthop.org”
image.png
共 4 条 记 录 3 条 独 立 ip www.xuegod.cn xuegod.cn shop.xuegod.cn bbs.xuegod.cn

3.4.3 实战-FOFA 根据地区搜索

country=”CN” 搜索指定国家(编码)的资产。
region=”Xinjiang” 搜索指定行政区的资产。[ˈriːdʒən] 区域
city=”beijing” 搜索指定城市的资产。

排除地区方法使用 !=
例如在通过domain 搜索资产的时候会有北京的服务器,那如何排除北京的服务器?
domain=”tjorthop.org” && region!=”Beijing”
通过语法组合进行筛选,&&表示左右 2 个条件都需要满足,左边条件为包含tjorthop.org 域名的资产,右边条件则为地区不等于Beijing,Beijing 表示北京。这样就能够帮我们定位到不包含北京服务器的资产。
image.png
通过组合条件使搜索更加精准
(domain=”tjorthop.org” && region!=”Beijing”) && body=”骨科为国家临床重点专科、重症医学科为天津市重点学科、血管外科为天津市重点发展学科”
搜索tjorthop.org 域名排除北京的资产列表,并且body 中包含 骨科为国家临床重点专科、重症医学科为天津市重点学科、血管外科为天津市重点发展学科
图略;
这样我们可以精准定位到tjorthop.org 官网,虽然看起来有些多余,但是在实战中我们搜索资产的时候会有很多意外符合条件的资产被我们搜索到,所以多个条件组合可以帮我们把搜索结果筛选的更加准确。

3.4.4 实战-FOFA 通过JavaScript 文件查询

通过页面中包含的js 文件进行查询定位,比如12306 官网,使用Chrome 浏览器访问:www.12306.cn,右键空白处查看源代码。
image.png
FOFA 语法:
js_name=”./script/core/common/station_name_v10170.js”
image.png**这种使用方法和body 实际使用起来类似。但是通过js_name 搜索到的内容比body 少很多。
body=”./script/core/common/station_name_v10170.js”
image.png

3.4.5 实战-通过使用 FOFA 规则列表搜索CMS 资产

image.png
例如:搜索使用了 CMS 框架的网站
image.png
点击后自动调用FOFA 语法:app=”友点建站-CMS”
image.png
这样全网使用“友点建站-CMS”的资产全部被搜索出来。

有时我们搜索产品的时候可能需要指定对应的版本号进行搜索,但是fofa 内置的应用规则中绝大部分是不支持指定版本号进行搜索的,此时可以通过提取页面中的特征来进行定位。
例如:discuz 论坛 选择 Tencent-discuz
image.png
app=”Tencent-Discuz”
image.png
现在确定Discuz! x3.4 版本存在sql 注入漏洞,如何定位Discuz! x3.4 版本的资产?

在论坛首页中,查看源代码可以看到对应的版本信息。页面中的信息我们可以通过body 参数检索。


构造搜索条件:app=”Tencent-Discuz” && body=”Discuz! X3.4”
image.png
搜索中国台湾地区所有的Discuz! X3.4 论坛
app=”Tencent-Discuz” && body=”Discuz! X3.4”&& region=”TW”
image.png

3.5 ARL 资产侦察灯塔系统搭建及使用

3.5.1 资产侦察灯塔系统简介

1、简介
ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔旨在快速发现并整理企业外网资产并为资产构建基础数据库,无需登录凭证或特殊访问即可主动发现并识别资产,让甲方安全团队或者渗透测试人员快速寻找到指定企业资产中的脆弱点,降低资产被威胁利用的可能性并规避可能带来的不利影响。
2、产品架构
image.png
资产梳理的路径会根据输入的数据进行变动与调整。如输入数据为基于域名时,采用的技术手段包括DNS枚举、智能域名生成枚举、第三方API服务来获取子域名,随后将域名解析为IP(当输入数据基于IP时,可直接进入后续阶段),既是对IP进行端口扫描、服务识别、系统识别、站点识别和WEB指纹识别,同时爬取站点URL,并对首页进行截图,完成资产发现。
当通过域名或是IP识别出对应的安全应用后,便可将其与鱼鹰(Osprey)poc漏洞检测框架、通用漏洞扫描(CRS)、漏洞预警系统(VAS)和漏洞盒子相关联,快速准确识别资产威胁,降低资产风险。

3.5.2 资产侦察灯塔系统搭建

1、系统要求
目前暂不支持 Windows,Linux 和 MAC 建议采用Docker 运行,系统配置最低 2 核 4G。
由于自动资产发现过程中会有大量的的发包,建议采用云服务器可以带来更好的体验。
** 实验环境:
系统:centos7.6,主机名:zhang,IP 地址:192.168.1.55

2、资产侦察灯塔系统搭建
1) 、部署docker 容器虚拟化平台
安装docker 环境依赖
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

配置国内 docker 的 yum 源(阿里云)
[root@localhost ~]# yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装epel 扩展仓库
[root@localhost ~]# yum -y install epel-release

安装 docker-ce 和docker-compose
[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io docker-compose -y

注:
docker-ce-cli 作用是 docker 命令行工具包
containerd.io 作用是容器接口相关包
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML 文件配置中创建并启动所有服务。

启动docker 并设置开机自启动
[root@localhost ~]# systemctl start docker && systemctl enable docker
[root@localhost ~]# docker version #显示 Docker 版本信息
image.png
可以正常查看docker 版本信息,说明docker 部署没有问题。

使用阿里云 docker 镜像加速器,提升 pull 的速度创建配置文件 daemon.json
[root@localhost ~]# vim /etc/docker/daemon.json #需要手劢创建 daemon.json 文件。 写入以下内容
{
“registry-mirrors”: [“https://e9yneuy4.mirror.aliyuncs.com“]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker info
image.png
可以看到镜像仓库的地址,已经改为阿里云

2) 、资产侦察灯塔系统部署
拉取镜像
[root@localhost ~]# docker pull tophant/arl
image.png
docker-compose 启 动
[root@localhost ~]# git clone https://github.com/TophantTechnology/ARL
[root@localhost ~]# cd ARL/docker/
[root@localhost docker]# docker-compose up -d
image.png
根据报错提示,我们执行:
[root@localhost docker]# docker volume create —name=arl_db
image.png
再次执行 docker-compose
[root@localhost docker]# docker-compose up -d
image.png
查看是否运行正常
[root@localhost docker]# docker-compose ps
image.png
打开谷歌浏览器,访问:**https://192.168.1.63:5003/**** 注:如果打不开,把防火墙关一下 image.png
使用默认账号:admin,密码:arlpass 登录**image.png

3.5.3 资产侦察灯塔系统的使用

1、资产分组
资产分组功能用于整合资产范围内的域名资产到资产组中,用户也可以对资产组范围内的资产进行监控,实时监控新增资产。
新建资产组,可以通过批量导入的方式将资产范围内的域名资产添加到资产组中,一个资产组中可以包含多个域名信息。
image.png
广田集团
szgt.com
www.szgt.com
image.png
image.png
添加监控任务
通过指定资产组,和添加监控任务操作,可以下发域名资产的监控任务到ARL 中,后台将会根据运行间隔对监控任务内的资产进行扫描,用于发现监控新增的资产。 image.png
选择要监控的域名,设置运行的时间间隔。
image.png
注:先不选择策略,这样会使用默认的策略。 稍候,也可以自已定制策略。
运行间隔时间不能小于 6 个小时
image.png
添加成功后,点击资产监控可以查看到所有的监控任务。
image.png
通过资产分组中的添加监控任务之后,资产监控中将会展示正在运行的监控任务,运行的次数,运行间隔等信息,用户也可以通过资产组范围ID 来检索监控范围内的相关资产内容。

在任务管理中也会添加监控任务。
配置项使用的是:域名爆破, 端口扫描, RiskIQ 调用, ARL 历史查询, crt.sh 调用
image.png
等待任务运行完成
image.png
点击任务名称,可以查看监控任务的扫描结果。
image.png
添加站点监控任务
站点监控功能会将资产分组中的站点标题变化等进行比较,如果有新的变化将会在任务结果中展现,配置了邮箱将会进行消息推送。 在资产分组中点击 添加站点监控任务 按钮可添加任务,如果要删除停止操作可以在资产监控模块进行管理。image.png
image.png
2、策略配置
通过创建不同的策略,可以对资产进行不同方案的扫描,可以针对不同类型的资产,根据资产的功能创建指定的策略。
创建策略前,先查看下PoC 信息,看是否有信息,如果没有的话请点击更新,将会加载系统默认PoC 信息。
PoC 概述: Proof Of Concept 的缩写。在渗透圈指:观点验证程序。就是运行这个程序就可以得出预期的结果,也就验证了观点。Proof [pruːf] 证明 ; Concept [ˈkɒnsept] 观念
image.png
更新后,增加的内容:
image.png
image.png
设置策略的名称:子域名收集,策略描述:对目标网站进行子域名收集。
image.png
1) 域名和IP 配置
域名爆破类型:选择对域名爆破的字典
image.png
大字典:常用 2 万字典大小;
测试:少数几个字典,常用于测试功能是否正常。这里选择 测试
image.png
端口扫描类型:
image.png
测试 :少数几个端口
TOP1000:常用 top 1000 端口
TOP100:常用 top 100 端口
全部端口:所有端口 1-65535
自定义:可以自定义要扫描的端口,多个端口之间用 , 间隔,比如:22,3306

这里选择自定义,扫描 80 和 443 端口。
image.png
域名爆破:是否开启域名爆破
DNS 字典智能生成:根据已有的域名生成字典进行爆破
Riskiq 调用:利用RiskIQ API 进行查询域名。RiskIQ 公司:主要向企业提供恶意软件安全监控服务,让客户能够随时发现和处理恶意软件、恶意广告和恶意APP。
RiskIQ 通过全球代理网络每天持续扫描数以千万计的网站,随时向客户报告异常情况。据悉美国前十大金融机构中有八家都适用RiskIQ 追踪监控企业web 和移动应用资产。
ARL 历史查询:对arl 历史任务结果进行查询用于本次任务。
crt.sh 调用:利用 crt.sh 网API,进行子域名发现。https://crt.sh/查询域名,证书信息的网站端口扫描:是否开启端口扫描,不开启站点会默认探测 80,443
服务识别:是否进行服务识别,有可能会被防火墙拦截导致结果为空
操作系统识别:是否进行操作系统识别,有可能会被防火墙拦截导致结果为空
SSL 证书获取:对端口进行SSL 证书获取
服务(python)识别:使用 python 脚本进行服务识别这里大家根据要收集的信息进行选择即可。
image.png
2) IP 高级配置
可以对主机超时时间,扫描速率进行配置

3) 站点和风险配置
站点识别:对站点进行指纹识别
搜索引擎调用:
站点爬虫:利用静态爬虫对站点进行爬取对应的URL
站点截图:对站点首页进行截图
文件泄露:对站点进行文件泄露检测,会被WAF 拦截
image.png
4) PoC 配置
image.png
如果目标存在PoC 列表中的应用,可以使用其中的PoC 验证目标的应用是否存在此漏洞。**

5) 弱口令爆破设置
在运行过程中会进行端口扫描,服务识别,然后根据匹配的协议进行弱口令爆破。
image.png
6) 资产组配置
可以关联资产组,当通过该策略下发任务时任务结果会自动同步到对应的资产中。
image.png
都设置完了,点击确定按钮。
在策略配置列表可以看到我们新添加的策略。
image.png
点击策略序号左侧的 + 可以查看该策略的配置项
image.png
任务下发对资产进行扫描和探测。
image.png
任务类型:
资产侦查任务:目标支持IP、IP 段和域名,对资产进行端口识别、服务识别、系统识别等。
风险巡航任务:目标需要输入确定的地址(IP 或域名),对资产进行风险扫描。
这里我们选择资产侦查任务,输入目标后点击确定。
image.png
任务下发成功后,可以到任务管理里查看。
image.png
等待任务执行完成,点击任务名或 Task_id 就可以查看结果了。
image.png
3、FOFA 任务下发
通过关联指定策略对FOFA 接口检索到的资产进行探测。
由于查询API 条数限制,仅支持高级会员。需要先在/root/ARL/docker/config-docker.yaml 里配置
FOFA 的邮箱和API KEY,重启容器生效。查看FOFA 的API KEY
image.png
image.png
image.png
设置FOFA 参数
[root@localhost docker]# vim /root/ARL/docker/config-docker.yaml
修改 24、25 行
image.png
保存退出,重启容器
[root@localhost docker]# docker-compose restart
image.png
下发任务
image.png
image.png
排错:
如果遇到如下错误提示:
image.png
从错误提示中host=’fofa.so’ 可以看出这是fofa 之前的域名,我们只需进入容器修改成现在的域名后重启容器即可。
查看容器ID
[root@localhost docker]# docker psimage.png进入容器
[root@localhost docker]# docker exec -it 2a9f1c1e438f /bin/bash
进 入 容 器 后 , 编 辑 ./app/services/fofaClient.py
[root@2a9f1c1e438f code]# vi ./app/services/fofaClient.py
将 13 行
self.base_url = “https://fofa.so
修改为:
self.base_url = https://fofa.info
image.png
退出容器
[root@2a9f1c1e438f code]# exit
重启容器
[root@localhost docker]# docker-compose restart
image.png
再次点击测试
image.png
关联策略对检索到资产进行探测
image.png
在任务管理列表中可以看到刚刚下发的任务
图略
点击任务名,查看探测结果
图略
4、指纹管理
只支持body, title, header, icon_hash 四个字段,仅仅可以使用逻辑或,如 body=”Powered by WordPress”,一条规则可以使用多个字段,每个字段只有或的关系,命中了一个表示规则匹配。
添加指纹,以szgt 图标的hash 值作为指纹。
image.png
指纹添加成功
image.png
到任务管理列表中,再次启动szgt资产探测任务。
image.png
可以看到在任务管理列表中,又新创建了一个新任务。
image.png
点击任务名称,查看探测结果,可以看到刚添加的指纹在指纹字段显示出来了。
image.png
kali指纹识别工具使用
image.pngimage.png
5、计划任务
可以在计划任务模块中添加定时任务和周期任务。
定时选择指定的时间运行,期间只运行一次。
周期任务采用cron 表达式,系统限制了最少间隔 6 小时,如每天的 2 点 10 分触发任务下发(这里不保证任务立即运行,如果队列中有任务将会排队。) 在计划类型中选择周期任务,在Cron 中填入 10 2 *, 点击确定进行提交,通过比对下一次运行时间来看Cron 表达式是否和预期的一样。
如果对Cron 表达式不熟悉,可以通过网站:https://tool.lu/crontab/ 学习下。

例:添加一个周期任务,对资产www.szgt.com 根据指定策略执行风险巡航任务,每隔 12 个小时执行一次。
image.png
添加完成后,在计划任务列表可以查看
image.png
6、GitHub 管理和监控
通过GitHub 接口在 GitHub 搜索指定关键词的仓库,比如搜索和某个漏洞相关的EXP 或POC。
使用这个功能需要先在 /root/ARL/docker/config-docker.yaml 中配置 GitHub Token。
登录GitHub ,访问https://github.com/settings/tokens 点击Generate new token 按钮,过期时间可以选择No expiration, 这里只是用来搜索,权限可以不勾选。

获取GitHub Token,访问:https://github.com/settings/tokens
image.png
image.png
image.png
编辑 /root/ARL/docker/config-docker.yaml,配置 GitHub Token。
[root@localhost docker]# vim /root/ARL/docker/config-docker.yaml
将Token 粘贴到 44 行双引号中
image.png
保存退出。重启容器
[root@localhost docker]# docker-compose restart
image.png
1)GitHub 管理
添加GitHub 任务,搜索 Spring Framework 远程命令执行漏洞(CVE-2022-22965)的 EXP 或
POC。
image.png
添加完成后,在GitHub 任务管理列表中显示。
image.png**等待任务执行完成,点击任务名,可以查看搜索到的结果。

1)GitHub 监控
可以添加周期任务对指定的关键词进行监控搜索。
监控漏洞CVE-2022-22965,每隔 6 小时搜索一次。
注意:监控任务时间间隔不能小于 6 小时。
image.png**添加完成后,在GitHub 监控管理列表中显示。
image.png
7、代理配置
可以配置代理,只支持HTTP 代理,基于代理对目标进行探测,隐藏自己真实的IP 地址,但是端口扫描不会走代理。
编辑配置文件 /root/ARL/docker/config-docker.yaml
[root@localhost docker]# vim /root/ARL/docker/config-docker.yaml
修改第 48 行
47 PROXY:
48 HTTP_URL: “”
代理配置方式:HTTP_URL: “http://代理IP:代理端口 PORT”
免费的代理地址https://www.kuaidaili.com/free/inha/
image.png
使用代理进行探测时,是不能够探测内网目标的,除非目标在公网也能够正常访问。

使用代理:IP:152.136.62.181 PORT:9999
配置如下:
48 HTTP_URL: “http://152.136.62.181:9999
image.png
注:这里可以使用我们的v2ray 作为代理。
image.png
v2ray 的代理端口有 2 个 HTTP 端口和SOCKS5 端口
image.png
我这里 v2ray 的代理HTTP 端口是 10809
http://v2ray客户端机器的 ip 地址:10809

例如:我的v2ray 客户端运行在 192.168.1.28 这台机器。
http://192.168.1.28:10809

配置如下:
48 HTTP_URL: “http://192.168.1.14:10810
image.png
配置完,保存退出。
重启容器,使配置生效。
[root@localhost docker]# docker-compose restart

测试使用代理进行探测,重启基于对szgt 的探测任务。
image.png
等待探测完毕,点击任务名称查看结果
image.png

image.png3.5.4 资产侦察灯塔系统升级

[root@localhost ~]# cd /root/ARL
[root@localhost ~]# git pull
[root@localhost ~]# cd /root/ARL/docker
[root@localhost ~]# docker-compose stop
[root@localhost ~]# docker-compose pull
[root@localhost ~]# docker-compose up -d

3.5.5 资产侦察灯塔系统忘记密码重置

当忘记了登录密码,可以执行下面的命令
docker exec -ti arl_mongodb mongo -u admin -p admin
image.png
use arl
image.png
db.user.drop()
image.png
db.user.insert({ username: ‘admin’, password: hex_md5(‘arlsalt!@#’+’admin123’) })
image.png
exit
image.png
然后使用 admin/admin123 就可以登录了。

3.6 Google 搜索引擎的使用技巧

Google 常用语法说明
site 指定域名
inurl URL 中存在的关键字页面
intext 网页内容里面的关键字
Filetype 指定文件类型
intitle 网页标题中的关键字
link 返回你所有的指定域名链接
info 查找指定站点信息
cache 搜索Google 里的内容缓存

技巧 1:inurl,拆开来,就是in url ,它的作用是限定在url 中搜索。
例:输入内容:inurl:qq.txt
image.png我们可以看到有很多存在QQ 账号密码信息的页面,不过时间是比较久远的。这里只是演示方法。

技巧 2: inurl:admin.php 或 “inurl:admin_login.asp” 查找后台登录页面
inurl:login.php 或: inurl:login.asp 或 :inurl:login.html
image.png
我们可以看到全部都是后台登录的页面。

技巧 3 通过intitle:index.of 搜索所有目录开放的站点
intitle 表示标题
index.of 表示包含index.of 字段,出现该字段表示网站目录是对我们开放的,我们可以查看到网站目录下的所有文件信息。
例 1:intitle:index.of .bash_history
.bash_history 表示我们要筛选的文件名称,也可以替换成其他的敏感信息文件,该文件记录了用户的历史命令记录
http://www.lamardesigngroup.com/homedir/
image.png
image.png
image.png
例 2:查找mysql 的配置文件my.cnf
intitle:index.of my.cnf
image.png
如 :https://www.artila.com/download/9200/Linux/Utility/mysql-all/mysqld/etc/
例 3: 查 找 discuz 论 坛 中 存 储 mysql 密 码 的 配 置 文 件 config_global.php
intitle:index.of config_global.php
image.png
技 巧 4 “cache:12306.cn”
cache 返回的结果是被搜索引擎收录时的页面,比如一些页面被删除了,我们通过cache 还是可以访问。
image.png
我们看到 Google 缓存的日期为 4 月 15 日,他也会提示我们当前页面可能已经更改,所以我们查看一些被删除的内容是完全可能的。

技 巧 5 “Kali filetype:torrent”
Kali 是我们要搜索的关键字
filetype 指定文件类型
torrent 文件类型名称,torrent 是种子文件,可以填写任意扩展名。
image.png
我们可以找到很多Kali 相关的种子文件。
扩展:
image.png
image.png
技 巧 6 “apache site: cnvd.org.cn”
site 搜索范围限定在特定站点中
使用场景:您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。因为站内的搜索功能并不是那么好用,所以我们使用该方式可以快速的查找到自己想要的信息。
例:查找cnvd.org.cn 中有关apache 的漏洞文章
image.png
在谷歌上搜索:apache site:cnvd.org.cn
image.png
注:如果找国内的一些信息,还是使用百度查的比较多。
例 2:直接使用写 site: cnvd.org.cn 可以查看百度对这个网站的收录情况
image.png
技 巧 7 “intext:user.sql intitle:index.of” 组合使用技巧
intext:user.sql 查询包含user.sql 用户数据库信息的页面
intitle:index.of 表示网站目录是开放状态。
image.png**我们可以看到有很多页面都包含了敏感信息。我找到了一个数据库备份的页面。
http://western-blotting.com/oc_v1.5.2.1_database_dump/
image.png
我们可以看到这应该是一个备份数据库的地方。

例:site:gov. intitle:”index of” .csv
.gov(government 的缩写)是政府机构的专用域名。
查看所有政府网站中可以直接显示目录,并显示的目录中有csv 文件的链接。
government [ˈɡʌvənmənt] 政 府
image.png
技 巧 8 “s3 site:amazonaws.com filetype:xls password”
s3 关键字,亚马逊的一种服务器类型。
site:amazonaws.com 目标是亚马逊云平台。
filetype:xls password 文件类型 xls 包含密码的文件。
image.png
我们点开一些链接会自动下载 xls 的表格文件,文件中包含了用户名密码信息。
image.png
这里给大家提个醒,不要下载什么文件都直接打开,一定要开启杀毒软件,原因是黑客会利用我们这种行为,伪造一个包含信息的页面,我们打开页面后下载的文件就有可能是包含病毒的文件。
或:搜索: dell filetype:xls password

总结:
谷歌黑客数据库:https://www.exploit-db.com/google-hacking-database
在谷歌黑客数据库中有大量的搜索引擎语法以及搜索案例如下:
image.png
可以多尝试学习其中的一些特殊用法。

3.7 利用漏洞库查询漏洞信息

3.7.1 常见最新漏洞公布网站

美国著名安全公司 Offensive Security 的漏洞库 http://www.exploit-db.com[比较及时]
赛门铁克的漏洞库 http://www.securityfocus.com(国际权威漏洞库)
国家信息安全漏洞共享平台 http://www.cnvd.org.cn/
国内安全厂商——绿盟科技 http://www.nsfocus.net
俄罗斯知名安全实验室 https://www.securitylab.ru/vulnerability/
CVE 常见漏洞和披露 http://cve.mitre.org
安全客 https://www.anquanke.com/
美国国家信息安全漏洞库 https://nvd.nist.gov/
知道创宇漏洞库 https://www.seebug.org/

3.7.2 SearchSploit 漏洞搜索使用技巧

SearchSploit 是一个用于搜索Exploit-DB 漏洞数据的命令行工具,它可以允许你离线Exploit 数据库,这样你就可以在本地执行离线搜索,这对于有时候不能联网的渗透工作非常的有用。
Exploit Database(https://github.com/offensive-security/exploit-database)这是Offensive Security(https://www.offensive-security.com/)赞助的一个项目。存储了大量的漏洞利用程序,可以帮助安全研究者和渗透测试工程师更好的进行安全测试工作,目前是世界上公开收集漏洞最全的数据库,该仓库每天都会更新,exploit-db提供searchsploit利用files.csv进行搜索离线漏洞库文件的位置。
exploit-db 官网地址:http://www.exploit-db.com
Kali 自带SearchSploit,所以在 Kali 下使用无需下载和安装。
**┌──(root㉿kali)-[~]
└─# searchsploit -h
Searchsploit 参数说明:
-c, —case [Term] 执行区分大小写的搜索,缺省是对大小写不敏感。
-e, —exact [Term] 对漏洞标题执行精确的顺序匹配(默认为每个关键词的AND 匹配)
-s, —strict 执行严格的搜索,因此输入值必须存在,从而禁用版本范围的模糊搜索
-h, —help 在屏幕上显示帮助
-j, —json [Term] 以JSON 格式显示结果
-m, —mirror [EDB-ID] 将一个漏洞利用镜像-(副本)到当前工作目录,后面跟漏洞ID 号
-o, —overflow [Term] Exploit 标题被允许溢出其列
-p, —path [EDB-ID] 显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板)后面跟漏洞ID 号
-t, —title [Term] 仅仅搜索漏洞标题(默认是标题和文件的路径)
—exclude=”term” 从结果中删除值。通过使用”|” 分隔多个值,例如— exclude=”term1 | term2 | term3”。
-u, —update 检查并安装任何exploitdb 软件包更新(deb 或git)
-w, —www [Term] 显示Exploit-DB.com 的URL 而不是本地路径(在线搜索)
-x, —examine [EDB-ID] 使用$PAGER 检查(副本)漏洞利用
—colour 在搜索结果中禁用颜色突出显示.
—id 显示EDB-ID 值而不是本地路径
—nmap 使用服务版本检查Nmap XML 输出中的所有结果(例如:nmap - sV -oX file.xml)。
-v 显示更多的信息

1、searchsploit 更新
└─# searchsploit -u
image.png
1、使用实例
例 1:搜索windows xp 相关的漏洞
关键词:windows xp
└─# searchsploit windows xp
image.png
默认情况下,searchsploit 将检查该漏洞利用的标题以及该路径。根据搜索条件,这可能会导致误报(特别是在搜索与平台和版本号匹配的关键词时),使用 “-t” 选项去掉多余数据。

例 2:在标题中搜索windows xp 相关的漏洞
└─# searchsploit -t windows xp
image.png
这样搜索出的结果更加精准,但是我们发现有不属于windows xp 的结果
image.png
为了使搜索的结果更加精准,可以使用 -e 参数,在标题中按顺序精准匹配

例 3:在标题中按关键词顺序精确搜索 windows xp 相关的漏洞
└─# searchsploit -e windows xp
image.png
说明:
Exploit Title:漏洞相关EXP 的标题
Path:EXP 所在的路径,路径中最后的数字是EDB-ID 值,可以通过EDB-ID 值查看EXP 的完整路径。
查看EDB-ID 为 7988 的完整路径
└─# searchsploit -p 7988
image.png
获取到EXP 的完整路径可以查看更多关于此漏洞的信息。

SearchSploit 使用AND 运算符,而不是 OR 运算符。使用的关键词越多,滤除的结果越多,越精准。

例 4:搜索windows xp 相关的ms08-067 漏洞
└─# searchsploit windows xp ms08-067
image.png
删除不想要的结果
└─# searchsploit windows xp ms08-067 —exclude=”2000”
image.png
例 5:通过管道符从搜索结果中过滤出想要的结果
搜索windows smb 相关的Remote 漏洞EXP,只查看python 的EXP
正常搜索结果
└─# searchsploit smb windows remote
image.png
只查看python 的EXP
└─# searchsploit smb windows remote | grep py
image.png
也可以通过关键词搜索实现
└─# searchsploit smb windows remote .py
image.png
检索到指定漏洞的EXP,不建议在漏洞库中直接修改 EXP,可以使用-m 参数将EXP 复制到当前目录。
例 6:搜索织梦CMS 系统 5.7 版本漏洞的EXP,并将 EXP 复制到当前目录。
└─# searchsploit dedecms 5.7
image.png
EXP 的ID 为:37423
└─# searchsploit -m 37423
image.png
前面我们都是通过离线Exploit-DB 数据库搜索和查看漏洞EXP,也可以通过在线搜索和查看。
例7:在线搜索织梦CMS 相关的SQL 注入漏洞
搜索关键词:dedecms SQL injection
└─# searchsploit dedecms SQL injection -w
image.png