Advanced Interactive Web Path Discovery Tool
ek0ms savi0r
Sentinel is a feature-rich, interactive command-line tool for web path enumeration and directory discovery.It combines the power of asynchronous scanning with comprehensive reporting capabilities.
IMPORTANT: Unauthorized scanning of systems you do not own or lack explicit written permission to test is illegal. This tool is intended for legitimate security assessments only. Users are solely responsible for complying with all applicable laws and regulations. The developer assumes no liability for misuse or damage caused by this tool.
git clone https://github.com/ekomsSavior/Sentinel.git
cd Sentinel
pip3 install aiohttp aiofiles tqdm colorama
Optional but recommended for full features:
pip3 install pyperclip netifaces
chmod +x sentinel.py
You can now run the tool directly from the Sentinel directory.
python3 sentinel.py
The tool is fully interactive. After launching, you will be guided through a series of prompts to configure your scan.
| Prompt | Description |
|---|---|
| Target URL | The base URL to scan (must start with http:// or https://) |
| Wordlist path | Path to your wordlist file (e.g., /usr/share/wordlists/dirb/common.txt) |
| Concurrent requests | Number of simultaneous connections (default: 50) |
| Max requests per second | Rate limiting (0 = unlimited) |
| Delay between requests | Pause between requests in seconds |
| Request timeout | Maximum wait time per request in seconds |
| HTTP method | GET, POST, HEAD, etc. (default: GET) |
| Custom headers | Add headers like "User-Agent: Sentinel/1.0" |
| Cookie data | Session cookies for authenticated scans |
| File extensions | Append extensions like php,html,asp |
| Match codes | Only show specific status codes (e.g., 200,301) |
| Filter codes | Exclude specific status codes (e.g., 404) |
| Filter sizes | Exclude specific content sizes (e.g., 0,1234) |
| Regex filter | Filter URLs by path pattern |
| Recursive scanning | Enable/disable subdirectory discovery |
| Max recursion depth | How deep to scan (if recursive enabled) |
| Content fingerprinting | Enable MD5 duplicate detection |
| Save results | Output file path (optional) |
| Output format | text, json, or csv |
| Generate report | Create executive summary |
python3 sentinel.py
--- Configuration ---
[?] Enter target URL: https://example.com
[?] Path to wordlist file: /usr/share/wordlists/dirb/common.txt
[?] Concurrent requests (default 50): 100
[?] Max requests per second (0 for unlimited): 50
[?] Delay between requests in seconds: 0
[?] Request timeout in seconds (default 10): 5
[?] HTTP method (GET/POST/HEAD/etc.) [GET]: GET
[?] File extensions to try: php,html
[?] Enable recursive directory scanning? (y/N): y
[?] Maximum recursion depth (default 2): 2
[?] Enable content fingerprinting? (Y/n): Y
[?] Generate executive report? (Y/n): Y
--- Starting Scan ---
[*] Loaded 4614 base words
[*] Wildcard baseline: Status 404, Size 162
Scanning depth 0: 100%|████████████| 13842/13842 [00:45<00:00, 304.21req/s]
[+] https://example.com/admin/ (Status: 403, Size: 294)
[+] https://example.com/robots.txt (Status: 200, Size: 126)
...
[*] Scan completed. Found 23 interesting items.
[+] Report saved to: /home/user/sentinel_reports/example.com_20250309_143022.txt
For anonymity or routing through proxy chains:
proxychains python3 sentinel.py
For optimal results, use comprehensive wordlists:
git clone https://github.com/danielmiessler/SecLists.git/usr/share/wordlists/dirb/common.txt/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txtIf you specify an output file, results are saved in your chosen format (text, JSON, or CSV) with full details including redirect chains and timestamps.
Military-grade reports are automatically saved to ~/sentinel_reports/ with filenames formatted as target_timestamp.txt. Each report includes:
Example report excerpt:
================================================================================
SENTINEL EXECUTIVE REPORT
================================================================================
Report generated: 2025-03-09 14:30:22
Target: https://example.com
Wordlist: /usr/share/wordlists/dirb/common.txt
Scan duration: 0:01:23.456789
--- NETWORK INFO ---
Interface: wlan0
IP Address: 10.0.0.124
MAC Address: 9c:4e:36:c1:e7:f4
Gateway: 10.0.0.1
--- FINDINGS SUMMARY ---
Total interesting items: 23
By status code:
200: 5
301: 8
403: 6
401: 4
--- RISK ASSESSMENT ---
Critical (accessible resources): 5
High (redirects): 8
Medium (authentication required, forbidden): 10
Low (server errors): 0
| Issue | Solution |
|---|---|
| "Module not found" errors | Install missing dependencies with pip3 |
| No results found | Try a larger wordlist; verify target is reachable; check filters |
| Scan too slow | Increase concurrency, reduce delay, disable rate limiting |
| Too many false positives | Enable wildcard detection and fingerprinting |
| SSL certificate errors | Target may have invalid certs; consider using http:// or ignore (not recommended) |
// click a file to view source