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压力测试工具
包括iaxflood
和inviteflood
-
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种协议。 -
无线压力测试 包括
MDK3
和Reaver
KaliSecurity-数字取证工具
数字取证技术将计算机调查和分析技术应用于潜在的、有法律效力的电子证据的确定与获取,同样他们都是针对黑客和入侵的,目的都是保障网络安全。
-
PDF取证工具
pdf-parser
和peepdf
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。 -
取证镜像工具集
针对镜像文件的取证工具,如mmsstat
与mmls
等命令。 -
数字取证套件
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
参考资料
- [网络攻防技术与实践](http://book.douban.com/subject/6558082 /) (官网)