FishingAutoMonitor-实现URL钓鱼收杆
2022-7-27 16:1:52 Author: NOVASEC(查看原文) 阅读量:129 收藏

△△△点击上方“蓝字”关注我们了解更多精彩
0x00 前言
“水坑攻击”,黑客攻击方式之一,顾名思义,是在受害者必经之路设置了一个“水坑(陷阱)”。最常见的做法是,黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,先将此网站“攻破”并植入攻击代码,一旦攻击目标访问该网站就会“中招”。
项目驱动需要实现一下URL钓鱼,类似XSS钓鱼的场景
注:此处的URL钓鱼包括但不限于XSS漏洞钓鱼、网页URL诱导、邮箱URL诱导等场景。
当诱饵投递出去后,需要判断目标是否访问和下载了木马文件,并且判断木马是否已经上线。

经过对公开的收杆方式进行研究,发现一般是两种方式来进行收杆:

1、浏览器访问收杆。 

通过web服务对浏览器信息进行判断。一般有外网IP、Cookie信息等。这种方式比较简单,并且不需要对木马进行复杂定制。

2、木马运行时收杆。

通过对木马进行修改,使得其能够在本机上监听端口,或者做出其他动作来进行判断收杆。这种方式比较复杂,需要对木马进行代码层定制。

基于场景、实例、适用度,决定选择使用浏览器访问状态收杆。 
分析了一大家分享的杆逻辑和实现。发现基本上都是通过PHP代码实现的收杆页面,PHP作为世界上最强大的语言,是我不习惯使用的。 对于快速出货,我还是喜欢用Python。
因此,我用Python Flask实现了这个收杆框架。
0x01 FishingAutoMonitor

      FishingAutoMonitor是使用Python Flask实现URL钓鱼时自动收杆框架。此处URL钓鱼主要是指:XSS钓鱼、网页钓鱼、链接下载等需要通过访问web页面进行钓鱼的操作。

项目地址:

https://github.com/winezer0/FishingAutoMonitor
0x02 特点
  • 使用Python Flask框架实现、部署简单

  • 目前版本通过Cookie和IP|IP段进行收杆。

  • 支持动态替换模板中的变量、无需手动替换HOST信息。

  • 支持对JS代码进行混淆加密。

  • 支持多种记录参数自定义。

  • 支持限制IP记录上线记录数据

  • 支持限制IP访问上线记录数据

  • 支持限制IP下载钓鱼文件

0x03 使用

1、必须参数配置

首先setting.py中配置pwd、HOST、PORT、下载文件等参数。

pwd = "12345" #设置访问上线页面的密码PROTOCOL = "http" #替换module文件夹中的{PROTOCOL} DOMAIN = "192.168.1.1" #替换module文件夹中的{DOMAIN} DOWNLOAD = f"{PROTOCOL}://{DOMAIN}/download/notepad.exe" #替换module文件夹中的{DOWNLOAD}

2、设置是否需要混淆JS文件

js_obfuscate_method == 0: 不加密 js_obfuscate_method == 1: js_obfuscate_m1(js_code_dir=static_path)

注意:混淆后可能会导致JS运行出错、请先测试

注意:浏览器存在静态文件缓存、测试页面已解决该问题

注意:可先在module或static目录使用自己的诱导模板,欢迎大家提交JS模板

注意:本项目目前只有最简单的模板,实际使用时还需要先设计页面,大家可以参考其他项目的页面实现,欢迎大家提供其他页面模板。

3、设置上线成功条件

在符合条件时,会对前端JS调用返回对应的True|FALSE值

HAS_IP_HAS_COOKIE = "TRUE" # 存在IP上线记录、并且存在Cookie访问记录, HAS_CIP_HAS_COOKIE = "TRUE" # 存在CIP上线记录、并且存在Cookie访问记录,HAS_IP_NOT_COOKIE = "TRUE" # 存在IP上线记录、但不存在Cookie访问记录, # 动态判断 HAS_CIP_NOT_COOKIE = "TRUE" # 存在CIP上线记录、但不存在Cookie访问记录, # 动态判断NOT_IP_HAS_COOKIE = "FALSE" # 不存在IP上线记录、但存在Cookie访问记录 # 动态判断 NOT_CIP_HAS_COOKIE = "FALSE" # 不存在CIP上线记录、但存在Cookie访问记录 # 动态判断NOT_IP_NOT_COOKIE = "FALSE" # 不存在IP上线记录、也不存在Cookie访问记录 NOT_CIP_NOT_COOKIE = "FALSE" # 不存在CIP上线记录、也不存在Cookie访问记录

注意: 目前只支持外网IP、外网IPC段、Cookie信息来进行收杆。欢迎大家提供其他收杆建议。

4、接口说明

http://host:port/test # 加载JS的测试页面http://host:port/exist # 判断IP是否已经上线http://host:port/download/<file_name> # 下载文件http://host:port/static/xxx # 静态文件目录http://host:port/store  # CS服务器上线时调用webhook,格式如:/store?action=store&internalIP=192.168.88.88&userName=hong66&computerName=hong66-pc&externalIP=88.88.88.88http://host:port/online?pwd={pwd} # 查看已经上线的IP信息,需要携带密码参数
注意:可通过注释掉路由信息,直接取消对应接口。
0x04 总结
该项目仅为初步实现,欢迎大家积极提交建议。

1、本团队任何实战都是已授权的、任何技术及工具也仅用于学习分享,请勿用于任何非法、违法活动,如有违背请自行承担后果,感谢大家的支持!!!

2、本团队一贯秉承Free共享的精神,但是也有大家的小愿望,因此本团队所有分享工具,严禁不经过授权的公开分享,被关注就是对我们付出的精力做的最大的支持。

END

如您有任何投稿、问题、建议、需求、合作、后台留言NOVASEC公众号!

或添加NOVASEC-MOYU 以便于及时回复。

感谢大哥们的对NOVASEC的支持点赞和关注

加入我们与萌新一起成长吧!

本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!


文章来源: http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&mid=2247487652&idx=1&sn=0b9903350c3c820a01e5dd90d4752e7c&chksm=fad4cdb3cda344a52364f6e525480ac059704c5a5b4d5828a06cc1927b1a90bbc7d20091c369#rd
如有侵权请联系:admin#unsafe.sh