https://mp.weixin.qq.com/s?__biz=MzA3ODI1MjA1NA==&mid=2655063809&idx=1&sn=d9da16bb7a7d45fada1a5bec39b7fe54&scene=1&srcid=0711Di7bYE2lyQMyFvtB5cma&key=77421cf58af4a6538b61a2219d58ad5beeabc5e43f3d87dd7a3c98f2aa18a3058438a80984f769ae98bd98bec48ee8b7&ascene=0&uin=MjM1NzQyMjU4MA%3D%3D&devicetype=iMac+MacBookPro11%2C3+OSX+OSX+10.9.5+build(13F1134)&version=11020201&pass_ticket=%2FfA%2BPUnYAKluvKlMoWgFeJ98fET9NHJ4aEWibLcCNXMupsXriAiLoMHsKhy6Z2cZphp
offensive security出的一份滲透測試報告,翻譯了下重點內容 java
過程仍是很精彩的~git
本次測試的域名爲:megacorpone.comgithub
先查看一下其DNS服務器:web
而後發現 ns2.megacorpone.com 存在域傳送漏洞。shell
從圖片中能夠看出域名都在50.7.67.x的IP段內,網絡拓撲圖:數據庫
在admin.megacorpone.com服務器的81端口發現了apache的webserver,而後掃一下文件路徑:apache
能夠看到/admin是一個須要身份驗證的路徑。小程序
根據www.megacorpone.com網站內容作了一個字典,爆破密碼,用戶名就用admin了。windows
破解出密碼爲:nanotechnology1
進入後界面:
能夠看到是一套phpSQLiteCMS,管理SQLite數據的:
經過此頁面能夠直接查詢用戶名和密碼的hash:
測試發現保存的hash並不是常規的方式,因而下載一份phpselitecms觀察其中的hash方式:
知道了hash的方式是使用使用了一個10位字符的salt一塊兒作sha1,而且字符串拼接原始salt一塊兒放在數據庫中。
咱們採用一樣的hash方式來暴力碰撞密碼,嘗試破解其餘帳戶,又破解出兩個來,收集密碼的好處是可能其餘系統也會使用相同的用戶名密碼,這樣就能夠輕鬆的進入了。
SQLite Manager軟件存在一個已公開的代碼注入漏洞,可使用exp直接打:
反彈回shell:
服務器拓撲:
同時發現服務器能夠提權,利用exp提權:
此時已經徹底控制此臺服務器。
而後好好的分析了一下此臺服務器,查看到web目錄下java應用只容許一個網段來訪問。
後來發現這個管理員網絡之一:
咱們在web客戶端增長了一個Java小程序,能夠直接控制遠程客戶端。
(PS:出了這麼多Java 0day不知道直接掛到頁面上,老外的中馬率怎麼樣)
在管理員下載並容許後:
此時網絡拓撲:
發現管理員的電腦在域中,開始提高到域管理員。
發現系統中有一個組管理文件。
(ps:關於這個專門去查了一下是2008域管理存在的一個問題:http://www.carnal0wnage.com/papers/LARES-GPP.pdf)
metasploit上有rb腳本能夠查找xml文件並解密:https://github.com/rapid7/metasp ... /credentials/gpp.rb
查看groups.xml文件:
解密:
解密的ruby腳本貼出來:
使用方法是:
#ruby decrypt.rb 密文
require 'rubygems' require 'openssl' require 'base64' #encrypted_data = "AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk" encrypted_data = ARGV def decrypt(encrypted_data) padding = "=" * (4 - (encrypted_data.length % 4)) epassword = "#{encrypted_data}#{padding}" decoded = Base64.decode64(epassword) key = "\x4e\x99\x06\xe8\xfc\xb6\x6c\xc9\xfa\xf4\x93\x10\x62\x0f\xfe\xe8\xf4\x96\xe8\x06\xcc\x05\x79\x90\x20\x9b\x09\xa4\x33\xb6\x6c\x1b" aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC") aes.decrypt aes.key = key plaintext = aes.update(decoded) plaintext << aes.final pass = plaintext.unpack('v*').pack('C*') # UNICODE conversion return pass end blah = decrypt(encrypted_data) puts blah |
嘗試用plink端口轉發,把內網的遠程桌面鏈接轉發出來,可是被阻斷了:
測試後發現能夠經過HTTP-Tunnel轉發出來:
http://http-tunnel.sourceforge.net/
登錄的用戶名密碼採用的是SQLite Manager應用中的mike用戶。
此時網絡拓撲圖:
打開IE的默認主頁發現了Citrix服務器,用跟遠程鏈接相同的用戶名和密碼進入:
Citrix環境當中,作了沙盒,只能使用IE,可是能夠繞過。
使用IE的保存,彈出的對話框,新建一個powershell的bat批處理:
利用powershell下載metasploit的反彈程序
下載完畢後,在保存對話框中已管理員的權限運行
這樣就得到了Citrix系統的權限
此時網絡拓撲:
在Citrix上,嘗試從內存中獲取用戶名密碼:
這裏包含了不少的用戶名和密碼,其中還包括一個windows域管理員的。
給Citrix服務器建立了一個遠程鏈接服務並使用域管理員登錄:
至此已經徹底控制了windows域。