<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-18 09:32:25

    0x01 重要說明

    本文中涉及到的所有操作均得到了客戶單位的授權,并且在漏洞修復后得以公開。請勿在未授權狀態下進行任何形式的滲透測試!!!!

    0x02 漫長的探索

    某天,接到一個任務,要求對某醫院的信息系統做一次安全檢測,看能否發現問題。經過初步的信息收集后,發現該醫院并無官網,只有一個微信公眾號提供了預約掛號,繳費等功能,看來只能把突破點放在這個公眾號上了。

    下圖是微信公眾號的一些功能:

    當點擊這些功能并抓包的時候,令我看到奇怪的是所有的請求都指向了a.test.com這個域名,如下圖,原諒我的厚碼...

    test.com這個域名經過查找后發現是一家提供醫療信息系統的本地公司,但不解的是為什么醫院的系統會放到供應商公司去呢?他們是如何進行數據同步的呢?帶著這些問題我開始了對a.test.com這個域名的測試。

    看到這個熟悉的頁面,確定了此系統大概是由sping boot開發的,經過一系列常規操作后,只發現了一個swagger-ui頁面。

    由于我們的目標是拿權限,所以重點對此頁面的接口進行了sql注入和越權等測試,無果,也沒有任何的文件上傳接口,開始卡到這里了。

    回過來想,a.test.com這個域名是test.com的子域名,是否能夠通過test.com進行突破呢?

    訪問test.com,打開的是供應商公司的官網。

    test.com的域名做信息收集后發現了幾個子域均解析致某云服務器,但是ip不同。

    首先git.test.com這個域名引起了我的注意,打開后是一個gitlab服務。

    gitlab歷史上是由幾個漏洞的:

    但不幸的是此系統版本較高,漏洞均以修復。

    那會不會由弱口令呢?使用幾個常用的用戶名和top密碼進行爆破,無果,我又想辦法加到了此公司的一個qq群中,嘗試在群文件中獲取一些有效信息。

    果不然,群文件中有一份表格,記錄了員工的詳細信息

    有了這些信息,我開始使用姓名和工號等組合成gitlab的用戶名,使用常用弱口令定向爆破,期望能有一兩個結果,但是還是無果,看來此gitlab對密碼強度有要求,弱口令是走不通了。

    0x03 柳岸花明又一村

    當使用google hack 語法搜索此gitlab時發現了幾處無需認證即可訪問的公開倉庫。

    我開始把希望寄托在了這些可公開訪問的倉庫上,仔細翻看這些倉庫,大多數都是一些接口文檔,對本次滲透沒有啥用。

    終于在rabbitmq安裝介紹文檔中發現了一個oracle數據庫的連接用戶名和密碼:

    在前面的信息收集過程中,已經發現了x.test.com這個子域名對應的ip地址開放了oracle數據庫端口,我迅速連接了此數據庫發現用戶名密碼正確,可以連接。

    由于此數據庫版本較低,并且時sysdba權限,我可以直接以system權限執行命令。

    然后就是添加用戶登錄拿下了這臺oracle數據庫的服務器。

    并且在這個mysql文件夾中發現了mysql的配置文件。


    由于test.com這臺服務器是開放了mysql數據庫的,利用此信息,我又成功登錄了mysql數據庫。

    在mysql數據庫中成功獲取了供應商官網test.com后臺的用戶名和密碼。

    當我滿懷欣喜的去登錄時,發現確實可以登錄,但登陸后的后臺功能都已廢棄,只有一個大大的thinkphp錯誤。

    怎么辦,原想的通過后臺getshell的想法也落空了。(也嘗試過使用Thinkphp3的漏洞利用,但也全部失敗了)

    0x04 絕處逢生

    到這里,我認為只能把希望放在這個mysql數據庫上了,由于是windows系統,udf提權大概率成功不了,那就只能嘗試寫webshell了。寫webshell的話需要知道絕對路徑,我嘗試使用各種辦法讓test.com報錯,看報錯信息中有沒有包含絕對路徑,一系列操作過后無果,只有404頁面。

    沒辦法了,只有盲猜一波,我突然想到了mysql數據庫表的表名是否就是網站的目錄名呢?

    使用這兩個表名構造了以下絕對路徑

    c:\\hs_webc:\\hswebd:\\hs_webd:\\hsweb
    

    當嘗試到c:\\hs_web時,webshell提示已經寫入成功了。

    使用蟻劍連接成功:

    由于當前用戶權限較小,使用potato成功提權:

    添加用戶成功登錄遠程桌面:

    在服務端的nginx配置文件中發現了代理規則,涉及到幾十家醫院:

    原來這些醫院的微信公眾號業務都是先訪問test.com這臺服務器,然后再由這臺服務器上的nginx轉到到各個醫院的真實服務器上。那這樣也太不安全了吧,一旦供應商的這臺服務器宕機、他們的業務也得跟著丟。

    然后在這臺服務器上發現了微信公眾號后臺源碼,丟給同伴審計了一波,發現了后臺登錄繞過漏洞,可以直接登錄后臺。

    然后就是隨意改信息啦。

    至此本次滲透就結束了,其實拿到醫院的真實ip后也可以更深入的進行測試。

    數據庫
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    數據庫的安全性是指保護數據庫免受未經授權的訪問、篡改、破壞或丟失。
    提升數據庫自身安全防護能力、改善應用維護管理方式、運用適合自身運營現狀的安全管控方案,是企業在數字化轉型中必須重視的問題。
    數據庫注入提權總結
    2022-08-10 15:52:54
    首先,不能直接將該函數注入子查詢中,因為 Oracle 不支持堆疊查詢 。其次,只有數據庫管理員才能使用 DBMS_LOCK 包。在 Oracle PL/SQL 中有一種更好的辦法,可以使用下面的指令以內聯方式注入延遲:dbms_pipe.receive_messageDBMS_PIPE.RECEIVE_MESSAGE() 函數將為從 RDS 管道返回的數據等待 10 秒。
    如果關閉了autocommit,所有的sql語句都在一個事務中,直到執行了commit或rollback,該事務結束,并且開啟了下一個事務。DML語句等都不會強制提交事務。因此與其說ACID是事務必須滿足的條件,不如說它們是衡量事務的四個維度。undo log屬于邏輯日志,它記錄的是sql執行相關的信息。當發生回滾時,InnoDB會根據undo log做相反的事情,對于每個insert,回滾做delete;對于每個delete,回滾做insert;對于update,回滾會執行一個相反的update,把數據改回去。
    數據庫的可觀測性的學習榜樣是Oracle,我們根據Oracle官方發布的資料以及可觀測性接口就可以比較清晰的了解到數據庫的運行狀態,進行問題定位、性能分析的工作。目前國產數據庫都沒有提供如此豐富的可觀測性接口與工具,因此對于國產數據庫的運維來說,造成了很大的障礙。不知道今年的開發者大會上發布的openGauss商業版里,會不會看到USTORE成為默認存儲引擎的功能。
    數據庫沒有備份,一旦數據庫被惡意破壞或者因為軟硬件故障導致不可用,煩惱的不僅是IT人,還有企業的經營者。所以,企業需要結合不同場景靈活組合不同的備份和恢復手段,備份之后也要定期進行恢復演練,確保恢復流程的正確性和數據庫備份集的有效性。
    數審系統發揮的作用就是回答以上這些追問。靠人工24小時監控數據庫的一切訪問行為幾乎難以實現,因此,借助工具的力量,引入數審產品才是成熟的做法。建立數審體系,無論是外部還是內部,只要出現了針對數據庫的惡意操作,數據庫審計就能夠第一時間識別并發出告警,讓管理者第一時間進行處理,能夠有效降低甚至避免損失。所以,數據庫審計對于數據安全防護來說是必要一環。
    據中國信息通信研究院《數據庫發展研究報告》預測,預計到2025年,全球數據庫市場規模將達到798億美元。2021年3月,“十四五”規劃綱要正式頒布,提出要培育壯大人工智能、大數據、區塊鏈等新興數字產業。國家也陸續印發不同領域的“十四五”規劃。
    數據庫運維人員(DBA)在開展日常運維工作的過程中,因操作環境和規范要求的不同,其訪問數據庫的方式也相對靈活——既可以通過網絡遠程訪問,也可以進行本地訪問。那么問題來了...
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类