• 2017-2018-2 20179207 《网络攻防技术》第九周作业


    kali视频(36-38)

    压力测试工具

    压力测试通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。

    Kali下压力测试攻击包括VoIP压力测试、WEB压力测试、网络压力测试及无线压力测试(包括之前介绍的MDK3和Reaver,本章不再赘述)四个分类。

    VoIP是将模拟信号数字化,以数据封包的形式在IP网络上做实时传递。Voip压力测试工具包括iaxflood和inviteflood。

    Asterisk作为应用最为广泛的开源VoIP产品,提出了基于统一服务端口的IAX协议,用于Asterisk服务器以及客户端之间的信令及音视频传输。iaxflood是利用IAX设计缺陷而发起洪水式攻击的工具

    SIP是目前使用最广且接受度最高的VoIP信令协议。INVITE是SIP协议中负责发起会话请求的指令,inviteflood是针对该指令发起洪水式攻击的工具

    借助WEB压力测试工具THC-SSL-DOS,任何人都可以把提供SSL安全连接的网站攻击下线,这种攻击方法称为SSL拒绝服务攻击(SSL-DOS)。该工具由德国黑客组织发布,默认同服务器建立400个SSL连接,并且快速进行重新协商renegotiation(renegotiation被用于浏览器到服务器之间的验证。),以达到大量消耗服务器CPU资源的目的。与传统DDoS工具不同的是,它不需要任何带宽,只需要一台执行单一攻击的电脑。命令thc-ssl-dos -l 500 目标IP 443 --accept 对目标IP及其端口(默认443端口)建立500个SSL连接,进行泛洪攻击,参数 -l 表示限制连接数量。

    网络压力测试工具

    dhcpig是耗尽DHCP资源池的压力测试。DHCP服务为新接入内网的计算机自动分配IP地址,而dhcpig工具借助Scapy大量伪造Mac地址,从DHCP服务器那里骗取IP,进而把DHCP所能分配的IP地址全部耗尽。这样,新加入网络的计算机将无法获取IP地址,从而无法上网。

    Macof工具可做泛洪攻击。交换机Mac表的空间有限,当Mac表存满Mac地址时就会报错,并且进入非正常状态。在此状态下交换机会把接收的信息用广播的形式发出去,这样就可以用抓包工具把广播的信息抓到。

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

    T50具有独特的数据包注入工具,功能强大,支持unix系统,可进行多种协议数据包注入,是唯一可以使用GRE封装协议的工具。除了能够修改网络路由,让IT安全专家执行高级的“渗透测试”外,它还能在单个SOCKET上顺序发送所有的协议数据包。

    数据取证工具

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

    PDF取证工具peepdf是一个使用python编写的PDF文件分析工具,它可以检测到恶意的PDF文件。其设计目标是为安全研究人员提供PDF分析中可能用到的所有组件,无需使用3或4种工具来一起作业了。peepdf还对PDF嵌入的Javascript代码提供专门的分析功能,可以提取Javascript脚本进行解码、反转义、执行等各种操作。

    反数字取证chkrootkit

    chkrootkit是一个Linux系统下的查找检测rootkit后门的工具,是判断系统是否被植入Rootkit的利器。

    内存取证工具

    Volatility是开源的Windows、Linux、Mac、Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。该工具可以通过抓取的内存状态文件,分析出当时系统当时运行着哪些程序,系统的部分数据等。

    详见 Linux下内存取证工具Volatility的使用

    取证分割工具binwalk

    固件的分析工具,旨在协助研究人员对固件分析,提取及逆向工程。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,更重要的一点是可以轻松扩展。

    取证哈希验证工具集主要用作哈希验证,如对下载的文件进行哈希计算,计算它的MD5值并和官网的MD5值进行比较,以确定该文件是否被植入后门信息。

    • md5deep 是一套跨平台的方案,可以批量计算文件的哈希值,并和哈希值列表进行比对。该工具支持多种哈希算法,可以避免哈希碰撞问题。
    • rahash2 可以快速对文件整体、部分区块、字符串等执行加密解密和hash等各种操作。

    数字取证套件

    Autopsy是一款数字取证平台,也是Sleuth Kit和其他数字取证工具的图形接口。它被用于关于计算机的法律执行、军事、企业审查等,甚至还可以用它来恢复从相机记忆卡中的照片。Autopsy提供了一个浏览器平台,访问本地端口9999。

    DFF是数字取证工作辅助工具,它具有灵活的模块系统,具有多种功能,包括:回复错误或崩溃导致的文件丢失,证据的研究和分析。DFF提供了一个强大的体系结构和一些列有用的模块。

    取证镜像工具集主要是针对镜像文件的取证分析,如mmstat与mmls等命令。Kali Linux 还提供了许多其他的数字取证工具,大家可以做进一步研究,取证的思路对安全测试也有帮助。

    报告工具与系统服务

    一次完整的渗透测试,最后总要完成一份优雅的报告作为一个小结。相应的Kali为安全工程师准备了报告工具集。对于Kali下各项系统服务,也整理了单独的目录。

    Dradis是一个用于提高安全检测效率的信息共享框架(协作平台),提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。Dradis是一个独立的web应用程序,它会自动在浏览器中打开https://127.0.0.1:3004。设置密码,使用任何登录名即可进入Dradis框架进行使用。

    媒体捕捉工具包括Cutycapt(将网页内容截成图片保存)和Recordmydesktop(屏幕录像工具)。

    证据管理:Maltego

    MagicTree是一个面向渗透测试人员的工具,可以帮助攻击者进行数据合并、查询、外部命令执行(如直接调用nmap,将扫描结果直接导入tree中)和报告生成,所有数据都会以树形结构存储。

    Truectypt:免费开源的加密软件,同时支持Windows,OS,Linux等操作系统。

    系统服务目录主要是方便我们及时启动或关闭某些服务,命令行输入service 服务名 startservice 服务名 stop可以达到相同效果。

    • BeEF:对应XSS测试框架BeEF的启动与关闭
    • Dradis:对应笔记分享服务Dradis的启动与关闭
    • Openvas:对应Openvas服务的启动与关闭

    教材学习

    RaDa恶意代码分析

    使用 file 命令,strings 命令,以及文件脱壳器等对恶意程序 RaDa.exe 进行基本检测.

    seed缓冲区溢出

    1.首先先关闭 ASLR.

    sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"
    

    2.先把缓冲区中全部填充 A ,即让我们增加的部分,下面的代码来填入:

    memset(&buffer,'A',517);
    

    然后编译运行生成 badfile。

    3.编译执行 stack.c,我们发现有段错误(这是预料之中的)。

    4.下面我们开始 gdb 调试 stack 了。 我们在 bof 函数入口处加个断点,然后可以观察一下 ebp 栈基址周围的内存,我们再看 一下 bof 反汇编的代码,这段反汇编代码很容易读懂,首先是 ebp 入栈,ebp 作为栈基址, 然后给 bof 函数在栈上分配一个 0x18 的空间。将 bof 的参数即 str 的地址放到 esp+4 位置, 将 bof 函数中的 buffer 的地址放到 esp 位置,即 strcpy 函数调用所需要的两个参数,调用完 strcpy 函数后函数就返回。因此,我们知道栈上 buffer+12 的位置 EBP,buffer+16 的位置是 RET,因此,就需要在 buffer+16 的地方覆盖返回地址。

    5.我们已经找到函数返回地址的位置了,那么我们该使返回地址跳转到什么位置呢?我们 看图 2,在离 bof 函数的栈基址 EBP 以下不远处有大量的 41414141,这个是 main 函数栈帧 上的 str[517]。我们使用 linux 下 RNS 攻击方式,需要在 str 中放入很长的 NOPs 及 shellcode, 那么我们可以使返回地址指向 str[517]所覆盖的内存区域中的某一点,这一点应该指向 NOPs。
    我们设定一个返回地址:0xbffff3c0,这个地址大概是 str[200]的位置。那么 shellcode 放在 str[400]的位置,下面是我构造 buffer 的代码:

    unsigned long ret=0xbffff3c0; memcpy(buffer+16,(char *)&ret,4);  memcpy(buffer+400,shellcode,strlen(shellcode));
    

    6.编译 exploit1.c 并运行,再运行./stack,将得到 shell。但是这个 shell 并不是 root 权限的 shell

    1. 任务 2:
      修改 shellcode,在 shellcode 中增加 setuid(0),使得程序获得 root 权限。

    2. 任务 3:
      我们先打开 ASLR。然后运行./stack,发现报段错误。在 strcpy 函数返回后,返回地址成功的被覆盖 为 0xbffff3c0。
      不能够访问 0xbffff3c0 处的地址,这个内存 地址不在我们所申请分配的栈空间上。证明这个地址不在 NOPs 上,我们可以看到现在 buffer 内存块上的地址从 0xbfe679XX 开始的,这个和 0xbffff3c0 相差很大,因此没有如我们预期的 一样跳转到 NOPs 上。
      原来这里的 EBP 的位置发生了很大的变 化,所以 NOPs 也会跟着变化了,所以 0xbffff3c0 地址不可能跳转进入 NOPs 上去。

    perl(whiledo.sh)脚本,功能是多次调用./stack 程序,大概一两分钟后 就会发现攻击成功。成功的原因是某一次bof函数随机的栈基址EBP和0xbffff3c0很相近时, 刚好让 0xbffff3c0 落入到 NOPs 上。 如果想使成功的概率尽可能的增加,那么就把 shellcode 移到 512 长度的缓冲区的最末 尾,中间全部用 NOP 填充。

    1. 任务 4:
      我们重新编译 stack.c 后运行,发现程序出错,并吐出内存信息,如图

    Stack Guard 的机制:把%gs:0x14 的 cookie 放入 ebp-4 的位置,也就是缓冲区和返回地址之间。如果我们想通过覆盖缓冲区的方法来修改返回地址, 那么必定会修改 ebp-4 的值。最后在函数返回前,Stack Guard 会把 ebp-4 的值取出来 和%gs:0x14 比较,即判断原来放入栈上的 cookie 是否被修改了。如果检查出来被修改了就 调用错误处理的函数 –stack_chk_fail@plt,否则正常返回函数地址。

    教材内容整理

    恶意代码

    恶意代码的类型

    恶意代码类型 定义特征 典型实例
    计算机病毒(Virus) 通过感染文件(可执行文件、数据文件、电子邮件等)或 磁盘引导扇区进行传播,一般需要宿主程序被执行或人 为交互才能运行 Brain, Concept, CIH
    蠕虫(Worm) 一般为不需要宿主的单独文件,通过网络传播,自动复 制,通常无需人为交互便可感染传播 Morris, Code Red, Slammer
    恶意移动代码(Malicious mobile code) 从远程主机下载到本地执行的轻量级恶意代码,不需要 或仅需要极少的人为干预。代表性的开发工具有: JavaScript, VBScript, Java,以及ActiveX Santy Worm
    后门(Backdoor) 绕过正常的安全控制机制,从而为攻击者提供访问途径 Netcat, BO,冰河
    特洛伊木马 (Trojan) 伪装成有用软件,隐藏其恶意目标,欺骗用户安装执行 Setiri 僵尸程序 (Bot) 使用一对多的命令与控制机制组成僵尸网络 Sdbot, Agobot
    内核套件(Rootkit) 通过替换或修改系统关键可执行文件(用户态),或者 通过控制操作系统内核(内核态),用以获取并保持最高 控制权(root access) LRK, FU,hdef
    融合型恶意代码 融合上述多种恶意代码技术,构成更具破坏性的恶意代 码形态 Nimda

    缓冲区溢出和shellcode

    缓冲区溢出安全漏洞基本原理:

    一个根本问题

    用户输入可控制的缓冲区操作缺乏对目标缓冲区的 边界安全保护

    两个要素

    缺乏边界安全保护:漏洞利用点 用户输入可控制:漏洞利用路径

    三个挑战 – 成功溢出攻击

    如何找出缓冲区溢出要覆盖和修改的敏感位置?

    将敏感位置的值修改成什么?

    执行什么代码指令来达到攻击目的?

  • 相关阅读:
    HDU 5585 Numbers
    HDU 3308 LCIS
    POJ 2991 Crane
    POJ 1436 Horizontally Visible Segments
    POJ 3667 Hotel
    HaiHongOJ 1003 God Wang
    【SDOI 2008】 递归数列
    5月19日省中提高组题解
    【HDU 1588】 Gauss Fibonacci
    【POJ 3233】Matrix Power Series
  • 原文地址:https://www.cnblogs.com/huihui0708/p/8963121.html
Copyright © 2020-2023  润新知