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

news2025/1/21 12:04:51

前言
因工作中的需要,开发了这款综合资产收集和漏洞扫描工具,方便在工作中各方面的收集资产和漏洞扫描,同时也可用于挖洞。
Komo已经在工作中辅助我挖到过一些漏洞,同时轻便了我资产收集的过程。
Komo is a comprehensive asset collection and vulnerability scanning tool

██╗ ██╗ ██████╗ ███╗ ███╗ ██████╗ {v1.0 #dev}
██║ ██╔╝██╔═══██╗████╗ ████║██╔═══██╗
█████╔╝ ██║ ██║██╔████╔██║██║ ██║
██╔═██╗ ██║ ██║██║╚██╔╝██║██║ ██║
██║ ██╗╚██████╔╝██║ ╚═╝ ██║╚██████╔╝
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ By Komomon
项目链接:https://github.com/komomon/Komo
简介和特点
🚀Komo是一个综合资产收集和漏洞扫描工具,并且支持进度记录,通过多种方式对子域进行获取,收集域名,邮箱,子域名存活探测,域名指纹识别,域名反查ip,ip端口扫描,web服务链接爬取并发送给xray扫描,对web服务进行POC扫描,web弱口令扫描,对主机进行主机POC扫描,常见端口弱口令扫描。
🚋Komo集成了oneforall,subfinder,ksubdomain,amass,ctfr,emailall,httpx,naabu,TxPortMap,ehole,goon3,crawlergo,rad,hakrawler,gau,gospider,URLfinder,vscan,nuclei,afrog,vulmap,SweetBabyScan,xray等20多款工具,全自动化、智能化工具。本工具依托各工具特色,进行模块化构建。
同时也对某些模块进行魔改,修改的模块如下:
oneforall:对oneforall添加模块,将其他工具的子域扫描结果,聚合到oneforall的set()中,由oneforall进行去重、状态码和title的识别。
ctfr:自己修改过的ctfr。
emailall:修改emailall的部分bug,github地址。
hakrawler:对hakrawler添加了参数,github地址。
SweetBabyScan:去掉了截屏功能。
Komo的目的为了一键化,便捷性,可移植性,便于打点和红队外围渗透工作,所以将基于模块化开发,所有工具都汇总到统一接口,以便于下一个模块调用和后续某模块新增工具。
Komo可以自动下载所需的所有工具,不用使用者自己下载每个工具,使用python3 Komo.py install 即可,同时也便于移动,这保证了Komo的体积足够精简。
Komo目前已经适配window、linux。
后续有新需求在增加功能。
项目结构
https://uploader.shimo.im/f/zOiHTlYqIuFdKtZA.jpg!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2NzMyNDI1NjgsImZpbGVHVUlEIjoiOTEzSlY2R25ETmlQMGwzRSIsImlhdCI6MTY3MzI0MjI2OCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjoxOTIyNzIwNn0.zOe31ynSj4bF3Z1UvgEcWacYGnymFV8LTvSFuIpsw1A

Komo 可以将模块产生的数据,交给另外一个模块处理,同时支持单模块单独使用和符合逻辑的多模块任意组合。
使用
初始化
安装python3(python2暂时不支持)
安装相应的库文件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
如下图所示,如果下载失败,则需要手动去下载对应工具到对应目录。
图片: https://uploader.shimo.im/f/XRfloQVYyNa3a9WN.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2NzMyNDI1NjgsImZpbGVHVUlEIjoiOTEzSlY2R25ETmlQMGwzRSIsImlhdCI6MTY3MzI0MjI2OCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjoxOTIyNzIwNn0.zOe31ynSj4bF3Z1UvgEcWacYGnymFV8LTvSFuIpsw1A

注意:使用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 install --proxy http://127.0.0.1:10809
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

结果
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

公众号:黑战士

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图像处理OpenCV(C++版)】——3.3 几何变换之极坐标变换

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

MATLAB | 如何从热图中提取数据

这期做了个可能有用的小工具,一般论文中热图很少给出数据,于是就想写个小工具通过热图上的颜色估计出数据值来,目前写了个初版的工具分享给大家! 工具函数 由于只是初版,要手动改的地方还是不少的,要设置…

PHP多商户AI智能在线客服系统源码 机器人自动回复 即时通讯聊天系统源码

一套智能在线客服系统源码 多商户网页客服系统源码 支持二十种国际语言 带机器人自动回复。 框架:Thinkphp5workerman, 环境:nginxphp7.3mysql5.6 支持H5公众号APP小程序 了解更多可私信我! 系统功能: 1、支持国际…

编写程序时调用第三方程序时使用的是相对路径而不是绝对路径会造成什么严重后果(Windows Linux)

简介 在编写程序时,有很多人调用第三方程序使用的是相对路径,而不是绝对路径,如下: #!/bin/python3import osos.system("whoami") #调用whoami程序,查看当前用户名#!/bin/bashfind / -name "hellowor…

day10|239. 滑动窗口最大值、347.前 K 个高频元素

239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 示例 1: 输入:nums [1,3…

如何修改视频MD5的格式?这些方法值得你收藏

MD5实际上是计算机安全领域中广泛使用的一种散列函数,可以用来保护消息的完整性,简单来说就是类似于我们的指纹,可以说MD5是每个文件的“数字指纹”。比如:我们在平台上传一些热门视频,平台会自动识别视频的MD5值&…

嵌入式 LINUX 驱动开发 day01 第一个内核模块程序 多文件编译为一个程序, 内核模块参数, 内核模块依赖

1.第一个内核模块程序 ( 记得配置自己的交叉编译的工具,) 首先两个文件 vser.c Makefile (记得大写的M) vser.c #include <linux/init.h> //内核初始化头文件 #include <linux/module.h> //内核模块文件 #include <linux/kernel.h> //&…

Java基础算法每日5道详解(6)

112. Path Sum 路径总和 Given the root of a binary tree and an integer targetSum, return true if the tree has a root-to-leaf path such that adding up all the values along the path equals targetSum. A leaf is a node with no children. Example 1: Input: ro…

html+css实现一个响应式管理平台架构模板

文本将会带你使用htmlcss实现一个响应式的管理平台架构模板&#xff0c;目前来说市面上的管理平台架构模板大同小异&#xff0c;文本的知识点都会符合场景所需。 目录 1、管理平台的架构内容 2、顶部的布局 3、下半部分布局 4、左侧菜单区域实现 5、右侧主体区域实现 …

前端重新部署如何通知用户刷新网页?

我把我掘金的文章同步一份给CSDN 1.目标场景 有时候上完线&#xff0c;用户还停留在老的页面&#xff0c;用户不知道网页重新部署了&#xff0c;跳转页面的时候有时候js连接hash变了导致报错跳不过去&#xff0c;并且用户体验不到新功能。 2.思考解决方案 如何去解决这个问…

顶象助力绿球金科打造App低碳出行场景

“低碳出行”、“碳中和”、“碳惠普”正在成为近几年的科技热词之一。 自2020年9月&#xff0c;中国向世界许下“力争2030年前实现碳达峰&#xff0c;2060年前实现碳中和”的承诺以来&#xff0c;一场围绕绿色节能、低碳减排的变革正在席卷各行各业。 “碳中和”已经成为时代…

如何让SCI期刊审稿人,理解你的文章? - 易智编译EaseEditing

首先需要对论文进行全文润色 对于发表论文来说&#xff0c;进行润色是必须的&#xff0c;正因为SCI论文翻译要求高难度大&#xff0c;无论笔译还是口译都一定要有过硬的基本功&#xff0c;知识面要足够宽广&#xff0c;专业综合能力要求高。 所以当一篇论文的整体结构不到位&…

凯恩帝机床联网

一、设备信息确认 1、确认型号 数控面板拍照确认&#xff1a; 此系统为&#xff1a;K1TCi 注&#xff1a;凡是系统中带i的&#xff0c;基本上都含网口。 2、确认通讯接口 网口常见位置&#xff0c;XS92&#xff08;丝印标号&#xff09;&#xff0c;可通过这个确认&#x…

PnetLab模拟器安装锐捷镜像

安装准备&#xff1a; 1.安装完成pnetlab&#xff0c;这里不过多叙述&#xff1b; 2.在锐捷的网站下载好模拟器镜像&#xff08;目前只支持Switch和Router&#xff09;&#xff0c;下载地址&#xff1a;https://www.ruijie.com.cn/fw/wd/88899/ 官网下载后的内容包括下面几个…

Linux umount报错:device is busy

执行nfs卸载命令umount /mnt&#xff0c;报错target is busy. 或device is busy可以按以下步骤检查&#xff1a;退出要卸载挂载的目录&#xff0c;再执行卸载挂载cd ../umount /mnt找出占用目录的端口&#xff0c;kill端口fuser -m /mnt/kill -9 端口umount /mnt停止nfs服务&am…

计算机基础——操作系统

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.操作系统 1.操作系统简介 2.操作系统的主要功能 &#xff08;1&#xff…

【Kotlin】字符串操作 ② ( 字符串替换函数 replace | 字符串比较操作符 == 和 === | 字符串遍历 forEach )

文章目录一、字符串替换函数 replace二、字符串比较操作符 和 三、字符串遍历 forEach一、字符串替换函数 replace 字符串替换函数 replace 函数原型如下 : /*** 返回一个新字符串&#xff0c;通过替换此字符序列中匹配给定正则表达式的每个子字符串获得* 用给定的[替换]。**…

一个芯片工程师的ADC学习笔记 (二)

众所周知&#xff0c;ADC主要用于对模拟信号进行数字采集&#xff0c;以进行数据处理。我们周围的信号一般都是不断变化的模拟量&#xff0c;如光、温度、速度、压力、声音等。然而&#xff0c;我们大多数人都使用数字设备。如果我们想方便地使用和处理信息&#xff0c;就需要将…

【机器学习】关联规则挖掘算法 + 三大案例实战 + Apriori算法 + Python代码实现

文章目录一、关联规则概述1.1 关联规则引入1.2 关联规则相关概念介绍1.2.1 样本、事务、项集、规则1.2.2 支持度、置信度1.2.3 提升度1.2.4 所有指标的公式二、Python实战关联规则2.1 使用 mlxtend 工具包得出频繁项集与规则2.1.1 安装 mlxtend 工具包2.1.2 引入相关库2.1.3 自…

MP3解码算法原理解析

一&#xff1a;MP3编解码整体结构介绍 看懵逼了是吧。这里面有很多概念需要一一讲解。 比特流&#xff1a;比特流是一种内容分发协议。它采用高效的软件分发系统和点对点技术共享大体积文件&#xff08;如一部电影或电视节目&#xff09;&#xff0c;并使每个用户像网络重新分配…