Puntos Finales de la API

Esta página documenta todos los puntos finales o rutas (endpoints en inglés) disponibles de la API de Tráfico No Deseado. Cada punto final requiere el encabezado X-API-Key y el encabezado Accept: application/json. Se aplican límites de tasa: 100 solicitudes/minuto para la mayoría de los puntos finales, 50 solicitudes/minuto para /sessions, /attempts y /malware.

Esta es la lista completa de puntos finales:

La definición de los tipos de tráfico no deseado utilizados en toda la API es la siguiente:

Credenciales de Intento

GET /attempt-credentials

Obtiene una lista de credenciales únicas utilizadas en intentos de inicio de sesión, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-credentials

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempt_credentials": "!!Huawei||@HuaweiHgw",
      "numberAttacks": "5",
      "numberScans": "0"
    },
    {
      "attempt_credentials": "1234||1234",
      "numberAttacks": "3",
      "numberScans": "0"
    }
  ]
}

GET /attempt-credentials/{credentials}

Obtiene detalles para credenciales específicas (formato: usuario||contraseña, codificado en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-credentials/root%7C%7Cxc3511

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempt_credentials": "root||xc3511",
    "numberAttacks": "4526",
    "numberScans": "0"
  }
}

Inicios de Sesión de Intento

GET /attempt-logins

Obtiene conteos de intentos de inicio de sesión exitosos y fallidos. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-logins

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempt_login": "false",
      "numberAttacks": "3572",
      "numberScans": "0"
    },
    {
      "attempt_login": "true",
      "numberAttacks": "4526",
      "numberScans": "0"
    }
  ]
}

GET /attempt-logins/{login}

Obtiene detalles para un valor específico de éxito de inicio de sesión (true o false).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-logins/true

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempt_login": "true",
    "numberAttacks": "4526",
    "numberScans": "0"
  }
}

Contraseñas de Intento

GET /attempt-passwords

Obtiene una lista de contraseñas utilizadas en intentos de inicio de sesión, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-passwords

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempt_password": "xc3511",
      "numberAttacks": "4526",
      "numberScans": "0"
    },
    {
      "attempt_password": "admin",
      "numberAttacks": "187",
      "numberScans": "0"
    }
  ]
}

GET /attempt-passwords/{password}

Obtiene detalles para una contraseña específica (codificada en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-passwords/xc3511

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempt_password": "xc3511",
    "numberAttacks": "4526",
    "numberScans": "0"
  }
}

Nombres de Usuario de Intento

GET /attempt-usernames

Obtiene una lista de nombres de usuario utilizados en intentos de inicio de sesión, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-usernames

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempt_username": "root",
      "numberAttacks": "3923",
      "numberScans": "0"
    },
    {
      "attempt_username": "admin",
      "numberAttacks": "204",
      "numberScans": "0"
    }
  ]
}

GET /attempt-usernames/{username}

Obtiene detalles para un nombre de usuario específico (codificado en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempt-usernames/root

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempt_username": "root",
    "numberAttacks": "3923",
    "numberScans": "0"
  }
}

Intentos

GET /attempts

Obtiene una lista paginada de intentos de inicio de sesión con detalles de sesión asociados. Admite filtros simples y complejos y paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" "https://defrancisco.us/unwanted-traffic/attempts?dst-ip=192.168.0.96&limit=2"

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempt_credentials": "root||xc3511",
      "attempt_id": 1,
      "attempt_login": "true",
      "attempt_password": "xc3511",
      "attempt_session": "2a58f17a436b",
      "attempt_username": "root",
      "sessions": {
        "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
        "dst_asn": 7922,
        "dst_country": "United States",
        "dst_ip": "192.168.0.96",
        "dst_port": 2723,
        "duration": 1.23172,
        "protocol": "telnet",
        "sensor": "raspberrypi",
        "session": "2a58f17a436b",
        "session_id": 1,
        "src_asn": 4766,
        "src_country": "South Korea",
        "src_ip": "192.168.1.100",
        "src_port": 61248,
        "timestamp": "Sun, 23 Feb 2025 00:00:01 GMT",
        "traffic_type": "attack"
      }
    },
    {
      "attempt_credentials": "root||xc3511",
      "attempt_id": 2,
      "attempt_login": "true",
      "attempt_password": "xc3511",
      "attempt_session": "818fa72b39c1",
      "attempt_username": "root",
      "sessions": {
        "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
        "dst_asn": 7922,
        "dst_country": "United States",
        "dst_ip": "192.168.0.96",
        "dst_port": 2723,
        "duration": 1.20777,
        "protocol": "telnet",
        "sensor": "raspberrypi",
        "session": "818fa72b39c1",
        "session_id": 2,
        "src_asn": 4766,
        "src_country": "South Korea",
        "src_ip": "192.168.1.100",
        "src_port": 61254,
        "timestamp": "Sun, 23 Feb 2025 00:00:02 GMT",
        "traffic_type": "attack"
      }
    }
  ],
  "pagination": {
    "limit": 2,
    "offset": 0,
    "totalRecords": 8098
  }
}

GET /attempts/{id}

Obtiene detalles de un intento de inicio de sesión específico por su ID, incluyendo detalles de sesión asociados.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/attempts/1

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempt_credentials": "root||xc3511",
    "attempt_id": 1,
    "attempt_login": "true",
    "attempt_password": "xc3511",
    "attempt_session": "2a58f17a436b",
    "attempt_username": "root",
    "sessions": {
      "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
      "dst_asn": 7922,
      "dst_country": "United States",
      "dst_ip": "192.168.0.96",
      "dst_port": 2723,
      "duration": 1.23172,
      "protocol": "telnet",
      "sensor": "raspberrypi",
      "session": "2a58f17a436b",
      "session_id": 1,
      "src_asn": 4766,
      "src_country": "South Korea",
      "src_ip": "192.168.1.100",
      "src_port": 61248,
      "timestamp": "Sun, 23 Feb 2025 00:00:01 GMT",
      "traffic_type": "attack"
    }
  }
}

Comandos

GET /commands

Obtiene una lista de comandos ejecutados durante las sesiones, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/commands

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "commands": "whoami",
      "numberAttacks": "13",
      "numberScans": "0"
    },
    {
      "commands": "sh; shell; enable; system;",
      "numberAttacks": "6850",
      "numberScans": "0"
    }
  ]
}

GET /commands/{command}

Obtiene detalles para sesiones que contienen una subcadena de comando específica (codificada en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/commands/whoami

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "commands": "whoami",
    "numberAttacks": "13",
    "numberScans": "0"
  }
}

Malware

GET /malware

Obtiene una lista paginada de registros de malware con detalles de sesión asociados. Admite filtros simples y complejos y paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" "https://defrancisco.us/unwanted-traffic/malware?dst-ip=192.168.0.96&limit=2"

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "malware_hash": "a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2",
      "malware_id": 1,
      "malware_session": "82e4335b3bb3",
      "malware_site": "",
      "malware_type": "redir",
      "sessions": {
        "commands": "cd ~; chattr -ia .ssh; lockr -ia .ssh; cd ~ && rm -rf .ssh && mkdir .ssh && echo \\\"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr\\\">>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~",
        "dst_asn": 7922,
        "dst_country": "United States",
        "dst_ip": "192.168.0.96",
        "dst_port": 2722,
        "duration": 7.96019,
        "protocol": "ssh",
        "sensor": "raspberrypi",
        "session": "82e4335b3bb3",
        "session_id": 666,
        "src_asn": 142002,
        "src_country": "India",
        "src_ip": "192.168.1.100",
        "src_port": 51194,
        "timestamp": "Sun, 23 Feb 2025 03:03:36 GMT",
        "traffic_type": "attack"
      }
    },
    {
      "malware_hash": "a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2",
      "malware_id": 2,
      "malware_session": "c5ebe32322a1",
      "malware_site": "",
      "malware_type": "redir",
      "sessions": {
        "commands": "cd ~; chattr -ia .ssh; lockr -ia .ssh; cd ~ && rm -rf .ssh && mkdir .ssh && echo \\\"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr\\\">>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~",
        "dst_asn": 7922,
        "dst_country": "United States",
        "dst_ip": "192.168.0.96",
        "dst_port": 2722,
        "duration": 5.16221,
        "protocol": "ssh",
        "sensor": "raspberrypi",
        "session": "c5ebe32322a1",
        "session_id": 744,
        "src_asn": 396982,
        "src_country": "Taiwan",
        "src_ip": "192.168.1.100",
        "src_port": 57204,
        "timestamp": "Sun, 23 Feb 2025 03:11:28 GMT",
        "traffic_type": "attack"
      }
    }
  ],
  "pagination": {
    "limit": 2,
    "offset": 0,
    "totalRecords": 777
  }
}

GET /malware/{id}

Obtiene detalles de un registro de malware específico por su ID, incluyendo detalles de sesión asociados.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware/1

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "malware_hash": "a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2",
    "malware_id": 1,
    "malware_session": "82e4335b3bb3",
    "malware_site": "",
    "malware_type": "redir",
    "sessions": {
      "commands": "cd ~; chattr -ia .ssh; lockr -ia .ssh; cd ~ && rm -rf .ssh && mkdir .ssh && echo \\\"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr\\\">>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~",
      "dst_asn": 7922,
      "dst_country": "United States",
      "dst_ip": "192.168.0.96",
      "dst_port": 2722,
      "duration": 7.96019,
      "protocol": "ssh",
      "sensor": "raspberrypi",
      "session": "82e4335b3bb3",
      "session_id": 666,
      "src_asn": 142002,
      "src_country": "India",
      "src_ip": "192.168.1.100",
      "src_port": 51194,
      "timestamp": "Sun, 23 Feb 2025 03:03:36 GMT",
      "traffic_type": "attack"
    }
  }
}

Hashes de Malware

GET /malware-hashes

Obtiene una lista de hashes de malware, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware-hashes

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "malware_hash": "a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2",
      "numberAttacks": "678",
      "numberScans": "0"
    }
  ]
}

GET /malware-hashes/{hash}

Obtiene detalles para un hash de malware específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware-hashes/a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "malware_hash": "a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2",
    "numberAttacks": "678",
    "numberScans": "0"
  }
}

Sitios de Malware

GET /malware-sites

Obtiene una lista de sitios de malware, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware-sites

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "malware_site": "http://37.44.238.88",
      "numberAttacks": "34",
      "numberScans": "0"
    }
  ]
}

GET /malware-sites/{site}

Obtiene detalles para un sitio de malware específico (doble codificación en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" "https://defrancisco.us/unwanted-traffic/malware-sites/http:%252f%252f37.44.238.88"

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "malware_site": "http://37.44.238.88",
    "numberAttacks": "34",
    "numberScans": "0"
  }
}

Observa la doble codificación en URL de la barra diagonal (%252f): el primer paso de decodificación decodifica %25 como %, resultando en %2f; el segundo paso decodifica %2f como /. Esto es necesario para evitar una restricción de seguridad en el manejo de barras por parte del servidor Apache subyacente que aloja la API.

Tipos de Malware

GET /malware-types

Obtiene una lista de tipos de malware, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware-types

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "malware_type": "redir",
      "numberAttacks": "678",
      "numberScans": "0"
    },
    {
      "malware_type": "download",
      "numberAttacks": "39",
      "numberScans": "0"
    }
  ]
}

GET /malware-types/{type}

Obtiene detalles para un tipo de malware específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/malware-types/redir

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "malware_type": "redir",
    "numberAttacks": "678",
    "numberScans": "0"
  }
}

ASNs de Origen

GET /origin-asns

Obtiene una lista de ASNs de origen, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-asns

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "src_asn": 4766,
      "numberAttacks": "6850",
      "numberScans": "0"
    }
  ]
}

GET /origin-asns/{asn}

Obtiene detalles para un ASN de origen específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-asns/4766

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "src_asn": 4766,
    "numberAttacks": "6850",
    "numberScans": "0"
  }
}

Países de Origen

GET /origin-countries

Obtiene una lista de países de origen, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-countries

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "src_country": "South Korea",
      "numberAttacks": "6850",
      "numberScans": "0"
    }
  ]
}

GET /origin-countries/{country}

Obtiene detalles para un país de origen específico (codificado en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-countries/South%20Korea

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "src_country": "South Korea",
    "numberAttacks": "6850",
    "numberScans": "0"
  }
}

IPs de Origen

GET /origin-ips

Obtiene una lista de direcciones IP de origen, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-ips

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "src_ip": "192.168.1.100",
      "numberAttacks": "7604",
      "numberScans": "0"
    }
  ]
}

GET /origin-ips/{ip}

Obtiene detalles para una dirección IP de origen específica.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-ips/192.168.1.100

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "src_ip": "192.168.1.100",
    "numberAttacks": "7604",
    "numberScans": "0"
  }
}

Puertos de Origen

GET /origin-ports

Obtiene una lista de puertos de origen, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-ports

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "src_port": 61248,
      "numberAttacks": "1",
      "numberScans": "0"
    }
  ]
}

GET /origin-ports/{port}

Obtiene detalles para un puerto de origen específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/origin-ports/61248

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "src_port": 61248,
    "numberAttacks": "1",
    "numberScans": "0"
  }
}

Protocolos

GET /protocols

Obtiene una lista de protocolos utilizados para el acceso remoto al honeypot, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/protocols

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "numberAttacks": "2322655",
      "numberScans": "269982",
      "protocol": "ssh"
    },
    {
      "numberAttacks": "126208",
      "numberScans": "343900",
      "protocol": "telnet"
    }
  ]
}

GET /protocols/{protocol}

Obtiene detalles para un protocolo de acceso remoto específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/protocols/ssh

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "numberAttacks": "2322655",
    "numberScans": "269982",
    "protocol": "ssh"
  }
}

Sensores

GET /sensors

Obtiene una lista de nombres de sensores de honeypot, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/sensors

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "numberAttacks": "2448863",
      "numberScans": "613882",
      "sensor": "raspberrypi"
    }
  ]
}

GET /sensors/{sensor}

Obtiene detalles para un nombre de sensor de honeypot específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/sensors/raspberrypi

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "numberAttacks": "2448863",
    "numberScans": "613882",
    "sensor": "raspberrypi"
  }
}

Sesiones

GET /sessions

Obtiene una lista paginada de sesiones con intentos y malware asociados. Admite filtros simples y complejos (ver Filtros) y paginación (ver Paginación).

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" "https://defrancisco.us/unwanted-traffic/sessions?dst-ip=192.168.0.96&limit=2"

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "attempts": [
        {
          "attempt_credentials": "root||xc3511",
          "attempt_id": 1,
          "attempt_login": "true",
          "attempt_password": "xc3511",
          "attempt_session": "2a58f17a436b",
          "attempt_username": "root"
        }
      ],
      "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
      "dst_asn": 7922,
      "dst_country": "United States",
      "dst_ip": "192.168.0.96",
      "dst_port": 2723,
      "duration": 1.23172,
      "malware": [],
      "protocol": "telnet",
      "sensor": "raspberrypi",
      "session": "2a58f17a436b",
      "session_id": 1,
      "src_asn": 4766,
      "src_country": "South Korea",
      "src_ip": "192.168.1.100",
      "src_port": 61248,
      "timestamp": "Sun, 23 Feb 2025 00:00:01 GMT",
      "traffic_type": "attack"
    },
    {
      "attempts": [
        {
          "attempt_credentials": "root||xc3511",
          "attempt_id": 2,
          "attempt_login": "true",
          "attempt_password": "xc3511",
          "attempt_session": "818fa72b39c1",
          "attempt_username": "root"
        }
      ],
      "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
      "dst_asn": 7922,
      "dst_country": "United States",
      "dst_ip": "192.168.0.96",
      "dst_port": 2723,
      "duration": 1.20777,
      "malware": [],
      "protocol": "telnet",
      "sensor": "raspberrypi",
      "session": "818fa72b39c1",
      "session_id": 2,
      "src_asn": 4766,
      "src_country": "South Korea",
      "src_ip": "192.168.1.100",
      "src_port": 61254,
      "timestamp": "Sun, 23 Feb 2025 00:00:02 GMT",
      "traffic_type": "attack"
    }
  ],
  "pagination": {
    "limit": 2,
    "offset": 0,
    "totalRecords": 8098
  }
}

GET /sessions/{id}

Obtiene detalles de una sesión específica por su ID, incluyendo intentos y malware asociados.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/sessions/1

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "attempts": [
      {
        "attempt_credentials": "root||xc3511",
        "attempt_id": 1,
        "attempt_login": "true",
        "attempt_password": "xc3511",
        "attempt_session": "2a58f17a436b",
        "attempt_username": "root"
      }
    ],
    "commands": "sh; shell; enable; system; ping ;sh; >/usr/.a && cd /usr/; rm -rf .a; >/mnt/.a && cd /mnt/; rm -rf .a; >/var/run/.a && cd /var/run/; rm -rf .a; >/dev/shm/.a && cd /dev/shm/; rm -rf .a; >/etc/.a && cd /etc/; rm -rf .a; >/var/.a && cd /var/; rm -rf .a; >/tmp/.a && cd /tmp/; rm -rf .a; >/dev/.a && cd /dev/; rm -rf .a; >/var/home/user/fw/.a && cd /var/home/user/fw/; rm -rf .a; for i in `cat /proc/mounts|grep tmpfs|grep -v noexec|cut -d ' ' -f 2`; do >$i/.a && cd $i;done; cat /proc/mounts | grep tmpfs | grep -v noexec | cut -d   -f 2; /bin/busybox wget --help; /bin/busybox ftpget --help; /bin/busybox echo -e '\\\\x67\\\\x61\\\\x79\\\\x66\\\\x67\\\\x74';",
    "dst_asn": 7922,
    "dst_country": "United States",
    "dst_ip": "192.168.0.96",
    "dst_port": 2723,
    "duration": 1.23172,
    "malware": [],
    "protocol": "telnet",
    "sensor": "raspberrypi",
    "session": "2a58f17a436b",
    "session_id": 1,
    "src_asn": 4766,
    "src_country": "South Korea",
    "src_ip": "192.168.1.100",
    "src_port": 61248,
    "timestamp": "Sun, 23 Feb 2025 00:00:01 GMT",
    "traffic_type": "attack"
  }
}

ASNs de Destino

GET /target-asns

Obtiene una lista de ASNs de destino, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-asns

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "dst_asn": 7922,
      "numberAttacks": "2448863",
      "numberScans": "613882"
    }
  ]
}

GET /target-asns/{asn}

Obtiene detalles para un ASN de destino específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-asns/7922

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "dst_asn": 7922,
    "numberAttacks": "2448863",
    "numberScans": "613882"
  }
}

Países de Destino

GET /target-countries

Obtiene una lista de países de destino, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-countries

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "dst_country": "United States",
      "numberAttacks": "2448863",
      "numberScans": "613882"
    }
  ]
}

GET /target-countries/{country}

Obtiene detalles para un país de destino específico (codificado en URL).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-countries/United%20States

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "dst_country": "United States",
    "numberAttacks": "2448863",
    "numberScans": "613882"
  }
}

IPs de Destino

GET /target-ips

Obtiene una lista de direcciones IP de destino, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-ips

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "dst_ip": "192.168.0.96",
      "numberAttacks": "8098",
      "numberScans": "0"
    }
  ]
}

GET /target-ips/{ip}

Obtiene detalles para una dirección IP de destino específica.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-ips/192.168.0.96

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "dst_ip": "192.168.0.96",
    "numberAttacks": "8098",
    "numberScans": "0"
  }
}

Puertos de Destino

GET /target-ports

Obtiene una lista de puertos de destino, con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-ports

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "dst_port": 2723,
      "numberAttacks": "8098",
      "numberScans": "0"
    }
  ]
}

GET /target-ports/{port}

Obtiene detalles para un puerto de destino específico.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/target-ports/2723

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "dst_port": 2723,
    "numberAttacks": "8098",
    "numberScans": "0"
  }
}

Prueba

GET /test

Punto final de prueba que verifica la autenticación de la API y devuelve un mensaje de éxito. Sin paginación.

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/test

Ejemplo de Respuesta:

{
  "status": "success",
  "message": "Unwanted Traffic API is running"
}

Tipos de Tráfico

GET /traffic-types

Obtiene una lista de tipos de tráfico (attack, scan), con conteos de escaneos y ataques. Sin paginación.

Parámetros de Consulta:

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/traffic-types

Ejemplo de Respuesta:

{
  "status": "success",
  "data": [
    {
      "numberAttacks": "2448863",
      "numberScans": "0",
      "traffic_type": "attack"
    },
    {
      "numberAttacks": "0",
      "numberScans": "613882",
      "traffic_type": "scan"
    }
  ]
}

GET /traffic-types/{type}

Obtiene detalles para un tipo de tráfico específico (attack o scan).

Ejemplo de Solicitud:

curl -H "X-API-Key: YOUR_API_KEY" -H "Accept: application/json" https://defrancisco.us/unwanted-traffic/traffic-types/attack

Ejemplo de Respuesta:

{
  "status": "success",
  "data": {
    "numberAttacks": "2448863",
    "numberScans": "0",
    "traffic_type": "attack"
  }
}