为了FOFA高级版我拼了,作者一直用的是FOFA基础版,但这已经够用了。下面我来讲一下我怎么用FOFA基础版实现信息收集最大化的。
首先我们在资产梳理之前,我们需要知道需要收集的固定资产有哪些。首先看一下大佬和我自己的资产收集差异:
大佬的:组织-资料库-弱口令-任意门-隐秘的角落-运维坏习惯-社工-自动化
我的:下属企业-二级域名-C段IP-主要系统-已知漏洞-精准系统-安全设备-需要审计漏洞-邮箱-0/Nday-知识库-弱口令自动化
先解读一下大佬的资产梳理,组织架构都是第一优先级,明确组织架构的同时需要构建红蓝对抗资料库,资料库也是风格迵异,弱口令包含服务和web登录及app登录等,任意门是一个网段的交换机或者堡垒机等设备,通常也是和弱口令相关联,隐秘的角落就是资产边界,这些资产通常是没有安全设备的,运维坏习惯发生在管理员手中,这个时候就需要社工管理员有哪些运维上的弱点,最后实现自动化效果。
然后解读一下作者自己的,企业和下属企业统一划成一类,和大佬的组织同等概念,同时得到二级域名或者下属企业的一级域名,进而获取C段IP,据我的经验,每个企业会分配4个C段的IP,其他零零散散会有单独IP,通过这些IP端口探测得到主要系统/精准系统,这里为什么要分为主要系统和精准系统呢,因为在资产收集的过程中,会突然找到一个很重要的网络边界系统,这样的系统是需要红蓝方重点关注的,如果蓝方一味的看waf的话,可能效果并不大。通过主要系统/精准系统分析其网络架构,并关联到知识库,这时候就可以把已知的漏洞列入表格中,进而复现。邮箱可以用来钓鱼和爆破弱口令,最后弱口令自动化&&钓鱼。
下面我们就来用FOFA&&GOBY来完成以上的资产测绘。
直接输入查询语句,将从标题,html内容,http头信息,url字段中搜索
title="abc" 从标题中搜索abc。例:标题中有北京的网
header="abc" 从http头中搜索abc。例:jboss服务器
body="abc" 从html正文中搜索abc。例:正文包含Hacked by
domain="qq.com" 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站
host=".gov.cn" 从url中搜索.gov.cn,注意搜索要用host作为名称。例: 政府网站, 教育网站
port="443" 查找对应443端口的资产。例: 查找对应443端口的资产
ip="1.1.1.1" 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。例: 查询IP为220.181.111.1的网站; 如果想要查询网段,可以是: ip="220.181.111.1/24",例如查询IP为220.181.111.1的C网段资产
protocol="https" 搜索指定协议类型(在开启端口扫描的情况下有效)。例: 查询https协议资产
city="Hangzhou" 搜索指定城市的资产。例: 搜索指定城市的资产
region="Zhejiang" 搜索指定行政区的资产。例: 搜索指定行政区的资产
country="CN" 搜索指定国家(编码)的资产。例: 搜索指定国家(编码)的资产
cert="google" 搜索证书(https或者imaps等)中带有google的资产。例: 搜索证书(https或者imaps等)中带有google的资产
banner=users && protocol=ftp 搜索FTP协议中带有users文本的资产。例: 搜索FTP协议中带有users文本的资产
type=service 搜索所有协议资产,支持subdomain和service两种。例: 搜索所有协议资产
os=windows 搜索Windows资产。例: 搜索Windows资产
server=="Microsoft-IIS/7.5" 搜索IIS 7.5服务器。例: 搜索IIS 7.5服务器
app="海康威视-视频监控" 搜索海康威视设备,更多app规则。例: 搜索海康威视设备
after="2017" && before="2017-10-01" 时间范围段搜索。例: 时间范围段搜索,注意: after是大于并且等于,before是小于,这里after="2017" 就是日期大于并且等于 2017-01-01 的数据,而 before="2017-10-01" 则是小于 2017-10-01 的数据
asn="19551" 搜索指定asn的资产。例: 搜索指定asn的资产
org="Amazon.com, Inc." 搜索指定org(组织)的资产。例: 搜索指定org(组织)的资产
base_protocol="udp" 搜索指定udp协议的资产。例: 搜索指定udp协议的资产
is_ipv6=true 搜索ipv6的资产,只接受true和false。例: 搜索ipv6的资产
is_domain=true 搜索域名的资产,只接受true和false。例: 搜索域名的资产
ip_ports="80,443" 或者 ports="80,443" 搜索同时开放80和443端口的ip资产(以ip为单位的资产数据)。例: 搜索同时开放80和443端口的ip
ip_country="CN" 搜索中国的ip资产(以ip为单位的资产数据)。例: 搜索中国的ip资产
ip_region="Zhejiang" 搜索指定行政区的ip资产(以ip为单位的资产数据)。例: 搜索指定行政区的资产
ip_city="Hangzhou" 搜索指定城市的ip资产(以ip为单位的资产数据)。例: 搜索指定城市的资产
ip_after="2019-01-01" 搜索2019-01-01以后的ip资产(以ip为单位的资产数据)。例: 搜索2019-01-01以后的ip资产
ip_before="2019-01-01" 搜索2019-01-01以前的ip资产(以ip为单位的资产数据)。例: 搜索2019-01-01以前的ip资产
常用fofa命令
title="xxx" && port="6379" && country="CN" && region!="Hk" && region!="Tw"
ip="x.x.x.x/24" && title="xxx"
cert="xxx" && country="CN" && region!="Hk" && region!="Tw"
icp="京ICP证030173号"
icon_hash="-247388890"
app="Microsoft-Exchange"
等等、能找到资产才是真的。
组织架构
组织架构天眼查肯定是最全的,而且还带导出功能,其次我就推荐百度免费的企查查了,但是企查查的数据肯定是没有天眼查的数据全的。然后进行fofa:
title="xxx" && country="CN" && region!="Hk" && region!="Tw"
二级域名
domain="xxx.com"
C段IP
ip="x.x.x.x/24"
指定端口&&系统
ip="x.x.x.x"
知识库
https://wiki.iredteam.cn
FOFA联动GOBY
可以实现快速应用指纹识别。
最好还是要在GOBY内FOFA一下然后导入扫描一下全端口。
讲一个实战中遇到的小技巧,当给定靶标张飞系统、已知张飞系统属于战士公司、战士公司公司域名为xxx.com,通过战士公司我们信息收集到四个C段IP以及若干个散段IP,这些IP并没有我们想要收集的张飞系统、这时候通过组织架构得到辅助公司,在辅助公司我们fofa到一个C段内的5个ip,最后在54250端口找到了张飞系统,这一套下来你发现已经一个小时了,同时也得到若干个FOFA中查不到的信息。
上周写的文章到这里,这几天也是忙着干活,今天值夜班有两件事,一个是一个goby插件,另一个是这个文章,由于网速先写文章吧。
第一小节给到了红队攻击的主要流程,红蓝对抗嘛,前几天HW面试有个人很哼哈,问我做啥的,我说做ATT&CK的,他说啥是ATT&CK,我说企业安全对抗,下面讲一下蓝队,顺便说一下,这几天我也在学习域,但是资料太少了,真的很难,不要看公众号发的域渗透文章,讲真的都是内网渗透。
前期流程已经给定了,我们进入到红蓝对抗中期:
下面我就细致的讲一下全流程,最开始肯定都是主站&&旁站/二级域名,大家肯定会疑惑,为什么点开的都是html,这静态的也没办法渗透啊,这肯定是做了前后端分离技术,但是具体怎么分的是关键,最安全的策略肯定是后端在内网中,端口全部都不出网。
写了一半写不下去了,去研究插件,想开发goby的exploitdb&&searchsploit插件,查了一圈searchsploit居然没有windows版本,说是实现起来太复杂,于是去找python版本,抱着学习的态度去看了看代码,看到功能实现的时候研究怎么把python执行的回显到Goby的前台,想到了两种解决方法,一个是web,一个是json,刚开始想的是json生成会造成垃圾的重叠,这种先pass了,后来又看插件有没有模仿的案例,找了一圈终于找到goby插件masscan利用到这一功能。于是开始写吧,又停住了,这样windows和linux用的语法规则不一样,强迫症,在exploitdb的github中找到一位开发者是linux社区的开发者,逻辑就对上了,exploitdb的开发者也是强迫症。试着想着好多中解决方案,以后把所有的平台都换成linux,不现实啊。有人会说,真墨迹,到底写不写啊。于是在想为啥要搞人家开发好的呢,谷歌的插件都是人家自己写的功能,我来copy别人的真的好吗,同时也影响到我的大方向,goby&xray的方向是好用的吗?是正确的吗?
我的回答是正确的,因为这个是我们自己的东西,也就是说国产化。不要对比,用就是正确的。
1-1图已经给出了需要收集的资产,网络边界点需要FOFA几个来回,例如给到资产xxx集团,域名xxx.com
fofa->主域名
fofa->xxx集团#大概是四个网段加若干个零散IP
fofa->证书
fofa->备案
fofa->靶标系统
等等。。。
下属企业回环进行第一步骤
全端口策略探测,在第一个步骤会探测出若干个网络边界点,还是先贴出nmap的全端口策略
nmap x.x.x.x -sS -sU -Pn -p T:80, --source-port 58914 --min-rate 100 --max-rate 100 -n -v -T3 --open --stats-every 5s --min-hostgroup 100 --max-hostgroup 100
masscan x.x.x.x --ports T:80, --source-port 58914 --rate 100 --wait 1
Goby也是出了全端口,但是扫描网段会进程卡死。PS:友情提示勿怼。
全端口探测总是能探测出意想不到的结果,有可能就有一个ip的50050端口是web后台,账号密码就是admin/admin
社工技能提升这里包含端口弱口令自动化,web弱口令自动化,社工爆破等等。