Android向けの単一ウイルスのリバースエンジニアリング

私はJavaプログラマーであり、Android向けのJavaを学び始めたのはそれほど昔ではありません。 今日、非常に興味深い通知「Flash Playerを更新する必要があります」がタブレットに届きました。Androidプラットフォームに専門的な関心がなければ、おそらくそれを逃してリラックスし続けたでしょうが、今日は寒い日曜日の夕方で、フード。」
ちなみに、彼らは「FlashPlayer」のリリース時によく推測していました。その1時間前に、私は病院でAdobeの通常のFlashPlayerを更新していました。
興味があれば-猫の下でお願いします。 カットの下にいくつかのスクリーンショットがあります。


そこで、タブレットにAPKをダウンロードしましたが、Lockoutはすぐにそれがトロイの木馬であると呪い、すぐにファイルを有害な方法から削除することを提案しました。 削除を拒否して、私はapkをFTPサーバー経由で病院に転送し、さらに調査しました。

最初にすることは、apktoolを使用してアーカイブを解凍することでした(記事の最後に使用されたプログラムへのすべてのリンク)。



まず、Androidマニフェストに注目しました。

デバイス機能のセット全体(まあ、またはほぼすべて)がありました。 タイプの標準(ウイルスプログラム用)の許可に加えて:

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />



そのようなことがありました:

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
目覚まし時計へのアクセスがわかりません。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
このイベントを追跡することにより、ロード後すぐに実行されます。

ウイルスは以下も監視します。
  1. ネットワークへの接続/切断:
    <intent-filter>
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

  2. SMS'kiを送信しました
    <intent-filter android:priority="999">
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />



そして、サービスを登録します。
<service android:name="dsrhki.yjgfqjejkjh.gbjutaxgp">
<intent-filter>
<action android:name="dsrhki.yjgfqjejkjh.gbjutaxgpStart76" />


デバイスにアプリケーションをインストールすると、インストールは次のようになります。



マニフェストの後、リソースを見ました。興味深いものは何もありませんでした。標準のFlashプレーヤーのアイコンは、すべての密度と値を持つstrings.xmlのサイズが72 x 70です。
Loading


最も興味深いのは、assetsフォルダーです。


ファイルフォルダーには、男の写真6枚、女の子の写真4枚、tabor.cssファイル(いくつかのスタイルを含む)があり、明らかにa.txtテキストファイルではありません(unixユーティリティファイルは、 a.txt: data laconicと言って、 a.txt: data

css、images、jsフォルダーには、htmlページをレンダリングするための補助的なものがありました。

white.htmlページは次のようになります。



どうやら、著者は非常に愚かなユーザー(フラッシュプレーヤーのアイコンですが、Opera Mini 6.5(アプリケーションでAdMobを介して配布されることが多い)を読み込むことを提案しました)の計算を行ったようです。

ボタンをクリックすると、JSスクリプトがトリガーされ、payed.htmlにリダイレクトされます

また、white.htmlには隠しdivがあります:ハードコードされたリンク:

:
yerc1.net/?u=64504 .


payed.htmlページでは、リンクが異なります。

:
filesesa.net/?u=90-656jc5y9ny1yc2fb0d .


sendcontacts.htmlページには、単にpayed.htmlへのリダイレクトが含まれています。

最も興味深いページはtest.htmlです。

JS c jQueryはそこで活発に使用されています。

アルゴリズムは次のとおりです。

  1. 最初に、アイコンと碑文が表示されます。「インストールの進行中にお待ちください。」
  2. 次に、JSを使用して、ランダムタイムアウトが計算されます
    timeout = Math.floor((Math.random()*100)+1) + Math.floor((Math.random()*100)+1);
    同時に、偽のプログレスバーがユーザーに表示されます
  3. 待機の最後に、条件が計算されます:
    (androidInfo.match(/operator3/) == 'operator3' || androidInfo.match(/operator13/) == 'operator13' )

    operator13の場合、メッセージが表示されます。
    $('#paymentinfo').html(' , 29900. ');

    無料のアプリケーションに適した価格...

    演算子= 3の場合、メッセージは次のとおりです。「サービスが支払われ、VATで354ルーブル以下」

    両方でない場合は、offerta.htmlへのリンクが表示されます


offerta.htmlには、flashflasher-ru.netサービスとサブスクライバー間の合意が含まれています。

全文はinfomobiles.net/oferta.phpで読むことができます

最も注目すべき瞬間を挙げます。



そして、これらのすべてのルールの後、ボタンをクリックすると、被害者をpayed.htmlに転送し、そこでfilesesa.netへのリンクを見つけるボタンをクリックします

whoisにより、ドメインflashplayer-ru.netが06.22.2012に作成され、filesesa.netが9月4日に作成されたことがわかります。 残りはすべて同じです

Domain Name: FILESESA.NET
Registrar: INTERNET.BS CORP.
Whois Server: whois.internet.bs
Referral URL: www.internet.bs
Name Server: NS3.SUPERIDNS.NET
Name Server: NS4.SUPERIDNS.NET
Status: ok
Updated Date: 04-sep-2012
Creation Date: 04-sep-2012
Expiration Date: 04-sep-2013


その後、レジストラのウェブサイト(bsはバハマ)にアクセスし、技術サポートの女の子と話を​​して、虐待のメッセージをabuse@internet.bsのメールで送信するようにアドバイスしました。

虐待を書いて、私は掘り続けました。 解凍されたアーカイブにはsmaliファイルも含まれていました。 しかし、.smaliから.javaに戻すというトピックについてはgoogleで、元のAPKアーカイブに戻ることにしました。 apk-shkuの単純な7-zip'omを展開すると、そこにclasses.dexが見つかりました。

その後、dex2jarがビジネスに参入しました。



次に、コードを提供してくれたJD-GUI:


コードはかなり難読化されているようです。 Webページがどのように呼び出されるかを正確にはまだ解明していませんが、エミュレーターでウイルスを起動することにより、リブート直後に起動し、すぐにクラッシュすると言うことができます。

結果のコードを研究所のウェブサイトに投稿しました: virtalabs.net/apkHack/flash-player.src.zip

APK自体は、 virtalabs.net / apkHack / flash_player_installer.apkにあります

解凍されたフォルダーはこちらです: virtalabs.net/apkHack/FlashPlayer

今、私はレジストラからの反応を待っています。 サイトはロシア語で作成されているため(少なくともユーザーの同意からわかるように)、CISの視聴者のために、逆の結果を部門Kに送信する価値はありますか?

この記事がアンドロイドコミュニティへの関心を喚起し、誰かがこのタイプのウイルスをインストールすることを防ぐことを願っています。

そして、使用したプログラムへのリンクを約束したように:

APKtool-code.google.com/p/android-apktool

Dex2Jar-code.google.com/p/dex2jar

JD-Gui-java.decompiler.free.fr/?q=jdgui

JD-GuiにはEclipse IDEのバージョン(http://java.decompiler.free.fr/?q=jdeclipse)がありますが、JD Webサイトに問題があるためインストールできませんでした。

Ken Kinderの記事kkinder.com/2011/11/27/so-you-want-to-reverse-engineer-an-android-app-apkからも大きな恩恵を受けました

Source: https://habr.com/ru/post/J151608/


All Articles