edgesecurityteam / ehole Goto Github PK
View Code? Open in Web Editor NEWEHole(棱洞)3.0 重构版-红队重点攻击系统指纹探测工具
Home Page: https://forum.ywhack.com/
License: Apache License 2.0
EHole(棱洞)3.0 重构版-红队重点攻击系统指纹探测工具
Home Page: https://forum.ywhack.com/
License: Apache License 2.0
\module\finger\source\fofa.go 里头的api的url从fofa.so改成fofa.info
。。。。。
M2下运行报错:
zsh: segmentation fault ./Ehole-darwin -l url.txt
已经配置过fofa配置文件
【1】我瞎改的,仅仅满足我临时的用法,希望官方能加上多端口
finger.go:
fingerCmd.Flags().StringVarP(&ports, "ports", "P", "", "多端口")
localfile.go:
func LocalFile(filename string, ports string) (urls []string) {
file, err := os.Open(filename)
if err != nil {
log.Println("Local file read error:", err)
color.RGBStyleFromString("237,64,35").Println("[error] the input file is wrong!!!")
os.Exit(1)
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
test := scanner.Text()
test = strings.Trim(test, " ")
if test == "" {
continue
}
if strings.HasPrefix(test, "http") {
urls = append(urls, scanner.Text())
} else {
if ports == "" {
urls = append(urls, "https://"+scanner.Text())
} else {
for _, port := range strings.Split(ports, ",") {
urls = append(urls, "http://"+scanner.Text()+":"+port)
}
}
}
}
return
}
【2】希望能优化下菜单,其实fofaext搜索,和正常的参数finger参数完全可以合并,更简洁的命令操作,如果后续还要加其他功能的话可以看看情况(另外fofa进入了乌云模式,是否考虑换或者卡掉。。)
【3】输入内容处理,可否通过正则筛选出ip和域名,然后通过增加端口和增加协议的方式进行探测?这样就不用每次输入文件,还需要手动对文件内容进行处理了
你好,我看了下说明可以xlsx导出结果,但我没找找到相关参数。
师傅你好,由于自己的机器是mac 不支持你编译的程序(不支持-l参数),请问是否可以更新下最新的源码
首先非常感谢大佬开发的优秀程序,这里提几个建议,都是我使用过程中发现的问题
例如--fofa domain="baidu.com",然后直接开始跑,
--fofa app="JBoss",类似这种的
--fofa app="JBoss" && country="BR"
支持大佬
只需要在原来的代码中把fofa.so改为fofa.info
秋梨膏
./ehole finger -f "http://xx"
______ __ ______
/ ____/___/ /___ ____/_ __/__ ____ _____ ___
/ / / __ / __ / _ \/ / / _ \/ __
/ __ `
/ // // / // / __/ / / __/ // / / / / / /
/_/_,/__, /_/_/ _/_,// // //
/___/ https://forum.ywhack.com By:shihuang
请耐心等待fofa搜索......
panic: reflect: call of reflect.Value.Set on zero Value
goroutine 1 [running]:
reflect.flag.mustBeAssignableSlow(0x0?)
/usr/local/go/src/reflect/value.go:255 +0x104
reflect.flag.mustBeAssignable(...)
/usr/local/go/src/reflect/value.go:249
reflect.Value.Set({0x0?, 0x0?, 0x1027c0232?}, {0x1028df320?, 0x1400026a660?, 0x1?})
/usr/local/go/src/reflect/value.go:2082 +0x58
ehole/module/finger/source.GetConfig()
/Users/user/Documents/go-project/src/EHole/module/finger/source/fofa.go:74 +0x230
ehole/module/finger/source.Fofaip({0x16d9e3742, 0x16})
/Users/user/Documents/go-project/src/EHole/module/finger/source/fofa.go:121 +0x78
ehole/cmd.glob..func1(0x102d39bc0?, {0x1027c107b?, 0x2?, 0x2?})
/Users/user/Documents/go-project/src/EHole/cmd/finger.go:46 +0x1fc
github.com/spf13/cobra.(*Command).execute(0x102d39bc0, {0x140002045e0, 0x2, 0x2})
/Users/user/Documents/go-project/pkg/mod/github.com/spf13/[email protected]/command.go:860 +0x4ac
github.com/spf13/cobra.(*Command).ExecuteC(0x102d3a0c0)
/Users/user/Documents/go-project/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x354
github.com/spf13/cobra.(*Command).Execute(...)
/Users/user/Documents/go-project/pkg/mod/github.com/spf13/[email protected]/command.go:902
ehole/cmd.Execute()
/Users/user/Documents/go-project/src/EHole/cmd/root.go:48 +0x2c
main.main()
/Users/user/Documents/go-project/src/EHole/main.go:21 +0x20
.
嗨, 我想使用你们提供的指纹文件, 关于里面的faviconhash使用的是什么算法呢? 我要怎么使用呢?
已找到解决办法
go 在编译的时候需要指定代理
go env -w GOPROXY=https://goproxy.cn && go build main.go
虽然使用起来没什么影响,但是确实能测试出来协程抢占
image
how to update finger.json to latest.
当我执行命令
Ehole3.0-Win.exe -l url.txt
的时候 无法进行扫描
有考虑接入全球鹰资产测绘系统吗
.
可以添加文件的方式,对批量的IP段的支持嘛
import json
import csv
import sys
import os
print("usage:python Ehole_json2csv.py <json file path>")
csv_headers = ['url', 'cms', 'server', 'statuscode', 'length', 'title']
json_path = sys.argv[1]
# debug use 如果在终端使用,应该注释掉下面的内容,使用上面的
# json_path = "./sub_outcome.json"
if os.path.exists(json_path):
with open(json_path, encoding="utf-8") as json_file:
json_datas = json_file.readlines()
else:
print(json_path, " did not exist,please check")
exit(0)
print("read json file ", json_path, " ok")
home_path = json_path.split(".json")[0] # 从json文件路径提取出.json前面的路径
csv_path = home_path + ".csv" # csv的路径与json前面的路径一致
if os.path.exists(csv_path):
print(csv_path, " has been generated,try to change your json file name or check this csv file")
exit(0)
csv_file = open(csv_path, 'w', encoding="utf-8-sig", newline="")
csv_write = csv.writer(csv_file)
csv_write.writerow(csv_headers)
print("start write csv file...")
for json_data in json_datas:
json_data = json_data.replace("\n", "")
dict_data = json.loads(json_data)
url = dict_data['url']
cms = dict_data['cms']
server = dict_data['server']
statuscode = dict_data['statuscode']
length = dict_data['length']
title = dict_data['title']
row_data = [url, cms, server, statuscode, length, title]
csv_write.writerow(row_data)
print("write csv file ", csv_path, " ok")
大佬,windows版识别url文件时,url文档里第一行需要空出来才能识别
./main fofaext -l ip.txt
Enter the command line to prompt this
context deadline exceeded (Client.Timeout exceeded while awaiting headers)
3.0版本 Windows defender报毒???
您好,mac跟win都不能使用该工具,./Ehole-darwin finger -l website.txt 运行之后输出运行时间:92.329µs% win运行之后提示 运行时间:3.9868ms
大佬牛逼,希望继续更新
感谢分享优秀的工具
指定url时默认线程很快,线程很快这很好
但是我注意到在执行大批量url时甚至能占满家里整个宽带(100M),导致电视放不了,还有电脑上其他网络程序全部陷入停滞
点网站也失去反应,ctrl +c 终止程序后一切恢复正常
所以建议增加个能指定线程的参数,或者限制默认线程数不要太高,感谢!
1、ehole程序目录
2、$HOME目录
3、程序运行到当前目录
支持设置一个url,间结果以json格式发送到url
场景:结果直接写入Elasticsearch
主动模式:运行设置url,定时从url获取目标
被动模式:允许post输入目标
师傅你好,希望有空的话可以添加个将结果导出为Excel的功能,感谢~
代码中传入的api查询的size默认是500,而Fofa普通会员api仅允许查询前100条,因此普通会员账号不会得到任何结果
url := fofa_api(keyword1, fofa.Email, fofa.Fofa_token, i, 500)
查询返回内容如下:
{"errmsg":"401 Unauthorized, make sure 1.email and apikey is correct 2.FOFA coin is enough.","error":true}
./main fofaext -l ip.txt
context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[error] fingerprint file error!!!
getlocalfile.go:88: fingerprint file read error: open ./finger.json: The system cannot find the file specified.
默认./finger.json,用其他方式调用会存在路径问题
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.