Git Product home page Git Product logo

glass's Introduction

Glass(镜) V2.0-剑客到刺客的蜕变

一、简介:

    _____    _      _____                    
 __|___  |__| | __ |_   _|__  __ _ _ __ ___  
/ __| / / __| |/ /   | |/ _ \/ _` | '_ ` _ \ 
\__ \/ / (__|   <    | |  __/ (_| | | | | | |
|___/_/ \___|_|\_\   |_|\___|\__,_|_| |_| |_|
  ____ _               
 / ___| | __ _ ___ ___ 
| |  _| |/ _` / __/ __|
| |_| | | (_| \__ \__ \
 \____|_|\__,_|___/___/ 	http://www.s7ck.com    

Glass为s7ck Team 红队武器库F-Box里的一款信息收集工具。

在红队作战中,信息收集是必不可少的环节,如何才能从大量的资产中提取有用的系统(如OA、VPN、路由、Weblogic...)是众多红队人员头疼的问题。

Glass是一款针对资产列表的快速指纹识别工具,通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹,也可针对IP/IP段或资产列表进行快速的指纹识别。

Glass旨在帮助红队人员在资产信息收集期间能够快速从C段、大量杂乱的资产中精准识别到易被攻击的系统,从而实施进一步测试攻击。

s7ck Team F-box旨在通过开源或者开放的方式,长期维护并推进涉及安全研究各个领域不同环节的工具化,高度自动化,将立足于不同安全领域、不同安全环节的研究人员和工具链接/封装/优化起来。

主要目的是改善安全圈内工具庞杂、水平层次不齐、开源无人维护、工具找不到的等多种问题,营造一个更好更开放的安全工具促进与交流的技术氛围。

开发语言

  • Python3

运行环境

  • Linux
  • Windows
  • Mac

使用依赖库

  • requests
  • colorama
  • prettytable
  • xlsxwriter

安装

git clone https://github.com/s7ckTeam/Glass
cd Glass
pip3 install -r requirements.txt

二、更新日志:

正式版

  • 2.0.7 添加360(Quake)搜索引擎(https://quake.360.cn/quake/welcome),取消默认搜索,必须指定搜索参数-s[eye(钟馗之眼)、fofa(Fofa)、qk(Quake)],修复每日一说

  • 2.0.6 更改默认搜索设置,添加哪个api就会默认调用哪个,不需要指定,如果有多个api-s指定

  • 2.0.5 添加自定义搜索(-s,--search)

    1. 添加钟馗之眼(https://www.zoomeye.org/)搜索
    2. config/config.pyzoomeyeApi设置,输入key值即可(注: 用的时候注意api使用条数)
    3. -s参数[eye(钟馗之眼) or fofa(Fofa)](python3 Glass.py -i 127.0.0.1 -s eye or fofa)
    4. 不加参数-s默认使用fofa搜索
  • 2.0.4 添加删除更新的缓存文件

  • 2.0.3 扫描域名或批量扫描时可不加协议(注: 建议添加协议)

  • 2.0.2 增加自定义输出格式(-o,--output)

    1. 支持输出的格式有:txtjsonhtmlxlscsv
    2. 默认输出txt格式
    3. 输出目录在根目录output
  • 2.0

    1. 增加代理功能(--proxy)
      • 全局访问代理,支持http、https
      • 支持自定义(格式:http://127.0.0.1:8080或者https://127.0.0.1:8080
      • 首次使用会按照参数获取相应代理,然后在根目录生成/proxyFile/proxy.txt
      • 参数(all)使用全部代理进行随机分配
      • 参数(cn)使用国内代理进行随机分配
      • 参数(http://127.0.0.1:8080或者https://127.0.0.1:8080) 自定义的代理
    2. 增加获取代理功能(--proxy-list)
      • 首次使用会按照参数获取相应代理,然后在根目录生成/proxyFile/proxy.txt
      • 参数(all)获取全部
      • 参数(cn)获取国内
    3. 增加在线更新功能(--update)
    4. 去除print,改用logging输出
    5. 优化运行代码,后期还会优化
    6. 增加对url协议使用相应协议的代理
    7. 增加查看版本参数(-v,--version)
    8. 使用不生成pyc文件
    9. 全局随机分配代理,获取到多少就用多少,每次访问都不一样
    10. 将获取到的代理文件保存,根目录生成/proxyFile/proxy.txt,终端以表格形式输出,一目了然
    11. 增加版本判断,建议使用 >=python 3.7.3
    12. 对证书认证方面的处理
    13. 每过15分钟会重新获取一次代理IP
  • 1.3(添加cookie识别方式,将识别规则改为列表,防止重复的cms不带入识别,识别精准度提高,速度更快)

  • 1.2(修复编码问题,以及fofa会员获取数量问题,现在默认100,在config/config.pyfofaSize更改,普通会员为100,高级10000,企业100000,请自行更改)

  • 1.1(处理每日一说超时后写入空文件问题)

  • 1.0(全面优化识别效率,命中率99%

  • 0.9(添加每日一说获取异常,添加识别规则)

Glass V2.0新版内容部分截图

测试版更新信息

  • 0.9(优化IP段的扫描,以及批量下可添加IP段)
  • 0.8(更改线程运行方式)
  • 0.7(与协程对比,最好还是用线程并发)
  • 0.6(更改配色方案,采用线程并发,增加单url以及批量url识别)
  • 0.5(优化采集速度以及与识别分开,增加输出)
  • 0.4(整理识别规则)
  • 0.3(添加指纹扫描)
  • 0.2(更新每天一说,让红队不再乏味)
  • 0.1(写出整体实现功能,Fofa接口的设置与采集)

三、使用方法:

Usage: python3 Glass.py -i 127.0.0.1 or 127.0.0.0/24
Usage: python3 Glass.py -i 127.0.0.1 -s eye or fofa
Usage: python3 Glass.py -f ips.txt
Usage: python3 Glass.py -u https://96.mk/
Usage: python3 Glass.py -w webs.txt
Usage: python3 Glass.py --proxy-list all or cn
Usage: python3 Glass.py (-i -f -u -w) 127.0.0.1 or 127.0.0.0/24 --proxy all or cn
Usage: python3 Glass.py --update
Usage: python3 Glass.py -u https://96.mk/ -o html


usage: Glass.py [-h] [-i IP] [-f FILE] [-u URL] [-w WEB] [--proxy PROXY] [--proxy-list PROXYLIST] [-v] [--update] [-o OUTPUTTARGET] [-s SEARCH]

Glass scan.

optional arguments:
  -h, --help            show this help message and exit
  -i IP, --ip IP        Input your ip.
  -f FILE, --file FILE  Input your ips.txt.
  -u URL, --url URL     Input your url.
  -w WEB, --web WEB     Input your webs.txt.
  --proxy PROXY         Input your proxy options(all or cn) or proxy address(127.0.0.1:8080).
  --proxy-list PROXYLIST
                        List the proxys.
  -v, --version         Show program's version number and exit.
  --update              Update the program.
  -o OUTPUTTARGET, --output OUTPUTTARGET
                        Select the output format.
  -s SEARCH, --search SEARCH
                        Choose your search engine.


-i 可指定单独IP或者IP段(需添加您fofa的API或者zoomeye的API)
-f 批量要扫的IP或IP段(需添加您fofa的API或者zoomeye的API)
-u 单个url识别
-w 批量url识别
-s 指定搜索引擎
--proxy all/cn/ `http://127.0.0.1:8080` 使用 all表示全部 cn表示国内或者自定义的代理(支持http、https)
--proxy-list all/cn 获取代理 all表示全部 cn表示国内

相关配置更改

  • API设置
    1. config/config.pyfofaApi设置,输入对应的emailkey即可
    2. config/config.pyzoomeyeApi设置,输入key值即可
  • 线程默认 100可在config/config.pythreadNum修改线程数 (注:建议在200以内)
  • 每日一说可设置开启关闭,在config/config.pytosayRunTrue为开,False为关
  • fofa会员搜索的更改,默认搜索100,在config/config.pyfofaSize更改,普通会员为100,高级10000,企业100000,请自行更改

Glass提供了四种指纹识别方式,可从本地读取识别,也可以从FOFA进行批量调用API识别(需要FOFA密钥)。

1.本地识别:

python Glass.py -u http://www.s7ck.com  // 单url测试
python Glass.py -w url.txt  // url文件内

2.FOFA识别:

注意:从FOFA识别需要配置FOFA 密钥以及邮箱,在.../config/config.py内配置好密钥以及邮箱即可使用。

fofaApi = {
    "email": "[email protected]",
    "key": "1234567890",
}
python3 Glass.py -i 127.0.0.1  //支持单IP资产
python3 Glass.py -i 127.0.0.1/24 //支持IP段资产
python3 Glass.py -f ips.txt //支持文本内IP资产,可添加IP段

结果输出

结果输出在../output/xxxxx.txt

识别规则添加方法

目前只加了对源码和header头文件进行识别,后面会陆续添加识别的规则以及方式

已加入cookie识别

规则文件在config/rules.py

添加方法

['CMS', 'headers', '(nginx)']
['CMS', 'cookie', '(MorkerSession)']
['CMS', 'code', '(<title>Morker</title>)']

三种识别方式,headers头文件识别,cookie识别,code源码识别

支持同方式多种识别内容,比如:

['CMS', 'code', '(<title>Morker</title>)|css/css.css']

注:单引号和反斜杆记得转义,转义符号为\

四、效果:

1.本地识别:

2.fofa识别:

五、特别感谢

  • s7ck Team
  • Morker
  • XBJ
  • d0gamn

特别感谢EHole(棱洞) 运行思路

六、文末

Github项目地址(BUG、需求、规则欢迎提交): https://github.com/s7ckTeam/Glass

404StarLink 2.0 - Galaxy

Glass 是 404Team 星链计划2.0中的一环,如果对Glass 有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。

glass's People

Contributors

nosafer avatar s7ckteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

glass's Issues

异常报错及数据准确性反馈

  • 开启代理的情况下导致报错
python3 Glass.py -i 161.64.198.3/16 -s eye --proxy-list cn

image

  • 不开启代理的情况下没有报错,但结果不准确。

  • Glass结果
    image
    -页面查询结果
    image
    Glass是去重后的结果?
    @nosafer

Python 3.12 is not supported

Glass-main\Glass-main>python Glass.py -fofa
F:\下载\浏览器\Glass-main\Glass-main\config\config.py:46: SyntaxWarning: invalid escape sequence '\ '
Banner = ['''\033[1;31m
F:\下载\浏览器\Glass-main\Glass-main\config\config.py:56: SyntaxWarning: invalid escape sequence '/'
'''\033[1;31m
F:\下载\浏览器\Glass-main\Glass-main\config\config.py:75: SyntaxWarning: invalid escape sequence '_'
'''\033[1;31m
F:\下载\浏览器\Glass-main\Glass-main\lib\common.py:33: SyntaxWarning: invalid escape sequence '\s'
"Version\s*=\s*"'", content)
[16:17:29] [ERROR] 此Python版本 ('3.12.0') 不兼容,成功运行Glass你必须使用版本 >= 3.7.3 (访问 ‘https://www.python.org/downloads/’)

扫描本地IP报错

麻烦请问一下

扫描本地IP报错,命令如下:python Glass.py -i 192.168.10.53
[13:45:04] [INFO] 正在检测IP: 192.168.10.53 [13:45:04] [INFO] 正在通过API获取信息... Exception in thread Thread-1: Traceback (most recent call last): File "C:\Users\HackerDEMO\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner self.run() File "E:\Pentration Tools\信息泄露扫描\Glass\mod\fofa.py", line 62, in run self.ipInfo(datas['results']) KeyError: 'results'

扫url没问题:python Glass.py -u http://192.168.30.111/dvwa
`[13:43:21] [INFO] 共采集1个web链接
[13:43:21] [INFO] 获取网页信息中
[13:43:21] [INFO] 命中1个链接

[13:43:21] Apache/2.4.39 (Unix) OpenSSL/1.0.2s PHP/7.3.6 mod_perl/2.0.8-dev Perl/v5.16.3 200 http://192.168.30.111/dvwa Login :: Damn Vulnerable Web Application (DVWA) v1.10 Development`

这个是什么问题?内网的不能识别么?

急!报错。。。

使用zoomeye就出现一下报错

Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Program Files\python\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "D:\Glass-main\mod\zoomeye.py", line 64, in run
self.ipInfo(datas['matches'])
KeyError: 'matches'

使用fofa就报出网络超时,请问大佬这种问题怎么解决啊?

报错信息

python3 Glass.py -f xxx.txt


/ | | __ _ ___ ___
| | | |/ ` / __/ __|
| |
| | | (
| _
_

_
||_,|/_/ Version: 2.0.6

s7ck Team
http://www.s7ck.com/

Happiness depends upon ourselves.

幸福与否我们自己说了算。

					--- Aristotle

[07:53:13] [INFO] 调用Zoomeye接口中
[07:53:16] [INFO] 正在检测IP: cidr:
[07:53:16] [INFO] 正在通过API获取信息...
Exception in thread Thread-8:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/root/tools/Glass/mod/zoomeye.py", line 64, in run
self.ipInfo(datas['matches'])
KeyError: 'matches'

报错

卡住一直没有反应
image

目标URL数量较多时的结果准确问题

image

图片展示的是开启代理和不开启代理后的结果准确率问题

其实还有另外一种可能存在的问题:
当目标URL较大的,只使用-w sub.txt 每次获取的结果url数量也是不同的,有些url确实无法访问,有些url是响应较慢,导致每次的结果是不同的,如何增加结果准确率也是一个可优化的地方

当然这是大部分工具有批量功能时的通病,结果或多或少会存在部分的误差

同时感谢提供此工具

error

Exception in thread Thread-700:
Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/root/bufsnake/Glass/mod/website.py", line 61, in run
    req = s.get(url, timeout=5)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 668, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 668, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 165, in resolve_redirects
    raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

线程问题

线程好像没有得到有效的释放,当扫描的url多的时候,系统内存会一直增长。直到内存带宽耗尽程序自动死亡。

诚挚的邀请您加入CT stack社区

s7ckTeam团队的师傅
您好,我是 CT Stack 安全社区的运营jarcis。发现您的Glass等工具非常优质,特邀您加入我们平台。因未找到您的联系方式,所以只能采取这样的形式,非常抱歉。
CT Stack 安全社区隶属于长亭科技,守护安全工具成长,可帮助运营、推广安全工具。每月评选优质工具打造专题月,可为工具量身定制玩法,集中收集工具使用反馈,辅助工具迭代。
如您有意向,可添加社区微信客服(客服号:CTStack)

建议

希望大佬可以把glass依赖的库专门打包成一个库,到时候pip安装的时候只需要安装一个库即可,就不会遇到有的库无法安装,导致工具无法使用的情况。

建议

我也自己使用了几次,用起来挺棒,但是还需要优化,如:环境的兼容性和对多url监测时报错处理,建议出docker版本

关于fofa-api调用问题

之前单独利用fofa-api调用,高级会员。
会存在多次调用会造成ip被永久封禁的问题。
测试的ip数量 600 -800之间,ip就被永久封禁了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.