zoukankan      html  css  js  c++  java
  • 木马分析(控制分析)实验

    实验目的

    1、理解和掌握木马传播和运行的基本原理 2、在虚拟机上模拟木马传播和感染 3、认识常见的木马控制功能 4、加深对木马的安全防范意识 5、配置木马文件,测试其各项控制功能

    6、尝试分析木马的控制过程

    实验原理

    木马简介: 木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。 对木马程序而言,它一般包括两个部分:客户端和服务器端。服务器端安装在被控制的计算机中,它一般通过电子邮件或其他手段让用户在其计算机中运行,以达到控制该用户计算机的目的。客户端程序是控制者所使用的,用于对受控的计算机进行控制。服务器端程序和客户端程序建立起连接就可以实现对远程计算机的控制了。 木马运行时,首先服务器端程序获得本地计算机的最高操作权限,当本地计算机连入网络后,客户端程序可以与服务器端程序直接建立起连接,并可以向服务器端程序发送各种基本的操作请求,并由服务器端程序完成这些请求,也就实现对本地计算机的控制了。 木马本身不具备繁殖性和自动感染的功能。 木马程序技术发展可以说非常迅速。至今木马程序已经经历了六代的改进:第一代,是最原始的木马程序。主要是简单的密码窃取,通过电子邮件发送信息等,具备了木马最基本的功能。第二代,在技术上有了很大的进步,冰河是中国木马的典型代表之一。第三代,主要改进在数据传递技术方面,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了杀毒软件查杀识别的难度。第四代在进程隐藏方面有了很大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程。或者挂接PSAPI,实现木马程序的隐藏,甚至在Windows NT/2000下,都达到了良好的隐藏效果。灰鸽子和蜜蜂大盗是比较出名的DLL木马。第五代,驱动级木马。驱动级木马多数都使用了大量的Rootkit技术来达到在深度隐藏的效果,并深入到内核空间的,感染后针对杀毒软件和网络防火墙进行攻击,可将系统SSDT初始化,导致杀毒防火墙失去效应。有的驱动级木马可驻留BIOS,并且很难查杀。第六代,随着身份认证UsbKey和杀毒软件主动防御的兴起,黏虫技术类型和特殊反显技术类型木马逐渐开始系统化。前者主要以盗取和篡改用户敏感信息为主,后者以动态口令和硬证书攻击为主。PassCopy和暗黑蜘蛛侠是这类木马的代表。 “木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。 远程控制: 远程控制是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术,这里的远程不是字面意思的远距离,一般指通过网络控制远端电脑,不过,大多数时候我们所说的远程控制往往指在局域网中的远程控制而言。当操作者使用主控端电脑控制被控端电脑时,就如同坐在被控端电脑的屏幕前一样,可以启动被控端电脑的应用程序,可以使用被控端电脑的文件资料,甚至可以利用被控端电脑的外部打印设备(打印机)和通信设备(调制解调器或者专线等)来进行打印和访问互联网,就像你利用遥控器遥控电视的音量、变换频道或者开关电视机一样。不过,有一个概念需要明确,那就是主控端电脑只是将键盘和鼠标的指令传送给远程电脑,同时将被控端电脑的屏幕画面通过通信线路回传过来。也就是说,我们控制被控端电脑进行操作似乎是在眼前的电脑上进行的,实质是在远程的电脑中实现的,不论打开文件,还是上网浏览、下载等都是存储在远程的被控端电脑中的。 电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们的关注。远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制(不过,这里说的远程电脑,只能是有限距离范围内的电脑了)。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制。 远程控制软件和木马的共同点与区别: 常规远程控制软件和木马的共同点: 1、常规远程控制软件和木马都是用一个客户端通过网络来控制服务端,控制端可以是WEB,也可以是手机,或者电脑,可以说控制端植入哪里,哪里就可以成为客户端,服务端也同样如此; 2、常规远程控制软件和木马都可以进行远程资源管理,比如文件上传下载修改; 3、常规远程控制软件和木马都可以进行远程屏幕监控,键盘记录,进程和窗口查看。 常规远程控制软件和木马的区别: 1、木马有破坏性:比如DDOS攻击、下载者功能、格式化硬盘、肉鸡和代理功能; 2、木马有隐蔽性:木马最显著的特征就是隐蔽性,也就是服务端是隐藏的,并不在被控者桌面显示,不被被控者察觉,这样一来无疑增加了木马的危害性,也为木马窃取密码提供了方便之门。 远程控制和木马在功能上非常相似,木马可以理解为加了恶意功能的远程控制软件。另外,用于企业管理的远程控制应该是良性的,服务端可见的,否则和木马也没多大区别了,要知道,很多具有危害性的操作,比如删除文件、键盘记录等不单单是木马的特权。 远程控制木马: 远程控制木马是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。非授权性是指一旦控制端与服务器连接后,控制端将享有服务端的大部分操作权限,包括修改文件、修改注册表、控制鼠标、控制键盘等,这些权限并不是服务端赋予的,而是通过木马程序窃取的。 用木马进行网络入侵,从过程上看大致可分为以下六步。 1、配置木马 一般来说,每个设计成熟的木马都有木马配置程序,以实现以下两个功能。 (1)木马伪装:木马配置程序为了在服务器端尽可能好的隐藏木马,会采用多种伪装手段,如修改图标、捆绑文件、定制端口、自我销毁等。 (2)信息反馈:木马配置程序对信息反馈的方式和地址进行设置。 2、伪装木马 木马的伪装方式主要有以下6种。 (1)修改图标 现在,已经有木马服务端程序的图标改成HTML、TXT、ZIP等文件的图标,这具有相当大的迷惑性。 (2)捆绑文件 这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的情况下,偷偷地入驻系统。至于被捆的文件,一般是可执行文件(即EXE、COM一类的文件)。 (3)出错显示 当服务端用户打开木马程序时,为了迷惑用户,木马程序会弹出一个错误提示框。错误内容大多会定制成诸如“文件已破坏,无法打开!”之类的信息,如果服务端用户信以为真,木马会悄悄入驻系统。 (4)定制端口 很多老式木马的端口都是固定的,这给判断是否感染了木马带来了方便,只要查一下特定的端口就知道感染了什么木马,所以现在很多新式木马都加入了定制端口的功能,控制端用户可以在1024-65535之间任选一个端口作为木马端口(一般不选1024以下的端口),这样就给判断木马的类型带来了麻烦。 (5)自我销毁 木马的自我销毁功能是指安装完木马后,原木马文件将自动销毁。这样服务端用户就很难找到木马的来源,在没有查杀木马工具的帮助下很难删除木马。 (6)木马更名 现在有很多木马都允许控制端用户自由定制安装后的木马文件名,这样很难根据文件名来判断所感染的木马类型。 3、传播木马 木马的传播方式主要有两种:一种是通过E-mail,另一种是软件下载。 4、运行木马 服务器用户运行木马或捆绑木马的程序后,木马就会自动进行安装。首先将自身复制到windows的系统文件夹中(一般在C:windows或C:windowssystem目录下),然后在注册表、启动组、非启动组中设置好木马的触发条件,这样木马安装就完成了。安装后木马即被激活。 木马被激活后,进入内存,并开启事先定义的木马端口,准备与控制端建立连接。这时服务端用户可以在MS-DOS方式下,输入NETSTAT-AN命令查看端口状态。一般个人电脑在脱机状态下是不会有端口开放的,如果有端口开放,就要注意是否感染了木马,尤其是数值比较大的端口。如果木马有定制端口的功能,那么任何端口都可能是木马端口。 5、建立连接 控制端可以通过木马端口与服务端建立连接。 6、远程控制 连接建立后,控制端对服务端能进行如下操作。 (1)窃取密码:一切以明文的形式缓存在cache中得密码都能被木马侦测到,此外很多木马还提供击键记录功能,这类木马能记录服务端每次敲击键盘的动作,所以服务端一旦有木马入侵,密码将容易被窃取。 (2)文件操作:控制端可对服务端上的文件进行删除、新建、修改、上传、下载、运行、更改属性等一系列操作,基本涵盖了windows平台上所有的文件操作功能。 (3)修改注册表:控制端可任意修改服务端注册表,包括删除、新建或修改主键、子键、键值。有了这项功能,控制端就可以禁止服务端软驱、光驱的使用。另外,控制端还可以执行锁住服务端的注册表,将服务端上木马的触发条件设置得更隐蔽等一系列高级操作。 (4)系统操作:控制端可完成包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标,键盘、监视服务端桌面操作,查看服务端进程等操作。控制端甚至可以随时给服务端发送信息。 著名的远程控制木马有:冰河、灰鸽子、上兴、PcShare、网络神偷、FLUX等。

    实验内容

    1、介绍与木马相关的基本概念 2、配置木马文件 3、测试木马的各项控制功能 4、使用Wireshark工具尝试分析木马的控制过程

    实验环境描述

    1、 学生机与实验室网络直连;

    2、 VPC与实验室网络直连;

    3、学生机与VPC物理链路连通;

    PC1:172.16.1.145 PC2:172.16.1.144

    实验步骤

    1、学生单击实验拓扑按钮,进入实验场景,进入目标主机

    2、学生输入账号administrator ,密码123456,登录到实验场景中的目标主机。

    3、配置控制端,生成木马

    实验前准备:关闭控制端防火墙,尝试两台机器互相ping 看能否ping 通。要确保能ping通。

    1)、配置木马控制端和受控端的网络,控制端的IP地址为172.16.1.144,受控端的IP地址为172.16.1.145,子网掩码均为255.255.255.0。通过互相ping对方,保证两台“主机”可达,之后再进行下面的操作。

    2)、在控制端主机VPC2(桌面上兴远控.rar)解压上兴远控压缩包,双击打开上兴远控的控制端配置程序rejoice.exe。

    图片描述

    3)、单击工具栏上的第一个按钮(或者按下F9键),配置受控端(生成木马)。第一栏填入控制端的IP地址,此处填172.16.1.144:8181,其中8181为控制端的默认通信端口。其他选项的填写如下图所示。

    图片描述

    4)、点击“生成服务端”按钮,选择木马文件的存放位置和文件名,确定后即在指定位置产生了相应的木马文件,这里将文件命名为2018_misswe。

    4、受控端感染木马。

    1)、将控制端配置生成的木马文件2018_misswe.exe复制到受控端。

    2)、同时在木马控制端和受控端开启网络数据嗅探工具Wireshark,开始数据捕获过程,同时设定数据包过滤规则为

    (ip.src==172.16.1.144 &&ip.dst==172.16.1.145) || (ip.dst==172.16.1.145 &&ip.src==172.16.1.144)

    即,只显示木马控制端和受控端的交互数据。

    3)、双击2018_misswe.exe使之运行,进而使受控端感染木马。

    4)、双击木马程序后片刻,程序从原位置消失。此时,控制端主机一端会提示有受控主机“上线”,此时左侧边栏出现受控主机IP并可点击查看受控主机的文件资源。另外点击不同的功能按钮,还能实现更进一步的对受控主机的各种操控功能,下面,对于该木马的各项控制功能一一予以测试。

    图片描述

    5、木马控制实验

    1)、打开控制端控制界面,点击左边栏目录树部分,可以查看、上传下载、远程前台运行、远程后台运行受控端的文件和可执行程序。

    图片描述

    2)、 单击工具栏第三个按钮,打开“向受控主机发送指令”界面,选择欲发送指令的目的受控主机,在界面下方,可以选择四类指令进行发送,包括“主机操纵”、“发送信息”、“网络功能”、“网络僵尸”。

    图片描述

    例如,单击下方的“关闭远程主机”按钮,这时,受控端主机自动关闭系统,如下图所示,受控端系统关闭后,控制端可见受控端“下线”。

    图片描述

    又如,单击下方的“发送信息”选项卡,可以根据需要远程发送信息,以对话框或彩色文字显示在受控端屏幕上。

    图片描述

    控制端向受控端发送信息(左:控制端,右:受控端)

    “网络功能”选项卡下的功能,主要与网页浏览、代理服务等有关,操控受控端IE浏览器的设置和使用;“网络僵尸”选项卡下的功能,主要是向受控端主机发起DoS攻击。如下图所示:

    图片描述 图片描述

    3)、单击工具栏第四个按钮,进入“屏幕查看”界面,在这个界面下,控制端可以远程查看受控端的屏幕内容,并且还可以操控受控端的键盘、鼠标。如下图所示:

    图片描述

    4)、单击工具栏第五个按钮,进入“音视频监控”界面,可以监控受控端主机的话筒输入、摄像头视频输入等信息。如下图所示:

    图片描述

    5)、单击工具栏第六个按钮,进入“注册表管理”界面,可以对受控端主机的注册表进行查看和修改。如下所示为,修改HKCU\Software\Microsoft\Windows\CurrentVersion\Run的键值,以增加开机自启动项。

    图片描述

    6)、单击工具栏第七个按钮,进入“系统服务管理”界面,可以对受控端主机的系统服务状态进行设置修改。如下,为修改受控端主机的srservice服务的状态,以关闭受控端主机的系统还原功能。

    图片描述

    7)、单击工具栏第八个按钮,进入“进程管理”界面,可以对受控端主机的进程状态进行查看,并可以结束进程。如下,为结束受控端主机的“画图”进程。

    图片描述

    8)、单击工具栏第九个按钮,进入“命令提示符”界面,可以获取受控端主机的cmd shell,对受控端主机进行基于命令行外壳下操作。如下图所示。

    图片描述

    9)、单击工具栏第十个按钮,进入“数据/键盘/内存捕获”界面,可以获取受控端主机的键盘操作、进程内存等信息。以键盘捕获为例,开启键盘监控后,打开受控端主机上的记事本程序,输入test然后回车,然后回到控制端,查看键盘捕获结果,如下图所示。

    图片描述

    6、分析受控期间的网络通信数据

    1)以木马控制端查看受控端文件系统目录树为例。以下为wireshark的嗅探结果。

    图片描述

    2)、通过逐一查看捕获的各个数据包可以发现,除去第14个数据包以外,其余数据包均为控制端和受控端的命令发送和状态交互过程,均为特定的二进制指令代码。而第14个数据包的应用层数据则是受控端的C盘根目录下的目录内容,采用未经任何编码的明文传输,可以轻易看出,其内容就是所要查看的目录内容。所发送的信息包括文件名、文件修改时间和文件大小,其中,文件名和修改时间之间包含一个换行符(0x0d 0x0a),而修改时间和文件大小之间则是连续的;不同的文件信息之间用“|”(0x7c)隔开。这样做的目的在于,使控制端将各项信息区分开,并准确显示在控制端的相应位置,如下图所示。

    图片描述

    7、.实验完毕,关闭虚拟机和所有窗口。

  • 相关阅读:
    利用SVN进行个人代码管理
    ECEF坐标系
    地理坐标系、大地坐标系、投影坐标系
    让VS能够识别我的DLL运行库
    cannot convert parameter 1 from 'const char *' to 'LPCWSTR' 修改
    创建文件目录C++ windows
    GDAL获取遥感图像基本信息
    全球经纬度划分
    遥感影像度与米的转换
    C++ assert用法
  • 原文地址:https://www.cnblogs.com/lzkalislw/p/13628323.html
Copyright © 2011-2022 走看看