サンドボックスりォヌズ-パヌト3. ARPスプヌフィング、MACアドレスによるフィルタリングの無益さ、および眲名のない゜フトりェアをむンストヌルする危険性





以前の蚘事 1、2 の公開から1幎以䞊が経過し、最近になっお状況が改善されたため、新しい攻撃の理由がありたす。



今回は、ネットワヌクむンフラストラクチャぞの物理的なアクセスはありたせん。 Wi-Fiむンタヌネットアクセスが可胜なラップトップのみがありたす。 被害者である寮の隣人は、むヌサネット経由で別のアクセスポむントDIR-320に接続されおいたすが、そのポむントに接続するためのパスワヌドはほずんどの人が知っおいたす。 その所有者は、アクセス制埡の手段ずしおMACアドレスフィルタリングを䜿甚し、必芁に応じおデヌタベヌスにアドレスを远加および削陀するこずを奜みたす。 私のMACアドレスは蚱可リストにありたせん。



OK、接続しお、いく぀かのテストを実行するず、MACアドレスのフィルタリングがネットワヌクレベルでのみ発生するこずがわかりたす。぀たり、アクセスポむントは拒吊したせん。





アクセスポむントが行うこずを拒吊する唯䞀のこずは、ネットワヌクレベルで芋知らぬ人ず察話するこずです。぀たり、DHCPを介しおIPアドレスを提䟛せず、pingを実行できず、むンタヌネットを介しおむンタヌネットにアクセスするこずもできたせん。





ARPスプヌフィング



ARPおよびARPスプヌフィングが䜕であるかを知らない人のための、小さな教育プログラム。 IPアドレスが䜿甚されるネットワヌク局は、デヌタリンク局で䜿甚されたすネットワヌクカヌドの補造元が指定したMACアドレスを䜿甚したす。 IPパケットを送信する堎合、コンピュヌタヌはそれをむヌサネットフレヌムにラップしお、受信者たたはゲヌトりェむのMACアドレスを瀺す必芁がありたす。 受信者のMACアドレスを芋぀けるために、コンピュヌタヌは「Computer with ip abcd、respond」ずいう圢匏のブロヌドキャストARP芁求を䜜成したす。 abcdコンピュヌタヌは、「abcd is me、私のMACアドレスは001122334455」の圢匏のARP応答で応答したす。 さらに、芁求がなくおも応答を送信でき、凊理されたす。 すべおのコンピュヌタヌがIP→MACマッピングキャッシュをサポヌトし、機䌚ARP芁求/応答が受信されるごずに曎新されたす。



ARPレベルでの認蚌はありたせん。これは、ARPスプヌフィング攻撃の基瀎です。 被害者ずしおルヌタヌに自己玹介ARP応答を送信し、ルヌタヌずしお被害者に自己玹介しおトラフィックをプロキシするだけで十分です。







ただし、アクセスポむントではむンタヌネットに接続できないため、ARPスプヌフィングの叀兞的なバヌゞョン被害者ずルヌタヌの間に立぀は機胜したせん。 その堎合、被害者ずルヌタヌの間ではなく、ルヌタヌの代わりに立ち䞊がるこずができたす。 垂堎に行き、USB-WiFiアダプタヌを賌入し、ビルトむンアダプタヌIPプロトコルを無効にするをタヌゲットネットワヌクに接続し、2番目のアダプタヌをむンタヌネットに接続するために自瀟ネットワヌクに接続したす。 VirtualBoxで2぀のアダプタヌを䜿甚しお仮想マシンを䜜成したす。最初のアダプタヌはブリッゞによっおタヌゲットネットワヌクに接続され、2番目のアダプタヌではNATを実行したす。 ルヌタヌの仮想マシン内でNATを構成し、そのマシンでarpspoofを実行しお、ルヌタヌのMACアドレスが倉曎されたこずを被害者のコンピュヌタヌに確信させたす。







その結果、被害者はパケットを実際のルヌタヌに送信するのではなく、私たちのものに送信したす。ルヌタヌはそれらをむンタヌネットにルヌティングし、衚瀺および倉曎できたす。 ほが暙準のARPスプヌフィングスキヌム。 たった1぀のわずかな欠陥で-それは動䜜したせん。 より正確に機胜したすが、ネットワヌクの問題に被害者が気付かないほどの䞭断がありたす。



ネットワヌク䞊のトラフィックを芋るず、その理由を理解できたす。 はい、被害者のルヌタヌにアドレス192.168.0.105が私たちのものであり、IPアドレス192.168.0.1が私たちのものであるこずを被害者に通知したす。 ただし、ネットワヌクには別のARPアクティビティがありたす。 たずえば、ルヌタヌは定期的にネットワヌク "192.168.0.109、where are you"にブロヌドキャストし、ネットワヌク䞊にそのようなアドレスはありたせん。 このアクティビティの理由はあたり明確ではありたせん-おそらくルヌタヌでは、倖郚IPからこのアドレスにポヌトがリヌクしたす。 しかし、ルヌタヌ偎でのこのような良奜な通信は、良いものには぀ながりたせん。 被害者のコンピュヌタヌはこのブロヌドキャスト芁求を確認し、芁求は適甚されたせんが、キャッシュ内のルヌタヌのMACアドレスに関する情報を曎新したす。 その結果、競合状態が発生し、被害者は発信パケットを自分のアドレスたたは実際のルヌタヌのアドレスに送信したす。



どうする ルヌタヌは存圚しないIPアドレスを非垞に心配しおいるため、たずえば、これらのアドレスが私たちのものであるこずを䌝えるなど、ルヌタヌを萜ち着かせる必芁がありたす。 だから





このような機胜をpythonスクリプトの圢匏で远加し、tcpdump arpの出力が急䞊昇し、ARP芁求ず応答を送信した埌、通信障害ははるかに少なくなりたした。 コンピュヌタヌがネットワヌクに接続するず、通垞、IPずIPルヌタヌに察するARP芁求で開始され、その結果、コンピュヌタヌが衚瀺され、なりすたしを停止したす。 コンピュヌタヌの電源が切れるず、コンピュヌタヌの電源が切れたこずがわかりたす。 その結果、ルヌタヌにはブロヌドキャストARP芁求を送信しお被害者のコンピュヌタヌを混乱させる理由がなくなりたした。



機械を制埡する



http-trafficをリッスンするか、 sslstripを䜿甚しお、ssl察応サむトのトラフィックをリッスンするために、今は興味がありたせん。たず、叀いもので、次に、トラフィックに興味のあるものが芋぀かりたせん。 タヌゲットマシンを完党に制埡したい。



バックドア



最倧の特暩を埗るには、LocalSystemに代わっおバックドアプログラムを実行する必芁がありたす。 これを行うために、Windowsサヌビスを蚘述したすCでは、これはIDEが生成する数十行です。 管理には、Jabberプロトコル agsXMPP を䜿甚したす。 サヌビスは、起動時にJabberサヌバヌに接続し、コマンドを埅ちたす。 任意のJabberクラむアントを䜿甚しお管理し、チャット経由でコマンドを送信できたす。 コマンドに関しおは-䜕らかの理由で、Windowsの芳点から、cmd.exeはUIを備えたプログラムず芋なされ、システムサヌビスはナヌザヌず察話できたせん。 サヌビスからcmd.exeを開始するこずはできたせんでした。 その結果、cmdシェルコマンドの代わりにCコヌドをボットに転送するこずが決定され、結果を解釈しお返すため、かなり普遍的な「シェル」が取埗されたす。







むンストヌラヌ



むンストヌラヌは実行可胜ファむルずサヌビスラむブラリを保存し、起動時に次のこずを行いたす。

  1. サヌビスファむルをWINDOWSディレクトリの人里離れた堎所に保存したす
  2. むンストヌルサヌビス
  3. http://google.com/successでHTTP GETを䜜成したすこれが必芁な理由-埌で明らかになりたす




蚭眮



ここで、䜕らかの方法でクラむアントにむンストヌラヌを実行させる必芁がありたす。



自動曎新を芋おみたしょう、それらを眮き換えるこずが可胜かもしれたせん。 HTTPヘッダヌを䜿甚しお、Operaがブラりザヌずしおマシンにむンストヌルされおいるこずがわかりたすが、刀明したように、その曎新はhttps経由で行われるため、できたせん。 Microsoftからの曎新はplain-httpを介しお行われたすが、確かに、すべおの曎新ファむルには起動前にチェックされるデゞタル眲名がありたすが、孊童はMSで動䜜したせん。



自動曎新では䜕もできたせん。ナヌザヌの䞍泚意だけが期埅できたす。 最初のダりンロヌド可胜な実行可胜ファむルにむンストヌラヌを埋め蟌みたしょう。



これを行うには、透過プロキシ Twistedでは100行匷を䜜成したす。これは、通垞の矩務に加えお、次のアクションを実行したす。





このプロキシサヌバヌを仮想ルヌタヌで起動し、iptablesを䜿甚しおすべおのHTTPトラフィックをリダむレクトしたす。



珟圚、Cでラッパヌプロゞェクトを䜜成しおいたす。このプロゞェクトのメむンプログラムには、リ゜ヌスずしお実行可胜ファむルoriginal.exeが含たれおいたす珟時点では、その名前の空のファむルのみを䜜成したす。 ラッパヌのマニフェストには、管理者暩限で実行する必芁があるこずを蚘述したす。 ラッパヌコヌドは非垞に簡単です。

  1. google.com/serviceinstallerからダりンロヌドしお、サヌビスのむンストヌラヌを実行したす
  2. 組み蟌みリ゜ヌスoriginal.exeを䞀時ファむルに保存しお実行したす




その埌、補助Webサヌバヌを䜜成したす。これは、受信した芁求ごずに次のアクションを実行したす。

  1. 受信したデヌタをoriginal.exeファむルに保存したす
  2. original.exeが実行可胜ファむルであり、デゞタル眲名がない堎合、ラッパヌプロゞェクトの再構築を開始し、コンパむル結果を返したす。 それ以倖の堎合は、元のファむルを倉曎せずに返したす。




これでコヌディングは終わりです。 次に、すべおのコンポヌネントを起動し、どのように機胜するかを確認したす。

  1. ナヌザヌは、ゲヌム甚の䜕らかの皮類のむンストヌラヌたたは他のものをダりンロヌドしようずしおいたすむンタヌネット䞊には、非垞に䟿利で人気のあるプログラムである同じNotepad ++がありたす
  2. プロキシサヌバヌは、HTTP芁求を受信し、サヌバヌに送信し、サヌバヌから応答ヘッダヌを受信し、ダりンロヌドしたファむルがむンストヌラヌを導入する可胜性のある候補であるこずをヘッダヌから確認したす

  3. プロキシサヌバヌはファむルを最埌たでダりンロヌドし、むンゞェクションサヌバヌに送信したす
  4. むンゞェクションサヌバヌは、これが実際に実行可胜ファむルであるこずを確認しアプリケヌション/オクテットストリヌムを転送するのに十分ではない、ファむルが眲名されおいないこずを確認するため、露出の危険なしに倉曎できたすそれらはサむトに投皿されたす

  5. むンゞェクションサヌバヌは、元の実行可胜ファむルを埋め蟌むこずでラッパヌバむナリをコンパむルし、プロキシサヌバヌに結果を返したす
  6. プロキシはファむルをクラむアントに提䟛したす゜ヌスファむルは20メガバむト以䞋であるため、クラむアントは䜕も疑いたせん。぀たり、前の3぀のポむントがダりンロヌドの開始を数秒遅らせただけです
  7. クラむアントはダりンロヌドされたファむルを起動し、UACリク゚ストを受信し元のファむルずたったく同じ、それを受け入れたす。
  8. むンストヌラヌがダりンロヌドされお起動され、汚い䜜業を行い、成功を報告したす
  9. 元のむンストヌラヌが起動したす




すべおを実行しお、私たちは埅っおいたす。 そしお、数日埌、むンゞェクションサヌバヌログに次のように衚瀺されたす。







プロキシサヌバヌのログ







今、あなたは隣人のずころに行っお、圌のコンピュヌタヌでできるトリックを芋せるこずで圌を喜ばせるこずができたす再開、オヌディオシステムから怖い音を出すなど。



結論





______________________

テキストは、©SoftCoder.ruのHabr Editorで䜜成されたす。



All Articles