MENU

LFI脆弱性を利用してPHPアプリケーションをWebシェル化してみる。

こんにちは、みらい(@Minimal_Mirai)です。

CTFマシンにてLFI脆弱性を利用してリバースシェルを取得する手法が面白かったのでWriteup的に書いておきます。

当方、セキュリティ初学者のため間違っている点があればTwitterのDMで教えてください。

 

この記事は悪用等を推奨する記事ではありません。第三者の所有するサーバーへの攻撃はお辞めください。

 

 

利用するCTFマシン

VulnHub上のマシン、以下2つを対象に紹介します。

www.vulnhub.com

 以上2つのマシンを順にLab1, Lab2と呼びます。

また現在のPHPのデフォルト設定ではおそらくこれらの手法が使えず(主要なログファイル等へのデフォルト権限でのアクセスができないそう)、ただ手法として面白いため紹介するというスタンスです。

 

前提

・ポートスキャン

->DIR BusterにてWebディレクトリを辞書ファイルで列挙

->怪しげなWebページを検出

->PHPを利用したWebアプリケーションであり、Fuzzingの過程でLFI脆弱性の存在が判明

 

LFI脆弱性の利用

LFI脆弱性を利用して/var/log/以下のログファイルにアクセスできることが判明し、どうにか利用したい。

アクセスできるファイルは以下の通り

 

Solstice - VulnHub

Lab1においては80番ポートと8593番ポートが開放されており、

うち8593番ポートで稼働しているPHPアプリケーションにLFI脆弱性が存在していた。

またapache2の80番ポートに対するaccess.log(/var/log/apache2/access.log)にアクセスできる事が分かった。

そのため、access.logに残るようなGETリクエストをncで送信する。

送信した文字列*1 は、PHPをwebシェルとして利用する文字列です。

実行したコマンド(whoami)が実行され、www-dataでwebサーバーが稼働している事が判明しました。

以上でWebサーバーに対し任意のコマンドが実行ができるようになりました。

HA: Natraj - VulnHub

Lab2に置いては、80番ポートでWebサーバーが稼働していることが確認できます。

PHPアプリケーションにLFI脆弱性が存在することがわかります。

また/var/log/auth.logに対する読み取り権限を有していることが確認できます。

そのため、あえてSSHに対して不正な認証を試みる。

以下の画像でidコマンドが実行できていることが確認でき、この脆弱性を利用し、任意のコマンド実行が可能になった事が分かります。

 

まとめ

恥ずかしながらLFI脆弱性を利用し、Webシェルの取得が可能であることを初めて知り少し驚いたのでご紹介させて頂きました。

また下記のリバースシェルジェネレーターを利用し、任意の言語でPayloadを作成し送信すると便利です。

 

あと個人的にPHPのWebシェルからリバースシェルのPayloadを送信する際にPythonを利用すると成功率高いような気がするのですが気の所為ですかね?(わからん)

【PowerShell】Windowsの初期設定を自動化してみる

こんばんは、みらい(@Minimal_Mirai)です。

某バイト先にてPCなんでも屋さん的なことをしており、複数台のPCの初期設定をGUI(コントロールパネル)で行うのが非常に面倒だったため、PowerShellスクリプトで自動化してみました。

github.com

 

PowerShellは私の慣れと、可読性の点で使いました(ほぼ前者です)。

RegistryChanges Viewを使用して設定変更前と変更後のレジストリの差分を比較し、スクリプトに落とし込みました。

RegistryChanges Viewは非常に扱いやすく、Windowsの自動化スクリプトを書く際に重宝しています。

https://www.nirsoft.net/utils/registry_changes_view.html

 

使用の際は念のためにWindows/レジストリのバックアップを。

描画系の設定とMSゲーム系(Xboxアプリ等)を無効化し、電源オプションを高パフォーマンスに設定しています。

ついでにHDDのデフラグを行い、設定反映のためexplorer.exeをkillして再起動しています。

事務職の方が利用される可能性があるそうで、psスクリプトだとデフォルト設定でブロックされるため、vbsファイル -> powershell -ep bypass で起動しスクリプトを実行できるようにしておき、ワンクリックで動作が簡潔するようにしました。

 

AD環境を利用されるほど大規模な環境ではないため、このようなスクリプトで初期設定を行っています。

個人的な用途としてもWindowsの検証用VMやAzureのVPSを新規作成する際に使用していたりします。

 

諸々調整予定ではありますが改善点等ありましたらTwitter(@Minimal_Mirai)までDM下さると幸いです。

おやすみなさい!

21歳になったのでこれまでの経過とか学んでいることを書いておく。

つい最近まで高校生だった(?)私もついに21歳になり、今まで何を学んできてこれから学びたい分野等をまとめておく。

 

年表

 

小学校

割りと普通に過ごしてました。

高学年になっていくにつれ、周りの友達が結構マニアックなことに興味を持つ人達が多くなっていき、自分自身もiPod touch 5thをクリスマスプレゼントに貰ったことからPCとかネットに興味を持ち始めた。めちゃくちゃ新鮮で楽しかったです。

確か2012年頃(?)、当時はまだあまり流行っていなかったLINEを始めたり、Skype始めてみたりで色々と繋がりが増えていってた気がする。

 

中学校

PC沼にハマってた。

自作PCとかマイクラ鯖運用とかしてる人がSkype, Twitter等の知り合いで多くいたので必然的にLinux自作PCに興味を持っていた。

あとBlender(3DCGソフト)でMinecraftのスキンを動かすintroっぽい動画を作ったり、こてこてな3DCG画像を作ったりしていた。

 

多分、中学2-3年頃にセキュリティ分野を本格的に学ぶ理由になったドキュメンタリー「We are Legion(邦題:アノニマス ~ハッカー達の生態~)」を見ました。

10年くらい前のドキュメンタリー映画ですがハッカー文化に興味がある人は絶対に見ておくべきドキュメンタリーだと思います。

当時は中二病だったのでかなり興奮してハッキングを学ぶ1つのきっかになりました。

 

またLinuxをマイクラ鯖立ち上げる時なんかになんとなく使っていた訳ですが、4chanの/g/ボード(技術系フォーラム)のデスクトップ(画像を投稿する)スレッドをまとめた動画があってArchLinuxとかGentooとかi3wm等のタイル型WMに興味を持つきっかにもなりました。

最近だと流行りはRedditr/unixpornとかになるのかな?

 

当時ArchLinux Install Battle, Gentoo Install Battleに敗北し、Windowsパーティションふっ飛ばしたあげくUbuntu入れたのは良い思い出です。

タイル型WMの素晴らしさを知りました。

 

高校

多分同年代でセキュリティ系に進みたいと思っていた人は誰もが見るであろうサイトの影響を受けネットワーク・サーバー分野学ばないとな~って気持ちになっていた。

How To Become A Hacker: Japanese

 

自宅サーバー(SMB鯖)建てたり、ある程度コード書くようになったり。

ArchLinuxの日本語Slackに入って色々聞いたり、友人とDiscordでセキュリティ系のグループ作ったりして情報交換したりしていました。

オーストラリアの大学生CTFerの方とか技術力の高い方々が入ってきてくださり、自分が知らなかった分野のお話を聞かせて頂けたりしてとてもありがたかったです。

もちろん学習目的のため、他者のサーバーへの攻撃誘導に捉えられる発言や悪用等はBANしていました。

 

Revolution OS - 2001 - Multilingual (16 languages) - YouTube

あと相変わらずLinuxにハマっていて、2001年のドキュメンタリー「Revolution OS」を見てめちゃくちゃ興奮していた気がする。

人生の中で見た映画上位に入るくらい好きなドキュメンタリー映画です。

 

色々としんどいこともありつつ、コンピュータやセキュリティ系の分野へ進みたいという意思が固まった時です。

あとビビられるくらい筋トレにハマってた。

 

個人的な趣味として洋ドラを観始めたのがこの頃でした。

Mr.RobotやTheMentalistとか、プリズンブレイクあたりが好きでした。

 

特にMr.Robotはハッキング描写に力が入っていて好きでした。現代の40-50代が若い頃に聴いていたであろう音楽が挿入歌として使用されているのでSam Esmail監督の趣味が透けて見える

 

The Mentalist(海外ドラマ)とか海外の現地調査(建造物への侵入)も含めたペネトレーションテストの動画とかケビン・ミトニック氏の書籍の影響もあり、ソーシャルエンジニアリング的な要素のある精神医学とか心理学・心理分析等の論文もちょろっと読んだりしていました。

 

また同じくハッキング描写に力を入れているコンテンツとして「王様達のヴァイキング」という漫画があり、高校時代に何度も繰り返し読んでいました。エンジニアやハッカーに対する描き方がすごく好きで自分の人生に最も影響を与えたコンテンツの1つです。

王様達のヴァイキング (1) (ビッグコミックス) | さだやす, 深見 真 |本 | 通販

 

2020/21年度

某コンピュータ系の学校に進学し、プログラミング等の学習に専念していました。

色々と重なってかなり忙しくセキュリティ系の技術書やCTF等はぼちぼちしていた。

このおかげで足りていなかった総合的な分野でのスキルは結構上がった気がする。

 

理屈に関しては結構知っていて、もっと手を動かさなきゃなーと思っていた時にCTFerの方にDiscordグループにご招待頂き、TryHackMeはHackTheBoxの存在を知ってモチベがかなり上がった。

グループ内での活発な情報交換があり、またすごくLab攻略のモチベーションの高い方々が多かったおかげで自分もかなり頑張っていました。

 

個人的な意見ですがセキュリティ分野への入門は

ハッキングラボを読む -> THMで色々なLabを攻略する -> HTBでLab攻略

って感じのルートが理解しやすくて良いかなって思います。

当然学ぶべき他の知識も無限にありますが。

 

THM/HTBは学割も利く上に本当に色々な分野の知識が身につくのでおすすめです。

個人的には下記のOSCP Like Boxから攻略していくことをおすすめします。

※Crypt系に強くなりたい場合は別の問題が良いかもしれません

docs.google.com

 

またOSCP(PEN-200)に受験させて頂ける機会があり、こちらのBox攻略もかなり楽しく、またWindows/Active Directory分野に関する横展開なんかの知識も増えるので興味がある方は配布資料のPDFを読むだけでもかなり勉強になると思います。

+攻撃後のログを見たりしてPayloadの痕跡がどんな感じで残るか見ると良いと思います。

TryHarder精神がつくのでとてもオススメです!

とにかくめちゃくちゃ充実した期間でした!

 

学業においてはネットワーク分野の知識がかなり増えました。

まぁネットワーク分野攻なので増えてなきゃ困るわけですが...

 

最近は週末にCTFイベントや勉強会に参加するようにしています。

とても勉強になることが多く、まだまだ知らない分野だらけなのでもっと学びたいことが多いです。

今年もやりたいことは山ほどありますが低レイヤにもう少し詳しくなりたい+pwn系のCTF問をサクッとクールに解けるようになりたいという気持ちがある。

 

これは某Disocrdグループ内でおすすめされて使っているライフハックですがコーヒー飲んで筋トレとCTFを交互に繰り返すやつがおすすめです。

あと進捗管理的なのをするとモチベが上がる。