エクスプロイトパックへのインタラクティブなリダイレクト

エクスプロイトキットは、サイバー犯罪者がユーザーのコンピューターに悪意のあるコードを自動的にインストールするために使用されます。 ユーザーがランディングページ自体に表示され、ユーザーのブラウザー環境に一致する適切な種類のエクスプロイトが選択されるようにするには、リダイレクトする必要があります。 このリダイレクトは、悪意のあるコンテンツ(JavaScriptまたはIFrame)によって侵害された正当なWebサイトから実行できます。







したがって、エクスプロイトセットを使用するエクスプロイトの一般的なシナリオは、ユーザーが悪意のあるコンテンツにリダイレクトされる正当なWebリソースを侵害することです。 今週、エクスプロイトセットの1つのページにユーザーがリダイレクトされる方法の興味深いバージョンが見つかりました。 侵害されたWebページで、偽のブラウザメッセージをユーザーに表示することでユーザーと対話できる悪意のあるコードを発見しました。





図 悪意のあるコードによって生成された偽のメッセージ。



このようなメッセージを介してユーザーとやり取りするコードは、Webページに埋め込まれたHTMLフォームの形式で作成されます。 ユーザーがInternet Explorerでページを表示した場合にのみ、ウィンドウが表示されます。 また、このフォームはPOSTリクエストでデータをサーバーに送信することにも気付きました。





図 Webページに埋め込まれた悪意のあるコンテンツ。



ユーザーが選択する回答オプション(キャンセルまたはOK)に関係なく、ユーザーはAnglerエクスプロイトキットエクスプロイトキットページにリダイレクトされます。 リダイレクトを実行するには、スクリーンショットで指定されたPOSTリクエストがフォームを介して送信され、HTMLおよびJavaScriptコードの小さなフラグメントが返されます。 このコードは最終URLにリダイレクトされます。





図 中間WebページのURL。





図 リダイレクトと最終用途の完全なチェーン。



ここで、POST要求で送信されるデータに戻ります。 Base64形式でエンコードされていることがわかります。 それらのデコードを以下に示します。



元の文字列。



ua_base64 =

「TlP7Vt89hmr1vjdAW8YqmDT / sGFiyxROsPBX45R6HxinEeZC + YGrgEA0mmA3NDEJUYzgWm29EKShU2QPqxBXzVNMJvpfJN3Q

cVGGehPCNNXOlxo0JE94z0RTBgCq0VubolrWHmAexV14 + cqx6qILC6z1EZDl4JFYd32wrMZrhNinl47lzpnvXwPluNsmh0CA»



デコードされた文字列。



base64.b64decode(ua_base64)=

"\ xb6S \ xfbV \ xdf = \ x86j \ xf5 \ xbe7 @ [\ xc6 * \ x984 \ xff \ xb0ab \ xcb \ x14N \ xb0 \ xf0W \ xe3 \ x94z \ x1f \ x18 \ xa7 \ x11 \ xe6B \ xf9 \ x81 \ xab \ x80 @ 4 \ x9a`741 \

tQ \ x8c \ xe0Zm \ xbd \ x10 \ xa4 \ xa1Sd \ x0f \ xab \ x10W \ xcdSL&\ xfa _ $ \ xdd \ xd0qQ \ x86z \ x13 \ xc24 \ xd5 \ xce \ x97 \ x1a4 $ Ox \ xcf00 \ 06 \ xaa \ xd1 [

\ x9b \ xa2Z \ xd6 \ x1e` \ x1e \ xc5] x \ xf9 \ xca \ xb1 \ xea \ xa2 \ x0b \ x0b \ xac \ xf5 \ x11 \ x90 \ xe5 \ xe0 \ x91Xw} \ xb0 \ xac \ xc6k \ x84 \ xd8 \ xa7 \ x97 \ x8e \ xe5 \ xce \ x99

\ xef_ \ x03 \ xe5 \ xb8 \ xdb&\ x87 @ \ x80 "



パラメータ「ua」の名前から、このデータはユーザーブラウザで使用されるUser-Agentの暗号化された文字列であると推測できます。 この例では、次のようになります。



Mozilla / 4.0(互換性あり; MSIE 8.0; Windows NT 5.1; Trident / 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E; BOIE8; ENUSMSCOM)。



フォームのHTMLコードで指定されたパラメーター(上記のスクリーンショットを参照)は、同じ文字列(キーストリーム)を使用してXORで暗号化されていると想定できます。 これを行うには、既知のUser-Agent文字列(すでに小文字に変換されている)の形式のキーストリームを持つUser-Agentを含むbase64デコードされた文字列にXOR操作を適用できます。 結果の値をキーストリームとして使用して、furlパラメーターを復号化できます(上のスクリーンショットを参照)。 この操作の結果として、エクスプロイトスイートWebページの元のURLを取得します。 これには、次のPythonコードを使用できます。



base64をインポートする

def xor(メッセージ、キー):

復号化された=“”

for iの範囲(0、len(メッセージ)):

復号化された+ = chr(ord(メッセージ[i])^ ord(key [i%len(key)]))

戻り(復号化)



ua =「Mozilla / 4.0(互換性あり; MSIE 8.0; Windows NT 5.1; Trident / 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E; BOIE8; ENUSMSCOM)」

ua_plaintext = ua.lower()

ua_base64 = "tlP7Vt89hmr1vjdAW8YqmDT / sGFiyxROsPBX45R6HxinEeZC + YGrgEA0mmA3NDEJUYzgWm29EKShU2QPqxBXzVNMJvpfJN3QcVGGehPCNNXOlxo0JE94z0RTBgCq0VubolrWHmAexV14 + cqx6qILC6z1EZDl4JFYd32wrMZrhNinl47lzpnvXwPluNsmh0CA"

furl_base64 =“ s0j1T4l + yCai5DANXd0gmz38sX5pwRVb ​​/ vhQpcU9Qlj8G6tQ5Nc =”

keystream = xor(base64.b64decode(ua_base64)、ua_plaintext)

「復号化されたfurl:」を印刷します

print(xor(base64.b64decode(furl_base64)、キーストリーム))




$ python angler-dexor.py



復号化されたfurlパラメーター:

hxxp://cct7m.xenybuvifd.net/4genk1met8



リダイレクト操作中にサイバー犯罪者が使用する(ユーザーと対話する)対話機能の実践は、自動分析システムによる最終的なペイロードURLの検出を回避するように設計されています。



このエクスプロイトセットを使用してコンピューターにインストールされた悪意のあるコードは、 Win32 / PSW.Papras.CXなどのESETウイルス対策製品によって検出されます。



All Articles