Android鎖屏勒索病毒分析(4)秒搶紅包
1.樣本概況
1.1 基本資訊
樣本名稱:
秒搶紅包
所屬家族:
鎖屏勒索病毒
MD5值:
033ae1ba78676130e99acc8d9f853124
包名:
com.h
入口:
MainActivity
最低執行環境:
Android2.2X
敏感許可權:
傳送簡訊
新增懸浮窗
開機啟動
1.2測試環境及工具
•Android Studio
•Android Killer
•JEB
•夜神模擬器
2.行為分析
2.1 主要行為
新增懸浮窗
開機啟動
訪問網路,並檢視網路狀態
2.1.1惡意程式對使用者造成的危害(圖)
安裝時會有提示
鎖屏,如下圖
2.1.2惡意程式在Androidmanifest.xml中註冊的惡意元件
獲取的許可權
註冊的元件
2.2惡意程式碼分析
首先進入入口類MainActivity中,在裡面啟動了名為“S”的服務。
進入s.class中,發現其利用WindowManager.LayoutParams的flags屬性,通過addView方法實現一個懸浮窗,設定WindowManager.LayoutParams的flags屬性,例如:
"FLAG_FULLSCREEN"、"FLAG_LAYOUT_IN_SCREEN"配合"SYSTEM_ALERT_WINDOW"許可權,使這個懸浮窗全屏置頂且無法清除,造成手機螢幕無法正常使用。
然後獲取網路狀態,並返回。
再往下看,鎖屏密碼是 password的值,但是password獲取數值時,添加了異常處理。但是異常卻觸發不了,密碼為NULL。
public void onCreate() { LogCatBroadcaster.start(this); super.onCreate(); this.pass = ((Math.random() * 10000000)); this.passw = ((int)(Math.random() * 1000000)); this.share = getSharedPreferences("QQ1031606149", 0); this.editor = this.share.edit(); if (isNetworkConnected(getApplicationContext())) { if (this.share.getLong("m", 0) == 0) { this.editor.putLong("m", this.pass); this.editor.commit(); } try { this.editor.commit(); label126: this.ppss = (this.share.getLong("m", 8) + ""); new Thread() { public void run() {} }.start(); return; } catch (Exception localException1) { break label126; } } try { this.ppss = "831524"; } catch (Exception localException2) { for (;;) { try { this.password = "第六感是我爺爺"; return; } catch (Exception localException3) {} localException2 = localException2; } } } |
2.3加固分析
沒有加固
3.解決方案(或總結)
3.1提取病毒的特徵,利用防毒軟體查殺
特徵碼字串:
\u7B2C\u516D\u611F\u662F\u6211\u7237\u7237
3.2 手工查殺步驟
因為沒有密碼,所以最好刷機解鎖