• Script de Python para simular tráfico hacia un servidor Web

    Si estamos interesados en probar los logs de un servidor web de Apache pero todavía no lo tenemos abierto a la WAN, debemos saber que es posible simular tráfico hacia el servidor Web utilizando un script de python:

    import requests
    import random
    import time
    
    def fGenerarIPaleatoria():
            return f"{random.randint(1, 223)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
    
    def fGenerarUserAgentAleatorio():
        lAgentes = [
            "Firefox",
            "Chrome",
            "Chromium",
            "Safari",
            "Brave"
        ]
        return random.choice(lAgentes)
    
    def fEnviarTraficoWeb(pIPaLaQueEnviar):
            lURLSaVisitar = ["/", "/index.html", "/login", "/admin"]
            vIPdeOrigen = fGenerarIPaleatoria()
            tProtocolos = ("http://", "http://")
            vURLfinal = random.choice(tProtocolos) + pIPaLaQueEnviar + random.choice(lURLSaVisitar)
            dCabecerasTCP = {
                    'User-Agent': fGenerarUserAgentAleatorio(),
                    'Forwarded': f'for={vIPdeOrigen}',
                    'X-Forwarded-For':     vIPdeOrigen,
                    'REMOTE_ADDR':         vIPdeOrigen,
                    'X-Real-IP':           vIPdeOrigen,
                    'CF-Connecting-IP':    vIPdeOrigen,
                    'True-Client-IP':      vIPdeOrigen,
                    'X-Cluster-Client-IP': vIPdeOrigen,
                    'Client-IP':           vIPdeOrigen
            }
            try:
                    response = requests.get(vURLfinal, headers=dCabecerasTCP, timeout=5)
                    print(f"  Enviando solicitud a {vURLfinal} desde IP ficticia {vIPdeOrigen} - Resultado: {response.status_code}")
            except requests.exceptions.RequestException as vError:
                    print(f"  Error en la solicitud a {vURLfinal}: {vError}")
    
    if __name__ == '__main__':
            vIPaLaQueEnviar="192.168.20.3"
            while True:
                    fEnviarTraficoWeb(vIPaLaQueEnviar)
                    time.sleep(random.uniform(1.5, 5.5))

    Deja una respuesta