FATSuite开发

admin 2022年12月5日18:48:31评论35 views字数 2116阅读7分3秒阅读模式

FATSuite开发

FATSuite

FATSuite开发

github地址:

https://github.com/zzheff/FATSuite


工具产生的背景


项目中通过Hunter、FOFA和Zoomeye获取到的资产较多且信息有滞后性。用oneforall等工具收集到的资产较多信息不足。

所有获取到的资产都需要逐个访问,花费一些不必要的时间,所以想有一款工具导入目标资产后,可以直接获取目标当下页面截图、IP、IP地理位置、CIDR、状态码、中间件并自定义Title关键字进行筛选,这样可以更快速的定位薄弱目标

工具的部分代码实现分享



主体功能实现:

使用了Chromeheadless,需要用户先下载Chrome浏览器和Chromdriver,为了方便用户使用,工具可以直接识别Chrome版本下载对应的Chromedriver。网上对于Chromeheadless的使用有非常多的说明:https://developer.chrome.com/blog/headless-chrome/

最基本的使用:

ChromeOptions options = new ChromeOptions();options.addArguments("--headless""--window-size=1920,1200","--ignore-certificate-errors");

可以无界面打开、忽略证书错误。

截图功能使用实例:

chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/

本工具为了加快Chromeheadless的截图速度提供了线程自定义功能,用户可以根据自己性能设置线程,工具默认线程是20,还有一些其他人提供的加快方法,仅供参考:

--proxy-bypass-list--disable-dev-shm-usage--disable-browser-side-navigation

https://stackoverflow.com/questions/69173469/meaning-of-selenium-chromeoptions

获取目标Title、状态码、IP等信息

FATSuite开发

最简单的实现方式就是HttpURLConnection函数中的自带方法

Pattern.compile("(<title>|<TITLE>)(.*?)(</title>|</TITLE>)");//获取TitlegetHeaderField("Server"); //获取中间件InetAddress.getByName(hostName).getHostAddress();//获取IP

工具里额外添加了自定义UA,使用了setRequestProperty方法。

con.setRequestProperty("User-agent",UA)

附加小功能实现:

关键字的匹配:

示例代码

for (int a=0;a<Keywords.length;a++){    if (Title.contains(Keywords[a])) {        return Keywords[a];    }}


加载进度条:

为了方便用户打开界面时能直接看到目标资产的加载情况,使用Javafx中的Progressbar更加直观,需要注意的一点是多线程中使用Progressbar是无法正常加载的,所以建议使用监听模式。

示例代码

FATSuite开发

https://stackoverflow.com/questions/15506426/javafx-progressbar-doesnt-update

下载Chromrdriver文件:

示例代码

FATSuite开发

https://www.yiibai.com/java/java-download-file-url.html

缩略图代码:

TilePane tile = new TilePane(Orientation.VERTICAL);tile.setTileAlignment(Pos.CENTER_LEFT);tile.setPrefRows(10);for (int i = 0; i < 50; i++) {    tile.getChildren().add(new ImageView(...));}

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/TilePane.html

更加详细的Tile pane教程可以参考:


工具效果展示


FATSuite不仅可以获取基本的资产信息,还额外增加了CIDR,用户可以通过排序的方式更直观的获取目标资产的C段,方便进一步资产收集。

截图可以解决的痛点:

Title中没有关键字

指纹识别工具不准确

无法快速获取无验证码登录界面

...

FATSuite开发

缩略图:

通过缩略图可以更加直观快速的锁定薄弱目标

FATSuite开发

基于目前的版本,后续计划增加指纹识别、JS爬取功能,进一步锁定薄弱目标。

第一次学习JAVA并开发工具,师傅们有任何修改建议或者功能需求都可以和我联系。

FATSuite开发

原文始发于微信公众号(Wings安全团队):FATSuite开发

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月5日18:48:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FATSuite开发http://cn-sec.com/archives/1446369.html

发表评论

匿名网友 填写信息