ただのメモです

Writeupなら他のブログ見たほうがいいと思います.

Writeup -Writeup-

まずnmapから

f:id:F-Ryu:20210720162524p:plain

80/httpがうまく表示されていない。tcpwrappedについて調べてみると-A -vvvは弾かれるようだ。このオプションを付けずに実行すると結果が表示された。

f:id:F-Ryu:20210720162637p:plain

/writeup/というページにアクセスできる。ページやソースコードに気になる点はなかった。

f:id:F-Ryu:20210720162804p:plain

curl -IL , whatwebで調べてみるとCMS Made Simpleで作られているようだ。searchsploitやgoogle検索してみるとSQL Injectionの脆弱性が見つかった。githubに公開されていたコードを用いるとsalt ,password, user情報を手に入れた。

f:id:F-Ryu:20210720163105p:plain

f:id:F-Ryu:20210720163116p:plain

passwordをそのままjohnやbase64にかけてみても上手くいかない。そこでsaltに注目してhashcatの-m 20(md5:salt)を実行するとパスワードが入手できた。

先ほど手に入ったuserとpasswordを用いてsshしてみると無事接続できた。

f:id:F-Ryu:20210720163314p:plain

f:id:F-Ryu:20210720163327p:plain

f:id:F-Ryu:20210720163341p:plain

jkrのidを見ると多くのgroupに属しているようだ。またlinpeasで出てきた環境変数を見てみるとpathが通常と違ううえに、書き込み権限もあることがわかる。おそらく悪意のあるコマンドを自作してroot権限を得るパターンだろう。

f:id:F-Ryu:20210720163750p:plain

f:id:F-Ryu:20210720163800p:plain

f:id:F-Ryu:20210720163809p:plain

var/www/htmlのフォルダには何もなかったのでppspyでプロセスを見てみるが特に変化がない。そこでプロセスを監視しつつ、別端末からさらに接続してみると興味深いプロセスが見つかった。

どうやらssh接続時にroot権限を持ったshが環境変数を変更し、その後runpartを実行していることがわかった。先ほどの情報から/usr/local/sbinに書き込み権限があり、さらにpathは一番最初に設定されている。つまり/usr/local/sbinにリバースシェルかroot.txtを見ることができるrunpartを作ればいい。

リバースシェルはなぜかうまくいかなかったので、今回はrunpartにcat /root/root.txtするコマンドに設定した。そしてもう一度ssh接続するとフラグが入手できる。

f:id:F-Ryu:20210720164408p:plain

f:id:F-Ryu:20210720164420p:plain

 

Active -Writeup-

まずnmapから

f:id:F-Ryu:20210714071310p:plain

Kerberos認証があるのでおそらくActiveDirectry。とりあえずsmbclientでフォルダを見てみる。

Replicationにアクセスしてみるとactive.htbのフォルダがあったので、フォルダごとダウンロードした。中身を見てみるとGroups.xmlというファイルが興味深い。

f:id:F-Ryu:20210714071414p:plain

f:id:F-Ryu:20210714071430p:plain

f:id:F-Ryu:20210714071640p:plain

Groups.xmlにはSVC_TGDというusernameと、暗号化されたCpasswordがある。Cpassword decryptで検索して出てきたgpp-decryptを使うとパスワードが入手できた。

smbmapを見るとUsersにアクセスできるようだ。まずuser.txtをゲット。

f:id:F-Ryu:20210714071820p:plain

f:id:F-Ryu:20210714071827p:plain

f:id:F-Ryu:20210714071836p:plain

f:id:F-Ryu:20210714072051p:plain

f:id:F-Ryu:20210714072143p:plain

 ImpacketにはKerberosユーザーやクラック可能なチケットを調べるGetUserSPNs.pyというツールがある。これを使って取得できるチケットがないか調べるとAdministarのパスワードが入手できた。

これはhashcat用なのでhashcatで復号化するとAdminの認証情報が手に入る。

f:id:F-Ryu:20210714074859p:plain

f:id:F-Ryu:20210714074913p:plain




 

Shoker -Writeup-

まずnmapから

f:id:F-Ryu:20210709232934p:plain

80/http 2222/OpenSSHが稼働している。ホームページにアクセスするとただの画像しかない。gobusterで検索してみてもアクセスできるフォルダはない。

f:id:F-Ryu:20210709233134p:plain

f:id:F-Ryu:20210709233036p:plain

 --script=vulnで出てきたCVEもすべて刺さらない。こうなると怪しいのはフォルダになる。server-statusはおそらく意味がないのでcgi-binフォルダを調べてみる。apachecgi-binフォルダにはsh cgi pl形式のファイルが置かれるので、これを検索してみるとuser.shが見つかった。

f:id:F-Ryu:20210709233437p:plain

 アクセスしてみるとuptimeらしき結果が出力されている。ボックスの名前とコマンドが実行されていることから推測すると、おそらくshellshockだろう。

 nmapで試しに検索してみると確かに引っかかった。

f:id:F-Ryu:20210709233630p:plain

f:id:F-Ryu:20210709233522p:plain

f:id:F-Ryu:20210709234247p:plain

 shellshockのやり方は何通りかある。

①burpsuite

 User-Agentの欄にpayloadを流す

 User-Agentはcurlの-Aオプションで指定できるのでcurlを使ってもいい

f:id:F-Ryu:20210709233821p:plain

f:id:F-Ryu:20210709234021p:plain

 

②metasploitやスクリプトを使う

 metasploit、searchsploitで下記のツールが出てくる。これが一番楽。

f:id:F-Ryu:20210709234140p:plain

f:id:F-Ryu:20210709234154p:plain

③nmap

 nmapに--script-argでコマンドを渡す手もある。

f:id:F-Ryu:20210709234442p:plain

 

権限昇格

 sudo -lでコマンドを調べてみるとPerlがパスワードなしで使えるようだ。GTFObinsで検索して出てきたpayloadを用いるとrootが得られる。

f:id:F-Ryu:20210709234608p:plain

f:id:F-Ryu:20210709234621p:plain

f:id:F-Ryu:20210709234628p:plain

 

Curling -Writeup-

nmapから

f:id:F-Ryu:20210705105108p:plain

 sshとhttpが稼働している。

 サイトにアクセスするとログインページと3つほど記事があるのみ。ソースコードを見てみるとsecret.txtがあるので表示してみるとパスワードらしき文字列が見つかる。これをbase64 -dしてみるとCarling2018!というパスワードが得られる。記事からユーザーはflorisと推測してログインしてみると、SuperUserでログインに成功した。

f:id:F-Ryu:20210705105833p:plain

f:id:F-Ryu:20210705105835p:plain

f:id:F-Ryu:20210705110004p:plain

f:id:F-Ryu:20210705105904p:plain

f:id:F-Ryu:20210705110019p:plain

 サイト上には特に変化なし。試しにgobusterしてみると、administratorがあるようだ。先ほどの認証情報でログインできた。

f:id:F-Ryu:20210705194033p:plain

f:id:F-Ryu:20210705110231p:plain

f:id:F-Ryu:20210705110242p:plain

 Super Userなのでリバースシェルをアップロードできそう。しばらくサイトを探してみるとTemplates/Beez3にアップロードできる箇所があった。ちなみに下のTemplateでも同様にできる。

 アップロードしたシェルのパスは、先ほどのgobusterからTemplateフォルダだと推測できる。Template/shell.phpは無理だったので、試しにTemplates/Beez3/shell.phpにアクセスしてみるとリバースシェルが得られた。

f:id:F-Ryu:20210705194200p:plain

f:id:F-Ryu:20210705194212p:plain

f:id:F-Ryu:20210705194220p:plain

f:id:F-Ryu:20210705194231p:plain

 www-dataのuser.txtはないのでflorisに昇格する必要がある。florisのフォルダを見てみるとpassword_backupというファイルがある。中身はASCII.textに16進数が書かれた内容だった。これをダウンロードしてみる。

f:id:F-Ryu:20210705194434p:plain

f:id:F-Ryu:20210705194446p:plain


 xxdを使って16進ダンプをしてみるとbzip形式だとわかる。ファイル形式をbz2に変えてbzi2でdecompressすると、形式がgz形式に代わる。ファイル形式をgz...と繰り返していくと最終的にパスワードを入手できた。ssh接続にも成功した。

f:id:F-Ryu:20210705195211p:plain

f:id:F-Ryu:20210705195221p:plain

 florisのフォルダにはpassword_backupの他にadmin-areaというディレクトリがある。見てみるとinput reportという二つのファイルがあり、それぞれroot権限がある。

f:id:F-Ryu:20210705211741p:plain

f:id:F-Ryu:20210705211754p:plain

単純にroot.txtを見るだけなら以下の方法で済む。

 

①outputはinputの情報をもとに表示していると考えられる。ルート権限を持っているのでrootフォルダにもアクセスできる。つまりinputをroot.txtのパスに設定すればroot.txtの中身を見ることができる。

f:id:F-Ryu:20210705211959p:plain

もしくは

②ncを使って自分のターミナルにデータを送信させる(root.txtが見えるので下の画像には表示していない)

f:id:F-Ryu:20210705212833p:plain

f:id:F-Ryu:20210705212841p:plain



番外編 そもそも何をしているのか

 input outputが何をしているかを見るにはプロセスを見る必要がある。しかしcrontabやlinenumでは見ることができないのでpspyを使用する。

f:id:F-Ryu:20210705213113p:plain

少し見にくいが、1分毎に以下のコマンドが実行されている。

/bin/sh -c sleep 1; cat /root/default.txt > /home/floris/admin-area/input

curl -K /home/floris/admin-area/input -o /home/floris/admin-area/report
/root/default.txtの内容をinputにコピーし、その内容をcurlを用いて表示させている。先ほどのurlを変更すると出力されたのはcurlコマンドのおかげだった。

 

③つまり先程のファイルを利用してsudoをパスワードなしで使えるようにすればよい。

florisのディレクトリにinput用のファイルを作りviで以下のように設定。inputのurlをfile:///home/floris/exploit/sudoersに変更ししばらく待つとsudo suがパスワードなしで実行できる。

f:id:F-Ryu:20210705231635p:plain

f:id:F-Ryu:20210705231822p:plain

ちなみにsudoer以外にもrootのid_rsaを出力させる手もある。

 

 

④実はboxが古いからかlinux脆弱性をついてroot権限を得ることができる。snap versionのsnapdを検索するとdirty sock(CVE-2019-7304)という脆弱性が見つかるのでこれを利用する。

f:id:F-Ryu:20210706001250p:plain

f:id:F-Ryu:20210706001302p:plain

f:id:F-Ryu:20210706001312p:plain

f:id:F-Ryu:20210706001323p:plain

f:id:F-Ryu:20210706001340p:plain




まとめるにあたって以下のサイトを参考にした。
 

netosec.com

0xdf.gitlab.io






 

Openadmin -writeup-

nmapから

f:id:F-Ryu:20210629193216p:plain

20/ssh 80/httpが開いている。まずサイトにアクセスしてみる。

f:id:F-Ryu:20210629193311p:plain

apacheのデフォルトページが出てくるということは、他のページを探す必要がありそう。gobusterでディレクトリを探してみる。

f:id:F-Ryu:20210629193409p:plain

/music /sierra が気になる。それぞれのフォルダを探してみるとmusicのloginからonaに飛ばされることに気づいた。さらにonaのDOWNLOADリンクからOpenNetAdmin Ver18.1.1が使用されていることが判明した。

f:id:F-Ryu:20210629193513p:plain

f:id:F-Ryu:20210629193527p:plain

 

f:id:F-Ryu:20210629193655p:plain

searchsploitで検索するとヒットしたので使えるものがないか探す。すると以下のサイトにちょうどよさそうなものを見つけた。

f:id:F-Ryu:20210629193822p:plain

github.com

これを用いるとwww-dataとして侵入できた。

f:id:F-Ryu:20210629193925p:plain

cdがうまく機能しないがcatやlsは絶対参照で指定することができる。何か使えるデータがないか探すとlocal/config/database_settings.inc.phpからパスワードを見つけた。

f:id:F-Ryu:20210629194214p:plain

試しにona_sysで色々試してみるがログインできない。ユーザー名を探すために/etc/passwdを探してみるとjimmyとjoannaのユーザー名が見つかる。

f:id:F-Ryu:20210629194403p:plain

ssh接続で試してみると、jimmy/n1nj4W4rri0R!で接続に成功した。

idを見てみるとinternalグループに属しているのが分かる。var/www/internalというフォルダがあり、main.php logout.php index.phpを見つけた。

f:id:F-Ryu:20210629194546p:plain

f:id:F-Ryu:20210629194646p:plain

main.phpにはjimmyの別パスワードがありmain.phpにはjoannaの秘密鍵を表示するページが見つかる。試しにphpで実行してみても表示されないこと、URLにinternalを入力してもページが表示されないことから、おそらくlocalhostで閲覧できるページだと考えられる。

f:id:F-Ryu:20210629194702p:plain

f:id:F-Ryu:20210629194716p:plain

/etc/apache2/sites-availableにあるinternal.confを見てみるとポート52846で稼働している。linpeasにも同様に情報がある。

f:id:F-Ryu:20210629195019p:plain

f:id:F-Ryu:20210629195151p:plain

jimmyはアクセス権限があるのでcurlを使って表示させることができる。またsshの-Lからlocalhost:52846に接続することでブラウザに表示させることができる。

f:id:F-Ryu:20210629195354p:plain

f:id:F-Ryu:20210629195408p:plain

f:id:F-Ryu:20210629195417p:plain



main.phpにあったパスワードはRevealedとわかった(johnを使用)ので、jimmy/Revealedでログインすることもできる

f:id:F-Ryu:20210629195544p:plain

 ssh接続しようとするとパスワードが求められる。これもjohnで解読しbloodninjasとわかるのでこれでログインができる。

 sudo -lすると/bin/nano /opt/privがroot権限で実行できる。

f:id:F-Ryu:20210629195608p:plain

GTFOBinsでnanoを検索するとCtrl+R Ctrl+Xの後 reset; sh 1>&0 2>&0でroot権限を取得できるようだ。

f:id:F-Ryu:20210629195937p:plain

f:id:F-Ryu:20210629195947p:plain






Heist -Write up-

まずnmapから

f:id:F-Ryu:20210625235240p:plain

 80/httpと445はおそらくsmbclient、5985はwinRMのデフォルト。情報を集めるためにsmbclientで接続してみるがNT_STATUS_ACCESS_DENIEDとでるので認証情報が必要。

 次にサイトにアクセスしてみる。

f:id:F-Ryu:20210625231348p:plain

ログイン画面が出てくる。適当なパスワードを打ってもログインできずソースコードにも目立った情報はない。

 右下のLogin as guestにアクセスしてみると、AdminとHazardのやり取りとパスワードが書かれているページが見つかる。

f:id:F-Ryu:20210625231518p:plain

f:id:F-Ryu:20210625231611p:plain

$1$から始まるパスワードはjohnで解読できた。ただしどこで必要かは分からない。

f:id:F-Ryu:20210625231757p:plain

次に下二つのパスワードだが、オンラインデコーダで探しても見つからない。johnも時間がかかるのみでおそらく見つからない。

 そこでコメントをよく見てみると以下の文面に気づく。

f:id:F-Ryu:20210625231937p:plain

おそらくcisco関連で検索すれば見つかるだろう。以下のサイトを使うと解読できた。

www.ifm.net.nz

f:id:F-Ryu:20210625232134p:plain

f:id:F-Ryu:20210625232143p:plain

ここで今持っているユーザーとパスワードは以下の通り。

User:Hazard rout3r admin

pass:stealth1agent $uperP@ssword Q4)sju\Y8qz*A3?d

この組み合わせのうちどれかがsmbclientの認証情報だろう。試しにHazard/stealth1agentを使いpsexecでアクセスできると、共有フォルダはないが表示された。

f:id:F-Ryu:20210625232607p:plain

番外編 crackmapexec

先ほどのuser情報をuser.txtに、passwordをpass.txtに保存した上でブルートフォースする方法もある。

f:id:F-Ryu:20210625233532p:plain

この認証情報を使って他ユーザーの情報を探すことができる。impacketのlookupsidを使う。

f:id:F-Ryu:20210625232828p:plain

ChaseとJasonのユーザー情報が見つかった。なお先ほどのcrackmapexecを使って同じことができる。

f:id:F-Ryu:20210625233637p:plain

先ほどのユーザー情報とパスワードを使ってもう一度認証情報を探ってみる。

f:id:F-Ryu:20210625233743p:plain

Chase/Q4)sJu\Y8qz*A3?dが見つかった。おそらくこれを使えばwinRMにアクセスできるはず。ポート自体は先にみたように開いているのでevil-winrmで接続してみる。

f:id:F-Ryu:20210626000531p:plain

デスクトップを見るとtodo.txtが見つかる。

f:id:F-Ryu:20210626000600p:plain

Chaseはissues listをチェックしているようだ。しかしフォルダを探してもlistは見つからない。appdataやprocessを見るとFirefoxの履歴が目立つ。

f:id:F-Ryu:20210626001409p:plain

procdumpを使って一番CPU使用量の多いID6648の情報を集めてみる。

f:id:F-Ryu:20210626154353p:plain

f:id:F-Ryu:20210626154414p:plain

f:id:F-Ryu:20210626154503p:plain

login.phpのページからlogin_passwordで文字列検索すれば見つかるはず。

f:id:F-Ryu:20210626154721p:plain

少し見づらいが4dD!5}x/re8]FBuZがパスワード。Administrator/4dD!5}x/re8]FBuZを利用してevil-winrmでアクセスすればrootが得られる。

Blue -Write up-

まずはnmapから

f:id:F-Ryu:20210622153215p:plain

ポート445の(workgroup)からファイル共有サービスがあるのが分かります。共有フォルダがないか調べてみましょう。

f:id:F-Ryu:20210622153643p:plain

ShareとUsersフォルダがあるようです。試しに入ってみましたが特に情報は得られません。もう少し対象を調べてみましょう。nmapでsmbclientを調べるスクリプトを読み込んで調べてみます。

f:id:F-Ryu:20210622153822p:plain

どうやらCVE-2017-0143の脆弱性があるようです。これを検索するとeternal blueという有名な脆弱性が出てきました。msfconsoleで検索してみます。

f:id:F-Ryu:20210622154002p:plain

0を使用してみるとroot権限が取れました。