THMのPickle Rickに挑戦しました。解法はほかの方を見たほうがいいと思います。
0.どこまで試行したか
まずNmapを用いて開かれているポートを検索。するとssh(port:22)とHTTP(port:80)が開いている状態であった。まずはサイトのほうにアクセスしてみる。
サイト自体は入力欄もない普通のサイト。まずはソースコードを使用して何か情報がないか見てみると下部にusernameが書かれていた。ここで先ほどのsshが頭に浮かび、先ほどのuserで接続してみる。しかしpublickeyエラーが出て接続することができない。
この辺りで20分が経過しBoxの寿命もあるのでここで断念。フラグを得ることはできなかった。
1.First Flag
HTB Academyで学習したことをすっかり忘れていたが、ターゲットがWebアプリケーションやサイトである場合、まずgobuster/dirbuster/niktoを用いて他のページがないかチェックするのを優先すべきだった。
教訓:ターゲットはサイト? → gobuster/dirbuster/nikto !
dirbuster/niktoの結果を見ると、assets/login.php/robots.txtにアクセスできるようだ。まずrobots.txtを見ると何かよくわからない文字列がある。おそらくこれがパスワードだろう。login.phpでソースコードのuserと先ほどのパスワードを入力すると無事ログインできた。
ログインすると検索欄があるページに飛ばされた。見た感じどうやらコマンドを入力するらしい。まずlsを入力するとflagっぽいtxtファイルがある。試しにcatで見ようとすると変なgifが出てきてはじかれる。そこでURLにそのtxt名を入力すると無事表示された。もしくはlessを使うと同様にみられる。
余談:lessはディレクトリの指定が必要
2.Second Flag
コマンドを入力できるならリバースシェルができるはず。writeupによってコマンドは違うが、payloadsAllTheThigsやpentestmonkeyやGTFObinsからいくつか拾ってきて入力すると無事に接続できた。筆者はperlのスクリプトを用いた。
教訓:リバースシェルはいろいろ試してみるべき
侵入後/homeをlsしてみるとubuntuとrickのフォルダがある。rickフォルダのなかにフラグが用意されているので、これをcatで見ると2つ目のフラグ入手.
教訓:システムを見る場合、まず他のuserを見てみる
余談:ファイルに空白がある場合、「¥」を使うと空白を表現できる
もしくは' 'を使ってみる
3.Final Flag
最後のフラグはrootフォルダの中にある。これまた忘れていたが侵入後sudo -l をして今の権限で何を入力できるかを調べるべきだった。sudo -l するとNO PASSWD つまりrootでなくても全コマンド権限を持っている。
あとはお好きな方法でrootに昇格できる。
(sudo su , sudo bash -i ,sudo ls /root → sudo less /root/<target>)
教訓:侵入したらまず特権昇格できないかを考える
4.結論
・ターゲットIPが何者か調べる
・何らかのwebアプリかサイトの可能性あり dirb/nikto/gobusterでファジング
・結果からページにアクセスしてみる
・何らかの方法でリバースシェルできないか試みる
・接続出来たら権限を見てみる 昇格できないか試みる