博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

《网络攻击与防范》第九周学习总结

Posted on 2017-04-30 18:08  刚开始学习的柚子  阅读(242)  评论(0编辑  收藏  举报

20169308 2016-2017-2 《网络攻击与防范》第9周学习总结

实验二 Nmap的实践

实验二 Nmap的实践 http://www.cnblogs.com/sry-94/p/6789141.html

教材学习内容总结

本周主要学习教材第9章恶意代码安全攻防和第10章软件安全攻防——缓冲区溢出和Shellcode。

  • 恶意代码分类:计算机病毒、特洛伊木马、恶意移动代码、蠕虫、后门、僵尸程序、内核套件。

  • 中国的病毒:CIH、冰河、灰鸽子、证券大盗、机器狗、磁碟机。

  • 网络蠕虫内部组成结构:弹头、传播引擎、目标选择算法、扫描引擎、有效载荷。

  • 缓冲区溢出攻击:通过精心构造的发向目标系统网络服务的缓冲区数据、攻击者可以破坏目标系统服务中内存结构,并在主机上执行缓冲区包含的攻击指令。

  • 后门:允许攻击者绕过系统常规安全控制机制,为攻击者提供访问通道。
    木马:看起来是有用的或者善意的目的,但实际上掩盖了一些隐藏恶意功能的程序。

  • 恶意代码静态分析技术:扫描病毒→文件识别→脱壳→字符串提取→二进制结构分析→反汇编或反编译→代码结构和逻辑分析。

  • 恶意代码动态分析技术:快照对比、系统动态行为监控、网络协议栈监控、沙箱、动态调试。

  • 软件安全的困境三要素:复杂性、可扩展性、连通性

  • 函数调用步骤:调用、序言、返回

  • 缓冲区溢出:栈溢出、堆溢出、内核溢出。

视频学习总结

KaliSecurity-权限维持之Tunnel

权限维持包括Tunnel工具集、web后门、系统后门三个子类。Tunnel工具集包含了一系列用于建立通信隧道、代理的工具:

  • CryptCat
    Netcat大家都很熟悉了,有网络工具中的瑞士军刀之称,但是它本身建立的隧道是不加密的,于是有了cryptcat。与dbd/sbd使用也类似。

  • DNS2TCP
    DNS tunnel即DNS通道。从名字上看就是利用DNS查询过程建立起隧道,传输数据。
    在酒店等公共场所,通常有wifi信号,但当访问第一个网站时,可能会弹出窗口,需要输入用户名密码,登陆后才可以继续上网(该技术一般为透明http代理)。但有时会发现获取到的dns地址是有效的,并且可以进行dns查询,这时可以使用DNS tunnel技术来实现免费上网。
    DNS tunnel原理
    通过特定服务器,让局域网内的DNS服务器为我们实现数据转发。DNS tunnel实现的工具有很多,比如:OzymanDNS, tcp-over-dns, heyoks, iodine, dns2tcp

  • Iodine

  • Miredo
    Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。

  • Proxychains
    内网渗透测试经常会用到一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/prosychains.conf配置文件,加入代理,即可使其他工具如sqlmap、namp直接使用代理扫描内网。
    如proxychain namp 10.0.0.1/24

  • Proxytunnel
    Proxytunnel可以通过标准的Https代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行Http(s)传输
    Prosytunnel可用于:
    使用http(s)代理(http connect 命令)创建通讯通道
    为OpwnSSH写一个客户端驱动,并创建基于SSH连接的http(s)代理
    作为一个独立的应用,可以连接到远程服务器

  • Ptunnel
    借助ICMP数据包建立隧道通信

  • Pwant
    内网下通过UDP通信

  • Socat
    可以在不同协议上进行转发数据

  • sslh
    一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接。这使得通过443端口连接ssh服务器或者openvpn服务器同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口复用的例子。

KaliSecurity-逆向工程工具

逆向工程是根据已有的东西和结果,通过分析来推导具体的实现方法。比如看到别人的某个exe程序能够做出某种漂亮的动画效果,可以通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。

  • Edb-Debugger
    EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。

  • Ollydbg
    经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在Kali下是Wine方式运行的Ollydbg。

  • jad

  • Redare2

  • Recstudio2

  • Apktool
    APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架。

  • Clang、Clang++
    Clang是一个C语言、C++、Objective C++语言的轻量级编译器。

  • D2j-dex2jar
    范便于idex文件到jar文件,进而可以用其他工具查看源代码。

  • Flasm
    主要功能是用于直接修改swf文件里的脚本actionscript。
    swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只修改脚本,资源数据不做修改。目前flasm支持破解flash8和低于flash8格式的swf文件。

  • Javasnoop
    是一个java应用程序安全测试工具,允许你以拦截的方法,篡改数据和hack运行在你计算机上的java应用程序。通常在没有源代码的情况下,测试java客户端的安全性最好的结果是不可预知的,最坏的结果是不切实际的。
    在有源代码的情况下,你可以运行一个简单的java程序和远程附加一个调试器调试它,单步运行、根据需要改变变量,但对于一个applet来说要想做到这一点是有点困难的。有时,你可能需要修改客户端和服务器之间的通信,一般的做法是在客户端配置一个代理,在代理上修改数据。问题的关键是,通信数据通常不是明文的,它可能使用了自定义的协议、序列化的对象,加密的数据或者多种方式混合应用,这样要想修改通信过程中的数据是比较困难的。JavaSnoop这个工具就试图来解决这些问题,它允许你直接附加到一个运行中的进程,类似于调试器,然后,立即篡改方法调用、运行自定义代码或者仅仅监视在系统中发生了什么。

KaliSecurity-压力测试工具

压力测试通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能够提供的最大的服务级别的测试。通俗地讲,压力测试是为了测试应用程序的性能会变得不可接受。
Kali下压力测试工具包含VoIP压力测试、Web压力测试、网络压力测试及无线压力测试。

  • Voip压力测试工具
    包括iaxfloodinviteflood

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

  • 网络压力测试工具
    dhcpig 耗尽DHCP资源池的压力测试

  • ipv6攻击工具包

  • Inundator
    IDS/IPS/WAF 压力测试工具

  • Macof 可做泛洪攻击

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

  • T50压力测试
    功能强大,且具有独特的数据包注入工具,T50支持*nix系统,可进行多种协议数据包注入,实际上支持15种协议。

  • 无线压力测试 包括MDK3Reaver

KaliSecurity-数字取证工具

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

  • PDF取证工具
    pdf-parserpeepdf
    peepdf是一个使用python编写的PDF文件分析工具,它可以检测到恶意的PDF文件。其设计目标是为安全研究人员提供PDF分析中可能用到的所有组件。

  • 反数字取证chkrootkit
    Linux系统下查找rootkit后门工具。判断系统是否被植入Rootkit的利器。

  • 内存取证工具
    Volatility是开源的Windows、Linux、Mac、Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。

  • 取证分析工具binwalk
    Binwalk是一个固件的分析工具,旨在协助研究人员对固件分析,提取及逆向工程。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,更重要的一点是可以轻松扩展。
    借助binwalk中的一个很强大的功能——提取文件(压缩包)中的隐藏文件(或内容文件)。亦可分析文件格式。
    分析压缩包 binwalk .zip
    binwalk -e .zip 将文件全部解压,产生新的目录_zip.zip.extracted,
    还可以作为文件格式分析的工具

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

  • 取证镜像工具集
    针对镜像文件的取证工具,如mmsstatmmls等命令。

  • 数字取证套件
    autopsy 数字取证套件
    DFF(Digital Forensics Framework)是一个简单但强大的数字取证工作辅助工具,它具有灵活的模块系统,具有多种功能,包括:回复错误或崩溃导致的文件丢失,证据的研究和分析。DFF提供了一个强大的体系结构和一些列有用的模块。而autopsy则是提供了一个浏览器平台。
    chkrootkit 反数字取证

KaliSecurity-报告工具与系统服务

一次完整的渗透测试,最后要完成一份报告作为一个小结。相应的,Kali Linux为安全工程师准备了报告工具集。

  • Dradis
    Dradis用于提高安全检测效率的信息共享框架(协作平台)。Dradis提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。基于浏览器的在线笔记。

  • keepnote
    精简的笔记本软件,特点如下:
    富文本格式:彩色字体、内置图片、超链接,能保存网页图片文字等完整内容。
    树形分层组织内容,分门别类,一目了然。
    全文搜索
    综合截图
    文件附件
    集成的备份和恢复
    拼写检查(通过gtkspell)
    自动保存
    内置的备份和恢复(zip文件存档)

  • Cutycapt 媒体捕捉工具
    曾经介绍过的工具,将网页内容截成图片保存。

  • Recordmydesktop 屏幕录像工具

  • Maltego Casefile 证据管理

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

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

  • 系统服务介绍
    BeEF 对应XSS测试框架BeEF的启动与关闭;
    Dradis 对应笔记分享服务Dradis的启动与关闭;
    HTTP 对用Kali本机Web服务的启动与关闭;
    Metasploit 对应Metasploit服务的启动与关闭;
    Mysql 对应Mysql服务的启动与关闭;
    Openvas 对应Openvas服务的启动与关闭;
    SSH 对应SSH服务的启动与关闭;(远程连接最好不要开启)

学习进度条

  • 学习教材第9、10章

  • 学习Kali视频34-38

参考资料