信息安全公益宣傳,信息安全知識啟蒙。
教程列表見微信公眾號底部菜單
利用SQL漏洞攻擊流程圖
收集信息
由於一些限制條件禁止我們主動枚舉,所以只能被動的從收集信息開始。
我們從github、pastebin和其他一些地方收集信息。這些信息包括:
識別客戶所擁有的IP範圍、枚舉域名和子域名。
再利用shodan和其他幾種OSINT技術尋找暴露的的服務。
我們把收集的信息根據一些規則排列,這些信息包括密鑰、服務進程以及過時的軟體等。
然後我們與客戶溝通,確認下一階段的目標。
獲取許可權
探索了一個高級網站,並確定其中包含SQL注入漏洞。在SQLMap中使用'--is-dba'選項,確定我們具有DB管理級別許可權。
利用這個許可權,我們發現了多個資料庫和交互訪問的許可權,並定位了一些資料庫用戶帳戶和相關聯的密碼哈希。(通過使用hashcat我們能夠破解一些密碼哈希)
另外,由於在資料庫伺服器上啟用了'xp_cmdshell',我們可以執行OS命令。
執行OS命令
這證實OOB DNS調用了我們的定製域「xyz.abc.sos.notsosecure.com」。如下所示:
互動式Shell
下一步是通過互動式shell實現更好的控制。
我們處理了多個meterpreter payload,但幾乎都失敗了。
當我們不斷嘗試使用多個exfiltration技術(如ICMP隧道),我們通過xp_cmdshell安排了一個互動式ICMP shell,如下所示:
通過使用新獲得的ICMP shell,我們處理了被破壞的系統,並四處尋找在開發后可以幫助我們的任何東西。由於主機是Windows,我們嘗試獲得一個powershell meterpreter payload。它有一個shell,但是在幾秒鐘內就被檢測到,終止了連接。
一些枚舉可以證實,主機上安裝了企業防病毒軟體。經過幾次規避保護的嘗試之後,我們退回了主機上的枚舉,並確定安裝了python。
然後我們使用msfvenom生成一個python meterpreter payload,運行以下命令:
將上述payload託管在我們的伺服器上,並指示受感染的伺服器使用ICMP shell中的以下Powershell命令,下載payload:
我們為meterpreter啟動了metasploit多處理程序,並通過ICMP shell執行了payload。
這讓我們得到了我們想要的shell,如下圖所示:
雖然比我們的初始ICMP shell更穩定,但是由於python meterpreter實現的局限性,大多數默認命令無法獲取結果。
從我們新獲得的meterpreter中進一步列舉。根據我們過去的經驗,網路共享通常不包括在防病毒掃描範圍內。幸運的是,我們偶然發現了一個共享主機,並在那裡丟下了一個Windows的meterpreter payload。
我們為這個meterprey payload開啟另一個metasploit監聽,執行二進位代碼並按預期獲得了一個可用的本地meterpreter shell。
現在我們dump哈希,嘗試使用mimikatz獲取明文密碼,提取代理令牌。
但是我們沒有收到任何可以幫助我們的東西(沒有找到明文登錄憑據),因為沒人登錄,本地哈希不能用於其他地方。
我們發現主機有多個網路介面,所以我們使用新獲得的meterpreter shell,使用以下命令向內部網路添加一條路由:
一旦添加路由,我們執行ARP掃描,利用metasploit模塊識別網路上的實時主機,並識別出多個主機。
使用metasploit auxiliary模塊,在實時主機上執行埠掃描,以嘗試識別任何運行MSSQL的主機,如下所示:
然後,我們使用 「auxiliary/scanner/mssql/mssql_login」 模塊與先前破解的資料庫帳戶對比,看是否有任何帳戶被重用,如下所示:
我們發現其中一個帳戶在另外兩個主機上也有效,並具有資料庫管理員的許可權。
在「auxiliary/admin/mssql/mssql_exec」模塊的幫助下,我們可以使用這個特權帳戶來獲得一個作為系統運行的meterpreter shell。
該主機運行Windows Server 2003操作系統(現在已經過時)。
獲得域控權
隨後dump本地的哈希,破解了大量本地帳戶。
然後,篡改shell用於轉儲域帳戶哈希值,如下所示:
除此之外,mimikatz還用於從主機的內存中轉儲明文密碼,如下所示:
在進一步列舉后,我們確定了其中一個用戶的企業管理員身份。
這使我們能夠直接訪問域控制器。
由此,我們可以開始使用這些高許可權的憑據,再結合PowerShell腳本「 Invoke-MassMimikatz.ps1 」 ,從所有其他主機中提取了多個明文密碼。
此外,我們現在可以在域控制器上執行hashdump來獲取諸如「krbtgt」這樣的高許可權帳戶的哈希值。
這裡我們使用metasploit kiwi擴展名為「dcsync_ntlm」的命令來提取krbtgt帳戶的哈希值,如下所示。