ひとこと

― 今日のひとこと ―
起業しました。
(2024.4.24)

2020年6月28日日曜日

OSCP学習 #3

現在までに21台攻略。
未だにノートテイキングに迷っており、いい解決案はない。

情報収集の自動化・効率化の重要性も強く感じており、
特にEnumerationと権限昇格(PE)の段階ではいかに速く多くの情報を集めてアタリを付けるかが大事だ。
PWKの仮想マシンにpip3をインストールするとマシンが起動しなくなるためAutoreconを使えないのが痛い。
PEの穴を探す段階でも特に有効なツールを見つけられていない。
linpeasは良さそうだけどラボの数台のマシンで試してみても何もアウトプットされず終了する。

Big4と呼ばれる、ラボの四天王みたいなマシンに鹿児島であたってしまい、
その攻略には17時間かかった。こんなの試験で出たら時間足りないぞ!

というわけで効率化できるツールを色々集めたいが、ラボも進めたい...
もうすでに時間が足りない!

2020年6月20日土曜日

OSCP学習 #2

前回#1を書いてから1週間ほど経過。
1日1台を目安にOSCPのラボを使った学習は毎日続けており、現在まで順調に14台のマシンを攻略した。

1日1台。
案外これがきついのだ。
難易度はピンキリではあるが、これまで手持ちの知識だけで攻略できたマシンは1台だけであり、
基本的にはトライ&エラー&リサーチ&シンキングをひたすら繰り返すことになる。

聞いたことすらなかったプロトコルやソフトウェアを相手にすることも多く、
情報収集して、検討して、試して、うまくいかず、原因を推測し、情報収集して、試して...
これは楽しくもあり苦しくもあり、「もうフォーラムでヒント見ちゃおうか...」と考えてしまうこともあるが、
いやここで諦めたらだめだ!Try Harderだ!と持ち前の負けず嫌い精神で踏ん張り、ということを毎日やるわけだ。

おかげでOSごとのコマンドや便利なツール類を順調にストックできており、
攻略の着眼点や、ある種の嗅覚のような感覚が少しずつ研ぎ澄まされている気がする。
何より精神的にタフになりつつある。長い日には10時間くらいやってるからな。
バッファオーバーフローが必要なマシンには未だ出会っていないが、まぁそこはHack the Boxでもなんとかなるし。。
今はこのまま進めていこう。

マシンを攻略した後は、フォーラムでそのマシンの掲示板を覗き、他の受講者がどこで躓いているのか、
それに対してどんなヒントが示されているのかを軽くチェックする。
「あーあれってそういう風にも解決できたの!?」って新しい発見もたまにある。
難しいマシンだと、「もう何日もこのマシンで悩んでいます」なんて書かれていることもよくあるので、
一応どれも数時間でクリアできている自分はやはり良い按配で学習が進んでいるのかなと少し安心してしまう。

急遽来週に鹿児島まで行かなければならなくなったり、再来週には休暇が終わりまた仕事が忙しくなったりと、
これからは腰を据えて勉強するのが難しくなるかもしれない。
しかし出来るだけ1日1台ペースを保っていきたい。。

2020年6月11日木曜日

OSCP学習 #1

2020年4月末頃、会社の上司(趣味が"冒険"のアメリカ人。よくジャングルに消える)から「OSCP受けたい人いたら経費で受けられるよ」と連絡があり、もともと自分で受けるつもりだったのでこれ幸いと申し込み。約10万円浮きました。

OSCPというのは海外のセキュリティに関する民間資格で、サイバー攻撃に特化したハンズオンの試験が行われるなかなか難しいと評判のもの。
試験は48時間あり、最初の24時間で5台のマシンをハッキングして管理者権限を取り、次の24時間でその過程についてレポート(全部英語)を作成し提出するというもの。
うーんめんどくさい。

Kioptrixの記事は#2を書く気力がないのでOSCPの方をメモしておこう。。

----------------------------------------------------------------------------

OSCPはいきなり受けることもできるが、基本的にはラボ利用権を購入し、ラボで学習した上で受験する形になる。
利用権は30日/60日/90日から選択し、その期間内はラボのマシンに攻撃を仕掛けることができる。
また、権利発生初日にテキスト(これも全部英語)がPDFで送られてくるので、それを読んで基礎を学習することができる。

自分は5月9日から90日間で申し込んでおり、6月5日時点でテキスト読了&6月10日時点でラボ4台攻略済みという状態。

----------------------------------------------------------------------------

■テキストについて

850ページ超あります。以前は350ページ程度だったらしいが最近アップデートされたとか。
複数のブログ等では、以前のバージョンでの受験記なんかで「1か月かけて読みました」という記述を目にするが、今や850ページ・・・
全部英語だしふつーに読んでたら2か月くらいかかりそうだぞ。

ということで、まずテキストを機械翻訳。
会社がNDA付きで導入している翻訳サービスを利用。翻訳対象ファイルのサイズ制限によりテキストを8分割して翻訳依頼キューに登録。
翻訳完了通知が来たのが3日後の朝。8つのうち1つは翻訳不可とのエラーだったので、それは更に2分割して再度翻訳依頼。
次の朝には2つのうち1つは翻訳できたので(もう1つはやはりエラー)、そのまま読み進めることに。

内容としては、Bashの使い方やfind, vi, grep等とそれに類する便利なコマンドの利用方法にはじまり、
DNSからのホスト名列挙やポートスキャン等のEnumerationテクニックや、
RFIやSQLインジェクション等のWeb系、Active Directory、ラテラルムーブメント等の技術やツールについてなど、
25章に渡って解説されるもの。
途中途中でエクササイズと称したハンズオンがあり、それをやると理解が深まる。やらなくてもいい。

仕事が忙しかった日や2度の抜歯で悶え苦しんでいた期間を除き、だいたい20日くらいかけて読了した。

自分の場合は、体感的には6割くらいは既知の内容だったものの、Enumerationの知見が広がったこと、
ADやラテラルムーブメント等のRedteam的な部分を多少体系的に理解できたのがよかった。
ただ、バッファオーバーフローについてはもう少し手を動かしてスムーズに実践できるようになるべきだな。

あらゆる技術を実践するにあたり、自分の得意な部分(完全に自力でできること)や不得手な分野(何かを参考にしないと自力でできないこと)を細かく確認できたと思う。

----------------------------------------------------------------------------

■ラボについて

ちゃんと数えてないけど多分50以上のIPがあります。
VPNでラボのネットワークに繋ぎ、任意のIPを攻撃し、管理者権限またはシステム権限を取得し、Shellを得て、特定のテキストファイルを探すという流れ。

IPによってはどうも指定されたテキストファイル以外にも重要情報があるそうで、そこについてはノーヒント。
とりあえず、今のところ自分は指定のテキストファイルだけを探すようにしている。
情報を見つける見つけないよりも高権限のShellを奪うまでの技術習得を優先したいので。

試験本番ではMetasploitやSqlMap等の一部の強力なツールと商用ソフトウェアの利用が制限ないし禁止される。
https://support.offensive-security.com/oscp-exam-guide/#exam-restrictions:-metasploit

理由は「プロセスの自動化ではなく脆弱性の特定と悪用に関するスキルを評価するため」らしい。
ラボ環境においては学習のため積極的にそれらのツールを使うべきとテキストに記載されているとはいえ、
自分はラボでも基本的にそれらは使わないか、使ったとしてもその後に使わないパターンでも攻略するようにしている。

例えば、ラボのとあるIPを攻略するにあたり、どうもSMBがあやしいという時。
Enumerationの結果EternalBlueの脆弱性がありそうだということがわかるも、
カーネルレベルのメモリの脆弱性をネットワーク経由で悪用する(=そのExploitを作れる)ほどの力も時間もない。いやある方がおかしいけど。
Webで見つけたExploitの概要を読んでもピンとこない。
ここで、MetasploitのEternalBlueに関するExploitモジュールを使えばシステム権限のShellをスムーズに取得することはできた。
その後Githubで改めてExploitを見つけ、単発的なコード実行ができることは確認した。
それ単体ではShellが取れないので、「ただファイルを作成するだけ」というPythonのExploitを他で見つけ、FTPコマンドを持つテキストファイルを作成するよう書き換えた。
(1つ目のExploitで繰り返しechoリダイレクトしてもよかったがスマートではないしレスポンス時間に難があった)
自身の環境でFTPサービスを起動し、nc.exeやwhoami.exeをFTP用ディレクトリに準備し、Shell用のポートをlistenしておく。
その後、2つ目のExploitで作成したFTPコマンドファイルを使って、1つ目のExploitでFTPを実行し、自身の環境からexeファイルをダウンロードし、再度1つ目のExploitでnc.exeによるreverse shellのコマンドを実行し、listenしておいたポートでShellを取得。
whoamiで現在のユーザを確認。システム権限であることが明示的にわかったのでdirコマンドでフラグを検索。
これで無事クリア。という流れ

難易度は様々ありそうだけどたしかにKioptrixと似ているものもある。

----------------------------------------------------------------------------

■今後の学習の流れ

来月中にラボを30台以上は攻略し、バッファオーバーフローを完全に修め、準備が整ったと判断できたら試験に申し込むつもり。
契約上は12月頭までに受ければいいことになっているがラボは8月上旬までしか使えないし、8月には受験したい。

今のところ1日1台くらいのペースで攻略できているが、難しいやつにあたると3日とかかかりそうではある。。
Try Harderだぜ!