LinuxおよびUnixベースのオペレーティングシステムは、情報セキュリティ、ネットワークセキュリティ、暗号化などの分野の中核を成しています。これらには、サイバーセキュリティを目的としたさまざまなツールが付属しています。
Aircrack-ng、Jack The Ripper、Radare2の3つのツールを見てみましょう。
Aircrack-ngスイート
Aircrack-ngスイートは、おそらく最も広く使用されているWiFiネットワークスニッフィングおよびパスワードキャプチャツールのセットです。これは、IEEE 802.11プロトコルのワイヤレスネットワークパスワードを解読することを目的としています。これらのパスワードは、主にWifi Protected Access(WPA)またはWifi Protected Access 2(WPA2)標準によって保護され、事前共有キー(PSK)認証方法によって認証されます。
ネットワークデバイスのステータスの監視、パケットのキャプチャとファイルへのダンプ、パスワードの解読などのための個別のプログラムを提供します。
暗号アルゴリズムを使用してWPA / WPA2をクラッキングすることは、研究者によってほぼ不可能であることがわかっていることに注意してください。したがって、aircrack-ngなどのプログラムでWPA / WPA2をクラッキングする方法は、ブルートフォースであり、クラッキングするにはパスワードの辞書が必要です。つまり、パスワードが辞書の単語である場合にのみ、パスワードを解読できます。
packagecloud.ioが提供するインストーラースクリプトを使用して、システムにAircrack-ngを簡単にインストールできます。ターミナルを開き、LinuxOSの種類に基づいて次のコマンドを実行します。
Debianベースのディストリビューションでは、 次のコマンドを実行します。
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash
Red-hat Package Manager(RPM)の場合、 次のコマンドを実行します。
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash
それでは、Aircrack-ngを使用してローカルWi-Fiネットワークのパスワードを解読してみましょう。
すべての最初に、コマンドを実行します iwconfig
ワイヤレスネットワークインターフェイスの名前を検索します。
iwconfig
ここ、 wlp2s0
私のワイヤレスインターフェースの名前です。 ESSID、つまりネットワーク名は「tmp」です。これは、接続しているWifiネットワークの名前です。
を使用します airmon-ng
ネットワークモニターインターフェイスを開始するコマンド wlp2s0
.
sudo airmon-ng start wlp2s0
モニターモードインターフェイスを見つけるには、最後の行を探します。上記の例では、 mon0
。次に、を実行してネットワークパケットのキャッチを開始します。 airodump-ng
の上 mon0
.
sudo airodump-ng mon0 -w log
さまざまなネットワークからキャッチされたネットワークパケットのモニターを表示します。 The -wログ
一部は、ネットワークパケットをログファイルに保存するためのものです。ログファイルのプレフィックスは、-wの後に指定された部分、この場合は「log」になります。
プログラムがパスフレーズハッシュキーをキャッチするには、ネットワーク上でWPAハンドシェイクを実行する必要があります。つまり、ユーザーはそれに接続を試みる必要があります。ユーザーは自分でWifiを切断し、再接続できます。右上隅に、WPAハンドシェイクがキャッチされたことを通知します。
今、を押します Ctrl + C
ダンプを終了します。生成されたログファイルは現在のフォルダに表示されます。
次の最後のステップは、辞書を使用してaircrack-ngを実行し、ハンドシェイクからインターセプトされたハッシュキーに一致する単語を確認することです。
aircrack-ng log-01.cap -w tmpdict.txt
ここ log-01.cap によって生成されたログファイルです airodump-ng
コマンドと tmpdict.txt 辞書ファイルです。いくつかの大きな辞書がオンラインで入手でき、ここからダウンロードして使用できます。
ターゲットネットワークを選択するには、画面に表示されるネットワークのリストからネットワークのインデックス番号を入力します。
キーが辞書内から一致すると、停止して次のメッセージが表示されます。
辞書ファイルが大きい場合は、辞書内のすべてのエントリをチェックするため、プログラムの実行に時間がかかることは明らかです。
前述のように、パスワードは辞書ファイルに存在する場合にのみ解読できます。 WPAのセキュリティは十分に強力であるため、暗号化アルゴリズムを使用してもパスワードの解読はできません。したがって、Wifiデバイスに複数の特殊文字を含む強力な長いパスワードを設定して、あらゆる種類のパスワードクラッキングアクティビティが成功しないようにすることをお勧めします。
ジョン・ザ・リッパー
John the Ripperは、弱いUnixパスワードを解読するために使用されるツールです。パスワードファイルで呼び出される非常に使いやすいツールです。 3つのモードで実行されます。
シングルモード
すべてのGECOSフィールドでパスワードをチェックします。つまり、ユーザーアカウント情報のパスワードをチェックします。ユーザー名、名、姓など。
sudo john --single / etc / shadow
ワードリストモード
ワードリスト(辞書)ファイルの各エントリでパスワードをチェックします。
sudo john --wordlist = passlist.txt / etc / shadow
ここで、ユーザー「user3」のパスワードは「admin」です。 passlist.txtファイルに「admin」というフレーズが含まれていたため、Johnはそれを解読できました。
インクリメンタルモード
構成された範囲のすべての可能な組み合わせを確認してください。デフォルトでは、ASCII文字セットのすべての文字と0〜13のすべての長さが考慮されます。言うまでもなく、構成された範囲によっては、このモードの実行に非常に長い時間がかかる場合があります。
この構成はで変更できます /etc/john/john.conf
ファイル。
sudo john --incremental / etc / shadow
Radare2
Radare2(別名r2)は、Linux用のリバースエンジニアリングツールです。実行時にデータを操作するためのオプションの膨大なリストを使用して、実行可能なバイナリファイルを逆アセンブルおよびデバッグできます。
r2を使用して非常に小さなCプログラムを逆アセンブルする方法を見てみましょう。 ツールを使用するには、アセンブリ言語の基本的な理解が必要であることに注意してください。
まず、vimまたは任意のエディターで小さなCプログラムを作成します。
/*test.c*/ #include int main(){int i = 0; printf( "%d \ n"、i); 0を返します。 }
ご覧のとおり、このプログラムが実行するのは、数字0を変数に格納し、変数にアクセスして印刷することだけです。
プログラムをコンパイルします。
gcc test.c -o test
実行可能ファイルは、「test」という名前で現在のディレクトリに作成されます。それを実行して、出力「0」を確認します。
。/テスト
今すぐr2をインストールしましょう。 Ubuntuおよび同様のディストリビューションのパッケージ名はradare2です。
sudo apt installradare2
ノート: 古いバージョンのUbuntu(バージョン14.04以下)の場合は、次を使用する必要があります apt-get
の代わりに使用する必要があります apt
.
次に、実行可能ファイル「test」を使用してr2コマンドプロンプトを開始します。
r2テスト
サブコマンドのリストを取得するには、次のように入力します ?
。例えば。コマンドのサブコマンドのリストを取得するには a
、 入力 ?
?
サブコマンドを実行します aa
、完全なバイナリファイルを分析します。何も出力しません。しかし、バイナリを分析した後、 p?
コードを逆アセンブルするサブコマンド。
次に、 主要
プログラムの機能。すべての実行可能Cプログラムには 主要
その出発点として機能します。
sメイン
プロンプトのプレフィックスが現在のメモリアドレスを変更したことがわかります。つまり、プログラムは関数のアドレスに検索されます。 主要
.
次に、サブコマンドを使用します pdf
、関数の分解を出力します。私たちはそれを sym.main
、これはアセンブリ言語のメイン関数の名前です。
pdf sym.main
上のスクリーンショットでわかるように、Cプログラムが完全に逆アセンブルされています。これで、アセンブリを読み取ることにより、プログラムが実行していることを分析できます。
例えば、 mov dword [rbp-0x4]、0x0
は、メモリ位置への値(0)の割り当てです。rbp–ベースポインタ、0x4 —整数に必要なメモリサイズ。
我々は持っています sym.imp.printfを呼び出す
、レジスタの内容を出力します eax
、つまり値0。
r2のプログラムのフローを操作およびデバッグするためのオプションは他にもたくさんあります。あなたはで示されている他のオプションを試すことができます ?
指図。ログまたは逆アセンブリの出力をファイルに保存するには、次のように出力をパイプ処理できます。
pdf main> main.s
これは、Linuxで最も広く使用されているハッキングツールの概要です。このページが役に立った場合は、お気に入りのオンラインコミュニティで共有してください。