對於絕大多數人逆向人員而言,平日一般都抓瀏覽器的包,網上各種抓包教程早就爛大街了;抓包原理也不復雜:先配置瀏覽器的代理為抓包工具,所有的數據包都通過抓包工具中轉一次。如果是https這些加密的包,還要裝抓包工具的證書,做“中間人攻擊”,即:騙客戶端的瀏覽器自己的服務器,騙服務器自己是客戶端的瀏覽器,取得兩邊的信任后開始做“中間商”!
瀏覽器本身是比較特殊的客戶端,可以配置代理。市面上常見的部分應用也允許配置代理服務器做流量轉發,但大部分應用出於安全或其他原因,並未提供通過代理連接其服務器的功能,這部分應用的數據包該怎么抓了?--- proxifier軟件!
從名字就能看出來,proxifier是一款代理軟件,其原理也不復雜:有說是通過驅動程序hook了R0的收發消息方法,也有說在R3通過注入等方式hook了系統提供的send、sendto、wsasend等方法;不管是那種,總之就是想盡各種辦法讓R3的應用先把數據發給自己,然后再轉發出去!配置方法如下:
- 先配置代理服務器:這里因為要轉發本機的包到fiddler,所以ip地址設置為127.0.0.1,意味這可以指定進程,讓其把所有的數據都先轉發到127.0.0.1這里;因為fiddler默認監聽8888端口,所以這里選擇8888端口;類似根據實際情況選,https和sockeks5隨意;
- 這里繼續選擇配置文件->代理規則:轉發流量沒必要轉發fiddler的,所以這里遇到fiddler的流量直接direct(放過,不抓);
也可以執行想要抓取數據的進程,設置sockes5、https代理,或直接放過!
配置完成后,可以發現目標進程正在嘗試連接不同的服務器:
proxifier設置基本完畢. proxifier本身只是轉發數據包,並不直接處理和解析,所以這里還需要另一款抓包神器:fiddler!眾所周知,https是加密了的,要想解密,需要上面提到的“中間人”:安裝fiddler的證書,這里可以通過tools->https選項卡安裝!
裝完后就可以愉快的抓非瀏覽器、沒有代理轉發功能應用的https包了!可以看到目標進程xxxx中頭像存放在qlogo服務器,並且是http協議,明文傳輸;
訂閱號圖片存在mmbiz.qpic.cn服務器:這次終於用https加密了!
打開訂閱號,能看到抓到了一大堆的js、json、圖片包,挨個找了遍也沒找到文字部分的包,收發消息的包也沒找到,不知道是不是采取某些特殊方式防止被fiddler抓包;或則說被fiddler抓到了,但是內容本身是加密的(比如並未采用業界通用的https協議,而是自定義了加密的通信協議,所以即使裝了fiddler的https證書也沒用),導致fiddler無法解析!這個問題后續空了再深入研究!
下午剛下單在並夕夕上買了些年貨,湊巧從訂閱號收到了發貨的消息,點進去看詳情的整個過程收發的包也被抓到,從地址看是直接連到了pdd的服務器查詢,再把結果反饋到目標APP的頁面!
用類似的方法也可以抓Android的包:先在PC端的模擬器設置代理為127.0.0.1:8888,再在模擬器安裝抓包工具的證書即可;模擬器自帶了設置代理功能,這里連proxifier都省了!