Wi-Fiネットワヌク䟵入ず保護。 3WPA。 OpenCL / CUDA。 マッチング統蚈





バスタ・カラプゞキ、ダンスは終了したした。



前のパヌトでは、ワむダレスネットワヌクの「保護」SSID、MACフィルタリングの非衚瀺および保護WPSを回避する「䞍正」な方法を詳现に怜蚎したした。 そしお、それはケヌスの半分で動䜜したすが、時にはもっず頻繁に-ゲヌムが終了しお重い砲撃をしなければならない堎合もありたす。 個人的な生掻ずクラッカヌの間に、最も匱いリンクが衚瀺されたすWPAネットワヌクからのパスワヌド。



この蚘事では、ハンドシェむククラむアントアクセスポむントのむンタヌセプト、CPUずGPの䞡方を䜿甚したパスワヌドの列挙、さらに、埓来の単䞀システム、EC2クラスタヌ、さたざたなタむプの最新GPUのデヌタの速床に関する統蚈の抂芁を瀺したす。 それらのほずんどすべおは、私自身の経隓に支えられおいたす。



蚘事の終わりたでに、 2〜3文字のa〜zの怠coupleな20桁のパスワヌドが、範囲の256の倀をすべお䜿甚しおも 、8桁の猛烈なパスワヌドよりも耐性がある理由を理解できたす 。



目次

1 玠材

2 カヌリヌ。 SSIDを非衚瀺にしたす。 MACフィルタリング。 Wps

3 WPA。 OpenCL / CUDA。 マッチング統蚈





PMK、PTK、 RPG







い぀ものように、理論から始めたしょう。 厳密に蚀えば、パスワヌドを遞択するためにパスワヌドは必芁ありたせん。 緎習前に怠慢な人はこのセクションをスキップできたす。 しかし、私の意芋では、クラむアント認蚌ずデヌタ暗号化の実行方法を知るこずは非垞に有甚であり、攻撃者ずしおこのプロトコルを解読しようずする際に経隓するすべおの困難を説明したす。 すべおの承認パッケヌゞの圢匏の解析を含む、より理解しやすい英語の詳现な説明は、 ここにありたす 。



WPAおよびWPA2最初はIEEEドラフトに基づいおおり、2番目は最終バヌゞョンに基づいおいたすが、この堎合は䞡方ずも同矩語ず芋なすこずができたすは、かなり巧劙な鍵亀換スキヌムを䜿甚したす。 むしろ、圌らの非亀換 。 最初の郚分から芚えおいるように、ハッカヌはこれらの倀をむンタヌセプトし、オフラむンモヌドでそれらから元のキヌを取埗しようずするため、぀たり、アクセスポむントたたはクラむアントず通信できなくなるため、保護の最も匱い点は暗号化されたキヌであっおもキヌを転送するこずです。 WPA開発者は、暗号化されたパスワヌドずオヌプンパスワヌドの䞡方の亀換を排陀したした。 これがどのように機胜するかを以䞋に説明したす。



最埌から始めたしょう。 暗号化されたデヌタパケットを送信するずしたす。 これを行うには、デヌタ自䜓ず、AESCCMPで䜿甚されるなどのアルゎリズムがそれらを消化できない暗号化圢匏に倉換するキヌが必芁です。 暗号化された文字列ず暗号化に䜿甚されたキヌを同じアルゎリズムに枡すこずで、デヌタを埩号化できたす。



最も簡単な方法は、ワむダレスネットワヌクのパスワヌドをキヌずしお䜿甚するこずです。 ただし、これには深刻な問題が䌎いたす。





それはたるで私たちず最終目暙の間にたくさんのドアがあり、それぞれが内郚に通じおいるようです。 ドアはネットワヌククラむアントであり、「内郚」はネットワヌクそのものです。 同じキヌがすべおのドアに適合する堎合、次のドアを通っお、そこで䜕が起こるかを芋るこずができたす。



2番目ず3番目の問題は、キヌにランダムな倀を远加するこずで簡単に修正できたす。この倀は、セキュリティで保護された接続が開始されるたびに、たたはその操䜜䞭にも倉わりたす。 最初は非垞に長いキヌです。 しかし、それから疑問が生じたすそれが入力する人でない堎合、 誰がそれを芚えおいるでしょうか次に、短いキヌからナヌザヌからこの長いキヌを取埗し、ブルヌトフォヌス攻撃を受けない方法さえありたすか



これには2぀の暙準的な解決策がありたす。ログむン詊行回数に制限を導入するか、最終的な文字列を取埗するプロセスを遅くするための倚重暗号化のいずれかです。 最初のオプションはオンラむン攻撃通垞はWebサむトのログむンフォヌムに適しおおり、ハッシュ自䜓が既に「挏出」しおいる堎合は圹に立たないため、適切ではありたせん。 しかし、2番目はたさに私たちの堎合です。



ただし、ここには問題がありたすパスワヌドを䜿甚しお゜ヌス行で特定のアルゎリズムを10,000回実行する堎合、すべおの可胜なパスワヌドの組み合わせで同じアルゎリズムを実行した埌、ハッカヌが蟞曞を䜜成する可胜性がありたす。ハンドシェむクをむンタヌセプトし、圌がすでに蚈算したテヌブルに埓っお、そのハッシュを確認したす。 テヌブルにそのようなハッシュがある堎合、それが蚈算された゜ヌス行もあり、圌に知られおいるこずを意味したす。 そしお、同じテヌブルを䜿甚しお他のデヌタを埩号化できたす。 このようなテヌブルは、レむンボヌテヌブルず呌ばれたす。 この手法は、叀いフォヌラムや他のPHP゚ンゞンの盗たれたデヌタベヌスでパスワヌドを遞択する際に特に人気がありたした。



これは、「塩」を远加するこずで解決されたす。これは、パスワヌド自䜓が䞀臎しおも、蚈算されたハッシュを異なるものにするランダムたたは倚かれ少なかれナニヌクな文字列です。



WPA暙準の䜜成者がこれらのタスクにどのように察凊したかを芋おみたしょう。



ハンドシェむクデヌタ暗号化スキヌム






䞊の図は、無線クラむアントずアクセスポむントで䞊行しお発生するプロセスを反映したものであり、無線で送信されるものではありたせん-これは重芁であり、以䞋でさらに重芁です。 蚈算を開始する前でも、クラむアントずAPの䞡方にはすでに次のデヌタがありたす。





すべおは、「ナヌザヌからの」「短いパスワヌド」がワむダレスネットワヌク名の秘密の芁玠を远加しおより長いキヌに倉換されるずいう事実から始たりたす。これにはPBKDFが䜿甚されたす。たくさんある堎合は、Microsoftに䌝えおください-Word 2007は50,000回行いたす。 その結果、256ビットの文字列、぀たり32バむトを取埗したす。 名前が異なる堎合、同じパスワヌドを持぀異なるネットワヌクに察しお䞀意であるこずに泚意しおください。 重芁な結論垞に暙準のネットワヌク名を倉曎し、 ASUS、dlink、SKY、linksys 、およびその他の非オリゞナル名を残さないでください。 これにより、レむンボヌテヌブルに察する攻撃が防止され、SHA-1の4096回の反埩凊理を困難にしたす。 公平に蚀えば、WPAぞのそのような攻撃の適甚に぀いお聞いたこずがないず蚀わなければなりたせんが、ハッカヌに䜙分なチャンスを䞎えるのはなぜですか



䞊蚘で取埗した行はPMK ペアワむズマスタヌキヌず呌ばれたす。 これは静的です。぀たり、ネットワヌク名が倉曎されなくおもパスワヌドず同様に倉曎されないため、デヌタを暗号化するべきではありたせん。したがっお、PMKずパスワヌド自䜓を䜿甚した暗号化に違いはありたせんこれは問題で蚀及されたした開始。 したがっお、パスワヌドを䜿甚する堎合ず同様に、PMKを「シャむニング」しないでください。



したがっお、さらに、このデヌタ転送セッションに特に䜿甚する䞀時的で非垞に長く非垞に䞀意のキヌを取埗する必芁がありたす。 それは䞀時的なキヌです。 ぀たり、 PTK ペアワむズトランゞェントキヌ-短期ペアキヌです。 このため、同じPBKDFアルゎリズムが䜿甚されたすが、入力で5぀の倀が転送されたす。



  1. PMK-パスワヌドずネットワヌク名に基づいおすでに蚈算されおいたす
  2. A-Nonceは、アクセスポむントがクラむアントの接続芁求認蚌䞭の最初のパケットに送信するランダムな文字列です
  3. S-Nonceは別のランダムな文字列ですが、クラむアントから次のパケットでAPに送信されたす
  4. アクセスポむントのBSSIDMACアドレス
  5. クラむアントMACアドレス


したがっお、5぀の倀を文字列にリンクし、SHA-1を䜿甚しお4096回駆動するこずにより、256ビットのPTKを取埗したす。 クラむアントからAPぞ、およびその逆のすべおのデヌタを暗号化するために䜿甚されるのは圌です。



最埌の手順は、クラむアントが実際にネットワヌクぞの正しいパスワヌドを持っおいるこずを確認するこずです。これにより、すべおが開始されたす。 説明した操䜜は、2぀のnonceの転送を陀いお、䞡偎で独立しお、盞互にやり取りするこずなく行われるこずを忘れたせんでしたか この堎合、初期デヌタが異なるため、圓事者は異なるPTKを受信したす。たずえば、クラむアントがトラフィックを暗号化しおアクセスポむントに送信するず、PTKがクラむアントによっお暗号化されたキヌず異なるため、暗号化を解陀できたせん。 ここでの異なる「初期デヌタ」は、たず第䞀に、ネットワヌクのパスワヌドです。これは、䞍安定な芁玠、぀たりMACアドレス、ネットワヌク名などは「ハヌドりェア」に由来するためです。問題。



送信されたデヌタパケットをチェックするために、 MIC-メッセヌゞ敎合性コヌド、たたはメッセヌゞ敎合性コヌドが远加されたす。 WPAは、HMAC-MD5よく知られおいるMD5のバリ゚ヌションを䜿甚しお蚈算したす。 ずころで、誰もがCRC32に粟通しおいたす-これはそのような目的のための別のアルゎリズムで、アヌカむブ内のファむルをチェックするためによく䜿甚されたす。 結果のコヌドはハッシュ和ずも呌ばれたす。



アむデアは、ハッシュ関数MD5、CRC、SHAなどを任意の長さのデヌタストリヌムの入力に䟛絊するこずにより、このデヌタストリヌムに固有の特定の出力行を取埗するこずです。 圓然、100の䞀意性は䞍可胜です-出力文字列が4バむトの堎合、すべおの可胜な入力の組み合わせに察応するこずはできたせん。 ただし、アルゎリズムは、他の行がたったく同じハッシュを生成できるものを芋぀けるこずができないように蚭蚈されおいたす実際、CRCのような匱いアルゎリズムではそうではありたせん;意図的な補造ではなく、偶発的な損傷がないかデヌタをチェックするために䜿甚されたす



したがっお、ストリング12345



を転送するず同時に、受信偎が転送䞭にストリングが倉曎されおいないこずを確認できるようにする必芁があるず想像しおください。 これを行うには、独自のハッシュを远加したす。



 input = 1 2 3 4 5 sha1(1 2 3 4 5) = 8cb2237d0679ca88db6464eac60da96345513964 output = 1 2 3 4 5 | 8c b2 23 7d 06 79 ca 88 db 64 64 ea c6 0d a9 63 45 51 39 64
      
      





受信するず、デバむスは受信したメッセヌゞからハッシュを切り取り「|」の埌、巊偎にあるもののハッシュ合蚈を蚈算し、䞡方の郚分を比范したす。 収束-぀たり、誰の賢いペンもデヌタに觊れおいたせん。



...しかし、もちろん、すべおがそれほど単玔ではありたせん。 攻撃者は、ハッシュの合蚈を蚈算するアルゎリズムを知っおいるため、メッセヌゞを倉曎し、新しい量を蚈算しお、叀い量を新しい量に眮き換えるこずができるこずに気付くのは簡単です。 どうする そしお、すべおを青い炎で燃やしおください そしお、再び「塩」を远加したす。これは、受信偎は知っおいたすが、ハッカヌは知らない倀です。 そうするず、圌は新しいハッシュを蚈算できなくなりたす。



ハンドシェむクデヌタ暗号化スキヌム






この図をもう䞀床芋おみたしょう。今回は最埌の行に興味がありたす。 MICは、 PTKずメッセヌゞ自䜓のバむトストリヌムで構成されたす。 PTKは単なる「塩」です芚えおいるように、 PTKはストリヌム自䜓の暗号化にも䜿甚され、珟圚ではハッシュ和、぀たりMICの蚈算にも䜿甚されおいたす。 ストリヌムずPTKはHMAC-MD5で送信され、結果のハッシュはMICず呌ばれたす。 メッセヌゞずずもに受信偎に送信されたす。受信偎は、パケットをデコヌドし、そのMICを蚈算したす。このMICがパケット自䜓で芋぀かったものず異なる堎合、誰かが送信プロセスに入ったか、単に倩気がなかったず芋なし、これを砎棄したすパッケヌゞ。



そしお今、泚意クラむアントがネットワヌクぞの正しいパスワヌドを持っおいるこずを理解し、その結果、このPTK自䜓を送信せずに正しいPTKを蚈算したしたか シンプル䞀方の最初のメッセヌゞを暗号化しお、もう䞀方のメッセヌゞを解読できるかどうかを確認したす。 同じPTKが䜿甚された堎合、解読䞭に受信したMICは送信したMICず䞀臎するこずを意味したす。 それらが異なる堎合-MICは収束せず、その結果、PTKは異なり、その結果、PMKは異なり、その結果、元のパスワヌドは異なりたした。



最埌に、統合のために、実際には、ハンドシェむクを䜿甚しお無線でオヌプン圢匏で送信されるものの簡略図。









ご芧の通り、倚かれ少なかれクロヌズドなデヌタの䞭で、IEEEのトリッキヌな人間は1぀のMICを転送するこずができたした。これはPTKを䜿甚しおすでに暗号化されお送信されたす。



カランバ





 オリゞナルアヌト 。



どうするか、Semenych



簡単なレビュヌで、 aircrack-ngやhashcatのようなブラックマゞックツヌルがハンドシェむクパスワヌドを芋぀けようずするずきに䜿甚するものに光を圓おるこずを願っおいたす。 珟圚わかっおいるように、パケットの1぀MICのハッシュ和のみを手に持っお、チェヌン党䜓を巻き戻す必芁がありたす。 ぀たり、次のこずを行いたす。



  1. 最初のステップは、メむンネットワヌクキヌ-PMKを蚈算するこずです。 これを行うには、パスワヌドずネットワヌク名を取埗したす。 埌者はむンタヌセプトされたハンドシェむクパケットから取埗され詳现は以䞋を参照、最初のパケットは䞀床に1぀ず぀蟞曞から取埗するか、利甚可胜なキヌスペヌス党䜓を「真正面から」 繰り返すこずができたすが、これはゞェダむであり、GPUの圢匏で特別なストリヌトマゞックを持っおいる堎合のみです 。
  2. 次に、 PTKが蚈算されたす-受信したPMK䞊蚘からのハッシュ合蚈、クラむアントMACアドレスずAP、およびそれらからのランダムなナンス文字列傍受したパケットから取埗。
  3. 最埌に、MICから送信されたパケットの堎合、MICは䞊蚘で取埗したPTKに基づいお蚈算されたすが、送信されたMICは無芖されたすMIC自䜓を含むメッセヌゞ党䜓に䟝存するため、このフィヌルドは蚈算前に0に蚭定され、そうでない堎合は蚈算できたせんあなたはこの量を知る必芁がある蚈算のためのMICを知らずに量。
  4. 䞡方のMICが比范されたす -それらが䞀臎する堎合-パスワヌドが芋぀かったPTKが正しい> PMKが正しい>パスワヌドが正しい、そうでない堎合- 行1に移動


したがっお、各反埩には少なくずも8192のSHA-1蚈算が必芁であり、MD5よりも3倍遅くなりたす。 これは非垞にコストのかかるプロセスです。 そしお、最終的には䜕が埗られたすか



しかし、最終的には、認蚌を傍受した䞍運なクラむアントの元のパスワヌドずPTKのみです。 これは、他の顧客のフロヌを読み取るこずができないこずを意味したす-圌らは異なるPTKを持っおいたす。 接続する前にこのクラむアントが送信したデヌタを読み取るこずはできたせん-たた、異なるPTKがありたした。 圌が次回接続した埌に送信するものを読むこずさえできたせん-結局、PTKは再び倉化したす



これは非垞に重芁な結論です。サむクルの4番目の蚘事では、Wiresharkでパケットをむンタヌセプトするずきに非垞に圹立ちたす。 この蚘事で説明したように、ネットワヌクからパスワヌドを取埗するだけでなく、リッスンするすべおのクラむアントのハンドシェむクをむンタヌセプトする必芁がありたすたたはARPスプヌフィングを䜿甚したすが、これは別のレベルの攻撃です。 それはただ仕事です。



ずころで、PTKでの経隓は、すべおのクラむアントフロヌを暗号化するために垞に同じキヌが䜿甚されるWEPの難しい゚ラヌの息子です。





歊噚に







理論では、私は玄束したす。 緎習のみ-ここから昌食たで。



そのため、接続を確立するずきに、クラむアントずアクセスポむントの間で亀換される最初の4぀のパケット各偎に2぀をむンタヌセプトするこずが再びタスクです。 芁するに、それらはハンドシェむクず呌ばれたす。 その埌、すでに暗号化されたデヌタ転送が開始され、そこからは䜕も取埗できたせん。 ずころで、これらのパケットはEAPたたはEAPOLプロトコルの䞀郚であり、Wiresharkではこの名前で衚瀺されたすシリヌズの次の蚘事を参照。



それらを傍受した埌、私たちはそれらを自分自身に保存しおからオフラむン攻撃を行うこずができたす-぀たり、ネットワヌクの元のパスワヌドを取埗し、別のパスワヌドを詊しにPMK> PTK> MICを生成し、埌者を実際に送信されたものず比范したす䞊で説明したした。



代行受信はairodump-ngを䜿甚しお行われたす。これは、第2郚ですでによく知っおいたす。 パラメヌタヌを䜿っお遊ぶこずができたす。パラメヌタヌに぀いおは同じ堎所に曞かれおいたすが、䞀般的に呌び出しは次のようになりたす。

 airodump-ng mon0 -c 5 --bssid AP_BSSID -w caps
      
      





その前に、カヌドを「ハッカヌモヌド」モニタヌモヌドに転送し、他のすべおの操䜜MAC、txpowerなどの倉曎-2 番目の郚分を参照を行う必芁がありたす。



䞊蚘のコマンドでは、識別子mon0



䞋のむンタヌフェむスを䜿甚しお、チャネル5の攻撃されたネットワヌクのパケットを収集したす。これは--bssid



埌に指定されたMACを持ち、パケットをcaps-NN.cap



デフォルトでは、倚くのラむブラリでサポヌトされおいる暙準のlibpcap圢匏が䜿甚されたすWiresharkを含むすべおのオペレヌティングシステムで。 NNは䞀意の番号に眮き換えられるため、同じパラメヌタヌでairodump-ngを再起動するず、叀いファむルは䞊曞きされたせんが、 cap-01.cap



onずいう圢匏の名前になりたす。



攻撃察象のネットワヌクにBSSID 4F:B1:A4:05:5C:21



があり、チャネル11にあるずしたす。次に、これを行いたす。

 airodump-ng mon0 -c 11 --bssid 4F:B1:A4:05:5C:21 -w caps
      
      





開始埌、2぀のテヌブルを備えた既に銎染みのあるコン゜ヌルりィンドりが開きたす。 誰かが私たちのネットワヌクに接続するたで、ぶら䞋げたしょう...



しかし、このプロセスを加速できたす 読者は、既存のクラむアントを切断し、認蚌デヌタを再床転送するこずを匷制できるこずを芚えおいたす。これは、私たちのような萜ち着きのないハッカヌにずっお非垞に䟿利です。 すでにおなじみの aireplay-ngは、私たちを喜んで助けおくれたす。

 aireplay-ng mon0 -0 5 -a 4F:B1:A4:05:5C:21 -c 5B:23:15:00:C8:57
      
      





5B:23:15:00:C8:57



以前に起動したairodump-ngのテヌブルから取埗したクラむアントのMACアドレス。



すべおが正しく行われた堎合、 aireplay-ngはSending directed deauth



のフォヌムの5行を衚瀺し、 airodump-ngのりィンドりで、「倱われた」パケットの数が急速に増加するこずを確認する必芁がありたす Lost列。 数千に及ぶ可胜性がありたす。



その埌、私たちの芪愛なるクラむアント、圌が私たちの送信機の範囲内にあり、それがアクティブだった堎合デバむスがネットワヌクに接続されたたたでも䜿甚されず、切断しおも匷制的に再接続されない堎合、すぐに再び認蚌を開始し、これらのパケットをキャッチしたすairodump-ngは、 [ WPA handshake: 4F:B1:A4:05:5C:21 ]



ハンドシェむクがむンタヌセプトされたネットワヌクのMACアドレスずいう碑文で右䞊隅に勝手に報告したす。



これが発生した堎合-攻撃が成功した堎合、 airodump-ngを終了し、受信したcaps-01.cap



をUSBフラッシュドラむブにコピヌしお巻き戻すこずができたす。 なぜ、私たちは手に鍵を持っおいたす...



暗号化されおいたす。



パスワヌド掚枬


ハンドシェむクの最初の郚分は、通垞、特にアクティブなクラむアントが倚数あるネットワヌクで最も簡単です。 MICおよびその他の認蚌デヌタを含むパッケヌゞを受け取りたした。 ここで、このロックに適合するキヌを芋぀ける必芁がありたすか



遞択には倧きな蚈算胜力が必芁であり、そのためにEC2クラスタヌをレンタルしたり、独自のATIファヌムを組み立おるこずもできたす。 たたは、ナヌザヌがSSZBであるこずを期埅しお、通垞のCPUで最も䞀般的なパスワヌドの蟞曞を介しおパッケヌゞを単玔に実行できたす。 ちなみに、埌者は非垞にうたくいく可胜性がありたす-私がテストした11のネットワヌクでは、1぀は「12345678」、2぀目は「123456789」、もう5぀は8桁のパスワヌドを䜿甚したした。 同時に、残りの4぀のうち3぀は、さらに2日でWPSを介しおハッキングされたした 2番目のパヌトを参照。 そしお、最埌のものは私のものでした 実際はそうではありたせんでしたが、私はただ圌女のパスワヌドを芋぀けるこずができたせんでした。



そのような間違いを繰り返さないでください。



もう1぀の䞀般的なオプションは、電話番号数字のみです。 䌁業、店舗、カフェのチェヌンに特に関連したす。 通垞、このような「パスワヌド」は、機関の入り口ですぐにハングアップしたす。 コヌドが既知の堎合、 crunch 10 10 -t 063%%%%%%%



 RaSta を介しおすべおの数倀を生成できたす。



aircrack-ng


繰り返し凊理を行う最も簡単な方法。 aircrack-ngはCPUのみを䜿甚したすが、マルチスレッドを完党にサポヌトしおいたす。 WPAネットワヌクの蟞曞倀を列挙したすWEPをクラックするこずもできたす。



Kaliには/usr/share/wordlists/



に蟞曞のセットが付属しおいたすが、必芁に応じお、メガバむトから数十ギガバむトたでの任意のサむズのむンタヌネットで簡単に芋぀けるこずができたす。 WPA-PSK Wordlist 3 Final



、および8桁の数字パスワヌドのすべおの組み合わせから生成された蟞曞は、 crunch 8 8 1234567890



を䜿甚しお取埗したものcrunch 8 8 1234567890







 aircrack-ng -w /usr/share/wordlists/fasttrack.txt caps-01.cap
      
      





/usr/share/wordlists/fasttrack.txt



付属-パスワヌド付きの蟞曞ファむルぞのパス、1行に1぀のパスワヌド。 これはWPAの最小長であるため、8文字より短い行は無芖されたす。



私のi7 3840QM 4x3.8 GHzでは、 aircrack-ngは毎秒4700個のパスワヌドを圧瞮したす。 したがっお、8桁のすべおの可胜な組み合わせを完党に列挙するのに必芁な時間を蚈算できたす。

 (10^8) / (4700 * 3600) = 5,91 
      
      





次のように、実際に遞択ベンチマヌクせずに遞択速床を確認できたす。

 aircrack-ng -S # 4713 k/s
      
      





そのため、遞択で䜿甚されるコアの数を確認できたす。

 aircrack-ng -u # No CPU detected: 8 (SSE2 available)
      
      





合蚈で6時間で、ハむ゚ンドのモバむルCPUで1,000䞇個のパスワヌドを敎理できたす。 このような長さのデゞタルパスワヌドは、深刻な保護ず芋なされるべきではありたせん。さらに、数十倍から数癟倍の速床を実珟するGPUを適甚するず、パスワヌドは数分で壊れたす。 それに぀いおは以䞋。



攻撃が成功した堎合、぀たり、 aircrack-ngがパスワヌドを芋぀けた堎合、操䜜が完了し、画面に楜しいKEY FOUND! [ ... ]



が衚瀺されたすKEY FOUND! [ ... ]



KEY FOUND! [ ... ]



-曞き留めお、ネットワヌクに入るために䜿甚したす。 たた、芋぀かったパスワヌドを-l pass.txtを䜿甚しおファむルに曞き蟌むこずもできたす。これは、 aircrack-ng ... -l pass.txt &



ずしおバックグラりンドで怜玢を開始するずきに圹立ちaircrack-ng ... -l pass.txt &







䞊蚘の匏の説明





比范するその他の蚈算

  (26^8) / (4700 * 3600 * 24) = 514    8-   az (10^10) / (4700 * 3600 * 24) = 24,6   10-   (26^10) / (4700 * 3600 * 24 * 365) = 952   10-   az (10^12) / (4700 * 3600 * 24 * 365) = 6,7   12-   (10^14) / (4700 * 3600 * 24 * 365) = 674,6   14-  
      
      





CPUだけに぀いお話しおいる堎合、長い行の統蚈を蚈算しおも意味がありたせん。 しかし、結論を出す前に、ATI Goliathに぀いお知るたで埅ちたす。



䞖界はクレむゞヌたたはGPGPU-汎甚GP






ゲヌムが暖かくおランプのようであり、GPUがそれぞれ4 MBのメモリを意図した目的に䜿甚しおいた時代は長い間過ぎおいたした。 今日、それらはあらゆるものに䜿甚されおいるようですが、ゲヌムには䜿甚されおいないようです。 少なくずも1぀のシステムで8぀のR290Xを䜿甚しおいるゲヌマヌは芋おいたせんが、鉱山劎働者、フォルダヌ、およびラック党䜓を備えた他のオタク-十分すぎるほどです。 なぜそう



デザむン機胜のグラフィックチップは、CPUのアヌキテクチャずは根本的に異なりたす。 CPUず4、8、16コアに぀いお話しおいる堎合サヌバヌは䜿甚したせん、GPUの堎合は、数千の独立したコアに぀いお話したす。 グラフィックスを凊理するずき、倧きな配列行列で操䜜をすばやく実行する必芁がありたす。 そしお、暗号化に必芁なのはたさにそのような操䜜です。 したがっお、GPはハッシュたたは暗号通貚マむニングの蚈算に䜿甚できたす。



GPは1぀のシステム内で組み立おるこずができ、システムをクラスタヌ化しお「ファヌム」を䜜成できたす。 埓来のCPUずパフォヌマンスが倧幅に分離されおいるため、4぀のCPUを搭茉した10個のシステムよりも、4぀のGPUを搭茉した10個のシステムのファヌムを構築する方がはるかに効率的です。



ASICずFPGAのみが優れたパフォヌマンスを発揮できたす-特定の蚈算を実行するようにプログラムできる特別なデバむスですが、それらに煩わされお別個の゜フトりェアを䜜成する必芁があり、GPずSDKは長い間存圚し、比范的簡単に曞き蟌みを開始したす。 特に魅力的なのは、ATIカヌドです。アヌキテクチャにより、これらのタスクに特化したnVidiaのカヌドよりも桁違いに優れおおり、同時にはるかに安䟡です。 AMDの゚ンゞニアがLTCに倢䞭になっおいるこず以倖はそうではありたせん。



タスクのコンテキストでは、GPを䜿甚しお2぀の玠晎らしいプログラム hashcatずpyritを䜿甚しおパスワヌドを䜜成できたす。



hashcatは、さたざたなアルゎリズムMD5、SHA、WPA、および数十を䜿甚しおさたざたな圢匏のハッシュを即座に蚈算し、蟞曞の単語にルヌルを適甚し、さらには塩を远加するための閉じた無料のナヌティリティです。 私の意芋では、これは今日存圚する最高のものです。 閉じられたプロゞェクトを少し動揺させたすが、著者は理解できたす-これは倚くの䜜業です。



hashcat



は次の3぀のプログラムで構成されおいたす。hashcat GPUを䜿甚せず、テストでは速床がpyritに匹敵し、䞀般にどのCPUよりも高速に動䜜するaircrack-ngよりわずかに遅い。 OpenCLATIのSDKおよびcudaHashcat nVidiaのoclhashcat 。 埌者の2぀の機胜は同じですが、GPのメヌカヌず䞀臎する必芁がありたす。 GPUカヌネルはそれらなしでは認識されないため、䜜業の前にドラむバヌずSDKをむンストヌルする必芁がありたす。



pyritは、PythonでWPAキヌを遞択するためのオヌプン゜ヌスツヌルです。 䞀般に、快適なプログラムであり、それ自䜓の目的には最適です。 たた、CPUず䞡方のGPUメヌカヌのバヌゞョンもありたすが、WPAでのみ機胜したす。 oclhashcatずは異なり、pyritはCPUずGPの䞡方を䜿甚したすが、oclhashcatはGPのみを䜿甚したす。 埌者の著者は、ゲむンが最小であり、プログラミングコストが非垞に高いずいう事実によっおこれを説明しおいたす。



ドラむバヌのむンストヌル


それでは、このツヌルキットの䜿甚方法を芋おみたしょう。 以䞋に説明するメカニズムは、Kali、CUDA、Pyritの゜ヌスず䜕時間も闘った埌に明らかになったので、この時間を節玄できるこずを願っおいたす。 Kali 1.0.7 x64



バヌゞョンKali 1.0.7 x64



およびバヌゞョンcuda_6.0.37_linux_64



およびNVIDIA-Linux-x86_64-331.67



すべおが正垞にテストされNVIDIA-Linux-x86_64-331.67



。 ラップトップはOptimusnVidiaのテクノロゞヌを䜿甚しお、Intelの統合GPUを切り替えたす。 Kaliのドキュメントには、 nVidiaドラむバヌのむンストヌルに関するペヌゞがありたす -たた、圹に立぀かもしれたせん 。



Kaliには圓初、GPUを操䜜するための゜フトりェアがありたせんでした。今日では2぀の競合する暙準AMDのOpenCLずnVidiaのCUDAがあり、さらにCUDAは暙準のnouveauではなくクロヌズドドラむバヌを䜿甚しおいたす。 したがっお、すべおを自分でむンストヌルする必芁がありたす。



たず、Linuxカヌネル゜ヌスのヘッダヌを蚭定したす。

 apt-get install linux-headers-`uname -r`
      
      





次に、nVidiaのドラむバヌずCUDAのSDKをダりンロヌドしたす。 nVidia WebサむトおよびCUDAセクションからRUNファむルぞのリンクを䜜成したす。

 wget http://.../NVIDIA-Linux-x86_64-331.67.run wget http://.../cuda_6.0.37_linux_64.run
      
      





次に、りィンドりマネヌゞャヌXを終了する必芁がありたす。実際、このマニュアルXサヌバヌ/セッションのシャットダりンでの䞍可解なフレヌズは、文字通り次のこずを意味したす。

 shutdown 0
      
      





これにより、システムがメンテナンス/シングルナヌザヌモヌドになりたす。Kaliはrootパスワヌドを芁求するか、Ctrl + Dを抌したす。埌者はGNOMEの再起動に぀ながりたすが、これはたったく必芁ありたせん。パスワヌドデフォルトではtoorを入力するず、コン゜ヌルが衚瀺されたす。私たちはそこで行いたす

 modprobe -r nouveau chmod +x *.run ./NVIDIA-Linux-x86_64-331.67.run ./cuda_6.0.37_linux_64.run
      
      





この堎合、ドラむバヌをむンストヌルするずき最埌から2番目のコマンド



  1. むンストヌラヌからランレベル3にする必芁があるず蚀われたら、[ いいえ]を遞択したすtelinit 3を介しお取埗するこずはできたせんでした。
  2. No 32- ( 64- )
  3. nVidia ( nouveau ) — X , No


CUDAむンストヌラヌの堎合、nVidiaドラむバヌをむンストヌルするずきにnず答えたすラむセンスが承認された埌の2番目の質問-この瞬間はわかりたせんが、それを介しおドラむバヌをむンストヌルするず、むンストヌルは垞にで終了しInstallation failed



たす。最初のむンストヌラヌが成功したした。



CUDAむンストヌラヌからの他のすべおの質問にはyが回答したす。サンプルは蚭定できたすが、蚭定できたせん玄230 MBを占有したす。



むンストヌルされたCUDAの機胜をテストするには、nvccにありたすを実行したす/usr/local/cuda/bin



。゚ラヌなしで合栌した堎合、すべおが機胜したす。



有線ネットワヌクむンタヌフェむスがむンストヌルプロセス䞭に切断された堎合発生する堎合がありたす、次のように䞊げるこずができたす。

 ifconfig eth0 up dhclient eth0
      
      





最埌に、むンストヌルに問題があり、叀いドラむバヌを返しおGNOMEを再床開く堎合は、最初にnouveauをロヌドしおからCtrl + Dを抌したす。

 modprobe nouveau
      
      





OSを読み取り専甚でロヌドした埌、ドラむバヌを䜿甚したすべおの操䜜をお勧めしたす第2郚を参照。ドラむバヌの損傷は通垞のデスクトップを非垞に簡単に倱い、問題を探すためにコン゜ヌルをバむパスする必芁があるためです。



cpyrit_cudaおよびoclhashcatの蚭定


これで、ナヌティリティ自䜓をむンストヌルできたす。hashcatはapt-get install -y oclhashcat



OpenCL / CUDAの䞡方のバヌゞョンでを介しおむンストヌルされ、pyritは゜ヌスからコンパむルされたす泚trunk



珟圚の安定バヌゞョンには、䞀郚のnVidiaでコンパむルが倱敗する可胜性があるバグがあるため、最新バヌゞョンを䜿甚しおください私のカヌド。pyritの



むンストヌルOpenCLを䜿甚しおいる堎合- プロゞェクトWebサむトのドキュメントを参照

 apt-get install -y libpcap-dev python-scapy svn checkout http://pyrit.googlecode.com/svn/trunk/ psrc cd psrc/pyrit sudo python setup.py build sudo python setup.py install cd ../cpyrit_cuda sudo python setup.py build sudo python setup.py install
      
      





組み立お完了。pyritがカヌドを芋぀けたかどうか芋おみたしょう

 pyrit list_cores
      
      





成功するず、#0 GPU ...



コアごずに1行、CPUコアごずに1行が印刷されたす私のシステムでは、1぀のプロセッサコアがGPUによっお消費されたしたが、pyritは8スレッド以䞊をサポヌトしおいない可胜性がありたす。



次に、テストを実行し、10〜20秒埌にGP機胜を䜿甚しおおおよその怜玢速床を芋぀けたす。

 pyrit benchmark
      
      





私のシステムでは、pyritずhashcatの䞡方が毎秒 10,500GPU+ 4,000CPUのパスワヌドを生成したす。これにより、このような蚈算にnVidiaが䞍適切であるこずを確認できたすGeForce GTX 675MXがありたす。ATIの同様のモバむルカヌドは、玄40,000 p / sを生成したす。



したがっお、pyritで怜玢を実行したす。

 pyrit -r caps-01.cap -e MYNET -i /usr/share/wordlist/fasttrack.txt attack_passthrough
      
      





パラメヌタヌはaircrack-ngに䌌おいたす。䞀臎が芋぀かるず、pyritは終了し、キヌが画面に衚瀺されたす。



起動時にACPIに関するピリットずhashcatの譊告が衚瀺される堎合-蚈算がうたくいった堎合は無芖できたす。私はそれらの10-15を持っおいたす。



特定の長さのすべおのデゞタルパスワヌドを䞊べ替えるには、2぀の方法で実行できたす。オンザフラむで実行するか、ディスク䞊に蟞曞を生成したす。 Kaliには蟞曞を生成するためのナヌティリティがいく぀かありたすが、そのうちの1぀がcrunchです

 crunch 8 10 0123456789 | pyrit -r caps.cap -e MYNET -i - attack_passthrough
      
      





-i- stdinからパスワヌドを読み取るようにpyritに指瀺し、8 10-文字0123456789で構成される生成されたクランチワヌドの最小長ず最倧長を指定したす。ディスクに保存する蟞曞を生成するこずは意味がありたせん。ファむルは112 GBであり、保存できるからです。その堎で生成するず反埩の速床に圱響しないからです。



ハッシュキャットの発売


hashcat — , , , libpcap ( airodump-ng ), — *.hccap



.



.cap .hccap . : , , .hccap: online- , 5 — , ( , ).



 wpaclean clean.cap caps-01.cap aircrack-ng clean.cap -J hashcat
      
      





hashcat.hccap



hashcat



, oclhashcat



cudahashcat



. , wpaclean ( Kali) , . , ( , aircrack



, hashcat



, pyrit



. , , ).



hashcat oclhashcat -h



. — .



( -m2500WPAハンドシェむクでのキヌ遞択を瀺し、-a3はマスクマッチングモヌドを蚭定し、d ...-単語を生成するためのマスク自䜓?d



文字0-9を瀺し、8 ?d



が連続しお8桁を瀺したす

 oclhashcat -m2500 -a3 caps.hccap ?d?d?d?d?d?d?d?d
      
      





同様に、蟞曞怜玢-a0は省略可胜

 oclhashcat -m2500 -a0 caps.hccap /usr/share/wordlists/fasttrack.txt
      
      





そしお、アルゎリズム-m110で蚈算されたファむル内のハッシュによっお、パスワヌドの行-a3で単玔な怜玢を開始したす。パスワヌドは6桁で、圢匏は次のずおりです。~/hashes.txt



sha1(+)



[AZ] [A-Z0-9] [A-Z0-9] [A-Z0-9] [A-Z0-9] [0-9]





 oclhashcat -m110 -a3 -1?d?l ~/hashes.txt ?u?1?1?1?1?d
      
      





最埌に、この方法で速床テストを実行できたす。

 oclhashcat -b
      
      





芋぀かったパスワヌドは画面に衚瀺され、ファむル/usr/share/hashcat/hashcat.pot



に曞き蟌たれるか、GPバヌゞョンの堎合-cに曞き蟌たれたす/usr/share/oclhashcat/hashcat.pot



。



ナヌティリティの動䜜䞭に、タヌミナルでEnterキヌを抌すず、珟圚の状態速床、残りのなどを衚瀺できたす。qを抌すず、プログラムが䞭断されお状態が保存され、同じコマンドラむンを䜿甚しお同じ堎所から-s 1234を远加しお続行できたす。番号はセッション番号を瀺したすナヌティリティの終了時に衚瀺されたす。



Amazon EC2


楜しみのために、AWSの2぀の最も匷力なクラスタヌであるcc2.8xlarge32 CPUコアずg2.2xlarge1 nVidia Teslaおよび8 CPUコアでWPAキヌの遞択を実行したした。



 g2.2xlarge = 22000 k/s [pyrit+cuda] cc2.8xlarge = 14000 k/s [aircrack-ng] 13500 k/s [pyrit]
      
      





ご芧のずおり、nVidiaの超高䟡なカヌドでさえ、ATIの平均的なGPUのようなハッシュを蚈算するタスクに察応しおいたせん。実際、テスラは通垞のGTXよりもさらに䜎速です。それは理解できる-それは完党に異なる目的を持っおいたす。しかし、ATIがこの問題にうたく適合する理由は興味深い質問です...



そしお、もちろん、32のサヌバヌコアはTeslaずさえ競争できたせん。



AMDが同様のnVidia゜リュヌションよりも優れおいるのはなぜですかポむントは、より倚くのストリヌムプロセッサコアであり、その結果、敎数倀暗号化に䞍芁な浮動小数点数ではないでの操䜜が高速になり、特に暗号化に䜿甚できる特別な呜什BIT_SELECT



およびBFI_INT



のおかげです。



自分で詊しおみたい人はむンストヌルされおいたす次のようなDebianたたはUbuntuを䜿甚するEC2でのaircrack-ng

 sudo yum install gcc libnl-devel openssl-devel wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta3.tar.gz tar xf aircrack-ng-1.2-beta3.tar.gz cd aircrack-ng-1.2-beta3 sudo make install
      
      





統蚈



CPUずGPUがパスワヌドの列挙にどのように察凊するかを芋た埌、結論を導き出すこずができたす。以䞋は、今日2014幎6月の最新のビデオカヌドの統蚈です。デヌタは、友人chem_uaおよびオヌプン゜ヌスgolubev.com、oclhashcatおよびフォヌラムペヌゞから、私のシステムのいく぀かで取埗されたした。Litecoin wikiの広範な衚ずBitcoinの同様の衚に埓っお、異なるカヌドの機胜を互いに比范するこずができたす。



数倀は、システムの構成、OS、枩床/冷华、および加速に応じお瀺されたす。あなたがあなた自身のデヌタを持っおいる堎合-コメントや個人で共有する、私はそれらをテヌブルに远加したす。kh / s -毎秒のパスワヌドの蚈算ず比范の数千単䜍10 kh / s =毎秒10,000パスワヌド。



 nVidia 670 24 kh/s nVidia 675MX 11 kh/s nVidia 780M 42 kh/s nVidia 580 47 kh/s nVidia Tesla K20 85 kh/s nVidia 750 Ti 55 kh/s nVidia Titan Black 108 kh/s AMD 280X 160 kh/s AMD 290X 190 kh/s AMD 295X*2 203*2 kh/s AMD 5870 101 kh/s AMD 5870 153 kh/s AMD 6870 72 kh/s AMD 6990 181 kh/s AMD 7970 128 kh/s AMD 7990 220 kh/s
      
      





泚意䜎コストのGPUたずえば90ドルの5870をCPUの結果ず比范しおも数倀はオフスケヌルですが、GPU、特にAMDのGPUずは異なり、数十倍の電力を消費するこずに泚意しおくださいたずえば、わずか2台の290Xで0.75-1 kW PSUを備えおいたす。そのため、このような「発電機」を賌入する前に、特にそれらを分散する予定がある堎合は、最初に毎月の電気料金がどれくらいかかるかを怜蚎しおください。たたは、750ワットの300ワットしか必芁ずしたせん。



也燥残枣


GPを䜿甚したハッシュの蚈算に粟通しおいるため、すべおがいかに悲しいか、短くお「耇雑な」パスワヌドの本圓の䟡栌は䜕かを理解できたす。これは、WPAだけでなく、PBKDFだけがリ゜ヌスの集䞭床の圱響を受けにくいためです。今日、単䞀システムの最高氎準である8 AMD 290X合蚈玄3000ドルを取埗するず、1秒あたり150䞇のWPAハッシュ、たたは940億のMD5ハッシュが埗られたす。



したがっお、WPAを怜玢する時間に関する䞊蚘の図は次のようになりたす。

  (26^8) / (1500000 * 3600) = 38,7    8-   az ( 514 ) (10^10) / (1500000 * 3600) = 2   10-   ( 25 ) (26^10) / (1500000 * 3600 * 24 * 365) = 3   10-   az ( 952 ) (10^12) / (1500000 * 3600 * 24) = 7,7   12-   ( 7 ) (10^14) / (1500000 * 3600 * 24 * 365) = 2,1   14-   ( 674 )
      
      





ご芧のずおり、数倀は劇的に倉化しおいたす。さらに、MD5を䜿甚したパスワヌドの匷床を調べるず61,000倍高速に蚈算され、これにはレむンボヌテヌブルがありたせんが、ボリュヌムのために長いパスワヌドには圹に立ちたせん



  (26^8) / (94000000000) = 2    8-   az (10^10) / (94000000000) = 100   10-   (26^10) / (94000000000 * 60) = 25   10-   az (10^12) / (94000000000) = 10,6   12-   (10^14) / (94000000000 * 60) = 17,7   14-  
      
      





MD5ずSHA1最初の3倍の速床しかありたせんは、倚くのサむトでナヌザヌパスワヌドをハッシュするために䜿甚されおいたす。登録するすべおのサむトの信頌性を保蚌するこずはできないので特に目の前に倧きなサむトの䟋がありたす-Adobe、20文字未満のデゞタルパスワヌド以䞋を参照たたは14文字未満のアルファベットのパスワヌドを䜿甚するこずは、少なくずも無謀です。たた、角かっこやドット䞀郚のサむトでは䞀般的に䜕らかの理由でパスワヌドで犁止されおいるを远加するこずすら問題ではありたせん。ご芧のずおり、10桁の数字ず英数字のパスワヌドの違いにより、埌者の匷床が玄30分延長されたす。



それではどうしたすか


sayingにもあるように、ロシアの民䞻䞻矩の父の救いは、民䞻䞻矩の仕事そのものです。パスワヌドの長さに4文字を远加するずどうなるか芋おみたしょう。



 (26^10) / (1500000 * 3600 * 24 * 365) = 3    10-   az (26^12) / (1500000 * 3600 * 24 * 365) = 2 017    12-   az (10^16) / (1500000 * 3600 * 24 * 365) = 211   16-   (10^18) / (1500000 * 3600 * 24 * 365) = 21 140   18-  
      
      





MD5の堎合



 (26^12) / (94000000000 * 3600 * 24) = 11,6    12-   az (10^16) / (94000000000 * 3600 * 24) = 1   16-   (10^18) / (94000000000 * 3600 * 24) = 123   18-   (26^16) / (94000000000 * 3600 * 24 * 365) = 14 710    16-   az (26^14) / (94000000000 * 3600 * 24 * 365) = 21,7    14-   az (26^16) / (94000000000 * 3600 * 24 * 365) = 14 710    16-   az (10^20) / (94000000000 * 3600 * 24 * 365) = 34   20-   (10^22) / (94000000000 * 3600 * 24 * 365) = 3 373   22-  
      
      





ご芧のずおり、長さが16文字の「高速」のMD5でも、ブレヌクする意味はありたせん。特に、この長さの「語圙」の単語がない堎合-私たちが話しおいる堎合を陀きqwertyuiopasdfghjk



たす。



この考えは、パスワヌドの長さの重芁性に぀いおであり、その内容に぀いおではありたせんが、新しいものではありたせん。3幎前、XKCDはその歎史的なストリップを描きたした









「20幎間の絶え間ない努力の末、ようやくパスワヌドを芚えにくく、コンピュヌタヌで簡単に入手できるようにする方法を人々に教えるこずに成功したした。」



そしお4月に、スタンフォヌドはパスワヌドの長さに達する新しいパスワヌド芁件を公開したした20からは、アルファベットの芁件はありたせん数字、倧文字の文字などは必芁ありたせん。









このすべおに぀いお、パスワヌドが16文字に制限されおいるAlfa-Bankなどの組織の芁件は、ほずんどの特殊文字を認めずに悲しそうに芋えたす。このようなパスワヌドが必芁な理由はすぐに明らかになりたす。



芁玄するず、攻撃者にWPAのパスワヌドを取埗する機䌚を䞎えないために、12桁の英数字のパスワヌドを考え出す必芁がありたす。今埌数幎間で量子コンピュヌタヌが倧衆にアクセスできなくなる堎合は、恐れるこずはありたせん。さお、サむトぞのパスワヌドには16文字で十分です。クリアテキストで保存しない堎合は、䜕を考えおも謎のたたです。次のコンピュヌタヌが来るたで。



パスワヌドをクリアテキストで保存するサむトの泚目に倀する予期しない䟋は、ixbt.ruフォヌラムです。パスワヌドぱンコヌドされず、ボヌド管理者が閲芧できるこずに泚意しおください。"-だから泚意しおください



蚈算のゞャングルぞのこの遠足で完了です。次の、恐らくシリヌズの最埌の蚘事は、あなたがそこに着いた埌に無線ネットワヌクトラフィックを聞くこずに぀いおです。



蚘事は気に入りたしたかハンドシェむクプロセスは明確でしたか説明に誀り/䞍正確さはありたしたか専門家向け共有するものがありたすかあなたのコメントを楜しみにしおいたす。これはたた、次のパヌトの執筆をスピヌドアップしたす



目次

1 Materiel

2 カヌリヌ。SSIDを非衚瀺にしたす。MACフィルタリング。WPS

3 WPA。OpenCL / CUDA。マッチング統蚈



All Articles