Hacking ético con herramientas python
José Manuel Ortega | @jmortegac
http://jmortega.github.io
http://jmortega.github.io
https://speakerdeck.com/jmortega
Agenda
Introducción al pentesting con python
Herramientas avanzadas
Módulos(Sockets,Requests,Beautifulsoup,Shodan)
Análisis de metadatos
Demo pentesting-tool
Análisis de puertos(nmap,pcapy,scapy)
Introducción al pentesting con python
• Multiplataforma
• Prototipos y pruebas de concepto
• Muchas herramientas y librerías
enfocadas a la seguridad
• Buena documentación
Introducción al pentesting con python
SQL Map
Sparta
• http://sparta.secforce.com
• Pruebas de pentesting en las fases de
exploración y enumeración
The Harvester
https://github.com/laramies/theHarvester
Hacking ético con herramientas Python
W3af
W3af
• Web application attack and audit
framework
• Framework de test de intrusión web
• Escáner de vulnerabilidades
• Permite automatizar las tareas
repetitivas de pentesting
Introducción al pentesting con python
Security Tools builder
• https://github.com/abirtone/STB
Paso de parámetros
import argparse
Ping Scan NetWork
Ping Scan NetWork
Ping Scan NetWork
from subprocess import Popen, PIPE
Sockets module
import socket
socket.
socket(socket.AF_INET,socket.SOCK_STREAM) #TCP
result = sock.connect_ex(('127.0.0.1',80))
if result == 0:
print "Port is open"
else:
print "Port is not open"
Socket port scanner
from socket import AF_INET, SOCK_STREAM, setdefaulttimeout
Socket port scanner
Obtain banner server
Obtain banner server
Socket resolving IP/domain
Socket cliente /servidor
Requests module
Requests library
Requests library
Autenticación HTTP
Basic
Digest
MD5 /SHA
Requests Proxy
http_proxy = "http://10.10.10.10:3000"
https_proxy = "https://10.10.10.10:3000"
ftp_proxy = "ftp://10.10.10.10:3000"
proxyDict = {
"http" : http_proxy,
"https" : https_proxy,
"ftp" : ftp_proxy
}
r = requests.get(url, headers=headers, proxies=proxyDict)
Beautiful Soup
• Parsea y permite extraer información de
documentos HTML.
• Soporta múltiples parsers para tratar
documentos XML,HTML(lxml,html5lib).
• Permite buscar elementos HTML,tales como
enlaces, formularios o cualquier etiqueta
HTML.
Beautiful Soup / extraer links
Beautiful Soup / extraer links
WebCrawler
Scraping images and pdfs
Scraping
Scraping
Shodan
• Rastrear servidores y dispositivos IP
• Obtención de banners
• Escaneo de puertos con el API de
python
Shodan
Shodan
• https://developer.shodan.io
Shodan
import shodan
SHODAN_API_KEY = "insert your API key here"
api = shodan.Shodan(SHODAN_API_KEY)
Shodan API
Shodan Search
Shodan API
Shodan banners
Shodan host info
Shodan ftp anonymous access
DNSPython
• Permite resolver nombres de dominios
a direcciones IP y viceversa
• Existen registros para direcciones
ipv4,ipv6,servidores de correo
DNSPython
Python whois
Python whois
Builtwith
pip install builtwith
builtwith.parse(‘http://www.sh3llcon.es’)
Análisis de metadatos
• Metadatos en documentos PDF
• pyPDF2
• Metadatos en imágenes
• from PIL.ExifTags import TAGS,
GPSTAGS
Análisis de metadatos
Análisis de metadatos
Análisis de metadatos
Análisis de puertos(nmap,scapy)
Python-nmap
Python-nmap
• Automatizar el escaneo de puertos
• Se puede tanto de forma síncrona
como asíncrona
import nmap
#síncrono
nm = nmap.PortScanner()
# nm.scan(‘ip/rango’,’puertos’)
results = nm.scan('127.0.0.1', '22,25,80,443')
Python-nmap
#obtenemos un diccionario con el resultado del scan
print(nm.csv())
import nmap
nm = nmap.PortScanner()
results = nm.scan(arguments="-n -A -sT -p22,80,8080,5432,3306")
NmapScanner
NmapScanner
for port in port_list:
NmapScanner().nmapScan(ip, port)
NmapScanner
{"192.168.56.101": [
{"tcp": "21"}, {"tcp": "22"}, {"tcp": "23"}, {"tcp": "25"},
{"tcp": "80"}]
}
Python-nmap
#Asíncrono
nm_async = nmap.PortScannerAsync()
def callback_result(host, scan_result):
print '------------------'
print host, scan_result
nm_async.scan(hosts='192.168.1.0/30', arguments='-sP',
callback=callback_result)
while nm_async .still_scanning():
print("Waiting >>>")
nm_async.wait(2)
Nmap-scripts
• Permiten la programación de rutinas para
encontrar posibles vulnerabilidades en un
objetivo determinado
• Primero determinar si el puerto se encuentra abierto para
posteriormente detectar vulnerabilidades en el servicio
abierto por dicho puerto
nm.scan(arguments="-n -A -p3306 --
script=/usr/share/nmap/scripts/mysql-info.nse")
Nmap-scripts
https://nmap.org/nsedoc/scripts
Nmap-scripts
scapy
• Equivalente al wireshark
• Capturar paquetes
• Filtrar por protocolos
• Leer y escribir pcap
• Analizar el tráfico que genera la red
Scapy commands
• ls(TCP)
Scapy commands
• Generar paquetes
• tcp=IP(dst='google.com‘)/TCP(dport=80)
• Ver información de un paquete
• tcp.show() / tcp.show2()
• Enviar un paquete
• send(tcp) /sendp(tcp)
Scapy commands
• Capturar n paquetes de red
• pkt = sniff(filter="tcp“,count=n)
• Leer pcap
• file=rdpcap('demo.pcap')
• file.summary()
• file.sessions()
• file.show()
Escáner de puertos con scapy
from scapy.all import sr1, IP, TCP
Escáner de red con scapy
from scapy.all import *
Scapy traceroute
Paramiko
• Conexiones ssh
import paramiko
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘127.0.0.1',
username=‘user', password=‘password')
paramiko.util.log_to_file('paramiko.log')
Paramiko
• PyCrypto
• Criptography
• Soporta autenticación mediante una
SSH key en lugar de user y password
Paramiko / SSH Key
import paramiko
ssh = paramiko.SSHClient()
rsa_key =paramiko.
RSAKey.from_private_key_file('/home/user/.ssh/id_rsa',
password='password')
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘127.0.0.1', pkey=rsa_key,
username=‘user', password=‘password')
Paramiko / abrir una sesión
Check FTP Login Anonymous
import ftplib
Plugins
metasploit
• python-msfrpc
import msfrpc
Metasploit > msfconsole
Metasploit API
• Llamadas en formato msgpack
• https://community.rapid7.com/docs/DOC-1516
cmdMysqlLogin="""auxiliary/scanner/mysql/mysql_login
set RHOSTS """ + self.ip
cmdMysqlLogin = cmdMysqlLogin +"""nrun
"""
print
self.client.call('console.write',[self.console['id'],cmdMysqlLogin])
self.processData(self.console['id'])
Nexpose
• Herramienta desarrollada por Rapid7 para el
escaneo y descubrimiento de
vulnerabilidades.
• Permite el acceso programático a otros
programas por medio de peticiones HTTP/s
• Las respuestas se devuelven en formato
XML
• BeautifulSoup para obtener los datos del
servidor de vulnerabilidades
Nexpose
https://github.com/jmortega/python-pentesting
Pentesting tool
https://github.com/jmortega/sh3llcon_python
Referencias
http://docs.shodanhq.com
http://www.secdev.org/projects/scapy
http://www.pythonsecurity.org
http://thehackerway.com
Books
Books
Books
Thank you!
José Manuel Ortega | @jmortegac

Más contenido relacionado

PDF
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
PDF
Taller: Exploración de redes con Nmap
PDF
125524234-bugcon1-pdf
PDF
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
PDF
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
PPTX
Ansible administracion simplificada
PDF
Web cryptography
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Taller: Exploración de redes con Nmap
125524234-bugcon1-pdf
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Ansible administracion simplificada
Web cryptography

La actualidad más candente (17)

PDF
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
PPT
06.asterisk administracion
PDF
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
PPTX
Rooted2020 virtual pwned-network_-_manel_molina
PPTX
Derrotando a changos con scanners [Paulino Calderon]
PDF
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
PPTX
PDF
José Selvi - Unprivileged Network Post-Exploitation [RootedCON 2011]
PPT
Understanding Advanced Buffer Overflow
PPTX
Abraham Pasamar & Carlos Fernández - Purple brain, purple brain ... [rooted2019]
PPTX
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
PPTX
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
DOC
Ejemplos Importantisimo
PDF
Nmap backtrackgblatino pacman_id
PDF
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
PPT
Starta KaliLinux
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
06.asterisk administracion
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
Rooted2020 virtual pwned-network_-_manel_molina
Derrotando a changos con scanners [Paulino Calderon]
I Know Your P4$$w0rd (And If I Don't, I Will Guess It...)
José Selvi - Unprivileged Network Post-Exploitation [RootedCON 2011]
Understanding Advanced Buffer Overflow
Abraham Pasamar & Carlos Fernández - Purple brain, purple brain ... [rooted2019]
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Alberto García de Dios - Virus, el arte no debería ser negocio [Rooted CON 2011]
Ejemplos Importantisimo
Nmap backtrackgblatino pacman_id
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Starta KaliLinux

Similar a Hacking ético con herramientas Python (20)

PPTX
Herramientas de seguridad SSI
PDF
Multi relay
PDF
Revista .seguridad pruebas de penetración para principiantes- 5 herramienta...
PDF
3.redes seguridad
PDF
Índice del libro: "Python para pentesters" [2ª Edición] de 0xWord
PDF
Interesante pero mal maquetado zenmap 212027457-zenmap (1)
DOC
Manualnmapesp
PPTX
Escaneo de Puertos
PDF
Scripting para Pentesters v1.0
PPTX
Reconocimiento Activo
ODP
Pentesting Basico
PPTX
puertos.pptx
PDF
Interesante ether ape 91281478 herramientas-de-scaneo-1
PPT
programacion_y_seguridad_clase_13_18062024.ppt
PPT
PARA INGENIERIA Administracion_de_redes.ppt
PPTX
Tecnicas avanzadas de penetracion a sistemas
PDF
Curso nmap
PDF
Herramientas de seguridad SSI
Multi relay
Revista .seguridad pruebas de penetración para principiantes- 5 herramienta...
3.redes seguridad
Índice del libro: "Python para pentesters" [2ª Edición] de 0xWord
Interesante pero mal maquetado zenmap 212027457-zenmap (1)
Manualnmapesp
Escaneo de Puertos
Scripting para Pentesters v1.0
Reconocimiento Activo
Pentesting Basico
puertos.pptx
Interesante ether ape 91281478 herramientas-de-scaneo-1
programacion_y_seguridad_clase_13_18062024.ppt
PARA INGENIERIA Administracion_de_redes.ppt
Tecnicas avanzadas de penetracion a sistemas
Curso nmap

Más de Jose Manuel Ortega Candel (20)

PDF
Seguridad y auditorías en Modelos grandes del lenguaje (LLM)
PDF
Seguridad y auditorías en Modelos grandes del lenguaje (LLM).pdf
PDF
Beyond the hype: The reality of AI security.pdf
PDF
Seguridad de APIs en Drupal_ herramientas, mejores prácticas y estrategias pa...
PDF
Security and auditing tools in Large Language Models (LLM).pdf
PDF
Herramientas de benchmarks para evaluar el rendimiento en máquinas y aplicaci...
PDF
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
PDF
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PDF
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
PDF
Evolution of security strategies in K8s environments- All day devops
PDF
Evolution of security strategies in K8s environments.pdf
PDF
Implementing Observability for Kubernetes.pdf
PDF
Computación distribuida usando Python
PDF
Seguridad en arquitecturas serverless y entornos cloud
PDF
Construyendo arquitecturas zero trust sobre entornos cloud
PDF
Tips and tricks for data science projects with Python
PDF
Sharing secret keys in Docker containers and K8s
PDF
Implementing cert-manager in K8s
PDF
Python para equipos de ciberseguridad(pycones)
PDF
Python para equipos de ciberseguridad
Seguridad y auditorías en Modelos grandes del lenguaje (LLM)
Seguridad y auditorías en Modelos grandes del lenguaje (LLM).pdf
Beyond the hype: The reality of AI security.pdf
Seguridad de APIs en Drupal_ herramientas, mejores prácticas y estrategias pa...
Security and auditing tools in Large Language Models (LLM).pdf
Herramientas de benchmarks para evaluar el rendimiento en máquinas y aplicaci...
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments.pdf
Implementing Observability for Kubernetes.pdf
Computación distribuida usando Python
Seguridad en arquitecturas serverless y entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud
Tips and tricks for data science projects with Python
Sharing secret keys in Docker containers and K8s
Implementing cert-manager in K8s
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad

Último (10)

PPT
Control de Produccion PP Track 3 Planificacion.ppt
PPTX
Ekejwjdjehehhdhdhdydydydydydydydhhdhdhdhdhdhdptx
PPTX
EQUIPO_8_APP_INGLES_Planet_English final.pptx
PPTX
Programación Orientada a Objetos POO.pptx
PPTX
hojas_de_calculo_aplicado para microsoft office
PDF
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
PDF
Manual de mantenimiento de soporte y mantenimiento
PDF
Manual de mantenimiento de soporte y mantenimiento
PDF
Estudio de factibilidad para requisiciones de soporte técnico utilizando OSTi...
PPTX
Navegadores de internet Ricardo Enriquez.pptx
Control de Produccion PP Track 3 Planificacion.ppt
Ekejwjdjehehhdhdhdydydydydydydydhhdhdhdhdhdhdptx
EQUIPO_8_APP_INGLES_Planet_English final.pptx
Programación Orientada a Objetos POO.pptx
hojas_de_calculo_aplicado para microsoft office
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
Manual de mantenimiento de soporte y mantenimiento
Manual de mantenimiento de soporte y mantenimiento
Estudio de factibilidad para requisiciones de soporte técnico utilizando OSTi...
Navegadores de internet Ricardo Enriquez.pptx

Hacking ético con herramientas Python