セキュリティ

初心者が挑むCTF入門 | OverTheWire: Bandit Level 0~20

CTF入門として評判のOverTheWire: Banditを、前提知識のほとんどない状態から挑んでみました。 始め方から、問題を解く際の試行錯誤までを詳細に記録します。 まずはLevel0からLevel10までを解いてみました。 ※Level20まで追記しました。 Introduction Mater…

初心者がGhidraを使ってみた | リバースエンジニアリング

Ghidraの環境構築/インストールから、Ghidraの使い方とリバースエンジニアリングの実践まで、記録を残します。 Introduction Material Results 環境構築 Ghidraをインストールする JDK(Java Development Kit)をインストールする Ghidraを起動する Ghidraでフ…

Pythonで鍵生成 - Keygen | はじめてのリバースエンジニアリング#7

鍵生成プログラムKeygenをPythonで作成します。 まずはradare2を用いてパスワード認証アルゴリズムを解析し、それを開くことができるKeygenを作成しました。 Introduction Material Results radare2でアルゴリズムを解析する forループの特定 forループの処…

パスワード認証の暗号化 | はじめてのリバースエンジニアリング#6

ASCII値の合計を比較する簡単な暗号アルゴリズムを用いて、自らリバースエンジニアリングするためのパスワード認証プログラムを作成し直しました。 Introduction Material Results 簡単な暗号アルゴリズム 正規パスワードの合計ASCII値を算出する パスワード…

radare2の使い方 | はじめてのリバースエンジニアリング#5

radare2のインストール方法から簡単な使い方までを記録しました。 直感では使いにくい面も感じましたが、使い慣れれば強力な武器となってくれるでしょう。 Introduction Material Results radare2をインストールする radare2を起動する radare2の使い方を調…

ハードコードされたパスワードを読み出す | はじめてのリバースエンジニアリング#4

stringsコマンドやobjdumpコマンドを用いて、プログラム中の正規パスワードを読み出す方法の記録を残します。 Introduction Material Results コード中の文字列からパスワードを読む | strings .rodataセクションからパスワードを読む | objdump -x / gdb Di…

レジスタ操作でアクセス承認を引き出す - gdb | はじめてのリバースエンジニアリング#3

gdbを用いてプログラムを実行させ、各ステップの処理を解析・操作することで、アクセス承認を目指しました。 Introduction Material Results プログラムの実行 | 第1分岐 - ハズレルート プログラムの実行 | 第1分岐 - 当たりルート プログラムの実行 | 第2…

逆アセンブル解析 - gdb | はじめてのリバースエンジニアリング#2

パスワード認証プログラムをリバースエンジニアリングして、アクセス承認を引き出したいシリーズその2。 gdbを用いてバイナリコードを逆アセンブルし、プログラムの全体像を解析しました。 Introduction Material Results gdbとは アセンブラコードを表示す…

パスワード認証プログラムの作成 | はじめてのリバースエンジニアリング#1

パスワード認証プログラムを作成し、それを自らリバースエンジニアリングしてアクセス承認を引き出したいシリーズその1。 今回は下準備として、今後解析していくための簡単なパスワード認証プログラムを作成しました。 Introduction Material Results パス…