You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -31,8 +31,9 @@ Endpoint Search is a reconnaissance tool tailored for identifying and enumeratin
31
31
## Features
32
32
***DNS Enumeration**: Constructs and queries DNS for probable endpoint URLs based on predefined patterns.
33
33
***SRV Record Inspection**: Automatically detects SRV records to uncover associated ports.
34
-
***HTTP/HTTPS Probing**: Tests endpoints with both HTTP and HTTPS protocols when SRV records are not present.
35
-
***Endpoint Judgment**: Determines endpoints likelihood based on response content, currently focusing on XML format.
34
+
***HTTP/HTTPS Probing**: Tests targets with both HTTP and HTTPS protocols when SRV records are not present.
35
+
***PROXY SUPPORT**: Supports HTTP/HTTPS and SOCK5 protocol proxy traffic during the HTTP request phase.
36
+
***Endpoint Judgment**: Determine the likelihood of the endpoint based on whether the response content hits the rule.
36
37
***Automatic Domain Extraction**: Extracts domains from input URLs automatically.
37
38
***Output Redundancy Removal**: Ensures unique results by deduplication.
38
39
***Configurable Behavior**: Offers a flexible configuration file for customizing service names, connection modes, and more.
@@ -44,23 +45,35 @@ Endpoint Search is a reconnaissance tool tailored for identifying and enumeratin
44
45
* Alternatively, use the included Makefile to compile from source.
45
46
46
47
## Configuration
47
-
Upon first run, the tool checks for config.json. If missing, it generates one with default settings including:
48
-
* CloudService: Enumerated cloud services.
49
-
* Mode & Mode2: Patterns connecting services, prefixes/suffixes, and targets.
50
-
* PortList: Ports to scan if no SRV record is found.
51
-
* Prefix & Suffix: Common naming conventions for prefixing or suffixing service names.
48
+
When EndpointSearch is run for the first time, config.yaml and rule-yaml are detected and the default config.yaml and rule-yaml are generated if they are not present
49
+
50
+
config.yaml fill in as follows:
51
+
```
52
+
CloudService: oss,ecs
53
+
Mode: .
54
+
Mode2: -,.
55
+
PortList: 80,443
56
+
Prefix: sonic,legacy,preprod,gamma,beta,staging
57
+
Suffix: sonic,legacy,preprod,gamma,beta,staging
58
+
```
59
+
CloudService is an enumerated cloud service name. Mode is the mode used to connect CloudService to target. Mode2 is the mode used to connect prefixes and suffixes to CloudService
Multiple groups of rules can be defined. Header and Body in the Rule of each group must match exactly to be identified as endpoints. If there is only one feature, the other part can be left blank.
62
75
63
-
CloudService can refer to another of my dictionary projects : https://github.com/shadowabi/S-BlastingDictionary/blob/main/CloudService.txt
76
+
Note that if both Header and Body in a rule are empty, all HTTP requests will pass the rule
64
77
65
78
## Workflow
66
79
1. Enter the domain name example.com. DNS is used to enumerate example.com.
@@ -79,14 +92,12 @@ oss.example.com
79
92
80
93
3. If srv records already exist, HTTP/HTTPS is used to request the URL instead of enumerating the port
81
94
82
-
4. Otherwise, the system attempts to access the port in the target domain name + PortList through HTTP or HTTPS
95
+
4. Otherwise, HTTP and HTTPS are used to access ports in the target domain name + PortList. If the proxy option is used, traffic can be forwarded to the proxy server
83
96
84
-
5. Finally, determine whether the entire URL is an Endpoint based on the HTTP request result. At present, determine whether the destination data is returned in xml format
97
+
5. Finally, the HTTP request result determines whether the entire URL is an Endpoint, and the access is to determine whether the request traffic matches the rule in rule.yaml
85
98
86
99
If there are other characteristics, feel free to raise them in the Issues, or launch a PR directly.
87
100
88
-
The method to determine the Endpoint is implemented in the JudgeEndpoint function in the pkg directory data.go
89
-
90
101
## Usage
91
102
```
92
103
Usage:
@@ -102,17 +113,18 @@ Flags:
102
113
-o, --output string 输入结果文件输出的位置 (Enter the location of the scan result output) (default "./result.txt")
103
114
-p, --port string 输入需要被扫描的端口,逗号分割 (Enter the port to be scanned, separated by commas (,))
104
115
--prefix string 输入枚举云服务的前缀 (Enter the prefix for enumerating the cloud service)
116
+
--proxy string 使用 HTTP/SOCKS5代理,仅限web探测时 (List of http/socks5 proxy to use,Only for web detection
105
117
-s, --service string 输入需要被枚举的服务名称 (Input Service Name)
106
118
--suffix string 输入枚举云服务的后缀 (Enter a suffix for enumerating cloud services)
107
119
-t, --timeout int 输入每个 http 请求的超时时间 (Enter the timeout period for every http request) (default 2)
108
120
-u, --url string 输入目标地址 (Input [domain|url])
109
121
```
110
-
EndpointSearch also supports manually overwriting configuration parameters. By default, the -e parameter is CloudEndpoint in the configuration, and the -p parameter is PortList in the configuration
122
+
123
+
EndpointSearch can also override configuration parameters manually. For example, -e is set to CloudEndpoint by default, and -p is set to PortList by default
111
124
112
125
When parameters are actively specified, the default values in the configuration file are no longer used
113
126
114
127
115
128
## TODO
116
-
1. Proxy Support: Implementation of SOCKS5 proxy support for enhanced anonymity.
0 commit comments