木马与远程控制技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教学重点
2020年10月6日
第3页
6.1 预备知识
2020年10月6日
第4页
套接字API函数
socket 建立套接字
bind 将套接字和本地ip地址绑定
connect 和一个套接字建立连接
accept 接受一个套接字的连接请求
listen 服务端套接字侦听连接请求
send 向一个套接字发送数据
recv 从一个套接字接收数据
2020年10月6日
第8页
屏幕的截取
截取屏幕或窗口要用到图形操作函数。A PI函数有CreateCompatibleDC、Stretch Blt等。类CDC封装了这些函数。
2020年10月6日
第9页
虚拟鼠标的操作
• 鼠标操作过程是当控制端产生某种鼠标操作如移动鼠标, 按左键或右键时,在被控制端产生相应的鼠标操作。
2020年10月6日
第14页
• 利用系统漏洞 • 利用浏览网页 • 冒名欺骗 • 捆绑下载
木马程序的安装
2020年10月6日
第15页
• 集成到程序中 • 隐藏在配置文件中 • 潜伏在Win.ini中 • 伪装在普通文件中 • 内置到注册表中 • 隐形于启动组中 • 捆绑在启动文件中
木马的启动
2020年10月6日
2020年10月6日
第10页
虚拟键盘的操作
虚拟键盘的操作是指在控制端的键盘操作,被控 制端进行同样的操作。如PCAnywhere和QQ都提 供了同样的功能。使用键盘钩子可以捕获控制端 的键盘操作,调用SendInput可以在被控制端产生 虚拟的键盘操作。
2020年10月6日
第11页
钩子
是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的 消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即 钩子函数先得到控制权。钩子的种类很多,每种钩子可以截获并处理 相应的消息,如键盘钩子可以截获键盘消息,外壳钩子可以截取、启 动和关闭应用程序的消息等。远程控制实现键盘同步时使用键盘钩子 捕获键盘信息,某些木马也用键盘钩子来窃取键盘信息。
2020年10月6日
第20页
文件与图象的传递
文件与图象属于长数据,发送和接收的时间比较 长,需要使用多线程来完成。例如,当控制端要 求取被控制端桌面,发送控制命令“*windows*” ,同时启动一个子线程,在1801端口侦听,而被 控制端收到命令后,也启动一个子线程,完成桌 面截取,压缩,然后连接控制端的1801端口,将 桌面数据发送过去。控制端收到后显示在控制端 的界面上。
2020年10月6日
第12页
• 列举进程 • 删除进程 • 执行程序 • 控制系统
进程管理
2020年10月6日
第13页
6.4 木马技术揭露
因为木马是未经授权而使用的远程控制程序,因此,木马还要使用一些正常远程控制程 序所不使用的方法,以达到其目的。主要表现在窃取键盘信息、欺骗用户安装、执行 和隐藏等。窃取键盘信息所使用的钩子技术已经在上节介绍,本节主要介绍木马安装 、执行和隐藏。
2020年10月6日
第18页
6.5 一个完整的远程控制程序
2020年10月6日
第19页
控制命令的传送
• 控制命令是控制端向被控制端发出的要求执行的命令。从图6-5界面可看出,命令有“ 取窗口”、“鼠标操作”、“取进程”、“删进程”、“看文件”、“删文件”、“ 执行程序”、“上传”、“下载”、“关机”、“重启”、“注销”。控制命令用字 符串表示,例如发送“*windows*”表示取窗口,发送“*process*”表示取进程信息。
计算机病毒分析与防治教程
清华大学出版社
第6章 木马与远程控制技术
教学目标 教学重点 教学过程
2020年10月6日
第1页
• 木马的网络通信 • 木马的隐藏技术 • 木马的控制技术 • 发现和清除木马的方法
教学目标
2020年10月6日
第2页
• 套接字与网络编程 • 远程控制的通信的实现 • 远程控制的控制技术 • 木马技术揭露 • 木马的清除方法
2020年10月6日
第21页
6.6 木马的清除方法
监视端口 监视文件 监视进程 监视进程模块 监视注册表
一发现木马,然后采取相应的清除措施。
2020年10月6日
第22页
监视端口
• 监视端口指系统当前有哪些端口处于侦听、连接状态,哪些进程在使用哪些端口,即 使进程端口关联。
• 进程端口关联的原理是,将系统建立的所有句柄:进程句柄、令牌句柄、文件句柄、 窗口句柄、套接字句柄等列举到缓冲区内,然后分析套接字句柄,用函数getsockname 获取进程使用的端口号 。
在Windows中,键盘钩子程序表现为dll文件形式,为主程序调用。主程 序使用函数SetWindowsHookEx安装钩子,其中其中,第一个参数是钩 子的类型,键盘钩子可以是WH_KEYBOARD,第二个参数是钩子函数的 地址,第三个参数是包含钩子函数的模块句柄,第四个参数指定监视 的线程。
SendInput可以产生虚拟的键盘或鼠标信息,它的第二个参数是一个IN PUT结构指针。注意,按下一个按钮和释放一个按钮是两个不同的动 作,所以必须创建两个不同的INPUT结构。
第16页
举例:文件关联启动
• 木马通过修改注册表,例如若让扩展名为.txt的文件和木马程序关联,那么木马程序 会启动。木马程序再调用记事本再打开被双击的文件,这样木马就悄悄地被启动且用 户还难以发觉。
2020年10月6日
第17页
木马的隐藏技术分析
• 远线程技术 • 使用注册表插入DLL • 反向连接技术 • 隐藏在回收站
setsockopt 设置套接字选项
2020年10月6日
第5页
6.2 木马分类介绍
• 从通信方式上分 • 从存在方式上分 • 从破坏方式上分
2020年10月6日
第6页
ping的结果
2020年10月6日
第7页
ห้องสมุดไป่ตู้
6.3 远程控制的控制技术
• 屏幕的截取 • 键盘操作 • 鼠标操作 • 进程管理 • 系统管理和文件操作
• 控制端鼠标的捕获使用窗口消息和消息函数,主要有WM_L BUTTONDOWN、WM_LBUTTONDBLCLK、WM_RBUTTONDOWN、WM_R BUTTONDBLCLK等消息和它们对应的消息函数。消息函数中 还包含了鼠标的位置信息。
• 控制端将鼠标信息发送给被控制端,控制端调用mouse_ev ent或SendInput产生虚拟的鼠标操作。