目录
前言
Kali系统预装了大量的安全工具,可以说是一个安全工具的数据库。在kali2018.2系统中就有600多个工具,工具如此之多,掌握所有的工具是不现实的,只有需要用的时候再去学习工具的使用即可。但是了解这些工具的用途,掌握一些常用的安全工具是必要的,本篇文章主要对一些常用的安全工具进行介绍,这里只需要简单地了解一下这些工具的用途和使用方法,在后边的文章中将会用到这些工具完成相应的实操,还会具体讲解这些工具的使用。
kali提供的工具有很多,从应用和功能的角度可以将工具分成14种类型,分别是:
信息搜集、脆弱性分析、漏洞利用、嗅探和欺骗、密码工具、权限提升、web应用、无线攻击、硬件黑客、权限维持、取证工具、逆向工程、压力测试、报告工具。
kali系统工具的介绍可参考官方网站:https://www.kali.org/tools/
一、信息收集工具
信息收集时进行安全渗透测试必要的准备工作,其主要目的是收集渗透测试目标的基本信息,包括操作系统信息、网络配置信息、应用服务信息等。kali提供的信息收集工具的使用模式分为三种,分别是:命令行模式、图形用户界面模式和Shell命令行模式
Kali系统提供的信息收集工具还有很多,以上是一些比较常用的工具,这些工具的功能几乎涵盖了信息收集的各个方面,有操作系统的信息、应用服务的信息、网络信息等,熟练使用这些工具,对目标系统和网络的信息进行收集,在后续的安全渗透测试过程中,就能做到“知己知彼,百战不殆”。
二、脆弱性分析工具
在信息收集的基础上,要进行渗透,需要对目标系统或网络的脆弱性(也就是漏洞)进行进一步的分析, Kali系统提供了大量实用的脆弱性分析工具来发现这些漏洞,为后续的漏洞利用提供支持。Kali提供的脆弱性分析工具如下表所示:
针对一些特定的应用, Kali也提供了相应的脆弱性分析工具,如VoIP、Oracle数据库、IPv6协议等,有兴趣的读者可参考Kali官网,上面有这些工具的详细介绍和使用方法,这里不再多言。
三、漏洞利用工具
发现了操作系统、网络和应用服务的漏洞,接下来怎么利用这些漏洞发起攻击呢? Kali提供了许多漏洞利用工具,这些工具有些功能强大,可以利用的漏洞类型很多,甚至可以定制,针对新的漏洞可通过添加脚本的方式扩展其功能,如Metasploit;有些工具则是针对特定的漏洞具有很好的效果。Kali系统提供的漏洞利用工具如下表所示
上述漏洞利用工具中Metasploit可以说是最重要也最强大的,Metasploit的Exploit脚本主要用Ruby语言编写,在Kali系统中可看到脚本的源代码,掌握Ruby语言将有助于对这些渗透脚本的理解。
四、嗅探与欺骗工具
嗅探与欺骗主要针对的是网络。嗅探是指利用计算机的网络接口截获其他计算机数据报文的一种手段,在嗅探到的数据包中提取有价值的信息,比如用户名、密码等。欺骗则是利用一些技术手段,骗取目标主机的信任,取得有价值的信息。Kali系统提供的嗅探与欺骗工具如下表所示:
嗅探与欺骗是安全渗透的常用手段,它充分利用网络协议自身在安全方面不完善的问题,通过IP欺骗、ARP欺骗等手段非法拦截或捕获网络中传输的数据包,通过对网络数据包的分析进一步获取有用的用户信息。通过上述工具的学习和使用,将有助于对网络协议的理解。
五、密码攻击工具
密码攻击可以说是安全渗透至关重要的一步,也是最为关键的一步。很多系统的安全大门就靠密码守护着,很多攻击者攻击到最后一步就是攻不破那道密码防线。一个好的、强健的密码是很难依靠技术手段攻破的,除非采用一些社会工程手段,如威逼、利诱或者利用对方的疏忽套取密码。那么密码攻击是否毫无用武之地呢?事实上,网络中充斥着很多弱口令,这些弱口令产生的原因是很多用户缺乏安全意识,为了容易记忆,设置的密码过于简单或者有规律可循。另外,一些工具可以帮助我们对弱口令进行自动尝试,节省了手动尝试的时间和繁琐操作,这些工具对弱口令的攻击还是非常有效率的。kali系统提供的密码攻击工具如下表所示:
密码破解采用穷举法,利用工具对密码进行自动尝试,这个过程比较耗时,并且只对弱口令有效。为了缩短时间,往往要用到密码字典,将常用的密码组合写在字典文件中,简单的排在前面,复杂的排在后面,破解密码时从字典文件的开头一个个地尝试,直到尝试出密码为止。对于一些复杂的密码,密码工具往往会失去作用,达不到效果。
六、权限提升工具
目前的操作系统往往是多用户系统,不同的用户有不同的访问权限,从而起到保护系统安全的目的。对系统的访问权限越大,能执行的功能就越多,安全渗透一个很重要的目标就是提升用户权限,获得更大的系统访问权,执行更多的操作。kali提供的权限提升工具如下表所示:
kali系统提供的很多漏洞利用和密码攻击附带权限提升的功能,用户可以参考kali官网中对这些工具的介绍。
七、Web应用工具
Web应用是互联网最重要的应用之一,其应用范围十分广泛,正是由于Web的普及,使得它几乎成为网络的代名词。同样地,Web应用存在的安全问题很多,是最容易受到攻击的应用之一,因此针对web应用的安全渗透测试十分重要,通过渗透测试有助于发现Web应用的缺点和漏洞,从而弥补web应用的脆弱性,使得Web应用更加完善。kali系统提供的Web应用工具如下表所示:
Web应用广泛,相应的技术层出不穷,无论是用户前端还是服务器后端,都存在大量的漏洞,是黑客攻击的重点,因此Web的安全问题是网络安全一个十分重要的分支。但是学习Web安全渗透十分不易,各种客户端和服务器端技术非常庞杂,需要掌握大量的背景知识,熟悉各种脚本语言和网站架构。在学习Web安全渗透的过程中,熟练使用上述工具将对用户有很大的帮助,从而事半功倍
八、无线攻击工具
随着无线网络基础设施的提升,以智能手机为代表的无线网络通信得到了广泛的应用。无线网络摆脱了有线网络的限制,携带方便,用户可以随时随地访问网络。随着无线网络带宽的提升,有线网络带宽快这一优势已不明显,因此目前无线网络在智能终端应用方面已经远超有线网络,甚至在笔记本的应用上也有超越有线网络的趋势。随着越来越多的应用转移到智能手机平台,特别是手机购物、手机支付、手机理财应用的普及,近几年针对无线网络的攻击也甚嚣尘上,愈演愈烈。无线网络的安全问题与Web应用的安全问题一样,已成为安全领域一个重要的问题,不容忽视。Kali系统提供的无线攻击工具如下表所示:
上述无线网络攻击工具很多集中在对无线接入点的攻击上,包括伪造接入点、干扰无线信号、破解WEP/WPA密码等。针对无线网络应用的攻击与有线网络应用类似,可以采用相同的方法。
九、硬件黑客工具
针对一些特定的软硬件平台、产品和文件格式,如Android、Arduino、树莓派、Jave虚拟机、APK文件, Kali提供了一些软硬件环境模拟器,及对应文件格式的转换、编译和反编译的工具,放在硬件黑客工具类下面,这些工具如下表所示
采用上述工具可以模拟特定的软硬件环境,提供特定文件格式的转换,帮助用户实地了解目标环境的运行情况,为进一步的安全渗透测试提供支持。
十、维持访问工具
在渗透进入对方系统,获取访问控制权限并提升权限之后,攻击者如想进一步维持这一访问权限,往往需要使用木马程序、后门程序和Rootkit来达到这一目的。Kali系统提供的维持访问工具如下表所示:
维持访问工具可以帮助攻击者维持对目标系统的访问控制权限,防止攻击行为被发现,同时可以留下后门,方便攻击者的下次访问。
十一、取证工具
在对电子证据进行取证的过程中,相应的取证工具必不可少。取证工具是在调查计算机犯罪时,为了保护证据的完整性和有效性所使用的一些辅助工具。取证工具一般分为勘查取证工具和检查取证工具两种,其中勘查取证工具包括在线取证工具、硬盘复制机、写保护接口硬件、数据擦除设备、手机取证系统等;检查取证工具则包括数据恢复工具、密码译破工具、专用计算机法证工具等。这些工具往往需要对磁盘数据、文件数据、加密数据等进行恢复和提取,从中寻找电子证据。Kali系统提供的取证工具如下表所示:
电子证据其实就是计算机能够处理的数字化的数据,它以各种文件格式存储在不同类型的存储介质上。从上表中可以看出,针对不同类型的数据,需要相应的工具去读取,进行取证,有时对于加密数据,需要解密后才能取证。
十二、逆向工程工具
逆向工程(又称反向工程),是一种产品设计技术再现过程。在软件工程领域,一般是先进行UML设计,然后用工具生成代码,这个过程叫正向工程;相应地,从代码生成UML设计图叫作逆向工程。最典型的逆向工程就是程序代码的反汇编或反编译,通过对可执行文件的反向编译还原出其源代码的过程。对于一些危害系统安全的、感染了病毒或者含有恶意代码的可执行文件,如果让其执行可能会引起破坏,造成无法挽回的损失,这时可通过逆向工程手段还原其源代码,在不执行代码的情况下通过对源代码的分析能够更容易地判断并找出恶意代码。Kali系统提供的逆向工程工具如下表所示:
在信息安全领域,逆向工程往往与编程相关,涉及程序代码的编译、反编译、调试等,其目的是分析代码、跟踪代码的运行,判断并评估代码执行的安全性,从中发现可能的恶意代码。
十三、压力测试工具
压力测试是一种基本的质量保证行为,测试的对象可以是一个独立的应用软件或者是一个完整的系统。它是每个产品在流向市场之前进行的一项重要的、全方位的质量检测。压力测试的基本思路很简单,它不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内存、CPU、磁盘空间和网络带宽。压力测试的时间往往持续很久,其目的是通过大量的、全面的操作使得产品长时间、高负荷地工作来检验产品的质量。Kali系统提供的压力测试工具如下表所示:
目前很多用于DoS攻击的工具被用来作为压力测试工具,它们的工作原理其实是相同的,都是通过大量的任务耗尽系统资源(CPU、存储和网络带宽)的方法来测试目标的抗压能力。
十四、报告工具
在一次渗透测试结束后,往往需要利用报告工具来生成报告,供工作人员进行存档或者工作报告。一些功能强大且友好的报告工具生成的报告不只包含最终的结果,还包括一些重要的原始数据、中间数据和对数据的分析,并且最终的报告形式可以是多样的、可视化的,用各种图表来生动形象地将结果更好地展示出来。Kali系统提供的报告工具如下表所示:
上述报告工具都有其各自的应用领域,在使用时要根据实际情况来选择。但不管是哪种工具,都使得报告的生成更加自动和便利,节省了工作人员的时间。
十五、kali Top10 工具
针对繁多的Kali工具,业界总结出Kali Top10工具,这些工具功能强大、使用广泛,是Kali工具集中使用最为频繁的十大工具。
这些工具分别是:
Nmap(信息收集、脆弱性分析)、Metasploit(漏洞利用)、John the Ripper(密码攻击)、THC-Hydra(密码攻击)、Wireshark(信息收集、嗅探与欺骗)、Aircrack-NG(无线攻击)、Maltego Teeth(信息收集、漏洞利用、密码攻击、Web应用)、OWASPZAP(Web应用)、Cain&Abel(嗅探与欺骗、密码攻击)、Nikto(Web应用、信息收集)。这些工具在前面的部分都有介绍,掌握这些工具的使用对从事安全渗透测试工作有着很大的帮助,是信息安全的利器。
本章小结
本篇文章按照安全工具的类型,对Kali系统自带的、常用的安全工具做了介绍。无论是对于安全专家还是攻击者,安全工具都是他们从事安全工作的利器。一个好的安全从业人员,熟练掌握各种类型的安全工具是必不可少的。Kali系统免去了人们寻找、安装安全工具的烦恼,大大方便了对安全的学习、研究和工作。但是Kali系统自带的安全工具如此之多,这些工具的功能、作用是什么?什么时候应该使用什么工具?也是一件令人烦恼的事情。为此本篇文章对一些常见的工具按照功能进行了分类介绍,为安全工作人员提供了便利。