Genera dominios malvados de Unicode para IDN Homograph Attack y detectalos. Una método que nos puede ayudar a encriptar urls
Los ataques homográficos en nombres de dominio internacionalizados (IDN) son aquellos en los que se registran nombres de dominio maliciosos que en apariencia son idénticos o muy similares a los que intentan suplantar. Se consiguen gracias a las similitudes de algunos caracteres de diferentes idiomas.
Por ejemplo, los caracteres a, с, е, о, р, х, у son idénticos en la tabla UNICODE U+0430 (estándar de codificación para el español, inglés, etc.) y U+0061 (caracteres círilicos). El resultado a la hora de comparar dominios fraudulentos con los originales es inapreciable a la vista, lo cuál es un auténtico regalo para la industria del phishing. ≪ °° ≫
https://github.com/Pericena/Scriptpy/blob/master/evilurl
≪ °° ≫
Este tipo de ataque si vieron en la vulnerabilidad al manejar Unicode y que permitía ataques de Phishing utilizando Punycode o en los dominios con puṇtos debajo de las letras, también utilizados para Phishing.
Mediante la herramienta EvilURL, escrita en Python por UndeadSec, es posible generar fácilmente dominios maliciosos unicode para realizar ataques homográficos IDN y también detectarlos.
Ocurrió porque EVILurl creó facebook.com apareciendo igual con diferentes letras griegas. En mi caso, las palabras a, c, e, o fueron reemplazadas por la letra minúscula cirílica A, el símbolo griego Lunate Sigma, la letra minúscula cirílica Ie, la letra minúscula cirílica O. ≪ °° ≫
≪ °° ≫
Aquí va con todas las URLs MALVADAS o URLS falsas que pueden usarse. Usted podría estar pensando ahora qué? o cual es el uso? Continúa y copia una de las URL y pégala en tu navegador.
por ejemplo: copié la última url que aparece en facebook.com y la pegué en mi navegador y el resultado que obtuve fue algo extraño. ≪ °° ≫
≪ °° ≫
¿Entonces te estarás preguntando qué? ¿Qué hacemos con todas estas URL malvadas?
Ok, entonces esto es lo que pasa. Desde facebook.com es un dominio registrado y nunca podré tenerlo en mis manos.
a) Utilice EvilURL para crear sitios de Facebook falsos.
b) Registro de nombre de dominio: xn-fbk-qzc85c5a5da.com
c) Coloque un enlace malicioso o sitio de phishing en ese dominio.
d) Dale un mensaje a tu víctima pero en lugar de xn-fbk-qzc85c5a5da.com, dale el evilURL: fаϲеbооk.com
Ahora, cuando cree un nombre de dominio, manténgalo como http://www.xn--fbk-qzc85c5a5da.com/ ; y el enlace que compartirás será facebook.com , que copiarás de la URL EVIL.
Requisitos
Sistema operativo windows , linux ,termux
descargar python 2 y 3.x
git clone https://github.com/Pericena/Scriptpy/blob/master/evilurl
Probado en
Kali Linux - Edición Rolling
Linux Mint - 18.3 Sylvia
Ubuntu - 16.04.3 LTS
Windows 10
Ejecutar
python evilurl.py
Módulo CheckURL.
Ahora puedes comprobar si un url es malo.
Ahora puedes comprobar la conexión desde una url maligna.
Código
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse, sys, socket
from time import sleep
from os import path
from os import system
def banner():
print(
_____ _ _ _ _ ____ _ ____ _ ___
| ____|_ _(_) | | | | _ \| | / ___| | |_ _|
| _| \ \ / / | | | | | |_) | | _____| | | | | |
| |___ \ V /| | | |_| | _ <| |__|_____| |___| |___ | |
|_____| \_/ |_|_|\___/|_| \_\_____| \____|_____|___| v1.0
Cyber Hacking
)
names = ["Cyrillic Small Letter A",
"Greek Lunate Sigma Symbol",
"Cyrillic Small Letter Ie",
"Cyrillic Small Letter O",
"Cyrillic Small Letter Er",
"Cyrillic Small Letter Dze",
"Cyrillic Small Letter Komi De",
"Cyrillic Small Letter Qa",
"Cyrillic Small Letter We"]
unicodes = ["\u0430", "\u03F2", "\u0435", "\u043E", "\u0440", "\u0455", "\u0501", "\u051B", "\u051D"]
def makeEvil(char, unicd, uninum, newurl, end, checkConnection):
print("[*] Char replaced: {}\n[*] Using Unicode: {}\n[*] Unicode number: {}\n[*] Evil url: {}.{}".format(char, unicd, uninum, newurl, end))
if checkConnection == True:
print(checkURL("{}.{}".format(newurl, end)))
print("-------------------------------")
def generate(fullUrl, checkConnection):
print("\n[ GENERATED EVIL URLS: ]")
url = fullUrl.split(".")[0].lower()
end = fullUrl.split(".")[1].lower()
urlMore = url
urlChars = ""
urlNms = ""
urlUn = ""
if "a" in url:
makeEvil("a", names[0], unicodes[0], url.replace("a", "\u0430"), end, checkConnection)
urlMore = urlMore.replace("a", "\u0430")
urlChars += "a, "
urlNms += names[0] + ", "
urlUn += unicodes[0] + ", "
if "c" in url:
makeEvil("c", names[1], unicodes[1], url.replace("c", "\u03F2"), end, checkConnection)
urlMore = urlMore.replace("c","\u03F2")
urlChars += "c, "
urlNms += names[1] + ", "
urlUn += unicodes[1] + ", "
if "c" in url:
makeEvil("e", names[2], unicodes[2], url.replace("e", "\u0435"), end, checkConnection)
urlMore = urlMore.replace("e", "\u0435")
urlChars += "e, "
urlNms += names[2] + ", "
urlUn += unicodes[2] + ", "
if "o" in url:
makeEvil("o", names[3], unicodes[3], url.replace("o", "\u043E"), end, checkConnection)
urlMore = urlMore.replace("o", "\u043E")
urlChars += "o, "
urlNms += names[3] + ", "
urlUn += unicodes[3] + ", "
if "p" in url:
makeEvil("p", names[4], unicodes[4], url.replace("p", "\u0440"), end, checkConnection)
urlMore = urlMore.replace("p", "\u0440")
urlChars += "p, "
urlNms += names[4] + ", "
urlUn += unicodes[4] + ", "
if "s" in url:
makeEvil("s", names[5], unicodes[5], url.replace("s", "\u0455"), end, checkConnection)
urlMore = urlMore.replace("s", "\u0455")
urlChars += "s, "
urlNms += names[5] + ", "
urlUn += unicodes[5] + ", "
if "d" in url:
makeEvil("d", names[6], unicodes[6], url.replace("d", "\u0501"), end, checkConnection)
urlMore = urlMore.replace("d", "\u0501")
urlChars += "d, "
urlNms += names[6] + ", "
urlUn += unicodes[6] + ", "
if "q" in url:
makeEvil("q", names[7], unicodes[7], url.replace("q", "\u051B"), end, checkConnection)
urlMore = urlMore.replace("q","\u051B")
urlChars += "q, "
urlNms += names[7] + ", "
urlUn += unicodes[7] + ", "
if "w" in url:
makeEvil("w", names[8], unicodes[8], url.replace("w","\u051D"), end, checkConnection)
urlMore = urlMore.replace("w", "\u051D")
urlChars += "w."
urlNms += names[8] + "."
urlUn += unicodes[8] + "."
print ("\n[ MORE EXTENSIVE EVIL URL: ]")
makeEvil(urlChars, urlNms, urlUn, urlMore, end, checkConnection)
def checkURL(url):
try:
socket.gethostbyname(url)
msg = "[*] Connection accepted"
except socket.error:
msg = "[*] Connection refused"
return msg
def checkEvil(url):
bad_chars = ["\u0430", "\u03F2", "\u0435", "\u043E", "\u0440", "\u0455", "\u0501", "\u051B", "\u051D"]
result = [bad_chars[i] for i in range(len(bad_chars)) if bad_chars[i] in url]
if result:
msg = "[*] Evil URL detected: {}".format(url)
msg += "\n[*] Evil characters used: {}".format(result)
else:
msg = "[*] Evil URL NOT detected: {}".format(url)
return msg
if __name__ == "__main__":
banner()
parser = argparse.ArgumentParser(usage="evilurl-cli.py {domain} [options]", description="Command line version of EvilURL")
parser.add_argument("domain", help="Domain name with termination (example.com)")
parser.add_argument("-cE", dest="check", action="store_true", help="Check if url is evil (wont generate evil url)")
parser.add_argument("-cC", dest="checkConnection", action="store_true", help="Check generated/input domain connections")
if len(sys.argv) == 1:
parser.print_help()
sys.exit(1)
args = parser.parse_args()
domain = args.domain
check = args.check
checkConnection = args.checkConnection
if domain == None:
print("Invalid options. Use -h or --help to view available options.")
exit()
if check == True:
print(checkEvil(domain))
if checkConnection == True:
print(checkURL(domain))
else:
generate(domain, checkConnection)
Autor
⇜⇝⇜⇝⇜⇝⇜⇝
------------------------------------------------
Únete a la comunidad Cyber Hacking
ADVERTENCIA: NO INTENTE HACER UN ATAQUE SIN EL PERMISO DE PROPIETARIO DEL SITIO WEB. ES UN PROPÓSITO EDUCATIVO SOLAMENTE. NO ES RESPONSABLE DE NINGÚN TIPO DE PROBLEMA ILEGAL.
PERMANECE LEGAL. GRACIAS!
Si tienes algún problema, deja un comentario. Follow @LPericena
Luishiño
Hola soy Luishiño estudio la carrera de ing. sistemas y este es mi Blog personal aquí es donde me gusta escribir sobre temas que en su momento me interesan. Aveces sobre mi vida personal y principalmente cosas de programación ,desarrollo web.Aplicaciones,Software, programas que yo mismo las desarrollo y cosas básicas de informática. Nadie es como tú y ese es tú súper poder ¯\(°_o)/¯ Sigue mi blog
Mi nombre es Luishiño aquí es donde me gusta escribir sobre temas que en su momento me interesan. Aveces sobre mi vida personal y principalmente cosas de programación ,desarrollo web.Aplicaciones,Software, programas que yo mismo las desarrollo y cosas básicas de informática.