🍋

5-3. スパイアプリ解析( L3MON編)

に公開

続いて MobSFのダッシュボードに戻って、"View Source"をクリックして、java風のファイルを見ていきます。
まず、以下のようなディレクトリ構造をしています。”l3mon”フォルダ以下を見ると、Permissionで確認した機能に似た名前のファイルが散見されることから、ここら辺にスパイアプリの機能ごとのファイルが集まっているようです。

その中で、下から2番目の ”PermissionManager.java” が気になったので開いてみると、以下のコードが記載されていました。

9行目の”getGrantedPermissions”というメソッド名とその後のコード(グレー塗り部分)をみると、ユーザーが許可済みのPermissionを集める機能のようです。集めたPermissionを変数dataに格納しています。
おそらく、この後に集めたPermissionを外部のC2サーバーに送信するのしょう。攻撃者としては、ユーザーがどの機能について許可を与えたか把握することで、効率的に不正操作が可能になります。

ついでなので、”getGrantedPermissions”で検索すると、”ConnectionManager.java”ファイルにこのメソッドの呼び出し元が見つかりました。

PMメソッドの中で、getGrantedPermissionsメソッドが呼び出され、”emit”されているので、このPMメソッドが外部送信に関するメソッドだと思われます。

もうついでとして、”PM”で検索すると、同じく”ConnectionManager.java”ファイルの中の"sendReq"メソッドの中で”PM”メソッドが呼び出されていました。長いメソッドなので途中を省略しますが、攻撃者のC2サーバから”send”(送信)の”Req”(リクエスト)が届いた場合に呼び出されるようです


整理しますと、攻撃者がC2サーバーからリクエストを出すと、スパイアプリ側のsendReqメソッドが呼び出され、次に外部送信用のPMメソッドが呼び出され、その中でユーザーの許可済みのPermissionを集める”getGrantedPermission”メソッドが呼び出される、という流れになります。

Discussion