自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Android手機木馬手工查殺

安全 終端安全
本人關(guān)注移動網(wǎng)絡安全將近3年了,寫這篇文章主要是想科普下手機木馬查殺相關(guān)的一些技術(shù),最近在網(wǎng)上看了騰訊移動安全實驗室安全快訊和360手機衛(wèi)士安全播報,感覺移動終端的安全性一年比一年嚴峻。本人這些年主要是做網(wǎng)絡攻防,近幾年由原來的PC端轉(zhuǎn)向移動互聯(lián)終端。在APT攻擊方面研究的同時也研究防御方面的技術(shù)。

本人關(guān)注移動網(wǎng)絡安全將近3年了,寫這篇文章主要是想科普下手機木馬查殺相關(guān)的一些技術(shù),最近在網(wǎng)上看了騰訊移動安全實驗室安全快訊和360手機衛(wèi)士安全播報,感覺移動終端的安全性一年比一年嚴峻。本人這些年主要是做網(wǎng)絡攻防,近幾年由原來的PC端轉(zhuǎn)向移動互聯(lián)終端。在APT攻擊方面研究的同時也研究防御方面的技術(shù)。

下面就分享下最近的一些研究成果。

這篇文章主要是淺談,所以會從簡單方面開始講起。

關(guān)于手機木馬查殺,有些人會說安裝手機殺毒軟件不就解決了嗎? 其實不然。因為手機和PC不一樣,手機反木馬技術(shù)沒有PC端那么強。

就算你把目前市面上的所有手機殺毒軟件都安裝到手機里,也不一定查殺出來。

下面就開始正式講解手工查殺的方法。

第一種方法:用Android Debug Bridge(簡稱adb)調(diào)試工具補助查殺,

首先打開android手機的調(diào)試模式,然后到網(wǎng)上下載adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll這三個文件,放在電腦磁盤任意目錄下,用數(shù)據(jù)線把手機連上電腦。然后通過命令提示符用pushd或者cd命令跳轉(zhuǎn)到剛才那三個文件所在目錄。執(zhí)行adb

shell命令連入手機shell終端。之后相當于在linux下的shell一樣操作了。如果你是搞android開發(fā)的,安裝eclipse和android SDK后就不用去下載剛才那三個文件了,在sdk\platform-tools這個目錄下就有。重點是后面,通過執(zhí)行netstat命令查看當前網(wǎng)絡連接(不需要root權(quán)限)。如下圖:

淺談Android手機木馬手工查殺

 

能看到網(wǎng)絡連接信息,但是卻不能看到進程pid以及進程對應的包名。這樣想要找到惡意程序或木馬程序是很困難的。

下面介紹兩個很有用的命令:

cat /proc/net/tcp (不需要root權(quán)限)
cat /proc/net/tcp6 (不需要root權(quán)限)

/proc/net/tcp文件,這里記錄的是ipv4下所有tcp連接的情況

/proc/net/tcp6文件,這里記錄的是ipv6下所有tcp連接的情況

執(zhí)行cat

/proc/net/tcp6命令后返回的記錄格式如下:

local_address remote_address st tx_queue rx_queue tr tm
->when retrnsmt uid timeout inode
0000000000000000FFFF00006801A8C0:8018 
0000000000000000FFFF00007095FB3A:0050 
08 00000000:00000001 00:00000000 00000000
 10136 0 15335 1 d50216a0 37 4 6 5 -1

最主要的,就是local_address本地地址:端口、remote_address遠程地址:端口、st連接狀態(tài),這里重點看下uid信息,下面會用到。截圖如下:

淺談Android手機木馬手工查殺

 

注1:返回的IP地址端口和狀態(tài)碼都是用的16進制,比如HTTP的80端口記錄為0050。

注2:狀態(tài)碼對應如下

00  "ERROR_STATUS",
01  "TCP_ESTABLISHED",
02  "TCP_SYN_SENT",
03  "TCP_SYN_RECV",
04  "TCP_FIN_WAIT1",
05  "TCP_FIN_WAIT2",
06  "TCP_TIME_WAIT",
07  "TCP_CLOSE",
08  "TCP_CLOSE_WAIT",
09  "TCP_LAST_ACK",
0A  "TCP_LISTEN",
0B  "TCP_CLOSING",

下面以騰訊手機管家為例,通過執(zhí)行dumpsys

activity|grep “10136″命令來查找uid

10136對應的Pid和應用程序包名,如下圖:(注:10136是打開騰訊手機管家后重新執(zhí)行cat/proc/net/tcp6命令獲得的。)

00  \"ERROR_STATUS\",

 

看下包名com.tencent.qqpimsecure是不是騰訊手機管家,在手機的設(shè)置->應用程序->正在運行的服務中查找(這里以android

2.3.7為例),如下圖:

淺談Android手機木馬手工查殺

 

由上面的執(zhí)行結(jié)果找到騰訊手機管家訪問的IP地址和端口是:

7095FB3A:0050 (原格式是:

0000000000000000FFFF00007095FB3A:0050把前面的0000000000000000FFFF0000這段刪掉.)

轉(zhuǎn)換成十進制就是: 58.251.149.112:80

和執(zhí)行netstat命令獲取的IP地址是一樣的,如下圖:

淺談Android手機木馬手工查殺

 

這里整理下思路:通過執(zhí)行cat/proc/net/tcp6或cat /proc/net/tcp找到聯(lián)網(wǎng)程序的uid,然后通過uid找到對應的應用程序pid和包名,最后判斷應用是不是可疑,如果可疑就卸載掉。

如上面的騰訊手機管理是不可疑的,所以接著查找下一個,依次類推,直到找到惡意程序或木馬程序為止。在查找過程中不要人為打開聯(lián)網(wǎng)應用程序(如UC瀏覽器,QQ瀏覽器等等。),這樣會增加手工查殺的難度。而且惡意程序或病毒程序是開機自動打開的,當然也有少部分是隨著其他應用啟動之后才觸發(fā)的。

如果想獲取應用對應的安裝路徑等詳細信息,可以執(zhí)行下面的命令獲得。

adb shell dumpsys meminfo $package_name or $pid //使用程序的包名或者進程id

當然在這里還得詳細說明下,剛才通過可疑網(wǎng)絡聯(lián)接找到對應的應用程序包名,然后怎么判斷程序是否可疑呢?因為很多程序都要聯(lián)網(wǎng)的,大家可以這樣做,找到包名后,可以到設(shè)置->應用程序->管理應用程序,在列表里找到對應的應用,然后點擊進去查看應用的權(quán)限列表。

通過權(quán)限就能判斷應用的可疑性了。下面截一張圖,大家可以參考下。

淺談Android手機木馬手工查殺

 

第二種方法:通過耗電統(tǒng)計,找到耗電比較高的應用,然后查看應用的權(quán)限列表,進而判斷程序是否可疑,這種方法比較簡單,我就不詳細介紹了。

第三種方法:通過查看logcat日志找到可疑應用程序。我不推薦用adb shell logcat來查看,因為里面的信息太多,而且查到可疑日志不方面。這里推薦大家安裝一款第三方應用,叫做系統(tǒng)系統(tǒng)。打開系統(tǒng)信息這款應用,在基本信息下面點擊查看日志,這時彈出選擇對話框,選擇logcat選項點擊進去就可以查看logcat日志了。如下面:

淺談Android手機木馬手工查殺

 

里面可以找到應用的服務名,以及對應的進程ID。這里特別是注意紅色部分的警告信息。

大多數(shù)手機木馬都會請求網(wǎng)絡連接,在請求的同時會拋出異常,因為木馬客戶端并不是實時處于監(jiān)聽狀態(tài),這時服務端反彈連接會拋出異常。通過異常信息就能找到木馬程序的進程ID,進而找到程序的安裝路徑,并卸載掉。

如果想獲取應用對應的安裝路徑等詳細信息,可以執(zhí)行下面的命令獲得。

adb shell dumpsys meminfo $package_name or $pid //使用程序的包名或者進程id

第四種方法:通過抓取網(wǎng)絡通訊數(shù)據(jù)包分析手機應用到底做了什么。前面的三種方法并不能100%的判斷某個應用是否是惡意程序或者木馬。

所以第四種方法來了。第四種方法是最復雜的,并不適合所有人,只適合手機安全發(fā)騷友。

抓取手機網(wǎng)絡通訊數(shù)據(jù)包分三步走:

第一步:在PC上運行ADVsock2pipe,輸入如下命令

ADVsock2pipe.exe -pipe=wireshark -port 9000

第二步:在PC上運行wireshark,設(shè)置caption-Options

Capture | Options, Interface: Local, \\.\pipe\wireshark

第三步:adb shell

# tcpdump -nn -w - -U -s 0 "not port 9000" | nc 192.168.1.101 9000
 
-w:指定將監(jiān)聽到的數(shù)據(jù)包寫入文件中保存-nn:指定將每個監(jiān)聽到的數(shù)據(jù)包中的域名轉(zhuǎn)換成IP、端口從應用名稱轉(zhuǎn)換成端口號后顯示-s:指定要監(jiān)聽數(shù)據(jù)包的長度

192.168.1.101 這個IP地址是你本機的IP。

至于這個9000端口可以隨便改,只要不被系統(tǒng)占用就可以。

還有一個重要前提條件是手機需要root權(quán)限。

之后在wireshark上面就可以看到通訊數(shù)據(jù)在不停的增加了。

通過上面的第一種手工查殺方法,大家應該知道怎么找到可疑連接的IP地址和端口了。

然后就是過濾可疑連接的IP地址和端口。

過濾語法是:ip.dst ==可疑IP

and tcp.dstport ==端口

這里跟大家介紹一種和第三種方法達到異曲同工之妙的語法。

tcp.flags.syn == 0×02 顯示包含TCP

SYN標志的封包。

TCP網(wǎng)絡連接要完成三次握手,這個地球人都知道的,是吧。

過濾出TCP SYN標志的封包后,在wireshark上面就能找到可疑連接的IP地址了。

結(jié)合第一種方法就能找到可疑IP地址對應的應用程序ID和包名。然后就是查看權(quán)限列表進一步判斷,之后就是選擇是否卸載應用了。

最后再來回答上面提到的抓包分析手機應用到底做了什么的問題。

方法很簡單,剛才用ip.dst

==可疑IP and tcp.dstport ==端口

這個語法過濾出可疑信息,在上面鼠標右鍵,選擇follow

TCP stream

就可以跟蹤指定TCP流的包。如下圖:

淺談android手機木馬手工查殺

 

數(shù)據(jù)包是加密的。怎么去解密就留給大家做課后練習了。

最后再來補充說明下手機安全軟件為什么查殺不了,非得要手工查殺不可呢?

看下下面的分析就知道原因了。

假設(shè)你的手機不小心被植入了一款手機木馬程序。這個時候你安裝了一款手機安全軟件,比如騰訊手機管家,360手機衛(wèi)士,LBE安全大師,金山手機衛(wèi)士等等等。

然后你每天更新手機殺軟病毒庫并掃描??墒悄?每次的結(jié)果都是您的手機很安全,可以放心使用。如下圖:

淺談Android手機木馬手工查殺 

淺談Android手機木馬手工查殺 

所以殺軟都是最新版本最新病毒庫。

通過幾款安全軟件的掃描查殺并沒有找到真正的木馬程序。而通過剛才的四種手工查殺,真正的手機木馬其實已經(jīng)不難找到了。

最后的最后讓大家欣賞下這款手機遠控的廬山真面目:  

淺談Android手機木馬手工查殺

我在這里不是黃婆賣瓜自賣自夸。只是想讓所有人提高安全意識,現(xiàn)在的安全形勢有多嚴峻,不言而喻。

我們通過上面的分析還可以得出一個結(jié)論:

就是市面上的主流手機安全軟件并不靠譜,全中國還有多少手機木馬,什么杜蕾斯手機遠控,爵士幫手機遠控,都還沒有浮出水面,是吧?元芳,你怎么看?

責任編輯:藍雨淚 來源: FreebuF
相關(guān)推薦

2011-02-20 18:48:27

2011-08-04 15:20:52

2010-09-25 09:04:33

2011-03-14 19:05:39

2011-03-18 09:40:50

2009-11-09 09:41:09

木馬殺軟評測

2009-03-10 17:09:29

2010-06-12 21:40:38

2010-05-21 10:03:57

2011-07-14 11:07:59

2013-04-12 11:07:01

2009-03-20 10:58:47

2012-03-23 13:33:41

2013-05-20 10:20:02

2013-06-08 10:41:51

2011-08-15 12:50:27

2009-10-13 11:28:41

遠程控制木馬狙擊手

2010-10-26 14:47:02

2015-08-13 16:04:18

2010-01-27 18:12:55

點贊
收藏

51CTO技術(shù)棧公眾號