Como montar una botnet con UFONet?
Para uso educativo
Antes de iniciar este post, hago un disclaimer de lo que el lector pueda hacer con la informacion aqui mostrada, esto es con fin meramente educativo y que conozcan la manera en la que se hacen los ataques DoS y DDoS
Introducción
UFONet se ejecuta en diversas plataformas. Requiere Python (>=3) y las siguientes bibliotecas:
Clonamos el repositorio en local.
Se pueden descargar automaticamente todas las bibliotecas requeridas usando (como root):
O se puede instalar manualmente, en sistemas basados en Debian, ejecutando:
En otros sistemas como: Kali, Arch, ParrotSec, Fedora, Red hat, Centos, etc… tambien ejecute:
Origen de las librerias :
- Python: https://www.python.org/downloads/
- PyCurl: http://pycurl.sourceforge.net/
- GeoIP: https://pypi.python.org/pypi/GeoIP/
- Python-geoip: https://pypi.org/project/python-geoip/
- Pygeoip: https://pypi.org/project/pygeoip/
- Whois: https://pypi.python.org/pypi/whois
- PyCrypto: https://pypi.python.org/pypi/pycrypto
- PyRequests: https://pypi.python.org/pypi/requests
- Scapy-Python3: https://pypi.org/project/scapy-python3/
- Leaflet: http://leafletjs.com/ (provided)
Introducción a la herramienta
UFONet es un software libre, P2P y criptográfico que permite realizar ataques de denegacion de servicios (DoS) y de denegacion distribuida de servicios (DDoS), en la capa 7 , APP/HTTP (del Open Systems Interconnection model ) mediante la explotacion de una vulnerabilidad Open Redirect en sitios web de terceros para asi actuar como botner en la capa 3 (Red) abusando del protocolo.
Tambien funciona como una DarkNET encriptada para publicar y recibir contenido mediante la creacion de una red globar cliente / servidor.
Cómo se utiliza?
El uso de esta herramienta es con el siguiente comando:
Opciones
Common Flags
Opción | Versión corta | Descripcion |
---|---|---|
–version | muestra el número de versión del programa | |
–help | -h | Muestra este mensaje de ayuda |
–verbose | muestra el número de versión del programa | |
–version | -v | activa verbose en las solicitudes |
–examples | imprime algunos ejemplos | |
–timeline | muestra la línea de tiempo del código del programa | |
–update | la comprobación de la última versión estable | |
–check-tor | comprueba si Tor esta correctamente instalado | |
–force-ssl | fuerza el uso de solicitudes SSL/HTTPS | |
–force-yes | establezca ‘SÍ’ en todas las preguntas | |
–gui | Activa la interfaz grafica en el puerto 9999 |
Herramientas
Opción | Versión corta | Descripcion |
---|---|---|
–crypter | Cifrar/descifrar mensajes usando AES256+HMAC-SHA1 | |
–network | Mostrar información sobre su red (MAC, IP’s) | |
–xray=XRAY | Escáner de puerto rápido (por ejemplo: –xray ‘http(s)://target-com’) | |
–xray-ps=XRAYPS | Establecer rango de puertos para escanear (por ejemplo: –xray-ps ‘1-1024’) |
Configuració de las peticiones
Opción | Versión corta | Descripcion |
---|---|---|
–proxy=PROXY | Usar servidor proxy (por ejemplo: - -proxy ‘http://127.0.0.1:8118’) | |
–user-agent=AGENT | Use otro encabezado HTTP User-Agent (predeterminado: SPOOFED) | |
–referer=REFERER | Use otro encabezado HTTP Referer (predeterminado: SPOOFED) | |
–host=HOST | Use otro encabezado de host HTTP (predeterminado: NINGUNO) | |
–xforw | Configure su HTTP X-Forwarded-For con valores de IP aleatorios | |
–xclient | Establezca su HTTP X-Client-IP con valores de IP aleatorios | |
–timeout=TIMEOUT | Seleccione su tiempo de espera (predeterminado: 5) | |
–retries=RETRIES | Reintenta cuando la conexión se agota (predeterminado: 0) | |
–threads=THREADS | Número máximo de solicitudes HTTP concurrentes (predeterminado: 5) | |
–delay=DELAY | Retraso entre cada solicitud HTTP (predeterminado: 0) |
Busqueda de Zombies
Opción | Versión corta | Descripcion |
---|---|---|
–auto-search | Buscar automáticamente ‘zombies’ (¡puede llevar tiempo!) | |
-s | -s | Busca desde un “dork” (ej.: -s ‘proxy.php?url=’) |
–sd=DORKS | Buscar desde el archivo ‘dorks’ (ej.: –sd ‘botnet/dorks.txt’) | |
–sn=RESULTS | Establecer el número máximo de resultados para el motor (predeterminado: 10) | |
–se=ENGINE | Motor de búsqueda para ‘dorking’ (predeterminado: DuckDuckGo) | |
–sa | Buscar masivamente usando todos los motores (¡puede tomar tiempo!) | |
—sax=ENGINE | Excluye motores cuando se realizan búsquedas masivas (por ejemplo: ‘Bing,Yahoo’) |
Probar la botnet
Opción | Versión corta | Descripcion |
---|---|---|
–test-offline | Comprobación rápida para descartar bots fuera de línea | |
–test-all | Actualizar TODO el estado de botnet (puede llevar tiempo!) | |
-t | -t | Actualizar el estado de ‘zombies’ (por ejemplo: -t ‘botnet/zombies.txt’ ) |
–attack-me | Ordene a los ‘zombis’ que lo ataquen (se requiere NAT!) |
Comunidad
Opción | Versión corta | Descripcion |
---|---|---|
–deploy | Implemente datos para compartir en ‘ /var/www/ufonet/’ | |
–grider | Crear un ‘grider’ para compartir ‘estadísticas/juegos de guerra/mensajes’ | |
–black-hole | Generar un ‘agujero negro’ para compartir ‘zombis’ | |
–up-to=UPIP | Subir ‘zombies’ a IP (ej: –up- para ‘255.255.1.1’) | |
–down-to=DIP | Subir ‘zombies’ a IP (ej: –up- para ‘255.255.1.1’) | |
–upload-zombies | Subir ‘zombies’ a la comunidad | |
–udownload-zombies | Descargar ‘zombies’ a la comunidad | |
–upload-github | Subir ‘zombies’ a GitHub | |
–download | Descargar ‘zombies’ de GitHub |
Objetivo de investigacion
Opción | Versión corta | Descripcion |
---|---|---|
-i | -i | Buscar el archivo más grande (por ejemplo: -i ‘http(s)://target.com’) |
-x | -x | Examinar la configuración del servidor web (+CVE, +detección WAF) |
Configuracion de ataques
Opción | Versión corta | Descripcion |
---|---|---|
-a=TARGET | -a | [DDoS] ataca un objetivo (ej: -a ‘http(s)://target.com’) |
-f=TARGET_LIST | -f | [DDoS] ataca una lista de objetivos (ej: -f ‘targets.txt’) |
-b=PLACE | -b | Set lugar para atacar (ej: -b ‘/path/big.jpg’) |
-r=ROUNDS | -r | Establece el número de rondas (por ejemplo: -r ‘1000’) (predeterminado: 1) |
Configuraciones Adicionales
Opción | Versión corta | Descripcion |
---|---|---|
–no-droids | Deshabilitar redireccionadores ‘DROIDS’ | |
–no-ucavs | Deshabilitar verificadores ‘UCAVS’ | |
–no-aliens | Deshabilitar el abuso web de ‘ALIENS’ | |
–no-rpcs | Deshabilitar los reflectores ‘XML-RPCs’ | |
–no-head | Deshabilitar ‘Is target up?’ Comprobación inicial | |
–no-scan | Desactivar la comprobación de ronda de ‘Escanear escudos’ | |
–no-purge | Desactivar la comprobación de ronda de ‘Purga de zombis’ | |
–expire=EXPIRE | Establece el tiempo de caducidad para ‘Purga de zombis’ (predeterminado: 30) |
Ataques Adicionales
Opción | Versión corta | Descripcion |
---|---|---|
–fraggle=FRAGGLE | ‘Amplificación UDP’ (por ejemplo: –fraggle 101) [DDoS] | |
–tachyon=TACHYON | ‘Amplificación DNS’ (ej: –tachyon 101) [DDoS] | |
–monlist=MONLIST | ‘Amplificación NTP’ (ej: –monlist 101) [DDoS] | |
–smurf=SMURF | ‘Amplificación ICMP ‘ (ej: –smurf 101) [DDoS] | |
–sniper=SNIPER | ‘SNMP amplification’ (ej: –sniper 101) [DDoS] | |
–spray=SPRAY | ‘reflejo TCP-SYN’ (ej: –spray 101) [DDoS] | |
–db=DBSTRESS | ‘HTTP-DB flood’ (ej: –db ‘search.php?q=’) [DDoS] | |
–loic=LOIC | ‘HTTP-FAST flood’ (por ejemplo: – loic 101) [DoS] | |
–loris=LORIS | ‘HTTP-SLOW flood’ (por ejemplo: –loris 101) [DoS] | |
—ufosyn=UFOSYN | ‘TCP-SYN flood’ (por ejemplo: –ufosyn 101) [DoS] | |
—xmas=XMAS | ‘TCP-XMAS flood’ (por ejemplo: –xmas 101) [DoS] | |
—nuke=NUKE | ‘TCP-STARVATION flood’ (por ejemplo: –nuke 101) [DoS] | |
—ufoack=UFOACK | ‘TCP-ACK flood’ (por ejemplo: –ufoack 101) [DoS] | |
—uforst=UFORST | ‘TCP-RST flood’ (p. ej.: –uforst 101) [DoS] | |
–droper=DROPER | ‘IP-FRAGMENTATION flood’ (p. ej.: –droper 101) [DoS] | |
–overlap=OVERLAP | ‘IP-OVERLAP flood’ (p. ej.: –droper 101) [DoS] | |
–pinger | ‘ICMP flood’ (por ejemplo: –pinger 101) [DoS] | |
–ufoudp=UFOUDP | ‘UDP flood’ (ex: –ufoudp 101) [DoS] |
Para descargar los zombies
de la comunidad se usa:
En este punto es donde la cosa se pone interesante
Se recomienda completamente hacer las pruebas dentro de una maquina virtual con disco duro cifrado, asi como entrar en anonimato desde una red Tor
Como root ejecutamos los siguientes comandos
para poder encontrar los servidores web vulnerables a Open Redirect a traves de los dorks que ya existen por defecto