2017-2018-2 20179216 《网络攻防与实践》第九周总结

教材内容总结


恶意代码

指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。

恶意代码类型

1272815-20180502203708215-1497490531.png

  • 计算机病毒:是一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。
  • 蠕虫:其自我复制与计算机病毒类似,但蠕虫是一类自主运行的恶意代码,并不需要将自身嵌入到其他宿主程序中。一般通过主动扫描和攻击网络服务的漏洞进行传播,一般不需要人工干预。
  • 恶意移动代码:移动代码指可以从远程主机下载并在本地执行的轻量级程序,不需要或仅需要极少的人为干预。恶意移动代码是指在本地系统执行一些用户不期望的恶意动作的移动代码。
  • 后门:指一类能够绕开正常的安全控制机制,从而为攻击者提供访问途径的一类恶意代码。攻击者可以通过使用后们工具对目标主机进行完全控制。
  • 特洛伊木马:是一类伪装成有用的软件,但隐藏其恶意目标的恶意代码。后门仅为攻击者给出非法访问途径,而特洛伊木马的特征则在于伪装性。
  • 僵尸网络:攻击者出于恶意目的,传播将是程序控制大量主机,并通过一对多的命令与控制信道所组成的攻击网络。僵尸网络区分于其他攻击方式的基本特征是使用一对多的命令与控制机制,具有恶意性和网络传播特性。
  • 内核套件:是在用户态通过替换或修改系统关键可执行文件,或者在内核态通过控制操作系统内核,用以获取并保持最高控制权的一类恶意代码,又分为用户态Rootkit和内核态Rookit两种。

恶意代码分析技术

恶意代码的分析分为两大类:静态分析、动态分析。
静态分析:不运行程序,通常先进行反汇编;分析控制流与数据流确定功能。
动态分析:运行时分析,对于混淆、自变化程序有免疫性,但是运行哪段代码需要慎重选择。

1272815-20180502204409122-847824185.png

  • 反病毒软件扫描:进行恶意代码分析最直接的方法是使用现成的反病毒软件来扫描待分析的样本,已确定反病毒软件是否能够识别该样本,以及所识别的类型、家族、变种等信息。
  • 文件格式识别:再面对一个未知的恶意代码样本文件时,第一步要做的就是对它的文件格式进行识别。恶意代码通常是以二进制可执行文件格式存在的,其他的存在形式还包括脚本文件、带有宏指令的数据文件、压缩文件等。
  • 字符串提取分析:字符串提取分析是代码静态分析中非常简单但是很有用的一环,利用一些专用的字符串提取工具。我们可以彻底地搜查目标程序,并提取出程序中的字符串,通过进一步的分析查找,为进一步的恶意代码分析提供参考。
  • 二进制结构分析:大部分二进制文件形式存在的恶意代码,如:可执行程序、动态链接库、内科驱动模块、静态程序库等,其生成过程是高级语言源代码的通常的编译和链接过程。
  • 反汇编与反编译
    反汇编与反编译是对二进制程序编译连接的逆过程,反汇编是把二进制程序的目标代码从二进制指令码转换为汇编代码的处理过程,而反编译则更进一步,期望将汇编代码再进一步还原成高级编程语言形式的源代码。
  • 代码结构与逻辑分析
    在反汇编与反编译获得二进制程序的汇编代码或高级语言代码以后,针对这些代码进行结构与逻辑分析构成了静态分析中最为核心的任务,这个过程需要更多的分析师人工参与。
  • 加壳识别与代码脱壳

缓冲区溢出

缓冲区溢出是计算机程序中存在的一类内存安全违规漏洞。缓冲区溢出是指当计算机向缓冲区内填充数据位数时,超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区 又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在“堆栈"当中,"堆栈"也会出现缓冲区溢出。

缓冲区溢出攻击原理

缓冲区溢出漏洞根据缓冲区在进程内存空间中的位置不同,分为栈溢出、堆溢出和内核溢出这三种具体技术形态。

  • 栈溢出:程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致栈中与其相邻的变量的值被改变。这种问题是一种特定的缓冲区溢出漏洞(比如说,还有向堆中写,向bss段写)。而对于黑客来说,栈溢出漏洞轻则可以使得程序崩溃,重则可以使得攻击者控制程序执行流程。此外,发生栈溢出的基本前提是(1)程序必须向栈上写入数据,(2)写入的数据大小没有被良好地控制。、

shellcode

shellcode实质是指溢出后执行的能开启系统shell的代码。但是在缓冲区溢出攻击时,也可以将整个触发缓冲区溢出攻击过程的代码统称为shellcode,按照这种定义可以把shellcode分为四部分:
(1)核心shellcode代码,包含了攻击者要执行的所有代码。
(2)溢出地址,是触发shellcode的关键所在。
(3)填充物,填充未使用的缓冲区,用于控制溢出地址的位置,一般使用nop指令填充——0x90表示。
(4)结束符号0,对于符号串shellcode需要用0结尾,避免溢出时字符串异常。

恶意代码分析


恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑数据的安全性和完整性的目的。恶意软件的传染的结果包括浪费资源、破坏系统、破坏一致性,数据丢失和被窃并能让客户端的用户失去信心。

  • 将radar.rar在虚拟机解压,并运行MD5对其进行校验,得如下摘要信息:
    1272815-20180505144004822-270279742.png

  • 执行RaDa.exe,可以发现RaDa.exe在C盘根目录下生成了两个子目录:bin和tmp。
    1272815-20180505144159578-1345715601.png

  • 监控发现RaDa.exe文件激活,并将木马文件释放到了bin中
    1272815-20180505144323221-1565977738.png

  • 注册表监控发现rata.exe在注册表的启动项下建立了RaDa键值,并将C:\RaDa\bin\RaDa.exe路径添加了进去
    1272815-20180505144645599-782927220.png

  • 运行其中一个参数-gui
    1272815-20180505144805912-969238785.png

  • 得到了该程序的图形界面
    1272815-20180505144837405-1029286715.png

分析:RaDa.exe使用了cgiget和cgiput等参数。而且,RaDa除读取注册表和文件信息外,没有更多改写文件和注册表等行为。综合判断,该程序不大可能是病毒和蠕虫,更有可能是一个比较典型的主动反弹型木马或者后门程序。

kali视频(36-38)学习


KaliSecurity —— 压力测试工具
压力测试通过确定一个系统的瓶颈或者不能接受的性能特点,来获得系统能提供的最大的服务级别的测试。通俗的讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。kali下压力测试工具宝库VoIP压力测试,WEB压力测试,网络压力测试及无线压力测试四个分类。
1. VoIP压力测试工具
包括iaxflood和inviteflood

2. THC-SSL-DOS
借助THC-SSL-DOS攻击工具,任何人都可以把提供SSL安全连接的网站攻击下线,这种攻击方法被称为SSL拒绝服务攻击(SSL DOS)。德国黑客织“The hacker's choice”发布THC SSL DOS,利用SSL中的已知弱点,迅速消耗服务器资源,与传统DDoS工具不同的是,它不需要任何带宽,只需要一台执行单一攻击的电脑。漏洞存在于协议的renegotiation过中renegotiation被用于浏览器到服务器之间的验证。
1272815-20180509152043912-887839313.png

3. dhcpig
耗尽DHCP资源池的压力测试
1272815-20180509152226934-1226509740.png

4. Macof
可做泛洪攻击

5. Siege
Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
1272815-20180509152357693-1429160867.png

6. T50压力测试
T50是一个压力测试工具,它功能强大且具有独特的数据包注入工具,T50支持Linux系统可进行多种协议的数据包注入,实际上支持15种协议。
1272815-20180509152647447-545469892.png

7. 无线压力测试
mdk3和reaver

KaliSecurity —— 数字取证工具

数字取证技术将计算机调查和分析技术应用于对潜在的,有法律效力的电子证据的确定与获取,同样他们都是针对黑客和入侵的,目的都是保障网络的安全。

1. PDF取证工具
peepdf是一个使用python编写的PDF文件分析工具,它可以检测恶意的PDF文件。其设计目标是为安全研究人员提供PDF分析中可能使用到的所有组件,无需使用3或者4中工具来完成同一件任务。
1272815-20180509152906548-1475397640.png

2. 反数字取证chkrootkit
Linux下查找后门的工具,是判断系统是否被植入Rootkit的利器。
1272815-20180509153141915-1560538071.png

3. 内存取证工具
volatility是开源的windowa,Linux,MAC,Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。
1272815-20180509153410522-1642252354.png

4. 取证分隔工具binwalk
binwalk是一个固定的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还有重要的一点的是可以轻松的扩展。借助binwalk有个很强大的功能是提取文件(压缩包)中存在的隐藏文件(或内容文件),亦可分析文件格式。,解压缩包,查看压缩包。
1272815-20180509153550880-697973651.png

解压文件:binwalk -e 文件名
1272815-20180509153735009-278397424.png

5. 取证哈希验证工具集
md5deep是一套跨平台的方案,可以计算和比较MD5等哈希加密信息的摘要MD5,SH-1,SHA-256,Tiger,Whirlpool.
1272815-20180509154042529-1150761716.png

KaliSecurity ——报告工具与系统服务

1. Dradis
Dradis是一个用于提高安全监测效率的信息共享框架(协作平台),Dradis提供了一个集中地信息仓库,用于标记我们目前已经做的工作和下一步计划。
1272815-20180509154225331-364365170.png
1272815-20180509154313303-567242403.png
1272815-20180509154335255-113054582.png

2. Keepnote
一个很精简的笔记软件,特点如下:

  • 富含文本格式:彩色字体、内置图片、超链接、树型分层组织内容(能保存整个网页的图片内容)
  • 树形分层组织内容:这个很重要,分门别类,一目了然。
  • 全文搜索(没有搜索功能的都是没用的,跟废了差不了太多)
  • 综合截图(屏幕截图之后,可以在笔记中直接插入截图)
  • 文件附件
  • 集成的备份和恢复
  • 拼写检查(通过gtkspell)
  • 自动保存
  • 内置的备份和恢复(zip文件存档)
    1272815-20180509155114544-2105294691.png

3. Recordmydesktop
屏幕录像工具,用来录制桌面。

4. Magic Tree
是一个面向渗透测试人员的工具,可以帮助你轻松直接的进行数据合并,查询,外部命令执行和报告生成,所有的数据都会以树形结构存储,非常方便。
1272815-20180509155311477-2067665816.png

5. Truecrypt
是一款免费开源的加密软件,同时支持windows vista,7/Xp,MAc OS X,linux等操作系统。

6. 服务功能介绍
1272815-20180509155414330-619306144.png

转载于:https://www.cnblogs.com/jmjm/p/8982228.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值