Kali侵入テスト:ハッシュ化されたパスワードクラッキング

Kali侵入テスト:ハッシュ化されたパスワードクラッキング

一部のWebサイトにはセキュリティメカニズムの設定に欠陥があり、独自の重要なデータベースに侵入しています。多くのユーザーが異なるWebサイトで同じユーザー名とパスワードを使用しているため、ハッカーはWebサイトAのユーザーのユーザー名とパスワードを取得してWebサイトBにログインしようとする可能性があります。これは、「資格情報の詰め込み攻撃」です。たとえば、2014年12月25日以降インターネット上で「狂ったように広まった」12306 Webサイトのユーザー情報は、ハッカーが資格情報の詰め込み攻撃を通じて取得したものです。

リークされたデータベースのデータのほとんどはプレーンテキストですが、現在のデータベースのほとんどはハッシュ暗号化で保存されています。たとえば、Windowsオペレーティングシステムはハッシュ暗号化を使用してログインパスワードを保存します。これらのパスワードは、ハッシュ暗号化後にデータベースに保存されます。パスワードのハッシュ値は、パスワードに対して1回限りの暗号化処理を実行することによって形成される乱雑な文字列です。この暗号化プロセスは元に戻せないと見なされます。つまり、ハッシュ値から元のパスワードを復元することはできません。たとえば、パスワード「999999」は、ハッシュ暗号化(MD5)の後、「52C69E3A57331081823331C4E69D3F2E」になります。このハッシュ値はデータベースに保存されます。検証するときは、入力された値をハッシュ暗号化後に保存された値と比較するだけで、パスワードが正しいかどうかを知ることができます。ハッカーが「52C69E3A57331081823331C4E69D3F2E」を取得しても、元のパスワード「999999」を元に戻すことはできません。これにより、パスワードを保存しているデータベースが危険にさらされた場合でも、パスワードが漏洩することはありません。

さまざまな攻撃方法が出現しているため、ハッシュ暗号化は安全ではありませんハッシュ暗号化を解読するためのいくつかの方法があります。

1.1基本的なLMハッシュ暗号化パスワードを解読する

Windows XPオペレーティングシステムは、間違いなくMicrosoftの最も影響力のある製品の1つです。このオペレーティングシステムは、ほとんどの人にとって「古くて耐え難い」ものですが、Microsoft自体でさえ、2014年にサポートを中止したと発表していますが、ソフトウェアの互換性の問題により、多くの組織がまだWindowsXPを使用しています。今でも、WindowsXPのセキュリティ問題を調査する必要があります。

最初に検討するのは、WindowsXPのパスワードセキュリティです。Windows XPの電源を入れたり、リモートで接続したりするときのログインインターフェイスに慣れていない場合は、このインターフェイスでユーザー名とパスワードを入力する必要があります。オペレーティングシステムは、入力した情報と保存した情報を比較します。同じ場合、システムにログインできます。では、コンピューターの所有者がコンピューターを離れるときに、そこに保存されているパスワードを密かに見つけて「盗む」ことができるでしょうか。実際、Windows XPはパスワードを保存しており、このパスワードは実際に見つけることができるため、このアイデアはすぐに思い浮かぶものではありません。このパスワードはC:\ Windows \ System32 \ config\SAMに保存されています。WindowsXPおよびWindows2003では、ツールを使用して完全なLMハッシュ暗号化パスワードを取得できます。SAMInsideというツールを使用してこの作業を完了することができ、その作業インターフェイスを次の図に示します。

SAMInsideは、Windows NT / 2000 / XP / VistaオペレーティングシステムをサポートするWindowsパスワード回復ツールであり、主にWindowsオペレーティングシステムのユーザーログインパスワードを回復するために使用されます。SAMInsideは、ユーザーパスワードを解読するために、解読されたオペレーティングシステムでSAMとSystemの2つのファイルを読み取ることに依存する必要があることに注意してください。どちらのファイルもC:\ Windows \ System32\configディレクトリにあります。ただし、これら2つのファイルは操作中に保護され、読み取ることができません。したがって、このツールを使用して、DOSオペレーティングシステムまたはWindowsPEオペレーティングシステムでSAMファイルを表示する必要があります。

このツールを実行すると、WindowsXPのパスワードがSAMInsideに表示されます。では、Windows XPはどのようにパスワードを暗号化するのでしょうか?このオペレーティングシステムは、LMハッシュと呼ばれる暗号化モードを採用しています。以下に暗号化プロセスを示します。

◆入力するパスワード値は最大14文字です

◆入力したパスワードを大文字に変換する

◆大文字に変換した後、パスワードを16進文字列に変換します

◆14バイト未満のパスワードは0で埋められます

◆固定長のパスワードは2つの7バイトの部分に分割されます

◆7バイトの16進数の各グループをバイナリに変換し、各7ビットグループの最後に0を追加してから、16進数に変換して8バイトコードの2つのグループを形成します

◆2セットの8バイトコードをDESキーとしてそれぞれ「KGS!@#$%」として暗号化します

◆DES暗号化コードの2つのセットを連結して、最終的なLMハッシュ値を取得します

その後、この暗号化プロセスは改善され、現在のオペレーティングシステムにはいくつかの暗号化方法がありますが、最も効果的な方法の1つは「パスワードの塩漬け」です。いわゆる「塩」の価値は、「調味料」を加えることです。ユーザーが初めてパスワードを入力すると(通常は登録時に)、システムは自動的にパスワードにソルト値を追加します。これはシステムによってランダムに生成され、システムだけが知っています。次にハッシュします。ユーザーがログインすると、システムがユーザーと2人のユーザーに提供するコードは同じパスワードを使用します。また、システムがユーザーに対して異なるソルト値を生成するため、それらのハッシュ値も異なります。ハッカーが自分のパスワードと自分で生成したハッシュ値を使用して特定のパスワードを持つユーザーを見つけることができたとしても、この確率は小さすぎます(パスワードとソルト値はハッカーが使用するものと同じである必要があります)。ただし、このメカニズムはLMハッシュアルゴリズムでは使用されないため、ハッシュ値からパスワードを直接導出することはできませんが、LMハッシュ暗号化後の2つの同一のパスワードの値は同じであるため、クラックLMの方法も提供されます。暗号化されたパスワードをハッシュする方法。

1.2LMハッシュ暗号化パスワードのオンラインクラッキング

現在、多くのWebサイトがLMハッシュ暗号化パスワードを解読するサービスを提供しています。つまり、これらのWebサイトでハッシュ値を送信して見つけるだけで、これらのWebサイトは独自のデータベースでそれらを比較します。ハッシュ値が見つかった場合は、次のようになります。対応するパスワード。これらのサイトのほとんどは、<**"レインボーテーブル"**と呼ばれる手法を使用しています。オンラインWebサイトcmd5にアクセスして、LMハッシュおよびNTLMハッシュで暗号化されたパスワードをオンラインで解読できます。次の図に示すように、パスワードハッシュ暗号化の操作を実現できるのはcmd5Webサイトのインターフェイスです。

このウェブサイトは、パスワードハッシュ暗号化の操作を実装できます。最初にいくつかの一般的なハッシュ値のクラッキングを試してから、パスワードの難易度を徐々に上げることができます。次に、暗号化された値「32ed87bdb5fdc5e9cba88547376818d4」(NTLMハッシュ暗号化)を解読し、ハッシュ値の逆演算結果を次の図に示します。

1.3Kaliでのハッシュ値のクラッキング

オンラインでハッシュ値を解読するのは非常に簡単ですが、実際には、ハッシュ値には多くの暗号化方法があります。3つの一般的な暗号化方法は、MD5、LM、およびNTLMです。では、ハッシュ値がどの暗号化方法であるかをどのように知ることができますか。取得者?ウールの布?暗号化方法が異なれば復号化方法も異なるため、これは非常に重要です。同様に、Kaliは、異なる暗号化方法を区別するための2つのツールを提供します。1つはハッシュ識別子で、もう1つはハッシュIDです。

ハッシュ識別子の使用法は非常に簡単です。Kaliで、ターミナルを起動し、hash-identifierコマンドを入力して、ツールを起動します。コマンドは次のとおりです。

┌──(kali㉿kali)-[~]
└─$ hash-identifier

以下に示すように:

暗号化されたハッシュ値を入力すると、次の図に示すように、hash-identifierがハッシュ値の可能な暗号化方法を分析します。Ctrl-cキーの組み合わせを使用して、完了後に終了します。

さらに、ハッシュIDも非常に効果的なツールです。ターミナルを開き、コマンドhashidを入力してから、クラックされたハッシュ値を入力してEnterキーを押します。

┌──(kali㉿kali)-[~]
└─$ hashid 32ed87bdb5fdc5e9cba88547376818d4

1.4パスザハッシュ攻撃

LMハッシュ方式に基づいて暗号化されたWindowsパスワードを解読する方法は上記で説明しましたが、WindowsオペレーティングシステムはLMハッシュ方式に加えて、NTLMハッシュ方式を使用してパスワードを暗号化します。これは、LMハッシュよりもはるかに安全な方法です。実際、パスワードを解読する必要はありません。コンピュータで暗号化されたパスワード値が取得されている場合、LMハッシュまたはNTLMハッシュのどちらで暗号化されていても、この値を使用してシステムの権限を直接取得できます。この方法は「ハッシュ値パススルー攻撃」と呼ばれます。 "。"。これは古典的な攻撃方法です。すべてのネットワーク攻撃方法は徐々に時代遅れになりますが、この攻撃方法は現在も機能し、この攻撃方法はより良いアイデアを提供することもできます。

一部のオペレーティングシステムは、この「ハッシュパス攻撃」を防ぐことができるいくつかのメカニズムを使用しています。Windows7オペレーティングシステムは、Windows Vistaで最初に登場し、後のバージョンで利用できるユーザーアカウント制御(UAC)テクノロジを使用します。悪意のあるプログラム(マルウェアと呼ばれることもあります)がシステムに損害を与えると同時に、組織がより管理しやすいプラットフォームを展開するのを支援します。

UACテクノロジを使用すると、アプリケーションとタスクは、管理者固有のシステムが管理者レベルのアクセスを許可する場合を除いて、常に非管理者ユーザーのセキュリティ特権の下で実行されます。UACテクノロジは、許可されていないアプリケーションの自動インストールをブロックし、システム設定の不注意な変更を防ぎます。これは、WindowsXPの多くのセキュリティ問題を解決したメカニズムです。ただし、このメカニズムはオフにすることができますしたがって、パス・ザ・ハッシュ攻撃にはまだ学ぶべきことがあります。

Windows7オペレーティングシステムを対象としています。まず、Win7オペレーティングシステムのファイル共有機能を有効にします。最も簡単な方法は、ディレクトリを共有することです。これは非常に重要です。これを行わないと、リモート攻撃を実行できません。

このシステムのUAC機能を事前にオフにすることができます(またはオフにしないで、Meterpreterコントロールでリモートでオフにする)。オフにする手順は次のとおりです。

◆1。次の図に示すように、[スタート]メニューのテキスト検索ボックスに「UAC」と入力します。

◆2。これにより、[ユーザーアカウント制御の設定]が開き、[コンピューターの変更について通知するタイミングを選択]を[通知しない]に変更します(つまり、左下のスライダーを下にドラッグします)。

◆◆3。「OK」ボタンをクリックしてコンピュータを再起動します。

これで攻撃を開始できます。まず、ターゲットホストの暗号化されたパスワードハッシュ値を取得する方法を見つける必要があります。上記の2つの方法を紹介しました。Windows XPを使用してシステムを起動し、SAMファイルをコピーするだけです。

さらに、Metasploitを使用してターゲットホストを制御すると、そのパスワードハッシュ値も取得できます。デモは次のとおりです。

正常に侵入されたターゲットホストから暗号化されたパスワードハッシュ値をエクスポートする必要があります。この操作にはシステムレベル(管理者レベル)の管理者権限が必要であり、ターゲットホストでUAC機能をオフにする必要があります。この実験では、事前にUAC機能をオフにしているため、これを行う必要はありません。事前にシャットダウンされていない場合は、bypassuac_eventvwrモジュールを使用してリモートシャットダウンを実行できます。

まず、現在のセッションをバックグラウンドに切り替えてバックグラウンドコマンドを使用する必要があります。次に、次の図に示すように、コマンドuse explore / windows / local/bypassuac_eventvwrを使用します。このモジュールはまだ使用していない場合にのみ使用できることに注意してください。 UAC設定を変更しました。

この実験では、システムレベルの管理者権限を取得するだけで済みます。次の図に示すように、ここではgetsystemコマンドを使用できます。

次の図に示すように、システム管理者権限を取得し、getuidコマンドを使用してユーザー名を取得します。

次に、次の図に示すように、コマンドhashdumpを使用して、ターゲットシステムのパスワードハッシュ値を見つけることができます。

このコマンドが失敗した場合は、Meterpreterプロセスを別のプロセス(システムレベルのシステム管理権限を持つプロセスなど)に移行してみてください。成功しなかった場合は、post / windows / collect/smart_hashdumpモジュールを使用できます以下に示すように:

次の図に示すように、オンラインcmd5を使用して、ハッシュ値に基づいてクエリを実行します。

次の図に示すように、Meterpreterでkiwiモジュールを使用することもできます。このモジュールは、プレーンテキストのパスワードを取得し、最初にload kiwiコマンドを使用してモジュールをロードし、次にcreds_allコマンドを使用してプレーンテキストのパスワードを表示します。

1.4辞書

パスワードを解読するときは、辞書による表現が不可欠です。いわゆる辞書は、多数の単語で構成される文書です。

カリには、次の3つの辞書のソースがあります。

◊辞書生成ツールを使用して必要な辞書を生成します。辞書が必要で、適切な辞書が手元にない場合は、ツールを使用して必要な辞書を生成することを検討できます。

◊Kaliに付属の辞書を使用して、次の図に示すように、Kaliはすべての辞書を/ usr / share /wordlists/ディレクトリに保存します。

◊インターネットから人気の辞書をダウンロードします。以下に示すように:

dirbディレクトリには3つのディレクトリと9つのファイルが含まれています。その中で、big.txtは179KBのサイズの比較的完全な辞書です。比較的言えば、small.txtはわずか6.4KBのサイズの比較的コンパクトな辞書です。catala.txtはプロジェクト構成ディクショナリ;spanish.txtは、メソッド名またはライブラリディレクトリディクショナリです。3つのディレクトリのうち、他のディレクトリには主に脆弱性に関連するいくつかの辞書が含まれています。たとえば、tomcat.txtはtomcat構成に関連する辞書です。

さらに、fern-wifiディレクトリにはcommon.txtが1つだけあります。これは、主にいくつかの可能なパブリックWi-Fiアカウントのパスワードです。metasploitディレクトリには多くのファイルがあり、ほとんどの場合、さまざまな一般的な種類の辞書が含まれています。wfuzzディレクトリは主にファジングテストに使用されます。Crunchのホームページには、このツールの使用方法と使用例が記載されています。このツールの使用は非常に簡単です。次の3つの値をCrunchに提供するだけです。

◊辞書内の単語の最小長

◊辞書に含まれる単語の最大長

◊辞書には、語彙で使用される文字が含まれています。パスワードを生成するために含める文字のセット(小文字、大文字、数字、記号)。このオプションはオプションです。このオプションが選択されていない場合、デフォルトの文字セット(デフォルトでは小文字)が使用されます。

残りの作業は、クランチが行う必要があります。以下に、クランチの使用法の簡単な例を示します。まず、Kaliでターミナルを起動し、次のコマンドを入力します。

┌──(kali㉿kali)-[~]
└─$ cruch 2 3 -o /home/kali/Downloads/passwords.txt

結果を以下に示します。

このコマンドは、2桁または3桁の長さのパスワードを生成し、これらのパスワードをpasswords.txtにポップします。次の図に示すように、デフォルトでは、「aa」や「ab」などのパスワードが生成されます。

ターゲットに精通している場合は、ターゲットで一般的に使用される文字を指定することもできます。誰かのキーボードのQ、W、E、R、T、および1、2、3、4のキーが使い古されていることがわかった場合は、これらの文字を指定してパスワードを生成できます。実行されるコマンドは次のとおりです。

┌──(kali㉿kali)-[~]
└─$ cruch 4 4 quert1234 -o /home/kali/Downloads/password2.txt

生成されたパスワードを以下に示します。

これで、生成したパスワードにq、w、e、r、t、1、2、3、および4の文字のみが含まれていることがわかります。

おすすめ

転載: blog.csdn.net/weixin_41905135/article/details/124977983