【openQPA】教你DIY進程流量捕獲工具

開源項目QPA

原由
最近作病毒分析的時候遇到遠控馬,須要記錄鏈接的遠程地址!用火絨劍或者ProcessMonitr能夠看到一部分,可是我想要更全面的信息,因而搗鼓了WireSharkFiddler。Filddler 使用比較簡單,可是隻能看到http的流量,WireShark 雖然能捕獲全部流量,但無法過濾特定進程的包,並且過濾規則對我來講太複雜了。感慨之際找到了一個名爲openQPA的開源項目,這裏是項目主頁css

clipboard.png

體驗
而後開開心心下載源碼下來,程序是用PyQt4寫的,還有兩個依賴庫httplib2dpktpip install安裝好後雙擊 QPA.py 打開程序,第一印象:醜,這佈局也太醜了吧!窗口還不能拉伸...html

clipboard.png

吐槽了一下界面,而後體驗下功能,發現捕獲進程包這功能是真的太強了python

clipboard.png

還有數據包分析的功能,P.S.這佈局我真的很難忍受app

clipboard.png

除此以外還能添加數據包分析,整體來講功能十分強大,若是你沒有強迫症就使用這個吧!反正我不太能忍受這界面,且我只須要捕獲進程數據包那個功能,而後本身用 WireShark 分析數據包。因此就須要在下面這麼多文件中定位到捕獲進程數據包的代碼位置函數

clipboard.png

調試源碼

梳理項目
能夠看到項目 ReadMe 中說明了其中幾個文件的做用佈局

clipboard.png

而後用VS Codepython插件來調試源碼梳理項目流程,開始就是針對性下斷點,先猜想功能而後下斷點印證,這是個比較漫長的過程,我就不截圖了!最後知道數據包分析的文件是analysis2.pydpcap.py以及calc.py,程序的界面主要是在htmlcssjs的地方,Window.py用於初始化界面以及捕獲進程包,QPA.py是程序的入口文件。我須要捕獲進程數據包功能,因此直接聚焦於Window.pyQPA.py文件spa

clipboard.png

核心功能定位
先大體看下函數名稱,在可疑函數處下斷,而後點擊開始捕獲看程序是否可以斷下,過程就是這樣!最終找到的兩個函數是readCapstopCap插件

clipboard.png

斷點下好後,而後轉到QPA.py點擊開始調試,程序成功斷在stopCap,此處會殺掉了一個Cap.exe的進程命令行

clipboard.png

而後 F11 繼續跟,跟到了名爲wa的函數,這裏會調用connect中的exeCap函數,這個看上去有點像捕獲數據包的意思翻譯

clipboard.png

exeCap運行先後分別記錄下文件的內容,最後證明確實是在connect.exeCap中開始捕獲數據包的

clipboard.png

clipboard.png

而後繼續向下運行,發現readCap函數是一個相似消息循環的地方,會一直讀取數據包而後顯示在界面上,直到點擊了中止捕獲就會跳出循環再次執行stopCap來殺掉進程

clipboard.png

總結一下就是核心捕獲進程數據包的功能在connect文件中的exeCap函數

逆向

逆pyc文件
先在項目文件中找到了connect.pyc沒有.py源碼,爲何會沒有源碼呢?說明核心功能就在裏面

clipboard.png

逆向pyc很簡單,先放網上或者下載uncompyle反編譯一下,稍微難一點的都是反編譯不了的,而後就是看字節碼還原python源碼,這東西網上有指令照着翻譯就好了!可是這個 pyc 挺簡單的,在線反編譯都能搞定

clipboard.png

原來捕獲功能是connect目錄下的CAP.exe,經過調試得知參數形式是U H U 1 dir 0,其中 dir 就是目錄名

clipboard.png

這幾個文件的做用分別是:cap.exe捕獲進程數據,.dll是它的運行時庫,NIC.exe查看本地網卡,其它的沒什麼用了,我都 IDA 看了的!WinPcap須要提早裝好否則該程序會幫你安裝一個

逆Cap.exe
什麼保護措施都沒有的程序,開始會判斷你傳入的命令行參數

clipboard.png

而後通過一系列判斷後,開始捕獲進程數據

clipboard.png

這個程序運行的參數很麻煩,須要這麼寫cap U H U 1 Dir 0才能捕獲進程的流量。因爲代碼不是很是多,有興趣能夠本身重寫一份了。但我不想重寫也不想這麼複雜,就只有本身patch程序了,思路就是:先一個jmp跳到參數判斷以後,而後利用中間的無用數據寫一個賦值的代碼,以後賦值跳轉到上面去賦值再跳轉回來。程序修改以後只須要cap dir就能捕獲進程的數據包了

clipboard.png

clipboard.png

clipboard.png

P.S.本來項目就是開源的,我還給人把核心功能提出來了,要是再把patch後的程序放出來簡直非人哉!因此我就不放打補丁的程序了,有須要的能夠私信我!

END

相關文章
相關標籤/搜索