Herramientas de Scripts en Python

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

1

TABLA DE CONTENIDOS

MÓDULO II ................................................................................................................................................. 3

HERRAMIENTAS DE SCRIPTS EN PYTHON ............................................................................. 3

1. OBJETIVO DEL MÓDULO .................................................................................................... 3

2. METODOLOGIA DE PENTESTING ...................................................................................... 3

3. METODOLOGIAS DE PENTESTING ................................................................................... 4

4. SCAPY: ENVIAR Y SNIFFEAR PAQUETE DE RED .......................................................... 6

5. IMPACKET: ELABORAR Y DECODIFICAR PAQUETE .................................................. 11

6. WFUZZ: HERRAMIENTA DE FUZZING ............................................................................ 12

7. PYCRYPTO: HERRAMIENTA CRIPTOGRÁFICA ............................................................ 13

8. REQUESTS, BEAURIFULSOUP: HERRAMIENTA DE PETICIONES WEB HTTP Y


SCRAPING..................................................................................................................................... 13

9. BIBLIOGRFIA ....................................................................................................................... 15

2
MÓDULO II

En el módulo II veremos las metodologías de pentesting y herramientas de python


más usadas en el proceso de pentesting.

HERRAMIENTAS DE SCRIPTS EN PYTHON

En este módulo veremos metodologías de pentesting, y el uso de las herramientas


en Python mas usadas en el proceso de pentesting.

1. OBJETIVO DEL MÓDULO

El objetivo de este módulo es que el estudiante pueda diferenciar los diferentes


conceptos en el proceso de pentesting y pueda usar los scripts más comunes.

2. METODOLOGIA DE PENTESTING

Primero debemos de recordar que el pentesting es una prueba de seguri dad que
simula un ciberataque en un entorno controlado, teniendo como objetivo identificar
las brechas de seguridad, para así las empresas puedan remediar estas
vulnerabilidades encontradas.

Conceptos:
Análisis de Vulnerabilidades: Identificación de vulnerabilidades.
Ethical Hacking: Explotar las vulnerabilidades.
Pentesting: Obtener toda la información después de explotar la vulnerabilidad
para: elevar privilegios, lateralizar, pivitong y en general ganar acceso a OTROS
SISTEMAS.
Red/Blue Team: Ejercicios "inopinados" y lo más real posible.
Red Team: Es el equipo que ataca la infraestructura.
Blue Team: Es el equipo que defiende

Tipos De Prueba
Caja negra: Consisten en no tener conocimiento de la infraestructura en un
cliente

3
Caja blanca: Consiste en que previamente la entidad nos brindó credenciales,
código fuente, arquitectura y otros
Caja gris: Se dispone de cierto tipo de información como: usuario, SS ID.

3. METODOLOGIAS DE PENTESTING

Existen diferentes metodologías para el proceso de pentesting, Las más comunes


son:
OSSTMM (manual de metodología de pruebas de seguridad de código abierto)
Es un standart reconocido en la auditoria de seguridad para evaluar la seguridad
de los sistemas informáticos

Actualmente se compone de las siguientes fases:

• Seguridad de la información .
• Seguridad de los procesos .
• Seguridad en las tecnologías de internet .
• Seguridad en las comunicaciones .
• Seguridades inalámbricas.
• Seguridad física.

OWASP (Proyecto de seguridad de aplicaciones web abiertas)


Es una metodología de seguridad de auditoria web, abierta y colaborativa .

Fig 2.1 Top10 OWASP 2021

A1: Control de accesos destruidos: Generalmente accesos dados por permisos


inadecuados a usuarios que no deberían tenerlos.

4
A2: Fallos criptográficos: Podemos encontrar diversas vertientes, debilidades en
cifrados de datos fácilmente calculables por parte de los atacantes, errores en
cifrado que dejan en limpio la lectura de los datos y finalmente, la exposición de
los datos dadas determinadas operaciones de tránsito entre distintas entidades o
personas.
A3: Inyección: Ataques a Bases de Datos a través de inclusión de un comando o
consultas ejecutadas en el intérprete, como resultado obtenemos la extracción de
resultados y exposición de datos que no deberían ser públicos ni visibles al
exterior.
A4: Diseño inseguro: Diseños de arquitec turas e infraestructuras inadecuadas a
nivel de hardware, posible generación de túneles directos a las redes internas.
A5: Desconfiguración de la seguridad: la no correcta configuración de políticas
de permisos conlleva la exposición de ventanas y registro s de información al
exterior.
A6: Componentes Vulnerables y Obsoletos: es recomendable conocer si hay
actualizaciones de nuestros dispositivos electrónicos para solventar posibles
brechas genéricas que pueden ser fácilmente corregidas si se mantiene una po lítica
de actualizaciones de software y firmware al día.
A7: Fallos de identificación y autenticación: dentro de esta categoría que está
relacionada directamente con criptografía A2, podemos incluir ataques
automatizados de fuerza bruta por diccionario, ex posición de contraseñas por su
debilidad morfológica y fallos por no implementar factores de doble autenticación.
A8: Fallos de integridad de Software y Datos: incluimos dentro de estos fallos,
aplicaciones o páginas web que no utilizan certificados oficia les o bien no han sido
aprobadas por empresas certificadoras oficiales, se debe establecer una cadena
de integridad del producto que permita desde la primera ejecución de una
aplicación o código la imposibilidad de ejecución de malware o scripts en segundo
plano.
A9: Fallos en el registro y supervisión de la seguridad: escalamos dentro de
esta categoría la no detección mediante políticas y herramientas preventivas a nivel
interno que permitan monitorizar vulnerabilidades dentro de una organización o
empresa.
A10: Server-Side Request Forgey: estas amenazas son factibles debido a la no
utilización de protocolos HTTPS, DNS y URLS no seguras (incluyendo URLS
acortadas), su mitigación es posible desde la capa de red mediante políticas
correctas en el firewall.

ISSAF (Marco de evaluación de la seguridad de los sistemas de información)

5
Propone cinco fases para la realización de un completo Test de penetración

• Fase I Planeamiento
• Fase II Evaluación
• Fase III Tratamiento
• Fase IV Acreditación
• Fase V Mantenimiento

Metodología ec-council
Es una metodología de prueba de seguridad desarrollada por el International
Council of Electronic Commerce Consultants (EC -Council)

• Reconnaissance
• Scanning
• Gaining Access
• Maintaing Access
• Clearing Tracks
Durante todo el proceso de pentesting se usan las siguientes herramientas:

• Nmap.
• Nessus.
• Metasploit.
• Burp suite.
• Hydra.
• John the Ripper.
• NetCat.

4. SCAPY: ENVIAR Y SNIFFEAR PAQUETE DE RED

Scapy es una herramienta de manipulación de paquetes para redes hecha en


Python.
Scapy nos permite sniffear, diseccionar y falsificar paquetes de red, permitiéndonos
monitorear, escanear o atacar redes

6
Fig 2.2 Funcionalidades de scapy

Debemos recordar la arquitectura TCP/IP

APLICACIÓN
TRANSPORTE
INTERNET
ACCESO A LA RED

Donde:
Acceso a la red: Es responsable de la colocación de paquetes TCP/IP en la red y
de la recepción de paquetes TCP/IP de fuera la red
Internet: Es responsable de las funciones de direccionamiento, empaquetado y
enrutamiento
Transporte: Es responsable de proporcionar a la cap a de aplicación, servicios de
sesión y de comunicación de datagramas
Aplicación: La capa de aplicación proporciona a las aplicaciones la capacidad de
acceder a los servicios de las demás capas y define los protocolos que utilizan las
aplicaciones para intercambiar datos

La trama ethernet tiene los siguientes campos

Field Preamble SFD(Start Destination Source Type Data CRC


Name of frame MAC MAC
delimeter
Size(bytes) 7 1 6 6 2 46- 4
1500

Trama IEEE 802.3

7
Los paquetes ip tienes los siguientes campos:

Fig 2.3 Cabecera ipv4 e ipv6

Uso de scapy

pkt = Ether()/IP()/TCP()

ls(): Lista los protocolos compatibles con Scapy


lsc(): Lista las funciones disponibles en Scapy
help(): Nos proporciona los detalles de cada elemento en Scapy
<TAB><TAB>: (Doble tabulación) Lista todos los elementos de Scapy

8
Creando un ICMP (ping)
sudo scapy

pkt= IP(dst="10.10.10.2")/ICMP()
pkt
pkt.show()
send(pkt)

9
Se puede hacer capturas usando un analizador de protocolos, interceptando y viendo el
paquete generado por el scapy.

##Script en python:
from scapy.all import *
pkt=IP(dst="10.10.10.2")/ICMP()
send(pkt)

nota: el archivo debe de estar en modo ejecución.


chmod +x scapy_example.py

10
5. IMPACKET: ELABORAR Y DECODIFICAR PAQUETE

Impacket es una colección de classes de Python para poder crear packetes


Ethernet, Linux "Cooked" capture.
IP, TCP, UDP, ICMP, IGMP, ARP.
IPv4 and IPv6 Support.
NMB and SMB1, SMB2 and SMB3 (high-level implementations).
MSRPC version 5, over different transports: TCP, SMB/TCP, SMB/NetBIOS and
HTTP.
Plain, NTLM and Kerberos authentications, using password/hashes/tickets/keys.
Portions/full implementation of the following MSRPC interfaces: EPM, DTYPES,
LSAD, LSAT, NRPC, RRP, SAMR, SRVS, WKST, SCMR, BKRP, DHCPM, EVEN6,
MGMT, SASEC, TSCH, DCOM, WMI, OXABREF, NSPI, OXNSPI.
Portions of TDS (MSSQL) and LDAP protocol implementations.

Impacket se usa bastante para hacer ataques a sistemas Windows como el


Directorio Activo (AD)
Si se cuenta con el usuario Admnistrador de dominio se puede obtener el historial
de contraseña

impacket-secretdump -justdc usuario:usuario:contraseña@ip_ad -history -pwd-last-


set

si no se cuenta con administrador de dominio:

impacket-GetUserSPNs -dc-ip ip_ad domanin.com/user:'password' -request

las contraseñas están hasheadas , por lo que podríamos usar herramientas como
hashcat o herramientas online como: https://www.onlinehashcrack.com/

NOTA: Un hash es un algoritmo que transforma cualquier bloque de datos en una


serie de caracteres de una longitud fija.

11
Cesar FUNCION FG12GT1U
HASH HASH

Cesar FUNCION X6T9HE6T


Aguirre HASH HASH

6. WFUZZ: HERRAMIENTA DE FUZZING

WFuzz es una herramienta de descubrimiento de contenido que nos facilita la tarea


en las evaluaciones contra aplicaciones web. Lo que hace es reemplazar cualquier
referencia con la palabra FUZZ .

WFuzz puede ser usado para buscar contenido oculto, como archivos y directorios
dentro de un servidor WEB.

SecList: Es una colección de múltiples tipos de listas utilizadas durante las


evaluaciones de seguridad. Los tipos de lista incluyen nombres de usuario,
contraseñas, direcciones URL, entre otras.

Uso de WFUZZ
Para poder ver la ayuda podemos usar el comando
wfuzz –help

12
wfuzz -w wordlist/general/common.txt --hc 404 http://testphp.vulnweb.com/FUZZ

7. PYCRYPTO: HERRAMIENTA CRIPTOGRÁFICA

Pycrypto es un módulo que provee servicios cryptograficos, es una colección de


funciones hash como (sha256 y RIPEMD160) y varios algoritmos de cifrado
(AES,DES,RSA,ElGamal,…).

AES
Incluye tres bloques de cifrado

• AES-128
• AES-192
• AES-256

from Crypto.Hash import MD5


m = MD5.new()
m.update('Hola mundo')
print m.digest()

8. REQUESTS, BEAURIFULSOUP: HERRAMIENTA DE PETICIONES


WEB HTTP Y SCRAPING

Requests es una libreria HTTP que te permite enviar consultas HTTP

Metodos HTTP

GET: El método GET solicita una representación de un recurso específico.


Las peticiones que usan el método GET sólo deben recuperar datos.

HEAD: El método HEAD pide una respuesta idéntica a la de una petición


GET, pero sin el cuerpo de la respuesta.

13
POST: El método POST se utiliza para enviar una entidad a un recurso en
específico, causando a menudo un cambio en el estado o efectos secundarios en
el servidor.

PUT: El modo PUT reemplaza todas las representaciones actuales del


recurso de destino con la carga útil de la petición.

DELETE: El método DELETE borra un recurso en específico.

CONNECT: El método CONNECT establece un túnel hacia el servidor identificado


por el recurso.

OPTIONS: El método OPTIONS es utilizado para describir las opciones de


comunicación para el recurso de dest ino.

TRACE: El método TRACE realiza una prueba de bucle de retorno de


mensaje a lo largo de la ruta al recurso de destino.

PATCH: El método PATCH es utilizado para aplicar modificaciones


parciales a un recurso.

CODIGO de errores HTTP:


CODE 200: Página cargó correctamente OK.
CODE 300: Redireccionamiento de la página.
CODE 400: Error en el cliente.
CODE 500: Error en el SERVIDOR.

import requests
api_url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(api_url)
response.json()

Beautifullsoup es una biblioteca que facilita extraer información de páginas web

import requests
from bs4 import BeautifulSoup
r = requests.get('http://mipagina.pe')
soup = BeautifulSoup(r.text, 'lxml')

14
9. BIBLIOGRFIA

https://www.networkacademy.io/ccna/ipv6/ipv4-vs-ipv6
https://owasp.org/www-project-top-ten/
https://www.isecom.org/OSSTMM.3.pdf
https://scapy.net/
https://github.com/secdev/scapy
https://scapy.readthedocs.io/en/latest/introduction.html#about-scapy
https://github.com/xmendez/wfuzz
https://pypi.org/project/pycrypto/

15
16

También podría gustarte