在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → 远程控制软件源代码

远程控制软件源代码

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:1.05M
  • 下载次数:136
  • 浏览次数:2776
  • 发布时间:2019-04-01
  • 实例类别:C#语言基础
  • 发 布 人:crazycode
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 远程 源代码 控制 代码 软件

实例介绍

【实例简介】

说起木马没有人不知道吧,想必各位大哥的灰鸽子里都有数也数不清,让我等小菜羡慕不已的肉鸡吧,本人天生愚钝,
怎么也用不明白这个灰鸽子,又要域名又要FTP的.还好在下学过点编程,既然别人的不好用自己写一个得了,自己写的
不应该不会用了吧,哪我们就开始我们的木马之旅吧.
1.通信技术
    几乎所有的网络程序都要涉及到socket的编程,然而socket到底是什么呢?
    socket是在Unix系统上提出来的,一开始主要用于本地进程通信,但很快用到了C/S(client/server)体系中用于网络中两台主机之间的
    通信.说的形像点,socket像一个管子(或许有点不太恰当),你用它把两台主机连接起来,然后在管子的一头放东西,在另外一头就可以
    接收这些东西了.有了这个管子当然我们还要有操作这个管子的工具,这些工具就是socket函数.基本的socket函数如下:
    int socket(int family, int type, int protocol);
    int closesocket(int socket);
    int bind(int s, const struct sockaddr * name, int namelen);
    int listen(int s, int backlog);
    int accept(int s, struct sockaddr *addr, int *addrlen);
    int connect(int s, struct sockaddr *name, int namelen);
    int send(int s, const char *buf, int len, int flags);
    int sendto(int s, const char *buf, int len, int flags, const struct sockaddr *to, int tolen);/* 用于UDP */
    int recv(int s, char *buf, int len, int flasg);
    int recvfrom(int s, char *buf, int len, int flags, struct sockaddr *from, int *fromlen);/* 用于UDP */
    基本函数就这些了,是不是很少呀,原来哪么厉害的木马就是用这么几个函数写成的呀,嘿嘿
    好了下面我就以一个例子给大家介绍一个这几个函数的用法,木马程序应该算是比较典型的C/S体系,所以下面将有两个程序,
    一个server,一个client
server端的流程如下(括号内为使用的socket函数):
生成socket(socket)->
将生成的socket与本地的IP地址和指定端口绑定(bind)->
在此socket上监听(listen)->
接受来自客户端的连接请求(accept : accept将会返回一个新的socket,以后的通信都在此socket上进行)->
开始用accept新生成的socket上进行通信(send, sendto, recv, recvfrom)->
通信完毕关闭连接(closesocket : accept生成的socket和原始的监听socket都要关闭)
client端的流程如下:
生成socket(socket)->
与指定的服务端(connect : 指定了IP地址和端口)->
开始通信(send, sendto, recv, recvfrom)->
通信结束关闭连接(closesocket)
当然这只是最基本的一些东西,写在这里只是想告诉哪些没有学习过网络编程的人,其实很简单的.
(如果有时间不要总想着搞别人机子,好好学习天天向上,嘿嘿)

有了以上的基础,我们已经可以写出最简单的木马了,只要我们把想执行的命令发给服务端然后
服务端执行就可以了,怎么发挥就看你自己了.

2.自启动技术
我们的木马可以通信了,但总不能让受害人自己去执行吧(哪有这么傻的人呀,也介绍我一个)
2.1 加到开始菜单的启动里.
2.2 加到计划任务里并设成每次启动时执行.
2.3 加到注册表的启动里,以下为涉及到的键值.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices 
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\currentversion\runonce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\windowsnt\currentversion\windows 
建一个字符串名为load键值为自启动程序的路径但是要注意短文件名规则 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windowsNT\CurrentVersion\Winlogon
2.4 写成Windows的服务,并设为自动.(提供示例代码)
2.5 替换windows的正常但无实际用处的服务或程序.
2.6 利用autorun.inf,现在U盘病毒最常用的方法.以下为一个autorun.inf文件内容
[AutoRun]
open=要执行的文件名
shellexecute=要执行的文件名
shell\Auto\command=要执行的文件名
shell=Auto
2.7 利用文件关联,
正常情况下txt文件的打开方式为Notepad.exe文件,如果一旦中了文件关联类的木马,这样打开一个txt文件,
原本应该用Notepad打开该文件的,现在却变成了启动木马程序了
HKEY_CLASSES_ROOT\exefile\shell\open\command,这里是exe文件的打开方式,默认键值为:"%1"%*.
如果把默认键值改为horse.exe "%1"%*,您每次运行exe文件,这个horse.exe文件就会被执行,其它的类似
以下注册表键也涉及到文件关联
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 
2.8 利用windows启动文件
可以利用的文件有Win.ini,system.ini,Autoexec.bat,Config.sys

3.隐藏技术
木马的泛滥也提高的人们的安全意识,人们都会打开任务管理器看看有没有什么可疑进程,又或者用netstat -an看看有没有什么可疑端口
3.1 进程的隐藏
1.起一个好名字,不要叫什么MyDoor,MyHorse什么的傻子都看出来了不是什么好东西,比如叫什么svchost呀,rundll32,这样就会好的多了
2.写DLL木马,直接用rundll32启动,这样只会多一个rundll32进程而已.
其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]  
DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数.  
这里要注意三点:
1.Dll文件名中不能含有空格,比如该文件位于c:\Program Files\目录,你要把这个路径改成c:\Progra~1\;  
2.Dll文件名与Dll入口点间的逗号不能少,否则程序将出错并且不会给出任何信息! 
3.这是最重要的点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等.
3.用DLL直接插入系统进程比如explorer,svchost等等(以前的,提供例程)
4.编写驱动,进行内核级进程的隐藏.(学习中...提供示例和网页)

3.2 端口的隐藏
1.用一个周知口,但前题是这个端口没有在主机上被使用,比如7.21.22.23......
2.使用嗅探型木马,既监听所有数据包再进行分析.(提供例程)

3.3 文件隐藏
1.和进程隐藏一样起一个好点的名字.
2.把文件属性设为系统 隐藏
3.在windows下无法以设备名来命名文件或文件夹,这些设备名主要有aux、com1、com2、prn、con、nul等,但windows2000/XP
  有个漏洞可以以设备名来命名文件或文件夹,让木马可以躲在那里而不被发现.
  具体方法是:用命令提示符窗口,然后输入md c:con\命令,可以建立一个名为con的目录.默认请况下,windows是无法建立这
  类目录的,正是利用了windows的漏洞我们才可以建立此目录.
4.利用NTFS流
   首先用记事本新建两个文本文档,分别名为“1.txt”“2.txt”,其内容为“正常文件、数据流文件”,打开CMD命令行窗口,
   进入两个文件所在文件夹,输入 type 2.txt>1.txt: shujuliu.txt,回车.即可将文件2.txt的内容加入1.txt,
   内容以数据流方式保存,该数据流名为shujuliu.txt.在资源管理器中查看宿主文件1.txt,发现文件的修改日期和文件大小
   都无变化,现在删除2.txt,执行命令:notepad 1.txt:shujuliu.txt ,即可查看数据流文件中的文件内容了.(提供例程)




【实例截图】

from clipboard

【核心代码】

实例下载地址

远程控制软件源代码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警