Giter Site home page Giter Site logo

komomon / komo Goto Github PK

View Code? Open in Web Editor NEW
481.0 13.0 49.0 23.51 MB

🚀Komo, a comprehensive asset collection and vulnerability scanning tool. Komo 一个综合资产收集和漏洞扫描工具,集成了20余款工具,通过多种方式对子域进行获取,收集域名邮箱,进行存活探测,域名指纹识别,域名反查ip,ip端口扫描,web服务链接爬取并发送给xray,对web服务进行POC漏洞扫描,对主机进行主机漏洞扫描。

Home Page: https://www.cnblogs.com/forforever/

Python 99.87% Dockerfile 0.13%
bugbounty osint poc xray oneforall subfinder amass ksubdomain ctfr hacking

komo's Introduction

Komo 综合资产收集和漏洞扫描工具

Komo is a comprehensive asset collection and vulnerability scanning tool

██╗  ██╗ ██████╗ ███╗   ███╗ ██████╗ {v1.0 #dev}
██║ ██╔╝██╔═══██╗████╗ ████║██╔═══██╗
█████╔╝ ██║   ██║██╔████╔██║██║   ██║
██╔═██╗ ██║   ██║██║╚██╔╝██║██║   ██║
██║  ██╗╚██████╔╝██║ ╚═╝ ██║╚██████╔╝
╚═╝  ╚═╝ ╚═════╝ ╚═╝     ╚═╝ ╚═════╝  By Komomon

image-20220927001227577

注:如果需要获得最新beta版本请前往beta分支,该分支更新将比较慢。

Intro&&Feature

🚀Komo是一个综合资产收集和漏洞扫描工具,并且支持进度记录,通过多种方式对子域进行获取,收集域名,邮箱,子域名存活探测,域名指纹识别,域名反查ip,ip端口扫描,web服务链接爬取并发送给xray扫描,对web服务进行POC扫描,web弱口令扫描,对主机进行主机POC扫描,常见端口弱口令扫描。

🚋Komo集成了oneforallsubfinderksubdomainamassctfremailallhttpxnaabuTxPortMapeholegoon3crawlergoradhakrawlergaugospiderURLfindervscannucleiafrogvulmapSweetBabyScanxray20多款工具,全自动化、智能化工具。本工具依托各工具特色,进行模块化构建。

Komo的目的为了一键化,便捷性,可移植性,便于打点和红队外围渗透工作,所以将基于模块化开发,所有工具都汇总到统一接口,以便于下一个模块调用和后续某模块新增工具。==如果你有好的工具和改进建议,可以添加下面的公众号群聊来沟通==

Komo的每个模块可以单独拿出来直接使用,每个模块下面都有一个main,注意工具下载到对应目录下即可。

Komo可以自动下载所需的所有工具,不用使用者自己下载每个工具,使用python3 Komo.py install 即可,同时也便于移动,这保证了Komo的体积足够精简

Komo目前已经适配window、linux。

Project structure

流程图

Usage

初始化

安装python3python2暂时不支持)

安装相应的库文件pip3 install -r requirements.txt

第一次使用下载所需工具,以及部分工具初始化(goon,vulmap,afrog)

注:国内访问github可能存在超时问题,推荐使用代理下载工具进行初始化。

python3 Komo.py install
python3 Komo.py  --proxy http://127.0.0.1:10809 install
python3 Komo.py  --proxy socks5://127.0.0.1:10809 install

如下图所示,如果下载失败,则需要手动去下载对应工具到对应目录。

image-20220927001258352

注意:使用v2ray的开全局不一定能行,可以使用clash开TUN。

配置

配置文件config/config.yaml

部分配置讲解

修改有runtime字段的工具的runtime字段,设置工具的运行时间,如果超时则kill掉,推荐设置600-1200s

crawlergo:
      toolname: crawlergo
      runtime: 900
rad:
      toolname: rad
      runtime: 900

修改xray的监听端口

other:
    xray:
      toolname: xray
      listenport: 7777 #修改监听端口

其他配置为以后扩充开发预留配置,暂时不用修改。

oneforall等工具的配置,要在初始化之后进入到对应工具目录进行修改,比如oneforall:core/tools/domain/Oneforall

Komo 支持多种模式

install:下载所有工具

all: 资产收集+攻击,多种方式收集域名,收集域名邮箱,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取,将爬取的链接发送给xray进行扫描,POC漏洞扫描,反查的ip进行其他端口漏洞扫描,弱口令扫描

all2: 资产收集+攻击,提供子域名,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取,将爬取的链接发送给xray进行扫描,POC漏洞扫描,反查的ip进行其他端口漏洞扫描,弱口令扫描

collect:只资产收集,多种方式收集域名,收集域名邮箱,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取

subdomain: 通过多种方式进行域名收集,dns爬取,爆破,证书获取,DNS运营商处获取。

finger: 对收集到的域名或域名文件进行存活探测和指纹识别(Ehole+wapplyzer)

portscan:对反查的ip列表或ip文件进行端口扫描

sensitive:对收集到的存活域名或域名文件进行url爬取

webattack:对收集到的存活域名或域名文件进行url爬取,然后发送给xray进行扫描,同时也调用nuclei,afrog,vulmap,vscan进行漏洞扫描

hostattack:对反查的ip列表或ip文件进行常见服务弱口令扫描和漏洞扫描

install 下载所有工具

功能:根据系统下载所有工具以及部分工具初始化

python3 Komo.py install
python3 Komo.py  --proxy http://127.0.0.1:10809 install
python3 Komo.py  --proxy socks5://127.0.0.1:10809 install

all 全扫描

输入:域名/域名文件

功能:多种方式收集域名,收集域名,邮箱,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取,将爬取的链接发送给xray进行扫描,POC漏洞扫描,反查的ip进行其他端口漏洞扫描,弱口令扫描

python3 Komo.py --domain example.com all
python3 Komo.py --domains ./domains.txt all

注意:记得使用该模式之前先启动xray,否则webattack不能完全扫描

xray.exe webscan --listen 127.0.0.1:7777 --html-output 1.html

all2

输入:子域名/子域名文件

功能:提供子域名,不扫描子域,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取,将爬取的链接发送给xray进行扫描,POC漏洞扫描,反查的ip进行其他端口漏洞扫描,弱口令扫描

python3 Komo.py --subdomain aaa.example.com all2
python3 Komo.py --subdomains ./subdomains.txt all2

注意:记得使用该模式之前先启动xray,否则webattack不能完全扫描

xray.exe webscan --listen 127.0.0.1:7777 --html-output 1.html

collect

输入:域名/域名文件

功能:全方位资产收集,多种方式收集域名,收集域名,邮箱,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描,web服务链接爬取

python3 Komo.py --domain example.com collect
python3 Komo.py --domains ./domains.txt collect

collect1

输入:域名/域名文件

功能:只资产收集,多种方式收集域名,收集域名,域名存活探测,域名反查ip,域名指纹识别

功能比collect 少了端口扫描,web链接爬取

python3 Komo.py --domain example.com collect1
python3 Komo.py --domains ./domains.txt collect1

collect2

输入:域名/域名文件

功能:只资产收集,多种方式收集域名,收集域名,邮箱,域名存活探测,域名反查ip,域名指纹识别,ip端口扫描

功能比collect 少了web链接爬取

python3 Komo.py --domain example.com collect2
python3 Komo.py --domains ./domains.txt collect2

subdomain

输入:域名/域名文件

功能:通过多种方式进行域名收集,dns爬取,爆破,证书获取,DNS运营商处获取。

python3 Komo.py --domain example.com subdomain
python3 Komo.py --domains ./domains.txt subdomain

finger

输入:url/url文件

功能:对收集到的域名或域名文件进行存活探测和指纹识别(Ehole+wapplyzer)

python3 Komo.py --url http://example.com finger
python3 Komo.py --urls ./urls.txt finger

portscan

输入:ip/ip文件

功能:对反查的ip列表或ip文件进行端口扫描和端口指纹识别

默认端口扫描列表

21,22,23,25,53,53,69,80,81,88,110,111,111,123,123,135,137,139,161,177,389,427,443,445,465,500,515,520,523,548,623,626,636,873,902,1080,1099,1433,1434,1521,1604,1645,1701,1883,1900,2049,2181,2375,2379,2425,3128,3306,3389,4730,5060,5222,5351,5353,5432,5555,5601,5672,5683,5900,5938,5984,6000,6379,7001,7077,8080,8081,8443,8545,8686,9000,9001,9042,9092,9100,9200,9418,9999,11211,11211,27017,33848,37777,50000,50070,61616
python3 Komo.py --ip 1.1.1.1 portscan
python3 Komo.py --ips ./ips.txt portscan

sensitive

输入:url/url文件

功能:对收集到的存活域名或域名文件进行url爬取(crawlergo,rad,gau,URLFinder,gospider,hakrawler)

python3 Komo.py --url http://example.com sensitive
python3 Komo.py --urls ./urls.txt sensitive

webattack

输入:url/url文件

功能:对url进行爬取,然后发送给xray进行扫描,同时也调用nuclei,afrog,vulmap,vscan进行漏洞扫描

python3 Komo.py --url http://example.com webattack
python3 Komo.py --urls ./urls.txt webattack

注意:记得使用该模式之前先启动xray,否则webattack不能完全扫描

xray.exe webscan --listen 127.0.0.1:7777 --html-output 1.html

webattack2

输入:url/url文件

功能:只进行poc扫描(nuclei,afrog,vulmap,vscan)

python3 Komo.py --url http://example.com webattack2
python3 Komo.py --urls ./urls.txt webattack2

hostattack

输入:ip/ip文件

功能:对反查的ip列表或ip文件进行常见服务弱口令扫描和漏洞扫描

python3 Komo.py --ip 1.1.1.1 hostattack
python3 Komo.py --ips ./ips.txt hostattack

完整Usage

    Komo help summary page

    Komo is an automated scanning tool set

    mode:
    install     Download the required tools
    	--proxy Set proxy
    all         all scan and attack:subdomain, survival detection, finger, portscan, email collect, sensitive(crawl urls), pocscan, Weak password scanning, to_xray
        --domain    one domain
        --domains   a domain file
    all2        run scan and attack except domain collection: survival detection, finger, portscan, email collect, sensitive(crawl urls), pocscan, Weak password scanning, to_xray
        --subdomain    one subdomain
        --subdomains   a subdomain file
    collect     run all collection modules :subdomain, survival detection, finger, port, email collect, sensitive(crawl urls), pocscan, to_xray
        --domain    one domain
        --domains   a domain file
    collect1    run collection modules :subdomain, survival detection, finger
        --domain    one domain
        --domains   a domain file
    collect2    run collection modules :subdomain, survival detection, finger, portscan
        --domain    one domain
        --domains   a domain file
    subdomain   only collect subdomain
        --domain    one domain
        --domains   a domains file
    finger      only collect the survival URL and  fingerprint
        --url       one url
        --urls      an urls file
    portscan    only collect port from ip or ips
        --ip        one ip
        --ips       an ips file
    sensitive   only collect directory with crawl,email
        --url       one url
        --urls      an urls file
    webattack   only attack web from url or urls: pocscan, Weak password scanning, crawl urls to xray
        --url       one url
        --urls      an urls file
    webattack2  only poc scan from url or urls: pocscan, Weak password scanning
        --url       one url
        --urls      an urls file
    hostattack  only attack ip from ip or ips
        --ip        one ip
        --ips       an ips file
    attack      run webattack and hostattack: crawl url to xray, pocscan, Weak password scanning


    Example:
        python3 Komo.py install
        python3 Komo.py --domain example.com all
        python3 Komo.py --domains ./domains.txt all
        python3 Komo.py --domain example.com collect
        python3 Komo.py --domains ./domains.txt collect
        python3 Komo.py --domain example.com collect1
        python3 Komo.py --domains ./domains.txt collect1
        python3 Komo.py --domain example.com collect2
        python3 Komo.py --domains ./domains.txt collect2
        python3 Komo.py --domain example.com subdomain
        python3 Komo.py --domains ./domains.txt subdomain

        python3 Komo.py --subdomain aaa.example.com all2
        python3 Komo.py --subdomains ./subdomains.txt all2

        python3 Komo.py --url http://example.com finger
        python3 Komo.py --urls ./urls.txt finger
        python3 Komo.py --url http://example.com sensitive
        python3 Komo.py --urls ./urls.txt sensitive
        python3 Komo.py --url http://example.com webattack
        python3 Komo.py --urls ./urls.txt webattack
        python3 Komo.py --url http://example.com webattack2
        python3 Komo.py --urls ./urls.txt webattack2

        python3 Komo.py --ip example.com portscan
        python3 Komo.py --ips ./domains.txt portscan
        python3 Komo.py --ip example.com hostattack
        python3 Komo.py --ips ./domains.txt hostattack

Result

Komo会将输出结果记录到result/{date} 目录下

该目录下会有多个文件夹,分别对应各个模块的输出:

domain_log

fingerlog

portscan_log

sensitive_log

vulscan_log

result/{date} 根目录下会有输出结果文件:

target 为domain或date

{target}.final.subdomains.txt 最终找到的所有子域名

{target}.links.csv 多个工具爬取到的所有link

{target}.many.tools.subdomains.txt 除oneforall之外的其他子域名收集工具收集到的域名

{target}.subdomains.ips.txt 域名反查的ip

{target}.subdomains.with.http.txt 存活的子域名并且带http(s)

欢迎Star ⭐ ⭐

更新日志

20230106

1、修复linux下子线程执行进入交互shell的bug

2、配置文件修改hakrawler采用下载方式,进一步缩进Komo体积

3、log文件增加扫描参数记录,便于回忆使用的参数。

4、install 模块添加代理参数--proxy,解决国内无法访问github下载工具的问题

20221227

1、增加进度机制,可以记录扫描进度,当未运行完终止时,下次再次运行的时候,使用原参数并增加--date参数, 来指定上次运行的结果文件夹,这样Komo会从上次终止的位置继续运行 比如第二次再运行使用python Komo.py --domain xx.com --date 11-11-11-11-11-11 all

2、linux版本适配完成

3、download模块添加goon,vulmap,afrog初始化

4、添加common模块

5、修改config.yaml,sensitiveinfo模块的工具运行时间,xray监听端口通过config.yaml配置

6、修改vulsan 模块,子线程不能执行的bug

20221011

download_tools 逻辑修改,bug修改,tools.yaml 添加tool_main_filename 键
sensitive模块添加killprocess
sensitive模块修改to_xray添加fromurl参数 只发送给xray,爬取的url的相关链接,减少请求量,提高效率
rad,gospider添加运行时间timeout,运行时间太长会卡住
domain模块修改 merge_result,将非目标子域名提取出来,放到result/{date}/{domain}.other.subdomains.txt中

20220907

今天完善了main,domain finger sensitive vulscan 在main中实现调用

domain finger sensitive vulscan 四个模块实现了顺序模块扫描,也实现了单独使用的时候指定单url 单urlsfile
vulscan的main分成了两个webmanager和hostmanager分别对web和ip进行漏洞扫描

hostmanager加上一个goon,去识别指纹和对端口服务进行弱口令扫描

第一版完成

komo's People

Contributors

komomon 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

komo's Issues

Linux遇到的问题

不知是否广泛存在,还是个人环境问题,待求证,
1、URLFinder工具无法执行,可能是下载链接存在问题,解决方案:手动下载导入。
2、OneForAll 调用大小写问题,路径问题,需要修改源码
image

bug

扫描的时候 调用了python的终端 得手动关掉

image

No module named 'tkinter'

执行python3 Komo.py install时报错:

Traceback (most recent call last):
  File "/Komo/Komo.py", line 10, in <module>
    from core.tools.finger import finger_main
  File "/Komo/core/tools/finger/finger_main.py", line 9, in <module>
    from tkinter import N
ModuleNotFoundError: No module named 'tkinter'

请问这个是哪里的问题?

执行所有命令都报No such file or directory

File "/var/ios/Komo-main/core/tools/sensitiveinfo/sensitiveinfo_main.py", line 904, in run
with open(urlsfile, "r", encoding="utf-8") as f:
└ 'result/2023-05-18-19-31-52/baidu.com.subdomains.with.http.txt'

FileNotFoundError: [Errno 2] No such file or directory: 'result/2023-05-18-19-31-52/baidu.com.subdomains.with.http.txt'

无法正常使用

windows10中文 ,python3.7.9,第一步启动安装报错
C:\Users\Administrator\Desktop\Komo>python3 Komo.py install
Traceback (most recent call last):
File "Komo.py", line 14, in
from core.tools.emailcollect import emailcollect_main
File "C:\Users\Administrator\Desktop\Komo\core\tools\emailcollect\emailcollect_main.py", line 144, in
@logger.catch
File "D:\Python37\lib\site-packages\loguru_logger.py", line 1215, in catch
return self.catch()(exception)
File "D:\Python37\lib\site-packages\loguru_logger.py", line 1254, in call
"not a class (tried to wrap '%s')" % function.name
TypeError: Invalid object decorated with 'catch()', it must be a function, not a class (tried to wrap 'manager')

优化建议

师傅我刚刚试用了一下,发现可能有些地方可以优化的

1、我改成用proxy地址加速下载了,速度飞起
图片

2、泛解析代码改成用dns.resolver.resolve
图片

高版本库会报错(有待考证)
2023-03-07 15:20:18.719 | INFO | core.tools.domain.domain_main:checkPanAnalysis:38 - [Not PanAnalysis] :("module 'dns' has no attribute 'resolver'",)

3、可以考虑增加一个超时设置,和进度条参数
图片
我发现这工具默认会枚举很久,就像是卡住了一样
图片

4、xray等工具我配成了动态ip了
这样可以用上分布式,不一定是127.0.0.1
图片

amass输出json

我在使用的时候报错了:
F:\mybox\ScanTools\Komo-beta\Komo-beta\core\tools\domain\amass> amass.exe enum -active -brute -max-depth 3 -d api.doppler.com -json result/2023-09-06-12-35-49/domain_log/api.doppler.com.amass.json
flag provided but not defined: -json

根据amass官方的说法,amass在使用db命令的好像才能输出json格式的文本,amass db -names -silent -json out.json -d example.com ;在使用enum的时候只有 amass enum -o out.txt -d example.com 输出txt格式;

cdx_toolkit库安装失败

报错信息如下:

Collecting cdx_toolkit==0.9.34 (from -r requirement.txt (line 27))
  Using cached cdx_toolkit-0.9.34.tar.gz (36 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      /usr/lib/python3/dist-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!

              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************

      !!
        dist.fetch_build_eggs(dist.setup_requires)
      [12/05/23 06:27:16] WARNING  toml section missing        pyproject_reading.py:42
                                   'pyproject.toml does not
                                   contain a
                                   tool.setuptools_scm
                                   section'
      error in cdx_toolkit setup command: 'python_requires' must be a string containing valid version specifiers; Invalid specifier: '>=3.6.*'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

python各种版本的库还是太繁琐了,大佬可以考虑发布一个docker版本的出来么

finger扫描有问题

image

感觉代码逻辑好像有点问题,file来自urlfile,file = None了,为什么还用urlfile来创建文件

image

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.