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

前言
因工作中的需要,开发了这款综合资产收集和漏洞扫描工具,方便在工作中各方面的收集资产和漏洞扫描,同时也可用于挖洞。
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

公众号:黑战士
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
#网络资产信息扫描 在渗透测试(特别是内网)中经常需要对目标进行网络资产收集,即对方服务器都有哪些IP,IP上开了哪些端口,端口上运行着哪些服务,此脚本即为实现此过程,相比其他探测脚本有以下优点:1、轻巧简洁,只需python环境,无需安装额外外库。2、扫描完成后生成独立页面报告。 此脚本的大概流程为 ICMP存活探测-->端口开放探测-->端口指纹服务识别-->提取快照(若为WEB)-->生成结果报表 运行环境:python 2.6 + 参数说明 -h 必须输入的参数,支持ip(192.168.1.1),ip段(192.168.1),ip范围指定(192.168.1.1-192.168.1.254),ip列表文件(ip.ini),最多限制一次可扫描65535个IP。 -p 指定要扫描端口列表,多个端口使用,隔开 例如:22,23,80,3306。未指定即使用内置默认端口进行扫描(21,22,23,25,53,80,110,139,143,389,443,445,465,873,993,995,1080,1723,1433,1521,3306,3389,3690,5432,5800,5900,6379,7001,8000,8001,8080,8081,8888,9200,9300,9080,9999,11211,27017) -m 指定线程数量 默认100线程 -t 指定HTTP请求超时时间,默认为10秒,端口扫描超时为值的1/2。 -n 不进行存活探测(ICMP)直接进行扫描。 结果报告保存在当前目录(扫描IP-时间戳.html)。 例子: python NAScan.py -h 10.111.1 python NAScan.py -h 192.168.1.1-192.168.2.111 python NAScan.py -h 10.111.1.22 -p 80,7001,8080 -m 200 -t 6 python NAScan.py -h ip.ini -p port.ini -n 服务识别在server_info.ini文件中配置 格式为:服务名|默认端口|正则 例 ftp|21|^220.*?ftp|^220- 正则为空时则使用端口进行匹配,否则以正则匹配结果为准。 项目地址 https://github.com/ywolf/ 欢迎大家反馈建议和BUG

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑战士安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值