<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    對小綿羊的轟炸APP逆向分析

    VSole2022-08-09 21:36:21

    背景

    在網絡上意外看到一款叫小綿羊的轟炸機APP,經過下載安裝(這種未知風險的APP建議都在模擬器上去安裝驗證和分析功能,有安全風險問題模擬器刪除即可)后確認,只要在APP界面的編輯框中輸入手機號碼,就可以進行對指定手機號碼進行短信狂轟炸的效果的(已用自己測試號碼驗證過效果)。

    下面就以開發者角度進行解析下這個APP的功能的實現原理。

    基礎信息

    拿到APP的一般做法,就是先對這個APP進行查殼分析確認,決定是否刪除卸載APP還是繼續分析APP,還好通過查殼工具(通過識別APP中是否包含市面上的加固產品的特有的so文件特征)一分析這個小綿羊APP是沒有加固保護的,這樣對APP的分析門檻一下子就降低了。

    通過使用jadx進行查看APP的整個組成結構和重點查看java功能代碼,通過工具可以查看app主要有java代碼 C++代碼(so文件),資源數據,lua數據,簽名信息組成的。

    通過jadx工具查看,該APP的Java層部分代碼采用android studio自帶的proguard插件,進行對個別的類名函數名稱進行做混淆保護,雖然這種混淆強度并不強,但是還是有很多APP采用這種方式進行對java層保護。只因這種保護成本低,只需簡單的進行配置下就可以達到混淆效果。

    啟動APP后,通過uiautomatorviewer(SDK中自帶的分析控件的工具)工具進行分析該APP的界面控件信息,通過分析可以看到該APP的界面主要由1個EditText和3個Button控件組成的。

    下面是這個轟炸APP的界面背景顏色的設置,這個實現功能主要是以lua腳本方式進行實現的。

    簽名信息

    通過這jadx工具,可以看到這個APP采用的是V1的簽名方式,我們知道V1簽名是android最早的數字證書簽名,為了提高驗證速度和覆蓋度在android7.0的系統中引入V2的簽名,為了實現密鑰的輪轉載android 9.0系統中引入V3的簽名

    目前APP中大部分都是通過V1和V2簽名相結合的。并且這個在簽名過程中要保證按照V1到V2在到V3的簽名順序,因為V1簽名的改動會修改到ZIP三大部分的內容,先使用V2簽名再V1簽名會破壞V2簽名的完整性。

    在android的app開發過程中,必須對app進行簽名,不然過不了系統驗證也就無法進行對app安裝。

    android簽名的數字證書的一般都是采用 X.509的國際標準。

    因X.509內容為第三方可信機構CA對公鑰實施數字簽名,故也叫公鑰證書,數字證書在PKI體系中是一個表明身份的載體,除了用戶的公鑰,還包含用戶公開的基本信息,如用戶名、組織、郵箱等。

    下圖是android studio工具中可以自己創建用于對APP簽名的證書,可以看到它包含密碼信息、用戶名稱、組織名稱、地區名稱、國家信息、省份信息、城市信息。

    同樣也可以通過jadx工具,在META-INF目錄下的CERT.SF文件中去查看確認簽名信息,V1簽名的主要關鍵字Created-By:, V2簽名的X-Android-APK-Signed的關鍵字。

    權限信息

    在這個AndroidManifest.xml文件中主要包含app中所需要的權限,四大組件信息,app包的相關信息(包名稱、sdk目標版本、sdk最低版本等等)

    android的機制下想要讀取相關的信息,都需要向用戶申請權限,這個不僅符合android的安全機制,也符合目前國內的安全合規,同樣也可以通過申請的權限信息了解APP的功能需求。

    下面對這個APP的所有權限進行詳解下:

    android.permission.INTERNET :訪問網絡連接可能產生GPRS流量

    android.permission.ACCESS_NETWORK_STATE:獲取網絡信息狀態,如當前的網絡連接是否有效

    android.permission.ACCESS_WIFI_STATE:獲取當前WiFi接入的狀態以及WLAN熱點的信息

    android.permission.WRITE_EXTERNAL_STORAGE:允許程序寫入外部存儲,如SD卡上寫文件

    android.permission.WRITE_SMS:允許應用程序寫短信內容

    android.permission.READ_SMS:允許應用程序讀取短信內容

    android.permission.WRITE_SETTINGS:允許應用程序讀取或寫入系統設置

    android.permission.CLEAR_APP_CACHE:允許程序清除應用緩存

    android.permission.BLUETOOTH:允許程序連接配對過的藍牙設備

    android.permission.VIBRATE:允許振動

    android.permission.READ_LOGS:允許程序讀取系統底層日志

    android.permission.READ_FRAME_BUFFER:允許程序讀取幀緩存用于屏幕截圖 

    功能信息

    這個APP的主要功能都是在lua上實現的,從界面到轟炸功能都集成到lua上。

    Lua是一門用標準C編寫的動態腳本語言,如果希望在android上使用,則需要解決2個問題。

    1、需要用JNI為Lua的C庫進行封裝,這樣才可能在Java中使用。

    2、由于Android系統開發所特有的系統環境限制,Lua三方庫的動態加載機制和lua腳本模塊的導入機制將不能正常運行,需要進行特殊處理。

    輸入好手機號碼后(不過這個輸入都沒做驗證,隨便輸入數據都進行執行一遍功能),通過charles抓包工具進行抓取數據吧,可以很清晰的看到,點擊轟炸后,馬上執行發送406個網絡數據包,這些數據主要集中在作者收集的406個各種類型網站進行發網絡賬號注冊驗證碼信息的轟炸。

    在lua功能中,有對vpn的判斷,通過簡單判斷獲取當前網絡狀態,并且判斷網絡狀態是否屬于vpn的狀態,如果屬于vpn狀態,那么就往storage的目錄下寫入時間點設定,并且強制關閉APP,當在啟動APP的時候會先判斷文件是否有寫入判斷禁入的信息,如果有就不讓啟動APP。其實破解這個驗證很簡單,直接將文件的禁入信息清空即可。

    下圖的這幾個so是網絡上lua和socket通用的so文件,并沒有什么可研究價值。

    通過分析libsocket.so這個so文件,可以確認采用的是luaSocket 3.0版本

    LuaSocket 它是 Lua 的網絡模塊庫,它很方便地提供 TCP、UDP、DNS、FTP、HTTP、SMTP、MIME 等多種網絡協議的訪問操作。

    這個luasocke一部分是用 C 寫的核心,提供對 TCP 和 UDP 傳輸層的訪問支持。另外一部分是用 Lua 寫的,負責應用功能的網絡接口處理。

    源的luasocket代碼可以參考學習下

    https://github.com/lunarmodules/luasocket

    https://github.com/fengye/luasocket

     

    總結

    縱觀整個轟炸APP的功能,分析這個APP都沒有采取任何保護(加殼、反調試)就沒有門檻了,基本也不需要涉及到脫殼、hook和動態調試這些操作,只要用幾個(jadx、charles、ida、uiautomatorviewer)工具就可以將功能全部分析清楚。

    感嘆這個作者確實很用心的去做這個轟炸的功能,去收集了406個的各類型的網站進行手機注冊功能。

    對于這種具有攻擊性的APP還是要慎重下,免費APP功能的前提往往會有給APP植入后門或者病毒的存在。

    軟件功能分析
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    背景在某社群中看到有用戶網社群共享盤中上傳一個名稱為協議微信加好友的應用軟件,并且在社群中宣稱可以無限加好
    吃雞輔助外掛的逆向實踐
    勒索病毒的深度分析
    背景在無意間從網絡上獲取到一款付費的游戲黑產外掛樣本,并且該外掛號稱可以無視游戲客戶端的反外掛檢測功能。好奇
    電腦被挖礦分析
    2021-10-12 15:39:27
    由于區塊鏈技術熱炒以及數字貨幣魔性推廣運營,如比特幣、以太幣、門羅幣、達世幣等層出不窮的數字貨幣被各種熱炒,在這些的利益驅使下,便出現各種模式的挖礦木馬程序。挖礦木馬主要就是通過利用各種手段,將挖礦程序植入到用戶的計算機中,在用戶未感知到的情況下,偷偷利用用戶的計算機進行執行挖礦功能,從而獲取收益。
    隨著互聯網技術的迅速發展,網絡已成為人們生活、娛樂和工作不可或缺的一部分。隨之而來的安全問題,使得網絡安全成為各國信息安全領域研究的熱點方向之一。因此,提出一種動態安全防護框架,采用動態防護模型、安全防護功能動態重組、安全防護服務集成和安全防護載荷的架構模式,通過對終端安全防護功能、網絡安全防護功能、云安全防護功能的載荷化,面對網絡攻擊“以變制變”,構筑強對抗環境下的有效安全防護能力。
    Java作為一種十分成熟的編程語言,在當今社會中得到了極為廣泛的應用。3 Java在云計算編程模型中的應用方法Java在編程模型中的應用,一般情況下是建立在本地主機上的,這也是其實現的基礎。同時還需要安裝相應的谷歌插件,這樣能夠保證本地主機的相關配置,并保證Java程序能夠進行正常的應用。最后就可以申請與Java程序有關的賬號,并將設置好的Java應用放置到相應的云存儲空間中。
    近日,國家計算機病毒應急處理中心對名為“NOPEN”的木馬工具進行了攻擊場景復現和技術分析。該木馬工具針對Unix/Linux平臺,可實現對目標的遠程控制。根據“影子經紀人”泄露的NSA內部文件,該木馬工具為美國國家安全局開發的網絡武器。“NOPEN”木馬工具是一款功能強大的綜合型木馬工具,也是美國國家安全局接入技術行動處(TAO)對外攻擊竊密所使用的主戰網絡武器之一。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类