atdork 1.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- atdork-1.3.3/LICENSE +21 -0
- atdork-1.3.3/PKG-INFO +288 -0
- atdork-1.3.3/README.md +255 -0
- atdork-1.3.3/atdork.egg-info/PKG-INFO +288 -0
- atdork-1.3.3/atdork.egg-info/SOURCES.txt +19 -0
- atdork-1.3.3/atdork.egg-info/dependency_links.txt +1 -0
- atdork-1.3.3/atdork.egg-info/entry_points.txt +2 -0
- atdork-1.3.3/atdork.egg-info/requires.txt +10 -0
- atdork-1.3.3/atdork.egg-info/top_level.txt +1 -0
- atdork-1.3.3/atdork.py +580 -0
- atdork-1.3.3/pyproject.toml +52 -0
- atdork-1.3.3/setup.cfg +4 -0
- atdork-1.3.3/tests/test_batch_runner.py +102 -0
- atdork-1.3.3/tests/test_config.py +107 -0
- atdork-1.3.3/tests/test_database.py +247 -0
- atdork-1.3.3/tests/test_logger.py +35 -0
- atdork-1.3.3/tests/test_multi_thread.py +82 -0
- atdork-1.3.3/tests/test_proxy_manager.py +234 -0
- atdork-1.3.3/tests/test_scanner.py +168 -0
- atdork-1.3.3/tests/test_storage.py +79 -0
- atdork-1.3.3/tests/test_validator.py +242 -0
atdork-1.3.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 alzzdev
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
atdork-1.3.3/PKG-INFO
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: atdork
|
|
3
|
+
Version: 1.3.3
|
|
4
|
+
Summary: Professional dorking ddgs metasearch OSINT tool
|
|
5
|
+
Author: alzzmarket
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/amnottdevv/atdork
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/amnottdevv/atdork/issues
|
|
9
|
+
Project-URL: Source Code, https://github.com/amnottdevv/atdork
|
|
10
|
+
Keywords: osint,dork,pentest,security,duckduckgo,metasearch
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Information Technology
|
|
13
|
+
Classifier: Intended Audience :: System Administrators
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Security
|
|
19
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
20
|
+
Requires-Python: >=3.9
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: ddgs>=7.0
|
|
24
|
+
Requires-Dist: rich>=13.0
|
|
25
|
+
Requires-Dist: pyfiglet>=0.8
|
|
26
|
+
Requires-Dist: pyyaml>=6.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
29
|
+
Requires-Dist: flake8>=7.0; extra == "dev"
|
|
30
|
+
Requires-Dist: bandit>=1.7; extra == "dev"
|
|
31
|
+
Requires-Dist: safety>=3.0; extra == "dev"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# Atdork
|
|
36
|
+
|
|
37
|
+

|
|
38
|
+

|
|
39
|
+

|
|
40
|
+

|
|
41
|
+
[](https://github.com/amnottdevv/atdork/actions/workflows/ci.yml)
|
|
42
|
+
[](https://github.com/amnottdevv/atdork/actions)
|
|
43
|
+

|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
A lightweight, ethical DuckDuckGo-based OSINT tool for running advanced search queries (dorks) from the command line.
|
|
47
|
+
Atdork helps security researchers, penetration testers, and OSINT analysts quickly discover publicly available information across multiple search engines.
|
|
48
|
+
|
|
49
|
+
**v1.3 introduces built‑in resilience, adaptive rate limiting, SQLite storage, and comprehensive logging — making it production‑ready.**
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
- **Interactive & CLI modes** – use an interactive prompt or pass arguments directly.
|
|
56
|
+
- **Multi‑engine support** – choose backend search engines (Google, Bing, DuckDuckGo, Startpage, Yandex, etc.).
|
|
57
|
+
- **Batch processing** – run dozens of dorks from a text file or inline string, now with **multi‑threaded execution** for speed.
|
|
58
|
+
- **Resilience engine** (`--resilient`) – circuit breaker, automatic backend fallback, and intelligent retry handling.
|
|
59
|
+
- **Adaptive rate limiter** (`--adaptive-delay`) – dynamic per‑backend delay that responds to rate‑limits and recovers automatically.
|
|
60
|
+
- **Output validation** – built‑in filters to **remove spam, invalid URLs, and low‑quality results**; optional strict mode.
|
|
61
|
+
- **Vulnerability filter** (`--filter-vuln`) – identify results matching platform‑specific signatures (e.g. WordPress, Joomla).
|
|
62
|
+
- **Proxy rotation** – load proxies from a file, comma‑separated list, or Tor fallback (now with `user:pass@host:port` support).
|
|
63
|
+
- **Strict proxy mode** – prevent leaking your real IP if all proxies fail.
|
|
64
|
+
- **Intelligent proxy manager** – validates format, auto‑removes dead proxies, tracks statistics.
|
|
65
|
+
- **SQLite database** – persistent storage of all queries and results with resume, history, deduplication, and export.
|
|
66
|
+
- **Rotating file logs** – timestamped, module‑aware log files with automatic rotation.
|
|
67
|
+
- **User‑Agent rotation** – built‑in pool of modern User‑Agent strings, automatically rotated.
|
|
68
|
+
- **Flexible output** – save results as TXT, JSON, or CSV; store batch results per query or in a single file.
|
|
69
|
+
- **YAML configuration** – store your favourite settings in `atdork.yaml` for reproducibility.
|
|
70
|
+
- **CI/CD pipeline** – automated tests, linting, and security scanning on every commit.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Installation
|
|
75
|
+
|
|
76
|
+
1. **Clone the repository**
|
|
77
|
+
```bash
|
|
78
|
+
git clone https://github.com/amnottdevv/atdork.git
|
|
79
|
+
cd atdork
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
2. **Install dependencies**
|
|
83
|
+
```bash
|
|
84
|
+
pip install -r requirements.txt
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Requirements:
|
|
88
|
+
- `duckduckgo-search>=7.0`
|
|
89
|
+
- `rich>=13.0`
|
|
90
|
+
- `pyfiglet>=0.8`
|
|
91
|
+
- `pyyaml>=6.0`
|
|
92
|
+
|
|
93
|
+
3. **(Optional) Tor**
|
|
94
|
+
Install Tor if you plan to use the `--tor` flag. Atdork will automatically connect to `127.0.0.1:9050`.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Quick Start
|
|
99
|
+
|
|
100
|
+
### Interactive mode (guided prompts)
|
|
101
|
+
```bash
|
|
102
|
+
python main.py --interactive
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Command‑line mode
|
|
106
|
+
```bash
|
|
107
|
+
python main.py -q "site:gov filetype:pdf" -r 10
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Batch from file (with resilience and rate limiter)
|
|
111
|
+
```bash
|
|
112
|
+
python main.py --batch-file dorks.txt --resilient --adaptive-delay -r 20 --format json -o results.json
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Proxy with strict mode (now with authentication)
|
|
116
|
+
```bash
|
|
117
|
+
python main.py -q "admin login" --proxy "http://user:pass@proxy:8080" --strict
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Filter vulnerable WordPress results
|
|
121
|
+
```bash
|
|
122
|
+
python main.py -q "inurl:wp-content" -r 30 --filter-vuln wordpress
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Command-Line Arguments
|
|
128
|
+
|
|
129
|
+
| Argument | Description | Default |
|
|
130
|
+
|----------|-------------|---------|
|
|
131
|
+
| `--interactive` | Launch interactive mode | (off) |
|
|
132
|
+
| `-q`, `--query` | Search query / dork | |
|
|
133
|
+
| `-r`, `--max-results` | Maximum number of results (1‑100) | 20 |
|
|
134
|
+
| `--region` | Search region (e.g. `us-en`, `uk-en`) | `us-en` |
|
|
135
|
+
| `--safesearch` | `on`, `moderate`, `off` | `moderate` |
|
|
136
|
+
| `--timelimit` | `d` (day), `w` (week), `m` (month), `y` (year) | (none) |
|
|
137
|
+
| `--backend` | Backend engine(s) – comma‑separated | `auto` |
|
|
138
|
+
| `--user-agent` | Custom User‑Agent (auto‑rotate if empty) | (auto) |
|
|
139
|
+
| `--timeout` | Request timeout (seconds) | 10 |
|
|
140
|
+
| `--retries` | Number of retry attempts on failure | 2 |
|
|
141
|
+
| `--delay` | Delay between requests (seconds) | 0 |
|
|
142
|
+
| `--proxy` | One or more proxy URLs (comma‑separated) | |
|
|
143
|
+
| `--proxy-file` | File containing proxy URLs | |
|
|
144
|
+
| `--tor` | Use Tor SOCKS5 proxy | |
|
|
145
|
+
| `--strict` | Fail instead of falling back to direct connection | `False` |
|
|
146
|
+
| `--proxy-cooldown` | Cooldown after a proxy failure (seconds) | 60 |
|
|
147
|
+
| `--max-failures` | Remove proxy after N consecutive failures | 3 |
|
|
148
|
+
| `--resilient` | Enable resilience mode (circuit breaker + fallback) | `False` |
|
|
149
|
+
| `--adaptive-delay` | Enable adaptive rate limiting per backend | `False` |
|
|
150
|
+
| `--concurrency` | Number of parallel threads for batch | 1 |
|
|
151
|
+
| `--max-fallback-failures` | Consecutive failures before fallback to sequential | 3 |
|
|
152
|
+
| `--batch-file` | File with one query per line | |
|
|
153
|
+
| `--batch-separator` | Separator for inline multiple queries | `;` |
|
|
154
|
+
| `-o`, `--output` | Save results to file | |
|
|
155
|
+
| `--output-dir` | Save each query result as a separate file | |
|
|
156
|
+
| `--format` | Output format: `txt`, `json`, `csv` | `txt` |
|
|
157
|
+
| `--no-snippet` | Hide snippet text in terminal | |
|
|
158
|
+
| `--no-validate` | Disable spam/invalid result filtering | |
|
|
159
|
+
| `--strict-filter` | Stricter filter (require non‑empty snippet) | |
|
|
160
|
+
| `--filter-vuln` | Filter results by vulnerability platform (e.g. `wordpress`) | |
|
|
161
|
+
| `--db-path` | SQLite database path | `atdork.db` |
|
|
162
|
+
| `--resume` | Resume pending queries from the database | |
|
|
163
|
+
| `--history` | Show search history | |
|
|
164
|
+
| `--no-dedup` | Disable global URL deduplication | |
|
|
165
|
+
| `--export-db` | Export database to JSON/CSV | |
|
|
166
|
+
| `--log-file` | Log file path | `atdork.log` |
|
|
167
|
+
| `--no-fallback-backends` | Disable backend fallback | |
|
|
168
|
+
| `--no-verify` | Disable SSL verification (not recommended) | |
|
|
169
|
+
| `--debug` | Enable debug logging | |
|
|
170
|
+
| `--version` | Show version and exit | |
|
|
171
|
+
|
|
172
|
+
**Available backends:** `auto`, `bing`, `brave`, `duckduckgo`, `google`, `grokipedia`, `mojeek`, `startpage`, `yandex`, `yahoo`, `wikipedia`.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Examples
|
|
177
|
+
|
|
178
|
+
### 1. Basic OSINT search with validation
|
|
179
|
+
```bash
|
|
180
|
+
python main.py -q "intitle:index.of mp3" -r 30 --backend google --safesearch off
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 2. High‑anonymity scan with Tor and strict proxy rules
|
|
184
|
+
```bash
|
|
185
|
+
python main.py -q "confidential filetype:xlsx" --tor --strict --delay 2 -r 50 -o secret.json
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 3. Batch processing with resilience and rate limiter
|
|
189
|
+
```bash
|
|
190
|
+
python main.py --batch-file pentest_dorks.txt --concurrency 5 --resilient --adaptive-delay --proxy-file proxies.txt --output-dir results --format csv
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 4. Resume an interrupted batch
|
|
194
|
+
```bash
|
|
195
|
+
python main.py --resume
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 5. Export all stored results
|
|
199
|
+
```bash
|
|
200
|
+
python main.py --export-db all_results.json
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 6. Debug run to inspect proxy and thread behaviour
|
|
204
|
+
```bash
|
|
205
|
+
python main.py -q "test" --proxy "http://user:pass@proxy:8080" --debug
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 7. Strict filtering for high‑quality OSINT reports
|
|
209
|
+
```bash
|
|
210
|
+
python main.py -q "financial report filetype:pdf" --strict-filter -o clean_results.json
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Project Structure
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
atdork/
|
|
219
|
+
├── main.py # Entry point, CLI argument parser, orchestration
|
|
220
|
+
├── core/
|
|
221
|
+
│ ├── case/
|
|
222
|
+
│ │ ├── resilience.py # Circuit breaker, backend fallback
|
|
223
|
+
│ │ └── rate_limiter.py # Adaptive per‑backend rate limiting
|
|
224
|
+
│ ├── scanner.py # Search logic, retry, proxy/UA integration
|
|
225
|
+
│ ├── batch_runner.py # Batch execution (sequential/parallel)
|
|
226
|
+
│ ├── proxy_manager.py # Proxy validation, rotation, statistics
|
|
227
|
+
│ ├── database.py # SQLite storage and export
|
|
228
|
+
│ ├── logger.py # Rotating file + console logging
|
|
229
|
+
│ ├── filter_vuln.py # Vulnerability signature filtering
|
|
230
|
+
│ └── config.py # YAML configuration loader
|
|
231
|
+
├── lib/
|
|
232
|
+
│ ├── display.py # Terminal output, banner
|
|
233
|
+
│ ├── storage.py # Save results as TXT / JSON / CSV
|
|
234
|
+
│ └── validator.py # Output filtering (spam, URL validation)
|
|
235
|
+
├── tests/ # 114 unit tests (pytest)
|
|
236
|
+
├── wordlists/ # Vulnerability signature files
|
|
237
|
+
├── presets/ # Dork templates (YAML)
|
|
238
|
+
├── .github/workflows/ci.yml # CI pipeline
|
|
239
|
+
├── atdork.yaml # User configuration file
|
|
240
|
+
├── requirements.txt
|
|
241
|
+
└── README.md
|
|
242
|
+
```
|
|
243
|
+
## activitie graph
|
|
244
|
+

|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Ethical Use & Disclaimer
|
|
248
|
+
|
|
249
|
+
Atdork is intended for **ethical and legal purposes only**, such as:
|
|
250
|
+
- Authorised penetration testing
|
|
251
|
+
- Security research
|
|
252
|
+
- OSINT investigations with proper consent
|
|
253
|
+
- Educational use
|
|
254
|
+
|
|
255
|
+
**Do not use this tool for:**
|
|
256
|
+
- Unauthorised access to systems or data
|
|
257
|
+
- Harvesting information in violation of laws or regulations
|
|
258
|
+
- Any activity that infringes on privacy or intellectual property rights
|
|
259
|
+
|
|
260
|
+
Always ensure you comply with applicable local and international laws. The developer assumes no liability for misuse of this software.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Contributing
|
|
265
|
+
|
|
266
|
+
Pull requests, issues, and feature suggestions are welcome.
|
|
267
|
+
Please open an issue first to discuss what you would like to change.
|
|
268
|
+
|
|
269
|
+
1. Fork the repository
|
|
270
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
271
|
+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
272
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
273
|
+
5. Open a Pull Request
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## License
|
|
278
|
+
|
|
279
|
+
Distributed under the MIT License. See `LICENSE` for more information.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Contact
|
|
284
|
+
|
|
285
|
+
**alzzmarket**
|
|
286
|
+
GitHub: [github.com/amnottdevv/atdork](https://github.com/amnottdevv/atdork)
|
|
287
|
+
|
|
288
|
+
If you find this tool useful, consider leaving a ⭐ on the repository.
|
atdork-1.3.3/README.md
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
|
|
2
|
+
# Atdork
|
|
3
|
+
|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
[](https://github.com/amnottdevv/atdork/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/amnottdevv/atdork/actions)
|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
A lightweight, ethical DuckDuckGo-based OSINT tool for running advanced search queries (dorks) from the command line.
|
|
14
|
+
Atdork helps security researchers, penetration testers, and OSINT analysts quickly discover publicly available information across multiple search engines.
|
|
15
|
+
|
|
16
|
+
**v1.3 introduces built‑in resilience, adaptive rate limiting, SQLite storage, and comprehensive logging — making it production‑ready.**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
- **Interactive & CLI modes** – use an interactive prompt or pass arguments directly.
|
|
23
|
+
- **Multi‑engine support** – choose backend search engines (Google, Bing, DuckDuckGo, Startpage, Yandex, etc.).
|
|
24
|
+
- **Batch processing** – run dozens of dorks from a text file or inline string, now with **multi‑threaded execution** for speed.
|
|
25
|
+
- **Resilience engine** (`--resilient`) – circuit breaker, automatic backend fallback, and intelligent retry handling.
|
|
26
|
+
- **Adaptive rate limiter** (`--adaptive-delay`) – dynamic per‑backend delay that responds to rate‑limits and recovers automatically.
|
|
27
|
+
- **Output validation** – built‑in filters to **remove spam, invalid URLs, and low‑quality results**; optional strict mode.
|
|
28
|
+
- **Vulnerability filter** (`--filter-vuln`) – identify results matching platform‑specific signatures (e.g. WordPress, Joomla).
|
|
29
|
+
- **Proxy rotation** – load proxies from a file, comma‑separated list, or Tor fallback (now with `user:pass@host:port` support).
|
|
30
|
+
- **Strict proxy mode** – prevent leaking your real IP if all proxies fail.
|
|
31
|
+
- **Intelligent proxy manager** – validates format, auto‑removes dead proxies, tracks statistics.
|
|
32
|
+
- **SQLite database** – persistent storage of all queries and results with resume, history, deduplication, and export.
|
|
33
|
+
- **Rotating file logs** – timestamped, module‑aware log files with automatic rotation.
|
|
34
|
+
- **User‑Agent rotation** – built‑in pool of modern User‑Agent strings, automatically rotated.
|
|
35
|
+
- **Flexible output** – save results as TXT, JSON, or CSV; store batch results per query or in a single file.
|
|
36
|
+
- **YAML configuration** – store your favourite settings in `atdork.yaml` for reproducibility.
|
|
37
|
+
- **CI/CD pipeline** – automated tests, linting, and security scanning on every commit.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
1. **Clone the repository**
|
|
44
|
+
```bash
|
|
45
|
+
git clone https://github.com/amnottdevv/atdork.git
|
|
46
|
+
cd atdork
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
2. **Install dependencies**
|
|
50
|
+
```bash
|
|
51
|
+
pip install -r requirements.txt
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Requirements:
|
|
55
|
+
- `duckduckgo-search>=7.0`
|
|
56
|
+
- `rich>=13.0`
|
|
57
|
+
- `pyfiglet>=0.8`
|
|
58
|
+
- `pyyaml>=6.0`
|
|
59
|
+
|
|
60
|
+
3. **(Optional) Tor**
|
|
61
|
+
Install Tor if you plan to use the `--tor` flag. Atdork will automatically connect to `127.0.0.1:9050`.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Quick Start
|
|
66
|
+
|
|
67
|
+
### Interactive mode (guided prompts)
|
|
68
|
+
```bash
|
|
69
|
+
python main.py --interactive
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Command‑line mode
|
|
73
|
+
```bash
|
|
74
|
+
python main.py -q "site:gov filetype:pdf" -r 10
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Batch from file (with resilience and rate limiter)
|
|
78
|
+
```bash
|
|
79
|
+
python main.py --batch-file dorks.txt --resilient --adaptive-delay -r 20 --format json -o results.json
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Proxy with strict mode (now with authentication)
|
|
83
|
+
```bash
|
|
84
|
+
python main.py -q "admin login" --proxy "http://user:pass@proxy:8080" --strict
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Filter vulnerable WordPress results
|
|
88
|
+
```bash
|
|
89
|
+
python main.py -q "inurl:wp-content" -r 30 --filter-vuln wordpress
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Command-Line Arguments
|
|
95
|
+
|
|
96
|
+
| Argument | Description | Default |
|
|
97
|
+
|----------|-------------|---------|
|
|
98
|
+
| `--interactive` | Launch interactive mode | (off) |
|
|
99
|
+
| `-q`, `--query` | Search query / dork | |
|
|
100
|
+
| `-r`, `--max-results` | Maximum number of results (1‑100) | 20 |
|
|
101
|
+
| `--region` | Search region (e.g. `us-en`, `uk-en`) | `us-en` |
|
|
102
|
+
| `--safesearch` | `on`, `moderate`, `off` | `moderate` |
|
|
103
|
+
| `--timelimit` | `d` (day), `w` (week), `m` (month), `y` (year) | (none) |
|
|
104
|
+
| `--backend` | Backend engine(s) – comma‑separated | `auto` |
|
|
105
|
+
| `--user-agent` | Custom User‑Agent (auto‑rotate if empty) | (auto) |
|
|
106
|
+
| `--timeout` | Request timeout (seconds) | 10 |
|
|
107
|
+
| `--retries` | Number of retry attempts on failure | 2 |
|
|
108
|
+
| `--delay` | Delay between requests (seconds) | 0 |
|
|
109
|
+
| `--proxy` | One or more proxy URLs (comma‑separated) | |
|
|
110
|
+
| `--proxy-file` | File containing proxy URLs | |
|
|
111
|
+
| `--tor` | Use Tor SOCKS5 proxy | |
|
|
112
|
+
| `--strict` | Fail instead of falling back to direct connection | `False` |
|
|
113
|
+
| `--proxy-cooldown` | Cooldown after a proxy failure (seconds) | 60 |
|
|
114
|
+
| `--max-failures` | Remove proxy after N consecutive failures | 3 |
|
|
115
|
+
| `--resilient` | Enable resilience mode (circuit breaker + fallback) | `False` |
|
|
116
|
+
| `--adaptive-delay` | Enable adaptive rate limiting per backend | `False` |
|
|
117
|
+
| `--concurrency` | Number of parallel threads for batch | 1 |
|
|
118
|
+
| `--max-fallback-failures` | Consecutive failures before fallback to sequential | 3 |
|
|
119
|
+
| `--batch-file` | File with one query per line | |
|
|
120
|
+
| `--batch-separator` | Separator for inline multiple queries | `;` |
|
|
121
|
+
| `-o`, `--output` | Save results to file | |
|
|
122
|
+
| `--output-dir` | Save each query result as a separate file | |
|
|
123
|
+
| `--format` | Output format: `txt`, `json`, `csv` | `txt` |
|
|
124
|
+
| `--no-snippet` | Hide snippet text in terminal | |
|
|
125
|
+
| `--no-validate` | Disable spam/invalid result filtering | |
|
|
126
|
+
| `--strict-filter` | Stricter filter (require non‑empty snippet) | |
|
|
127
|
+
| `--filter-vuln` | Filter results by vulnerability platform (e.g. `wordpress`) | |
|
|
128
|
+
| `--db-path` | SQLite database path | `atdork.db` |
|
|
129
|
+
| `--resume` | Resume pending queries from the database | |
|
|
130
|
+
| `--history` | Show search history | |
|
|
131
|
+
| `--no-dedup` | Disable global URL deduplication | |
|
|
132
|
+
| `--export-db` | Export database to JSON/CSV | |
|
|
133
|
+
| `--log-file` | Log file path | `atdork.log` |
|
|
134
|
+
| `--no-fallback-backends` | Disable backend fallback | |
|
|
135
|
+
| `--no-verify` | Disable SSL verification (not recommended) | |
|
|
136
|
+
| `--debug` | Enable debug logging | |
|
|
137
|
+
| `--version` | Show version and exit | |
|
|
138
|
+
|
|
139
|
+
**Available backends:** `auto`, `bing`, `brave`, `duckduckgo`, `google`, `grokipedia`, `mojeek`, `startpage`, `yandex`, `yahoo`, `wikipedia`.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Examples
|
|
144
|
+
|
|
145
|
+
### 1. Basic OSINT search with validation
|
|
146
|
+
```bash
|
|
147
|
+
python main.py -q "intitle:index.of mp3" -r 30 --backend google --safesearch off
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 2. High‑anonymity scan with Tor and strict proxy rules
|
|
151
|
+
```bash
|
|
152
|
+
python main.py -q "confidential filetype:xlsx" --tor --strict --delay 2 -r 50 -o secret.json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 3. Batch processing with resilience and rate limiter
|
|
156
|
+
```bash
|
|
157
|
+
python main.py --batch-file pentest_dorks.txt --concurrency 5 --resilient --adaptive-delay --proxy-file proxies.txt --output-dir results --format csv
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 4. Resume an interrupted batch
|
|
161
|
+
```bash
|
|
162
|
+
python main.py --resume
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 5. Export all stored results
|
|
166
|
+
```bash
|
|
167
|
+
python main.py --export-db all_results.json
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 6. Debug run to inspect proxy and thread behaviour
|
|
171
|
+
```bash
|
|
172
|
+
python main.py -q "test" --proxy "http://user:pass@proxy:8080" --debug
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 7. Strict filtering for high‑quality OSINT reports
|
|
176
|
+
```bash
|
|
177
|
+
python main.py -q "financial report filetype:pdf" --strict-filter -o clean_results.json
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Project Structure
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
atdork/
|
|
186
|
+
├── main.py # Entry point, CLI argument parser, orchestration
|
|
187
|
+
├── core/
|
|
188
|
+
│ ├── case/
|
|
189
|
+
│ │ ├── resilience.py # Circuit breaker, backend fallback
|
|
190
|
+
│ │ └── rate_limiter.py # Adaptive per‑backend rate limiting
|
|
191
|
+
│ ├── scanner.py # Search logic, retry, proxy/UA integration
|
|
192
|
+
│ ├── batch_runner.py # Batch execution (sequential/parallel)
|
|
193
|
+
│ ├── proxy_manager.py # Proxy validation, rotation, statistics
|
|
194
|
+
│ ├── database.py # SQLite storage and export
|
|
195
|
+
│ ├── logger.py # Rotating file + console logging
|
|
196
|
+
│ ├── filter_vuln.py # Vulnerability signature filtering
|
|
197
|
+
│ └── config.py # YAML configuration loader
|
|
198
|
+
├── lib/
|
|
199
|
+
│ ├── display.py # Terminal output, banner
|
|
200
|
+
│ ├── storage.py # Save results as TXT / JSON / CSV
|
|
201
|
+
│ └── validator.py # Output filtering (spam, URL validation)
|
|
202
|
+
├── tests/ # 114 unit tests (pytest)
|
|
203
|
+
├── wordlists/ # Vulnerability signature files
|
|
204
|
+
├── presets/ # Dork templates (YAML)
|
|
205
|
+
├── .github/workflows/ci.yml # CI pipeline
|
|
206
|
+
├── atdork.yaml # User configuration file
|
|
207
|
+
├── requirements.txt
|
|
208
|
+
└── README.md
|
|
209
|
+
```
|
|
210
|
+
## activitie graph
|
|
211
|
+

|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Ethical Use & Disclaimer
|
|
215
|
+
|
|
216
|
+
Atdork is intended for **ethical and legal purposes only**, such as:
|
|
217
|
+
- Authorised penetration testing
|
|
218
|
+
- Security research
|
|
219
|
+
- OSINT investigations with proper consent
|
|
220
|
+
- Educational use
|
|
221
|
+
|
|
222
|
+
**Do not use this tool for:**
|
|
223
|
+
- Unauthorised access to systems or data
|
|
224
|
+
- Harvesting information in violation of laws or regulations
|
|
225
|
+
- Any activity that infringes on privacy or intellectual property rights
|
|
226
|
+
|
|
227
|
+
Always ensure you comply with applicable local and international laws. The developer assumes no liability for misuse of this software.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Contributing
|
|
232
|
+
|
|
233
|
+
Pull requests, issues, and feature suggestions are welcome.
|
|
234
|
+
Please open an issue first to discuss what you would like to change.
|
|
235
|
+
|
|
236
|
+
1. Fork the repository
|
|
237
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
238
|
+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
239
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
240
|
+
5. Open a Pull Request
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## License
|
|
245
|
+
|
|
246
|
+
Distributed under the MIT License. See `LICENSE` for more information.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Contact
|
|
251
|
+
|
|
252
|
+
**alzzmarket**
|
|
253
|
+
GitHub: [github.com/amnottdevv/atdork](https://github.com/amnottdevv/atdork)
|
|
254
|
+
|
|
255
|
+
If you find this tool useful, consider leaving a ⭐ on the repository.
|