20199128 2019-2020-2 《网络攻防实践》第九周作业

20199128 2019-2020-2 《网络攻防实践》第九周作业

这个作业属于哪个课程 《网络攻防实践》
这个作业的要求在哪里 《网络攻防实践》第九周作业
这个作业在哪个具体方面帮助我实现目标 学习恶意代码基础知识
作业正文.... 见正文
其他参考文献 见参考文献

1.实践内容

1.1恶意代码概述

  • 恶意代码:是计算机按照攻击者的意图执行以达到恶意目标的指令集。
  • 恶意代码类型:计算机病毒、蠕虫、恶意移动代码、后门、特洛伊木马、僵尸网络、内核套件等。
  • 三元组命名:[恶意代码类型.]恶意代码家族名称[.变种号]

1.1.1计算机病毒

  • 计算机病毒特性:感染性、潜伏性、可触发性、破坏性、衍生性
  • 感染目标:可执行文件、引导扇区、支持宏指令的数据文件
  • 感染机制
    • 可执行文件:前缀感染机制、后缀感染机制、中间插入感染机制
    • 引导扇区:通过感染引导区的引导记录,使病毒可以在系统启动时先于操作系统截取系统控制权
    • 支持宏指令的数据文件:宏病毒将自身以宏指令的方式复制到数据文件中,当被感染的数据文件被打开时,将自动执行宏病毒体。
  • 传播:移动存储、电子邮件及下载、共享目录等

1.1.2网络蠕虫

  • 一种可以自我复制,无须人为干预就能在网络上传播的恶意代码
  • 特性:通过网络自主传播、无须感染宿主、传播无须人为干预
  • 组成:
    • “弹头”:即渗透攻击代码,用来获取目标系统访问权。常用技术有:缓冲区溢出攻击、文件共享攻击、利用电子邮件传播、利用其他错误配置
    • 传播引擎:某些蠕虫通过在目标系统执行传播引擎指令来完成传播。
    • 目标选择算法和扫描引擎:前者用于寻找新的攻击目标,后者用于扫描每个目标选择算法确定的地址,判断其是否可以被攻击。
    • 有效载荷:即附加的攻击代码,用于执行攻击者特殊目的的操作,如植入后门、安装分布式拒绝服务攻击代理、组建僵尸网络、执行复杂计算等

1.1.3后门与木马

  • 后门:允许攻击者绕过系统常规安全控制机制的程序,可以按照攻击者自己的意图提供访问通道
  • 后门工具提供的访问通道:
    • 本地权限提升和本地帐号
    • 单个命令的远程执行
    • 远程命令行解释器访问
    • 远程控制GUI
    • 无端口后门
  • 后门工具常利用自启动文件夹(C:\Documents and Settings[user_name]\Start Menu\Programs\Startup)、注册表自启动项(HKLM\Software\Microsoft\Windows\CurrentVersion\Run键值)及预定计划任务来达到自启动效果。
  • 木马:一类看起来具有某个有用或善意目的,实际掩盖着一些隐藏恶意功能的程序
  • 目的:欺骗用户安装以及隐藏在正常程序中,与后门工具结合形成木马后门
  • 欺骗伪装技术:
    • 命名伪装游戏:混淆文件扩展名、利用已知扩展名隐藏的查看设置构造扩展名欺骗、模仿Windows系统文件或服务命名等
    • 使用软件包装工具:将恶意代码与良性程序捆绑发布
    • 攻击软件发布站点:将官方站点软件木马化
    • 代码下毒:软件厂商开发和测试软件过程中植入与软件功能无关的程序逻辑甚至恶意代码

1.1.4僵尸程序与僵尸网络

  • 攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
  • 功能结构
    • 僵尸网络控制器:
    • 僵尸程序:
      • 主体功能模块:命令与控制模块和传播模块
      • 辅助功能模块:信息窃取模块、主机控制模块、下载更新模块和防分析检测模块
  • 传播策略:自动传播型僵尸程序和受控传播型僵尸程序
  • 传播方式:远程攻击软件漏洞传播、实现僵尸网络特性扫描NetBIOS弱密码传播、实现僵尸网络特性扫描恶意代码留下的后门传播、实现僵尸网络特性发送邮件病毒传播、实现僵尸网络特性文件系统共享传播、结合即时通信软件和P2P文件共享软件进行传播等
  • 工作机制
    1. 攻击者使目标主机感染僵尸程序
    2. 僵尸程序加入指定的IRC命令与控制服务器
    3. 攻击者使用动态域名服务将僵尸程序连接的域名映射到被控制的多台IRC服务器,提高僵尸网络健壮性
    4. 僵尸程序加入攻击者的私有IRC命令与控制信道
    5. 加入信道的僵尸程序监听控制指令
    6. 攻击者登录IRC命令与控制信道并认证后向僵尸网络发出指令
    7. 僵尸程序接受指令,实施攻击
  • 命令与控制机制:
    • 基于IRC协议的命令与控制机制
      • 设置频道主题(TOPIC)命令
      • 使用频道或单个僵尸程序发送PRIVMSG消息
      • 通过NOTICE消息发送命令
    • 基于HTTP协议的命令与控制机制:有难以检测和易绕过防火墙的优势
    • 基于P2P协议的命令与控制机制:更具韧性和隐蔽性

1.1.5Rookit

  • 一类特洛伊木马后门工具,通过修改现有的操作系统软件,使攻击者获得访问权并隐藏在计算机中。
  • 用户模式Rootkit:修改操作系统用户态中用户和管理员所使用的一些内建程序和库文件
  • 内核模式Rootkit:直接攻击操作系统内核,修改内核隐藏自身
  • 虚拟机模式Rootkit
  • Windows平台实现用户模式Rootkit技术
    • 使用Windows平台提供的开发接口将自身实现的恶意功能逻辑插入Windows函数
    • 修改注册表中HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\目录下的SFCDisable键值关闭或修改备份文件目录Dllcache路径位置破坏WFP机制(WFP机制用来防止关键文件被修改替换)
    • 使用DLL注入和API挂钩技术把恶意代码直接加入运行进程的内存空间。
  • 内核Rootkit使用技术:
    • 文件和目录隐藏
    • 进程隐藏
    • 网络端口隐藏
    • 混杂模式隐藏
    • 改变执行方向
    • 设备截取和控制

1.2恶意代码分析方法

1.2.1概述及环境

  • 静态代码分析:在不实际执行软件代码的情况下对恶意代码进行自动化或辅助分析
    1. 使用反病毒引擎扫描识别已知的恶意代码家族和变种
    2. 逆向分析获取恶意代码的关键程序信息、模块构成、内部数据结构和关键控制流程
    3. 理解恶意代码的机理并提取特征码用于检测
  • 动态代码分析:通过在受控环境中执行待分析的目标恶意代码,并利用系统、网络、甚至指令层次上的监控技术手段,来获取目标代码的行为机理和运行结果。
  • 恶意代码分析环境:隔离
  • 虚拟化构建恶意代码分析环境,注意将宿主计算机的网卡(包括虚拟网卡)与虚拟机镜像进行逻辑隔离。确保虚拟机镜像与宿主间无可用的网络连接。进行分析时不要连接业务网络和互联网。

1.2.2恶意代码静态分析技术

  • 不足:易受恶意代码对抗分析机制的影响,恢复恶意代码原貌不易。
  • 反病毒软件扫描:使用商业反病毒软件、开源反病毒软件(ClamAV)、VirtusTotal在线服务
  • 文件格式识别:了解文件格式以获知期望运行环境。使用file命令工具或PeiD、FileInfo、FileAnalyzer等恶意代码文件格式识别工具。它们通过分析文件具体结构特性和关键字段取值,可以给出较准的判断。
  • 字符串提取分析:运用专用的字符串提取工具(strings、IDA Pro等),可能获得恶意代码实例名、帮助或命令行选项、用户会话、后门命令、相关URL信息、E-mail地址、包含库文件和函数调用等有用信息。病毒编写者也会通过使用Strip工具删除不可执行的标记性信息、压缩恶意代码也会消除大部分字符串(如Windows下的PECompact)、加密多态变形等加壳技术删除或隐藏字符串信息。
  • 二进制结构分析:使用binutils工具查看编译链接后的二进制程序中留下的提示。其中,nm命令用于查找函数名和调用地址试图删除或隐藏字符串信息,重要的变量名试图删除或隐藏字符串信息和位置以及常量等,它们被称为“符号”,保存在二进制文件的符号表里。Objdump用于显示目标文件中的文件头部摘要试图删除或隐藏字符串信息,目标文件运行架构等信息,也用于反汇编。
  • 反汇编和反编译:是对二进制程序编译链接的逆过程。常见工具有IDA Pro、Ollydbg、W32Dasm、VC++等。
  • 代码结构与逻辑分析:分析反汇编和反编译后的代码,更好地理解恶意代码。使用IDA Pro生成函数调用关系图和程序控制流图对程序逻辑分析很有帮助。
  • 加壳识别和代码脱壳:
    • 加壳混淆机制
      • 加密:反病毒软件可使用加密机制在程序中的固定解密器解密
      • 多样性:采用多样化的解密器,但混淆后的代码形态仍有限
      • 多态:通过多种方式随机变换解密器使恶意代码实例具有唯一性。必须采用虚拟机脱壳应对
      • 变形:通过各种代码混淆技术改变恶意代码原有形态

1.2.3恶意代码动态分析技术

  • 不足:易受运行环境影响,当实验环境与期望环境不一致时,很难完全触发恶意代码的行为
  • 基于快照比对的方法和工具
    • 通过对比恶意代码运行前后的系统资源列表快照差异,获知恶意代码对系统的影响。
    • 常用工具:RegSnap、完美卸载等
    • 缺陷:无法监控和分析恶意代码的中间行为、报告局限于对系统状态造成影响的行为、属于粗粒度不够全面的行为集合、无法提供行为细节信息、无法监控网络内存等其他不会造成系统状态持久性改变的行为。
  • 系统动态行为监控方法
    • 针对恶意代码对文件系统、运行进程列表、注册表、本地网络栈等方面的行为动作,进行实时监视、记录和显示。
    • 实现:基于行为通知机制或API劫持技术
    • 分类:
      • 文件行为监控软件(如Filemon、Tripwire):用来监测记录恶意代码在文件系统上的操作
      • 进程行为监控软件(如Process Explorer、top、lsof):用来调查恶意代码对受害计算机的已有进程所做修改
      • 注册表监控软件(如Regmon):用于实时监控注册表项读/写操作相关行为
      • 本地网络栈行为监控软件(如TDImon):用于监视本地网络栈变化情况,来发现恶意代码的传播、控制等网络行为
  • 网络协议栈监控方法
    • 通过nmap等扫描器进行远程端口扫描并与本地网络协议栈端口检测结果对比,来发现恶意代码隐藏端口。
    • 利用Nessus等网络漏洞扫描器查找目标系统攻击点,探测发现网络后门。
    • 通过tcpdump、wireshark等网络嗅探器软件对恶意代码在运行平台所处局域网中发送的数据包嗅探监听分析。
  • 沙箱技术:提供一个用于运行不可信程序的安全环境,沙箱中运行的代码不能修改用户系统。知名沙箱包括Norman Sandbox、CWSandbox等。
  • 动态调试技术:在程序运行时刻对它的执行过程进行调试的技术过程。常用工具有Windows下的Ollydbg、windbg、IDA Pro、SoftICE等和UNIX下的gdb、systrace、ElfShell等。

2.实践过程

任务一 恶意代码文件类型识别、脱壳和字符串提取

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
    1.使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具
    2.使用超级巡警脱壳机等脱壳软件,对rada恶意代码进行脱壳处理。
    3.使用字符串提取工具,对脱壳后的rada代码进行样本分析,从中发现rada恶意代码的编写作者是谁

WinXPattacker命令行键入file RaDa.exe,得知恶意文件类型。

使用WinXPattacker里的PEiD扫描RaDa.exe,在拓展信息中获知加壳工具。

使用超级巡警脱壳器对RaDa.exe脱壳得到输出文件RaDa_unpacked.exe。

使用strings命令查看RaDa.exe和RaDa_unpacked.exe中可打印字符串,可以看到前者大多乱码,后者打印出许多调用函数名称。由此清楚了解加壳的作用效果和脱壳的意义。

任务二 分析Crackme程序

使用IDA pro静态分析或者动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

crackme1.exe

试探输入格式,猜测有一个输入参数。

将carackme1.exe直接拖入IDA Pro,然后点击ok,加载文件。
在Strings窗口可以看到前面四项字符串是有语义的,且三项结尾含换行符,看起来比较像输出提示信息,结合之前猜测输入参数为1个,猜测“I know the secret”为参数。

命令行输入crackme1.exe "I know the secret",得到了不同输出。

crackme2.exe

将crackme2.exe拖入IDA Pro,可以看到有三次判断,第一次判断参数个数和2的关系,jz是条件转移指令,相等则跳转。第二、三次判断均是用strcmp进行字符串比较,Str1是以eax寄存器里存的值作为地址的单元里的值,可以看到两次eax值相差4,作为地址指向的单元分别为程序名和第一个参数,Str2分别是"crackmeplease.exe"和"I know the secret"。

任务三 分析一个自制恶意代码样本rada并撰写分析报告

1.提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
2.找出并解释这个二进制文件的目的
3.识别并说明这个二进制文件所具有的不同特性
4.识别并解释这个二进制文件中采用的防止被分析或被逆向工程的技术
5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
6.给出过去已有的具有相似功能的其他工具
7.可能查出这个二进制文件的开发作者吗?如果可以,在什么样的环境下和什么样的限定条件下?

生成md5摘要

打开wireshark和process explorer监听,执行RaDa.exe,在process explorer的Strings窗口可以看到恶意代码对进程所做的修改等信息。
首先看到恶意代码与10.10.10.10连接,访问了/RaDa/RaDa_commands.html,上传下载文件,修改了注册表自启动项HKLM\Software\Microsoft\Windows\CurrentVersion\Run,在C盘新建了文件夹RaDa,还有一句Starting DDos Smurf remote a attack。


对注册表读写删除操作

put、get、sleep等函数的调用

作者名

wireshark中监听到与10.10.10.10的交互

答:
1.基本识别信息:
md5摘要:caaa6985a43225a0b3add54f44a0d4c7
PE32 executable for MS Windows (GUI) Intel 80386 32-bit
UPX加壳
2.建立连接10.10.10.10的后门
3.自我复制到C盘下,修改注册表自启动项
4.使用了UPX加壳工具
5.不能自主传播,所以不是病毒、蠕虫,没有进行伪装,故不是木马,攻击者可以远程发送指令,所以是后门。
6.海阳顶端、Bobax – 2004等
7.Raul siles & David Perze

任务四 windows2000系统被攻陷并加入僵尸网络

1.IRC是什么,当一个IRC客户端申请加入一个IRC网络的时候将发送那个消息?IRC一般使用那个TCP端口
2.僵尸网络是什么?僵尸网络通常用于干什么?
3.蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
4.在这段期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
5.那些IP地址被用于攻击蜜罐主机?
6.攻击者尝试攻击了那些安全漏洞?
7.那些攻击成功了?是如何成功的?

1.IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。申请时要发送口令、昵称和用户信息:USER 、PASS 、NICK。明文传输时一般使用6667端口,ssl加密时一般使用6697端口。
2.僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。常用来实行拒绝服务攻击、发送垃圾邮件以及挖矿。
3.筛选数据包,筛选条件为ip.src == 172.16.134.191 && tcp.dstport == 6667,可以看到5个IRC服务器,分别是209.126.161.29、66.33.65.58、63.241.174.144、209.196.44.172、217.199.175.10。

4.键入命令tcpflow -r botnet_pcap_file "host 209.196.44.172 and port 6667",读取文件,筛选host和端口6667分流。

然后键入cat 209.196.044.172.06667-172.016.134.191.01152 | grep "^: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.使用命令tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 2.txt;wc -l 2.txt找出所有可能连接的主机IP。

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

筛选135端口和25端口,发现只有连接,没有数据传输,猜测为扫描行为。

筛选80端口,发现24.197.194.106它试图利用IIS服务器漏洞进行攻击。

210.22.204.101想进行缓冲区溢出攻击。

218.25.147.83进行了蠕虫攻击。

筛选139端口,发现了许多SMB连接。

筛选445端口,找到了同学博客里所言的PSEXESVC.EXE,查询知这是一个名为Dv1dr32的蠕虫。

筛选4899端口,只有210.22.204.101访问,查询得知4899端口是一个远程控制软件radmin服务端监听端口。
7.61.111.101.78攻击445端口成功了,其余均失败。

3.学习中遇到的问题及解决

  • 问题1:任务四第4问显示为5,听说正确是3457
  • 问题1解决方案: 确认命令无误,不解

4.实践总结

实验不顺,向大佬学习。

参考资料

posted @ 2020-04-29 22:48  limbo3c  阅读(282)  评论(0编辑  收藏  举报