• 20192425 202120222 《网络与系统攻防技术》实验四实验报告


    20192425 2021-2022-2 《网络与系统攻防技术》实验四实验报告

    1.实验内容

    1.恶意代码文件类型标识、脱壳与字符串提取

    2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。

    3.分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

    4.取证分析实践

    2.实验过程

    1.恶意代码文件类型标识、脱壳与字符串提取

    1.使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;

    使用命令,查看可打印字符串

    C:\Users\11540\Desktop>strings RaDa.exe
    

    发现出现乱码,推测可能因为加壳导致

    使用PEiD进行查壳

    2.使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;

    使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理

    脱壳后查看可打印字符串

    C:\Users\11540\Desktop>strings RaDa.exe
    

    3.使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

    打开IDA_Pro_7.7_Portable选择脱壳后的文件,查看相关信息

    打开Process Explorer,并且运行刚刚脱壳得到的RaDa_unpacked.exe文件,找到运行的RaDa_unpacked.exe文件,右键单击选择Properties查看详细信息,然后选择Strings页面

    我们可以看到版权归Raul siles和David Perze所有,即找到rada恶意代码的编写作者

    2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。

    1.crackme1.exe

    将crackme1.exe导入IDA pro

    查看函数调用图

    查看函数汇编代码

    验证

    2.crackme2.exe

    将crackme2.exe导入IDA pro

    查看函数调用图

    查看函数汇编代码

    可以发现crackme2.exe要判断参数位数是否正确、程序名是否正确、密码是否正确

    进行验证

    C:\Users\11540\Desktop>crackme2.exe "I know the secret"
    I have an identity problem.
    
    C:\Users\11540\Desktop>copy crackme2.exe crackmeplease.exe
    已复制         1 个文件。
    
    C:\Users\11540\Desktop>crackmeplease.exe "I know the secret"
    We have a little secret: Chocolate
    

    3.分析一个自制恶意代码样本rada,并撰写报告,回答以下问题。

    (1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;

    使用之前安装过的文件数字指纹生成器生成文件摘要,并修改文件名对比两次摘要值,发现一致。

    (2)找出并解释这个二进制文件的目的;

    打开Process Explorer工具并运行RaDa_unpacked.exe,观察工具中的strings页面。

    • 使用http连接到目标为10.10.10.10的主机下的一个名为RaDa_commands的网页上。

    • CGI-BIN是一种特殊的目录,在进行交互式的WWW访问(如填写在线表格)时,需要服务器上有 相应的程序对访问者输入的信息进行处理,这些程序就是CGI程序。

    • 进行上传下载操作,并存储到C盘对应位置C:\RaDa\tmp,查找发现果然在对应位置发现RaDa.exe文件。

    • 控制计算机启动项的注册表信息,将RaDa.exe设为开机自启动

    • 在注册表中,REG_SZ,是一种字符串类型,代表一个简单的文本字符串,是最常见的一种数据类型。

    Starting DDoS Smurf remote attack...

    完成上面的任务后,程序开始远程DDoS攻击。




    之后程序执行注册表指令RegWrite RegRead RegDelete

    Wscript.Shell有三个方法,分别是RegWrite、RegRead、RegDelete,简介如下:

    1.RegWrite

    语法示例:RegWrite "HKCU\Software\oldghost\test","abc","REG_SZ"
    参数说明:第一个参数中,"HKCU\Software\oldghost\",这是个主键及子键,"test"是值项。第二个参数就是值项的键值。第三个参数是键值的类型。注册表值的类型我就不说了,有疑问自己查。
    功能简介:在注册表中设置指定的键或值。
    

    2.RegRead

    语法示例:RegRead "HKCU\Software\oldghost\test"
    参数说明:同RegWrite的第一个参数。
    功能简介:从注册表中返回指定的键或值。
    

    3.RegDelete

    语法示例:同RegRead。
    参数说明:同RegRead。
    功能简介:从注册表中删除指定的键或值。
    

    这是个后门程序,能够发出http请求,供攻击者远程连接,并提供给攻击者宿主机器支持的指令。

    (3)识别并说明这个二进制文件所具有的不同特性;

    能够发出http请求,然后通过后门与远程主机连接。可以上传、下载、执行文件,甚至向某台机器发起DoS(拒绝服务)攻击。运行后将自己拷贝到系统目录下,修改注册表自启动项。

    (4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;

    使用了UPX加壳。

    (5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;

    该恶意代码能自主传播,没有进行伪装,但攻击者可以远程发送指令进行远程连接和远程操作,所以是后门。

    (6)给出过去已有的具有相似功能的其他工具;

    IRC后门病毒,可以上传、下载、执行文件,甚至向某台机器发起DoS(拒绝服务)攻击,病毒运行后将自己拷贝到系统目录下,会在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下添加自己的启动项。

    (7)可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

    可以,是Raul siles和David Perze于2004年编写的。在脱壳之后通过相关工具可以查看。

    4.取证分析实践

    Windows 2000系统被攻破并加入僵尸网络

    问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:

    (1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?

    因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,世界上有超过60个国家提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称)。

    IRC 特点是通过服务器中继与其他连接到这一服务器上的用户交流注册时需要发送的消息有三种,分别是口令,昵称和用户信息。格式如下:USER 、PASS 、NICK 。注册完成后,客户端就使用 JOIN 信息来加入频道,格式如下:JOIN

    IRC 服务器明文传输通常在 6667 端口监听,也会使用 6660—6669 端口。 SSL 加密传输在 6697 端口。

    (2)僵尸网络是什么?僵尸网络通常用于什么?

    僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。

    攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。

    僵尸网络是一种由引擎驱动的恶意因特网行为:DDoS攻击是利用服务请求来耗尽被攻击网络的系统资源,从而使被攻击网络无法处理合法用户的请求。 DDoS 攻击有多种形式,但是能看到的最典型的就是流量溢出,它可以消耗大量的带宽,却不消耗应用程序资源。DDoS 攻击并不是新鲜事物。在过去十年中,随着僵尸网络的兴起,它得到了迅速的壮大和普遍的应用。僵尸网络为 DDoS 攻击提供了所需的“火力”带宽和计算机以及管理攻击所需的基础架构。

    它往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。

    (3)蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信?

    用wireshark打开botnet_pcap_file.dat文件,设置过滤条件ip.src==172.16.134.191 && tcp.dstport == 6667

    观察可以得出,蜜罐主机(IP地址:172.16.134.191)主要与以下五台IRC服务器进行了通信,分别是<63.241.174.144>, <217.199.175.10>, <209.126.161.29>,<66.33.65.58>,<209.196.44.172>。

    (4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

    在终端输入以下命令,得到三个文件

    ┌──(suqi㉿suqi)-[~/桌面]
    └─$ tcpflow -r botnet_pcap_file20192425.dat "host 209.196.44.172 and port 6667"                                            
    reportfilename: ./report.xml
    

    在report.xml文件中可以看到双方的ip地址,端口,mac地址等信息、

    通过以下命令,搜索有多少主机连接

    cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x .//g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l
    

    (5)哪些IP地址被用于攻击蜜罐主机?

    输入指令查找端口并输出到port.txt中

    tcpdump -n -nn -r botnet_pcap_file20192425.dat 'dst host 172.16.134.191' | grep -v 'reply' | cut -d '.' -f 10 | cut -d ':' -f 1 | sort | uniq | more >port.txt; wc -l port.txt
    

    输入指令查找ip地址并输出到ip.txt中

    tcpdump -n -nn -r botnet_pcap_file20192425.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > ip.txt;wc -l ip.txt
    

    (6)攻击者尝试攻击了那些安全漏洞?

    输入命令查看网络流分布情况,根据包的协议情况,进一步筛选出响应的TCP端口和UDP端口
    sudo snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
    

    使用命令查看TCP响应端口
    tcpdump -r botnet_pcap_file20192425.dat -nn 'src host 172.16.134.191' and tcp[tcpflags]== 0x12 | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
    

    使用命令查看UDP响应端口
    tcpdump -r botnet_pcap_file20192425.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq
    

    分析UDP137端口

    137/UDP -- NetBIOS 名称服务器。

    网络基本输入/输出系统 (NetBIOS) 名称服务器 (NBNS) 协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法。

    NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API。

    在局域网中提供计算机的IP地址查询服务,处于自动开放状态,是 NetBIOS 查点。

    分析TCP135端口

    TCP135只是进行了连接,没有数据内容交换,很有可能是对这个端点进行了connect扫描。

    分析TCP25端口

    TCP25只是进行了连接,没有数据内容交换,很有可能是对这个端点进行了connect扫描。

    分析TCP139端口

    TCP139这里大部分连接也没有传递具体会话内容,主要是SMB查点。

    分析TCP445端口

    可以看到其中有PSEXESVC.EXE,这是一种Dv1dr32蠕虫,通过IRC进行通信,返回信息中含有\PIPE\ntsvcs,通过搜索可知,这是一个远程调用,所以攻击者肯定是获得了权限,因此这个攻击成功的。

    分析TCP4899端口

    tcp4899是远程控制软件所开启的服务端端口,经常被黑客用来控制被自己控制的远程电脑。

    首先说明4899端口是一个远程控制软件(remote administrator)服务端监听的端口,他不能算是一个木马程序,但是具有远程控制功能,通常杀毒软件是无法查出它来的。

    分析TCP80端口

    设置过滤条件p.dst172.16.134.191&&tcp.dstport80 && http

    可以看到210.22.204.101向蜜罐发了很多的C,可能在进行缓冲区溢出攻击。

    TCP80 通过该端口使用脚本攻击IIS服务器的漏洞,从而获取系统权限。

    源IP 218.25.147.83,这里会看到c:\notworm,是一个蠕虫攻击。

    (7)那些攻击成功了?是如何成功的?

    SVCCTL服务漏洞攻击成功,PSEXESVC蠕虫攻击成功,缓冲区溢出攻击成功了。

    3.问题及解决方案

    • 问题1:snort没有安装

    • 问题1解决方案:在执行相关命令时根据提示进行安装。

    • 问题2:主机wireshark在kali虚拟机中无法打开

    • 问题2解决方案:直接使用kali系统自带的wireshark抓包工具。

    • 问题3:安装tcpflow遇到问题

    • 问题3解决方案:通过修改网络连接方式,重启虚拟机之后,重新安装才成功安装。

    4.学习感悟、思考等

    通过本次实验深深的感受到了作为一名工具党的快乐,安装了很多具有神奇功能的软件,让自己有一种很厉害的感觉,但实际上还是很菜TT。

  • 相关阅读:
    Git 常用命令整理
    用myeclipse打jar包,使其包含依赖jar包的指向
    解决 spring mvc3.1下post json出现HTTP Status 400 The request sent by the client was syntactically incorrect
    springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
    WIN8下git报错解决,fatal: Not a git repository (or any of the parent directories): .git
    Modernizr 用法
    SPRING MVC 的请求参数获取的几种方法
    spring mvc 缓存
    Spring+SpringMVC+Log4J
    Log4j使用总结
  • 原文地址:https://www.cnblogs.com/20192425su/p/16146650.html
Copyright © 2020-2023  润新知