2017-2018-2 20179215《网络攻防实践》第九周做业

2017-2018-2 20179215 《网络攻防实践》 第九周 学习总结

教材学习总结

1.恶意代码python

概述linux

恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最多见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。
特征:
恶意的目的,获取靶机权限、用户隐私等
自己是计算机程序,能够执行,并做用于靶机
经过执行发生做用,通常来讲不运行是没问题的web

恶意代码分析shell

在大多数状况下,进行恶意代码分析时,咱们将只有恶意代码的可执行文件自己,而这些文件并非咱们人类可读的。为了了解这些文件的意义,你须要使用各类工具和技巧,而每种只能揭露出少许的信息。因此在实战中,咱们要综合使用各类工具,才能看到一个全貌。
恶意代码分析有两类基本方法:windows

  • 静态分析:在没有运行恶意代码时对其进行分析的技术
  • 动态分析:相比较静态分析而言,则须要运行恶意代码,经过其产生的行为,如对计算机中注册表、文件的更改,网络的链接等动态数据进行分析,从而肯定其具体行为

2.缓冲区溢出和Shellcode浏览器

软件安全漏洞包括系统的脆弱性或缺陷、攻击者对缺陷的可访问性和攻击者对缺陷的可利用性三个元素。sass

软件安全具备复杂性、可扩展性、连通性。软件安全漏洞有如下几类,有内存安全违规类、输入验证类、竞争条件类、权限混淆与提高类。安全

缓冲区溢出的概念,即在计算机程序向特定缓冲区内填充数据时,超出了缓冲区自己的容量,致使外溢数据覆盖了相邻内存空间的合法数据,从而改变了程序执行流程破坏系统运行完整性。bash

Linux和Windows平台上的栈溢出和Shellcode,并介绍了相关的攻击技术。堆溢出是缓冲区溢出的第二种类型的攻击方案,比栈溢出更加复杂。服务器

缓冲区溢出的防护技术,有尝试杜绝溢出、容许溢出但不让程序改变执行流程、没法让攻击代码执行三种方法。

缓冲区溢出漏洞实践

缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的状况。这一漏洞能够被恶意用户利用来改变程序的流控制,甚至执行代码的任意片断。这一漏洞的出现是因为数据缓冲器和返回地址的暂时关闭,溢出会引发返回地址被重写。

1.输入命令安装一些用于编译32位C程序的东西:

sudo apt-get update
sudo apt-get install lib32z1 libc6-dev-i386
sudo apt-get install lib32readline-gplv2-dev

2.输入命令linux32和/bin/bash进入32位linux环境:

3.Ubuntu和其余一些Linux系统中,使用地址空间随机化来随机堆(heap)和栈(stack)的初始地址,这使得猜想准确的内存地址变得十分困难,而猜想内存地址是缓冲区溢出攻击的关键。所以本次实验中,咱们使用如下命令关闭这一功能:

sudo sysctl -w kernel.randomize_va_space=0

4.为了进一步防范缓冲区溢出攻击及其它利用shell程序的攻击,许多shell程序在被调用时自动放弃它们的特权。为了重现这一防御措施被实现以前的情形,咱们使用另外一个shell程序(zsh)代替/bin/bash:

sudo su
cd /bin
rm sh
ln -s zsh sh
exit

5.通常状况下,缓冲区溢出会形成程序崩溃,在程序中,溢出的数据覆盖了返回地址。而若是覆盖返回地址的数据是另外一个地址,那么程序就会跳转到该地址,若是该地址存放的是一段精心设计的代码用于实现其余功能。

6.漏洞程序

把如下代码保存为“stack.c”文件,保存到 /tmp 目录下。

编译该程序,并设置SET-UID。命令以下:

sudo su
gcc -m32 -g -z execstack -fno-stack-protector -o stack stack.c
chmod u+s stack
exit

GCC编译器有一种栈保护机制来阻止缓冲区溢出,因此咱们在编译代码时须要用 –fno-stack-protector 关闭这种机制。而 -z execstack 用于容许执行栈。

7.攻击程序

咱们的目的是攻击刚才的漏洞程序,并经过攻击得到root权限。
把如下代码保存为“exploit.c”文件,保存到 /tmp 目录下。如今咱们要获得shellcode在内存中的地址,输入命令:

gdb stack
disass main

结果如图:

根据语句 strcpy(buffer+100,shellcode); 咱们计算shellcode的地址为 0xffffd060(十六进制)+100(十进制),修改exploit.c文件:将 \x??\x??\x??\x?? 修改成\xc4\xd0\xff\xff 而后,编译exploit.c程序:

8.运行结果

先运行攻击程序exploit,再运行漏洞程序stack:

视频学习总结

36.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被用于浏览器到服务器之间的验证。

(3)dhcpig

耗尽DHCP资源池的压力测试

(4)Macof

可作泛洪攻击

(5)Siege

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

(6)T50压力测试

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

(7)无线压力测试

mdk3和reaver

37.KaliSecurity - 数字取证工具

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

(1)PDF取证工具

peepdf是一个使用python编写的PDF文件分析工具,它能够检测恶意的PDF文件。其设计目标是为安全研究人员提供PDF分析中可能使用到的全部组件,无需使用3或者4中工具来完成同一件任务。

(2)反数字取证chkrootkit

Linux下查找后门的工具,是判断系统是否被植入Rootkit的利器。

(3)内存取证工具

volatility是开源的windowa,Linux,MAC,Android的内存取证分析工具,由python编写成,命令行操做,支持各类操做系统。

(4)取证分隔工具binwalk

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

binwalk -e 文件 解压文件:

发现自动生成一个压缩文件包:

(5)取证哈希验证工具集

md5deep是一套跨平台的方案,能够计算和比较MD5等哈希加密信息的摘要MD5,SH-1,SHA-256,Tiger,Whirlpool.

38.KaliSecurity - 报告工具与系统服务

(1)Dradis

Dradis是一个用于提升安全监测效率的信息共享框架(协做平台),Dradis提供了一个集中地信息仓库,用于标记咱们目前已经作的工做和下一步计划。

(2)Keepnote

一个很精简的笔记软件,特色以下:

富含文本格式,彩色字体,内置图片,超连接,树型分层组织内容,全文搜索,综合截图,文件附件,集成的备份和恢复,拼写检查(经过gtkspell),自动保存,内置的备份和恢复(zip文件存档)

(3)Recordmydesktop

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

(4)Magic Tree

是一个面向渗透测试人员的工具,能够帮助你轻松直接的进行数据合并,查询,外部命令执行和报告生成,全部的数据都会以树形结构存储,很是方便。

(5)Truecrypt

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

(6)服务功能介绍

能够直接使用命令行结束工具服务。 每一项对应每一项的服务。

相关文章
相关标签/搜索