扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:TOo2y 来源:中华安全网 2008年1月5日
关键字: 后门技术 服务 Windows Windows xp
四、服务级后门技术
在你进入某个系统后,往往会为自己留下一个或多个后门,以便今后的访问。在上传一个后门程序到远程系统上后系统重启之时,总是希望后门仍然存在。那么,将后门程序创建成服务程序应该是个不错的想法,这就是利用了服务程序自动运行的机制,当然在Windows2000的任务管理器里也很难结束一个服务程序的进程。
创建一个后门,它常常会在一个端口监听,以方便我们使用TCP/UDP协议与远程主机建立连接,所以我们首先需要在后门程序里创建一个监听的端口,为了数据传输的稳定与安全,我们可以使用TCP协议。
五、关键函数分析
本文相关程序T-Cmd v1.0是一个服务级的后门程序,适用平台为Windows2000/XP。它可自动为远程/本地主机创建服务级后门,无须使用任何额外的命令,支持本地/远程模式。重启后,程序仍然自动运行,监听端口20540/tcp。
1.自定义数据结构与函数
typedef struct
{
HANDLE hPipe;
//为实现进程间通信而使用的管道;
SOCKET sClIEnt;
//与客户端进行通信时的客户端套接字;
}SESSIONDATA,*PSESSIONDATA;
//重定向Cmd标准输入/输出时使用的数据结构;
typedef struct PROCESSDATA
{
HANDLE hProcess;
//创建Cmd进程时获得的进程句柄;
DWord dwProcessId;
//创建Cmd进程时获得的进程标识符;
struct PROCESSDATA *next;
//指向下一个数据结构的指针;
}PROCESSDATA,*PPROCESSDATA;
void WINAPI CmdStart(DWORD,LPTSTR *);
//服务程序中的“ServiceMain”:注册服务控制句柄,创建服务主线程;
void WINAPI CmdControl(DWORD);
//服务程序中的“HandlerEx”:处理接收到的控制命令,删除已创建的Cmd进程;
DWORD WINAPI CmdService(LPVOID);
//服务主线程,创建服务监听端口,在接受客户连接时,创建重定向Cmd标准输入/输出线程;
DWORD WINAPI CmdShell(LPVOID);
//创建管道与Cmd进程,及Cmd的输入/输出线程;
DWORD WINAPI ReadShell(LPVOID);
//重定向Cmd的输出,读取信息后发送到客户端;
DWORD WINAPI WriteShell(LPVOID);
//重定向Cmd的输入,接收客户端的信息输入到Cmd进程;
BOOL ConnectRemote(BOOL,char *,char *,char *);
//如果选择远程模式,则须与远程主机建立连接,注须提供管理员权限的用户名与密码,密码为空时用"NULL"代替;
void InstallCmdService(char *);
//复制传送文件,打开服务控制管理器,创建或打开服务程序;
void RemoveCmdService(char *);
//删除文件,停止服务后,卸载服务程序;
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者