只要是做生意,都得講究價值規律,黑市也不例外。某款產品要是搞打折促銷,群眾們必然蜂擁而至——要是免費大派送,那一傳十十傳百的速度又怎是門庭若市可形容!
最近Palo Alto Networks發現了一款面向大眾免費派發的RAT(遠程訪問木馬),名為SpyNote——這是個可對Android系統實現遠程監聽的工具,“和OmniRat和DroidJak很相似”。對那些技術不嫻熟的腳本小子而言,想必又是個不可多得的好東西了。
SpyNote控制面板
SpyNote能做什么?
SpyNote實際上是用來創建Android惡意程序的工具,最近在不少惡意程序論壇傳得特別火。它有一些相當吸引人的特性:
· 不需要獲取系統的Root權限;
· 對通話進行監聽;
· 竊取聯系人和信息數據;
· 通過麥克風記錄音;
· 惡意撥打電話;
· 安裝惡意應用;
· 獲取手機的IMEI碼、WiFi MAC地址、無線網絡運營商細節;
· 獲取設備最新的GPS地理位置信息;
· 控制攝像頭
聽起來真是不錯啊,都不需要Android系統做Root操作,真這么神?當然了,還是需要手機用戶自己給予SpyNote這些權限才行,包括編輯短信、訪問通話記錄、聯系人,以及修改、刪除SD內容的權限——其實絕大部分用戶看到這些權限請求都會毫不猶豫的點“下一步”或“允許”。
行為分析
Palo Alto對發現的SkyNote惡意程序樣本進行了分析。YouTube上先前就已經有了Sky Note v2的使用視頻——Palo Alto分析的惡意程序應該是完全按照視頻教程來做的。相比教程,該惡意程序程序除了改動圖標,所用的端口一模一樣。
在進行這款SpyNote惡意程序的安裝過后,程序首先會將自己的圖標從手機上移除。另外,該應用并沒有采用任何混淆機制。它還會與IP地址為141.255.147.193的C&C服務器進行TCP通訊,端口號2222,如下圖所示。
用Cerbero profiler查看Dalvik字節碼
SkyNote開啟一個Socket連接
如上圖所示,SpyNote在此Socket連接中,采用硬編碼的SERVER_IP和SERVER_PORT值。不過用Android分析工具Androguard就可以做個extractor。
用上面的spynote.C2.py腳本對APK文件中的這些值進行解析,可得出下面這些代碼。
#!/usr/bin/python
import sys
from sys import argv
from androguard.core.bytecodes import apk
from androguard.core.bytecodes import dvm
#---------------------------------------------------
# _log : Prints out logs for debug purposes
#---------------------------------------------------
def _log(s):
print(s)
if __name__ == "__main__":
if (len(sys.argv) <2):
_log("[+] Usage: %s [Path_to_apk]" % sys.argv[0])
sys.exit(0)
else:
a = apk.APK(argv[1])
d = dvm.DalvikVMFormat(a.get_dex())
for cls in d.get_classes():
#if 'Ldell/scream/application/MainActivity;'.lower() in cls.get_name().lower():
if 'dell/scream/application/MainActivity;'.lower() in cls.get_name().lower():
c2 = ""
port = ""
string = None
for method in cls.get_methods():
if method.name == '
for inst in method.get_instructions():
if inst.get_name() == 'const-string':
string = inst.get_output().split(',')[-1].strip(" '")
if inst.get_name() == 'iput-object':
if "SERVER_IP" in inst.get_output():
c2 = string
if "PORT" in inst.get_output():
port = string
if c2 and port:
break
server = ""
if port:
server = "{0}:{1}".format(c2, str(port))
else:
server = c2
_log('C&C: [ %s ]' % server)
雖說現在SpyNote似乎還并沒有大規模被黑客們利用,但既然如今任何人都可以免費下載到SpyNote了 ,其廣泛利用或許也只是時間問題。
還是需要告誡Android用戶,不要隨意安裝來源不明的應用,雖然這個教訓已經說了千百次了,況且對Android這樣的操作系統,就算是中國人民看不見摸不著的Google Play Store都尚存不少惡意程序。用Android系統的同學還是要小心再小心!