正文共:7510 字 24 图
预计阅读时间:19 分钟
▌前言
我所在的公司是一家具有多方视角的公司,既是安全服务提供商(乙方)、也是管理自己集团资产安全的管理者(甲方),同时还是 FOFA、Goby 的合作伙伴。
在知道公司花了很多个 W 购买了 FOFA 企业服务,而我们的部分小伙伴们拿着企业账号却在频繁使用基础语法和用法时,于是我就决定结合企业的甲方视角研究一下 FOFA 在企业场景中的应用,将账号价值最大化!本文是该主题文章的第一篇, 第二篇将会在春节后与大家见面,主要讲述 FOFA 实战攻防对抗中在企业常态化安全运营场景下的进阶应用。
▌一、企业场景需求梳理
结合自身央企集团运营中心的视角,在日常资产安全管理工作中,初步梳理了以下几点比较重要的需求:
1.1 互联网暴露面(资产)梳理
作为企业信息资产的管理者(信息中心或运营中心),手上掌握的信息资产台账往往还不够全。很多企业的业务部门会自己找供应商来研发所需要的业务系统,然后委托给第三方公司或者部署在云上,直接上线业务系统而没有通过信息中心走正规的业务系统上线流程;有的可能是企业的研发人员为了方便居家办公或者其他原因,自己搭建了测试环境发布到互联网上;有的可能是老旧的业务系统已经不再使用,但因各种原因仍未下线,而在管理者的资产列表中却已经”下线”了……以上各种情况,都是导致企业存在账外资产,存在风险资产暴露的原因。
而企业中的互联网资产往往是攻击者最先攻击的目标,越早、越全梳理企业在互联网中暴露的资产,并及时进行防护至关重要!
1.2 漏洞影响范围评估(互联网侧)
世界上没有绝对安全的业务系统,只要是计算机程序,都会存在漏洞,只不过是发现漏洞时间早晚的问题而已。据 CNVD 不完全统计,从 2018 年开始至今,每年公布的漏洞数量都是呈现递增趋势,而 2021 年是漏洞发现增长最快的一年。
在一些重大漏洞全网爆发的时候,就是各企业的网络安全管理人员与时间和恶意攻击者赛跑的时候,得在第一时间内掌握自身资产受影响的情况,然后制定修复方案、应对策略,以用最短的时间把影响降到最小。如果处理地不及时,很可能会被恶意攻击者先行利用爆发的漏洞和 PoC 渗透进来,甚至是进行内网的横向渗透!
因此,对于大型企业,特别是大型央企集团来说,充分掌握自己的资产情况以及是否受到最新漏洞的影响,影响范围有多大,受影响信息资产是否已及时将漏洞修复等情况非常必要。
1.3 资产漏洞风险排查
在以往的攻防实战演练中,攻击方首先会从互联网暴露的资产面中寻找防护薄弱的,或者存在安全隐患的作为突破口,进而作为攻击内网的跳板。
因此,从攻击者的视角对资产进行漏洞风险评估和排查,并提前将漏洞修复,是堵住攻击者进攻的最有力的防御方式。
1.4 假冒网站排查
对于一个企业而言,除了自身的产品竞争力以外,更重要的是企业对外的形象展示。官网、对外提供服务的业务系统等都是直接向外界展示企业自身形象的媒介,如果有人假冒企业的官网,发布不实的信息或者发布一些违禁的信息,就会对企业的形象产生不利的影响。
作为企业的管理者,自然要关注是否有人伪造官网或者重要的业务系统对外发布不实信息,并且要对这些行为进行遏制和打击!避免因这些假冒者的行为给公司、企业带来负面影响。
▌二、在企业场景中的应用
那么,FOFA 作为一款完全以网络攻防视角出发的网络空间测绘系统,又是怎样帮助企业解决上述的几个问题呢,让我们一起来看看!
2.1 快速梳理企业互联网暴露面
FOFA 其实相当于一个大型的互联网资产数据库,并且已经将这些海量资产信息进行分类保存,我们只需要从中筛选、识别出来我们所需要的资产信息即可!
域名资产
互联网资产中首先考虑的是域名资产(含子域名)的收集,在 FOFA 中筛选域名资产的语法为 domain="域名"
,如下图所示:
我们要查询域名为 qq.com
的资产信息,则可以使用语法 domain="qq.com"
来进行查询,从下图中我们可知查询到 18020 条资产,其中包含 4301 个独立 IP。从左边的小视图窗口我们可以看到资产的分布情况,top5 分别分布在中国大陆地区、中国香港、新加坡、美国、德国。
查询结果里可能包含有一些重复数据,我们需要对结果导出后进行去重,才能得到真实的数据。如下图所示,域名 https://tegebz.qq.com
和域名 http://tegebz.qq.com
,对于我们来说,其实算是同一个资产,只不过使用了不同的协议或端口进行访问而已。
通过关键字查找资产
一般自研或委外开发的业务系统,都喜欢在标题处加上 XX 公司的字样,比如 XX 公司 XX 系统,XX 集团 XX 系统。那么在 FOFA 中,我们可以用语法 title="XX公司"
来筛选出可能属于公司自己的资产,在这里我们以华顺信安为例,语法是 title="华顺信安"
,查询结果如下图所示:
从图中可知,我们总共查询到 12 条资产,里面包含有标题使用了“华顺信安”的域名资产和 IP 资产信息。
IP 地址资产梳理
通过 FOFA 语法:ip="XX.XX.XX.XX"
来查找资产,这里的 IP 地址一般输入已掌握的 IP 地址列表和集团本部以及下属单位的出口 IP 地址,这样可以全网梳理这些 IP 资产和开放的端口,与已掌握的资产情况进行对比,可以发现是否存在未知资产。
可以使用高级语法 “||” 来执行多个 IP 查询的情况,如: ip="XX.XX.XX.XX" || ip="XX.XX.XX.XX" || ip="XX.XX.XX.XX"
示例:ip=”1.1.1.1” || ip=”2.2.2.2” || ip=”3.3.3.3”
目前 FOFA 输入框对长度未做限制,所以可以用这样的语法拼接多个 IP 地址查询的结果。
集团全级次单位资产梳理
当需要梳理集团本部以及下属各成员单位的互联网资产,可以使用 FOFA 的高级语法进行查询。
– 多个关键字组合查询
可以将集团本部的关键字以及各成员单位的关键字进行拼接组合查询,语法如下:title="XX集团" || title="单位1" || title="单位2"
因长度无限制,因此可以拼接多个关键字,我尝试过使用 60 多个关键字的组合进行查询,查询速度并没有受到影响,在第二篇文章中,我将会介绍如何使用正则语法进行自定义规则的精简。
– 多个域名组合查询
使用高级语法 "||"
将集团本部及下属成员单位的域名进行拼接组合,从而查询全集团的域名资产,语法如下:domain="集团本部域名" || domain="单位1域名" || domain="单位2域名" || domain="单位3域名"
以此类推,可以持续拼接多个单位的域名查询语句。
– 多个IP组合查询
使用高级语法,将集团本部及下属成员单位的互联网出口 IP 进行组合查询,从而查询全集团的 IP 资产情况,语法如下:ip="XX.XX.XX.XX" || ip="XX.XX.XX.XX" || ip="XX.XX.XX.XX"
– 干扰数据排除
截至文章发表前,FOFA 已经能实现将搜索结果中一些干扰数据(涉黄、涉非、涉赌博等不良网站)进行自动过滤和排除,使得搜索结果更加聚焦和精准,值得点赞!但是通过关键字语法 tittle="XX集团"
查询的数据中,还会存在一些非本集团的资产,此类资产我们也列为干扰数据之中,这部分的干扰数据需要我们自行排除。
比如下图搜索出来的资产,爱推广网和供应商大全网这两个都不属于公司自己的资产,此类网站类似于企业黄页,会对收录的企业提供一个单独展示的网页,在标题中会有收录企业的名称,所以会被我们用关键字搜索到。这时候我们需要使用高级语法 "!="
对这类网站进行排除。
示例:title=”XX公司” && (title!=”爱推广网” || title!=”供应商大全网”)
– 多维度资产拓线
ICON 拓线:FOFA 中支持 ICON 搜索的方式去寻找资产,我们可以将公司的 logo 图片上传,FOFA 会自动计算 logo 图片的 hash 值,然后根据 hash 值来进行资产搜索。如果已知 logo 的 hash 值,则可以直接使用语法 icon_hash="-247388890"
来进行资产搜索。
Cert 拓线:通过公司所使用的证书来搜索使用相同证书的资产。该功能可以通过搜索证书的持有者、证书的颁发者来进行搜索,同时还可以验证证书的有效性,语法如下所示。
FOFA 的证书详情中,可以查看相关联的域名信息(DNS Names),以此来进行资产拓线,扩大战果。有的证书中会将自己所属的子域名都列出来,这样获取到的子域名信息比用子域名爆破的方法好太多了,而且准确性还比较高。
– 自定义规则
通过前面五点学习到的语法,基本上可以把全集团的互联网资产筛查出来,如果是分步按上面的顺序查询,查到的结果会出现重复的资产项,那么我们可以把这五类语法进行组合,定义为一个新的查询规则,然后利用 FOFA 中 “我的规则“ 这个功能,将我们的组合语法保存下来,这样下次再想查询全集团的资产信息,只要点击这个规则即可。如下图所示:
以下是通过使用自定义规则查询的效果图,查询某集团的互联网资产数为 1665。
– “黄金右键”快速梳理大型央企集团资产
可以通过使用 Goby 的 IP 库功能,实现 “黄金右键” 快速梳理大型央企集团资产,基本上 5 分钟内即可查询拥有几百家下属单位的集团公司全部互联网资产信息,并且自动绘制关联关系图,最棒的就是无需记住 FOFA 的命令,只需输入想查询的内容,结合鼠标右键点击操作即可,详情可看 Goby 的技术分享文章《基于攻击视角(GOBY)的暴露面梳理及防护技术(上)》。
2.2 漏洞影响范围评估
当业界有影响重大的漏洞爆发时,作为甲方的主管信息安全的领导,自然想要了解这个漏洞对自己集团、公司的资产是否有影响,影响范围有多大。
以 CVE-2021-44228 Apache Log4j2 存在远程代码执行漏洞为例,该漏洞于 2021 年 12 月被公布出来,被誉为核弹级的漏洞,攻击者可利用该漏洞向目标服务器发送精心构造的恶意数据,触发 Log4j2 组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
影响范围:Apache Log4j 2.x<=2.14.1。已知受影响的应用及组件,如 spring-boot-strater-log4j2 / Apache Solr / Apache Flink / Apache Druid 等。
依据以上信息,我们可以结合 2.1 中的第六点新建的自定义资产规则,通过 FOFA 搜索出自己公司是否有资产使用了以上应用或者组件。语法思路如下:
(自定义全集团资产搜索规则)&& app="Log4j2"
引号里可以替换为受影响的应用和组件的名称,但是要注意区分大小写。也可以使用下面的语法:
(自定义全集团资产搜索规则)&& (app="Log4j2" || app="受影响组件1" || app="受影响应用1" || app="受影响应用2")
应用和组件的语法可以在 FOFA 的规则列表中进行查询,目前 FOFA 已经内置 322001 条规则,主流的应用和组件基本上都已经有成熟的规则。
如果搜索结果为 0,则说明现有互联网资产不受此漏洞影响。如果显示有搜索结果,那搜出来的资产就很可能受此漏洞影响,可以将资产结果导出来再进行进一步的 PoC 验证。
2.3 资产漏洞风险排查
– 弱口令风险排查
有些系统研发人员为了方便操作,有时候可能会将系统管理员的账号和密码写在页面里,有的是用注释的方式,如下图:
有的则是将账号密码直接写在页面里,打开登录页面,无需输入账号密码,点击登录即可进入系统。
此弱口令问题风险很高,安全意识薄弱的研发人员很有可能犯这种错误,我们需要借助 FOFA 的力量,将全集团暴露在互联网上的资产进行排查,看是否存在此类资产,可以构造语句如下:
body="type=password name=pwd value='123456'" && country="CN"
上面语句的意思是,在资产的 HTML 正文中,查找密码为 123456 并且分布在国内的资产。我们还可以通过改变 value 的值,搜索存在不同弱口令的资产。效果图如下:
如果需要限定范围只排查自己集团的资产,则将资产范围的规则与探测弱口令资产的规则进行组合即可,语法思路如下:
(自定义全集团资产搜索规则)&& (body="type=password name=pwd value='123456'" && country="CN")
– 高风险漏洞排查
如果想要对资产进行高风险漏洞扫描,那么光靠 FOFA 是不够的,FOFA 只是在前期信息搜集阶段起到关键作用,这个时候就需要 FOFA 的孪生兄弟 Goby 出来亮相了。
Goby 预置了价值较高的一些漏洞验证 PoC,目前红队版的漏洞数量达到 800+,而社区版只有 326,虽然漏洞数量看起来比较少,但是这八百多的 PoC,都是属于实战化状态的 PoC,能产生实际攻击效果的!而以往的漏扫很多都是基于应用和组件的版本去判断可能存在某个漏洞,这样的误报率较高且不产生实用的价值,在实战化效果上看,Goby 还是更胜一筹。
Goby 的操作也比较简单,只需要将 FOFA 上搜索到的公司资产(域名和 IP 地址)导入 Goby,然后设置想要扫描的漏洞类型,点击开始扫描即可。Goby 已经将漏洞类型进行了分类:如果需要对 SSH、FTP、数据库等资产检测弱口令,则可以使用暴力破解的选项;如果需要检查现有资产是否存在一些应用或设备的默认口令,可以选择默认口令检测选项;Goby 内置了超过 1000 种设备的预置账号信息,如果想进行全面检测,则可以选择全部漏洞。
扫描到的漏洞,Goby 还提供了验证手段,直接在 Goby 里就能直接验证此漏洞是否存在。
FOFA+Goby 的组合还有更多的应用场景和玩法等着我们去挖掘,后续我还会给各位分享更多的使用场景,大家一起探讨进步。
2.4 假冒网站排查
企业形象是企业文化建设的核心,同时也是企业内外对企业的整体感觉、印象和认知,是企业状况的综合反映,一个良好的企业形象有助于企业提升自己的品牌竞争力。特别是大型企业、上市公司、国企央企对于自己的企业形象是非常在乎的,如果有人假冒他们的名义进行一些不法活动,如售卖假冒伪劣产品,那么将会对他们的企业形象产生负面影响,那么由此带来的损失将不可估量!
如果是想用最简单的办法一键完成仿冒网站拓线,可以参考这篇文章:《最佳实践:仿冒站点一键自动化拓线(修订版)》。
接下来我讲讲我自己的常规排查方法:
– 假冒网站有哪些危害呢?
发起钓鱼攻击。据资料显示,至少有 60% 的假冒网站是为了用于进行钓鱼攻击,通过几乎一致的网站界面、高度相似的域名来误导受害者以为这是官方网站,获取受害人的信任,然后再以各种社会工程学手段诱导受害者输入账号密码或者其他身份敏感信息。
将流量引流到非法网站。通过利用被仿冒者的品牌影响力,将访问流量牵引至赌博、色情等非法网站,非法谋取暴利。
– 如何发现假冒网站?
假冒网站一般是利用网站克隆技术,直接将目标网站原样复制过来,就像使用电脑上的 Ctrl+C 的功能一样,而且克隆技术门槛较低,很多工具都有一键复制功能,只要你输入目标网站的 IP 地址或域名即可。利用这个技术仿冒的网站,会有一个特点,那就是会连目标网站中的 ICP 备案号也会克隆过来。
而 FOFA 是具有查询 ICP 备案号的功能,它会在全网资产的 HTML 正文中去查找 ICP 备案号,并将具有相同备案号的资产显示出来,语法是:
icp=”京ICP备2005XXXX号”
搜索结果如下图所示,以某公司的备案号为例,在全网中搜索出有 8954 个资产。在国家/地区排名中可以看到这八千多个资产除了分布在国内以外,大部分的资产是分布在海外各个国家。
已知该公司在海外是没有业务的,也没有信息资产托管在海外,由此我们可以判断,分布在海外的这些资产为假冒资产,接下来我们可以验证一下,结合高级语法 "!="
将海外资产筛选出来:
icp=”京ICP备2005XXXX号” && country !=”CN”
从下图中我们可以看出,已经将海外资产筛选出来,有 5544 个资产,而这些资产的域名和标题都是很奇怪的文字和符号,我们随便挑几个网站打开,均可以看到这些网站是克隆该公司的官网主页,但是里面很多内容都是替换为不可描述的内容,或者插入了大量的广告来进行引流。
分布在国内的那些信息资产会不会也存在假冒网站呢?我们使用以下语法将国内资产筛选出来:
icp=”京ICP备2005XXXX号” && country =”CN”
从下图中可以看出,我们国内资产共有 3410 个,但是自第二条开始,从域名和标题上就能看出,资产并不属于该公司的。
通过观察结果,我们发现可以通过构造关键字的方法,把属于公司的资产筛查出来,语法思路如下:
(icp=”京ICP备2005XXXX号” && country=”CN”) && (title=”关键字1” || title=”关键字2”)
经过人工核查,这 402 条资产均属于公司资产。综上所述,我们可以计算出由 ICP 备案号探测到的假冒网站资产占资产总数的 95.5% !这个数据是比较惊人的,证明我们仍需加强网络空间里仿冒网站的打击治理和防治工作。
– 如何防护?
为了保护企业员工免受钓鱼攻击,我们可以将上述步骤排查出来的资产列表在互联网出口处加入黑名单进行管理,禁止访问这些地址。同时,我们把这些假冒网站列表提供给有关部门,进行举报。
▌三、结束语
FOFA 是目前为止我用过的最好用的网络空间测绘平台,它的优势是贴合攻防实战的需求和视角,并且可由用户高度自定义规则,用户可以根据应用场景需求来定义规则,确实在工作上帮我节省了不少精力,提高了效率。
值得一提的是,FOFA+Goby 的组合效果是 1+1>2,从暴露面梳理、漏洞资产发现到漏洞验证、漏洞利用等方面都发挥了很强的力量,这个组合还有很多应用场景和潜力等着我们去挖掘!
最后感谢 FOFA 小哥 Laskeko 给我耐心的答疑和技巧分享!
▌End
欢迎各位白帽师傅们加入我们的社区大家庭,一起交流技术、生活趣事、奇闻八卦,结交无数白帽好友。
也欢迎投稿到 FOFA,审核通过后可加 5000-10000 社区积分哦,我们在积分商城准备了好礼,快来加入微信群体验吧~~~
微信群:扫描下方二维码,加入 FOFA 社群!获取更多一手信息!
发表评论
您还未登录,请先登录。
登录