当前位置:文档之家› 木马与远程控制技术

木马与远程控制技术


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