前言
Kali 系统预装了大量的安全工具,可以说是一个安全工具的数据库。在 kali2018.2 系统中就有 600 多个工具,工具如此之多,掌握所有的工具是不现实的,只有需要用的时候再去学习工具的使用即可。但是了解这些工具的用途,掌握一些常用的安全工具是必要的,本篇文章主要对一些常用的安全工具进行介绍,这里只需要简单地了解一下这些工具的用途和使用方法,在后边的文章中将会用到这些工具完成相应的实操,还会具体讲解这些工具的使用。
kali 提供的工具有很多,从应用和功能的角度可以将工具分成 14 种类型,分别是:
信息搜集、脆弱性分析、漏洞利用、嗅探和欺骗、密码工具、权限提升、web 应用、无线攻击、硬件黑客、权限维持、取证工具、逆向工程、压力测试、报告工具。
kali 系统工具的介绍可参考官方网站:https://www.kali.org/tools/
文章来源:https://developer.aliyun.com/article/1010662
一、信息收集工具
信息收集时进行安全渗透测试必要的准备工作,其主要目的是收集渗透测试目标的基本信息,包括操作系统信息、网络配置信息、应用服务信息等。kali 提供的信息收集工具的使用模式分为三种,分别是:命令行模式、图形用户界面模式和 Shell 命令行模式
名称 | 使用模式 | 描述 |
---|---|---|
Amap | 命令行 | Amap 是一个服务扫描工具,它是最早被称为下一代扫描器的软件,可以识别不同的应用程序,即使这些程序运行在一个异常的端口上。Amap 最早开始支持 UDP 协议和 IPv6 地址空间的扫描,可作为 nmap 重要的补充工具。同时 amap 还提供未知应用特征的自动测定功能,让我们可以方便定制扫描结果 |
arp-scan | 命令行 | arp-scan 是一个用来进行系统发现和指纹识别的命令行工具,它可以构建并发送 ARP 请求到指定的 IP 地址,并且显示返回的任何响应 |
DMitry | 命令行 | DMitry 是一个用 C 语言开发的 UNIX/(GUN)Linux 命令行工具,能够收集目标主机尽可能多的信息,包括主机所在的子域、电子邮件地址、运行时间、TCP 端口扫描、whois 查询等。 |
dnmap | 命令行 | dnmap 是一个能够在多台客户机上执行分布式 nmap 扫描的框架,它可以读取包括 nmap 命令的文件,并把该命令文件发给与之相连的多台客户机,在这些客户机上执行 nmap 文件中的命令。dnmap 框架采用的是客户机 / 服务器模式,服务器发布命令,客户机执行命令,从而实现分布式 nmap 扫描 |
dnsenum | 命令行 | dnsenum 通过执行多线程 Perl 脚本来枚举域的 DNS 信息,从而发现非相邻的 IP 块 |
Fierce | 命令行 | Fierce 不是一个 IP 地址扫描器,也不是一个 DDos 工具,它不是涉及来扫描整个互联网或执行任何非针对性的攻击的。它是一个 Perl 脚本,是一个侦察工具,可以对域进行快速扫描,用来定位公司网络内部和外部可能的目标 |
MaltegoTeeth | 图形用户界面 | Maltego 是一个独特的平台,用于向组织拥有和运营的环境传递清晰的威胁画面。Maltego 的独特优势在于证明单点故障的复杂性和严重性以及网络设备间的信任问题 |
Nmap | 命令行 | Nmap 是一个免费的、开源的用于网络发现和安全审计的工具,可用于网络资产管理、网络服务升级管理、监控主机或服务正常运行等任务 Nmap 功能强大,可判断主机是否在线,判断主机运行的操作系统类型和版本,判断主机提供了哪些服务(应用程序名称和版本)、使用了什么类型的过滤器或防火墙,以及其他几十种特性。 |
p0f | 命令行 | 来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的 p0f 是一款被动探测工具 , 能够通过捕获并分析目标主机发出的数据包 NAT、负载均衡、应用代理等 , 它是一个万能的被动操作系统指纹工具。 情况下也没有问题。同时 p0f 在网络分析方面功能强大 , 可以用它来分析 |
Recon-NG | Shell 命令行 | 令行 Recon-NG 是由 Python 编写的一个开源的 Web 侦查 (信息收集) 框架, 成数据库,可把查询结果结构化存储在其中,有报告模块,把结果导出为报告。 使用它可以自动地收集信息和网络侦查。其命令格式与 Metasploit 默认集 |
smtp-user-enum | 命令行 | 大部分基于类 Unix 系统的邮件服务 , 采用操作系统账号作为邮件账号, 因此对于其邮件账号的探测,其实就等同于对操作系统账号的探测,以便进 行后续弱密码口令的破解。smtp-user-enum 基于三种方法验证邮件账号是否 存在,同时支持基于字典的批量验证。 |
snmp-check | 命令行 | snmp-check 是一款基于默认或指定团体名 , 对目标设备进行信息批量查 询的工具 , 其默认支持 Windows、类 Unix、网络设备和打印机等。完全依靠 人工来监控大型网络的运行状态 , 是一种令人崩溃的任务。SNMP 协议可以大 大简化系统和网络管理员的工作,实现问题的快速定位和排查。 |
Unicornscan | 命令行 | Unicornscan 是一款通过尝试连接用户系统 (User-Land) 分布式 TCP/ IP 堆栈获得信息和关联关系的端口扫描器。它是一个新的信息收集引擎 , 主 要用于安全研究和通讯测试,主要特点是精确、灵活而且高效。 |
Wireshark | 图形用户界面 | Wireshark 从 Ethereal 发展而来 , 是一款网络数据包捕获和分析工具, 它使用 WinPcap 作为接口 , 可跳过 TCP/IP 协议栈直接与网卡进行数据包的 交换。 |
Kali 系统提供的信息收集工具还有很多,以上是一些比较常用的工具,这些工具的功能几乎涵盖了信息收集的各个方面,有操作系统的信息、应用服务的信息、网络信息等,熟练使用这些工具,对目标系统和网络的信息进行收集,在后续的安全渗透测试过程中,就能做到“知己知彼,百战不殆”。
二、脆弱性分析工具
在信息收集的基础上,要进行渗透,需要对目标系统或网络的脆弱性 (也就是漏洞) 进行进一步的分析, Kali 系统提供了大量实用的脆弱性分析工具来发现这些漏洞,为后续的漏洞利用提供支持。Kali 提供的脆弱性分析工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
BBQSQL | Shell 命令行 | BBQSQL 是一款用 Python 写的 SQL 盲注框架 , 对 SQL 注入漏洞 攻击非常有效。它是一种半自动工具 , 自带一个直观的 UI 用户界 面 , 允许许多难以触发的 SQL 注入变得用户化 , 使设置攻击更容易。 BBQSQL 用法非常灵活 , 与数据库无关 , 不关心数据或数据库 , 而大 多数 SQL 注入工具是要具体的数据库或语言建立的。 |
BED | 命令行 | BED(Bruteforce Exploit Detector) 是一款缓存区漏洞检测 工具。它预置了十一种插件。这些插件针对不同的服务或系统,如 FTP、SMTP、POP 等。同时 , 这些插件内包含了已知的各种攻击载荷。 BED 通过加载插件 , 向目标主机发送攻击数据。如果发现目标无法响 应,说明目标可能存在溢出区漏洞。经过多次测试验证,就可以判断 漏洞出现的位置。然后手工执行验证,采用代码审核、反编译等方式, 就可以找出漏洞具体触发机制,从而加以利用 |
cisco-auditing- tool | 命令行 | cisco-auditing-tool 简称 CAT, 是一款小型的安全审计工具, 可检测出 Cisco 路由器常见的漏洞 , 可发现注入默认密码、默认 SNMP 字符串和老版本 IOS 上存在的漏洞。 |
cisco-global- exploiter | 命令行 | cisco-global-exploiter 是一个小型的 Perl 脚本 , 是一个针对 思科设备的漏洞利用工具合集 , 支持对思科设备的 14 种独立的漏洞 进行测试。 |
cisco-torch | 命令行 | cisco-torch 是一款专门针对思科设备的扫描工具 , 它具备多种 应用层协议的指纹识别特性,借助与第三方指纹库的比对,可以轻 松识别目标设备及系统类型。同时由于采用了多线程的开发方式, 所以在性能上 torch 也同样表现突出。另外在密码破解和漏洞利用 方面, torch 也具备相应的能力。如果 torch 破解了设备读写权限的 SNMP Community, 还可进一步利用其获取设备的完整配置信息。 |
copy-router-config | 命令行 | copy-router-config 专门针对思科设备而设计 , 利用 SNMP 协议 下载和上传思科设备的配置文件。其使用需要 tftp 服务的配合。 |
Lynis | 命令行 | Lynis 是个系统安全检查工具 , 针对 Unix 和 Linux 系统而设计, 通过执行一些安全检查发现系统安装的软件以及存在的配置问题。 它能生成一份全面的加固建议列表,并由使用者灵活地自行决定实 施哪些加固措施。 |
Nessus | 图形用户界面 | Nessus 是世界上最流行的漏洞扫描程序 , 提供完整的电脑漏洞 扫描服务,并随时更新其漏洞数据库,可同时在本机或远端上遥控, 进行系统的漏洞分析扫描。它完整支持 SSL, 可自定义功能插件。 |
OpenVAS | 图形用户界面 | OpenVAS 是目前开源世界最重要的漏洞管理产品 , 它基于各种安 全行业的标准规范,广泛覆盖了已知的漏洞类型。它使用简单方便, 可以自动发现系统中绝大部分已知漏洞,无论对于渗透测试者还是 安全运维工程师,这都是一个不能缺少的强大工具。 |
针对一些特定的应用, Kali 也提供了相应的脆弱性分析工具,如 VoIP、Oracle 数据库、IPv6 协议等,有兴趣的读者可参考 Kali 官网,上面有这些工具的详细介绍和使用方法,这里不再多言。
三、漏洞利用工具
发现了操作系统、网络和应用服务的漏洞,接下来怎么利用这些漏洞发起攻击呢? Kali 提供了许多漏洞利用工具,这些工具有些功能强大,可以利用的漏洞类型很多,甚至可以定制,针对新的漏洞可通过添加脚本的方式扩展其功能,如 Metasploit;有些工具则是针对特定的漏洞具有很好的效果。Kali 系统提供的漏洞利用工具如下表所示
名称 | 使用模式 | 描述 |
---|---|---|
Armitage | 图形用户界面 | Armitage 是一款 Java 写的 Metasploit 图形界面化的攻击软 件 , 可以用它结合 Metasploit 中已知的 exploit 来针对主机存在 的漏洞自动化攻击。通过命令行的方式使用 Metasploit 难度较高, 需要记忆的命令过多 , 而 Armitage 完美地解决了这一问题 , 用户 只需要简单地点击菜单,就可以实现对目标主机的安全测试和攻 击。Armitage 良好的图形展示界面 , 使得攻击过程更加直观 , 用 户体验更好。因其操作的简单性 , 尤其适合 Metasploit 初学者对 目标系统进行安全测试和攻击。 |
Backdoor Factory | 命令行 | Backdoor Factory 是一款安全测试工具 , 可以轻松地生成 win32PE 后门测试程序 , 可对可执行文件进行自动化的后门部署。 |
BeEF | 图形用户 界面 | BeEF(Browser Exploitation Framework) 是一款针对浏览 器的渗透测试工具。 |
Metasploit Framework | Shell 命 令行 | Metasploit Framework 简称 MSF, 是一个用 Ruby 语言写的渗 透测试框架 , 该框架集成了很多可用的渗透利用工具 (Exploit Tools), 比如著名的 ms08_067 等。用户可以在这个框架下进行一 系列的渗透测试 , 利用现有的装备 (Payload), 如 Meterpreter 等进一步拿取对方的 Shell。Metasploit 功能强大 , 几乎每一个 从事渗透测试的人都会接触到它,是渗透测试的利器。 |
Exploitdb | 命令行 | Exploitdb(Exploit Database) 是一个由“Offebnsive Security”提供的漏洞利用程序集的数据库 , 可以用于平时的参 考和使用。它存储了大量的漏洞利用程序,可以帮助安全研究者 和渗透测试工程师更好地进行安全测试工作。 |
上述漏洞利用工具中 Metasploit 可以说是最重要也最强大的,Metasploit 的 Exploit 脚本主要用 Ruby 语言编写 , 在 Kali 系统中可看到脚本的源代码,掌握 Ruby 语言将有助于对这些渗透脚本的理解。
四、嗅探与欺骗工具
嗅探与欺骗主要针对的是网络。嗅探是指利用计算机的网络接口截获其他计算机数据报文的一种手段,在嗅探到的数据包中提取有价值的信息,比如用户名、密码等。欺骗则是利用一些技术手段,骗取目标主机的信任,取得有价值的信息。Kali 系统提供的嗅探与欺骗工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Burp Suite | 图形用户界面 | Burp Suite 是 Web 应用程序测试的最佳工具之一 , 其功能强大 , 可 破解登陆表单,执行会话令牌等多种的随机性检查。 以执行多种任务 , 如请求的拦截和修改 , 扫描 web 应用程序漏洞 , 以暴力破解登录表单,执行会话令牌等多种的随机性检查 |
HexInject | 命令行 | HexInject 是一款进行数据注入的工具 , 它可以直接向网络注入渗透 人员构造的数据包,也可以篡改网络传输的数据,为了避免修改带来的数 据验证问题,它默认对包进行校验,并重新计算包的大小,从而提高数据 的真实性。 |
Inviteflood | 命令行 | Inviteflood 攻击的目标是 VoIP, 它针对 VoIP 信令协议 SIP 中的 INVITE 会话请求指令发起洪水攻击 , 被攻击者会瞬间接到大量呼叫请求, 导致类似电话占线的效果 , 严重时可令 IP 电话客户端程序崩溃。 |
iSMTP | 命令行 | iSMTP 是一款 SMTP 用户枚举和测试工具。 |
Mitmporary | 命令行 | Mitmproxy 俗称中间人攻击的神器 , 是一款有篡改功能的 http 代理 工具 , 支持 http 通信与 https 通信 , 既可用于中间人攻击 , 也可用于 html 抓包调试。mitmproxy 共有五种代理模式 : 正向代理模式、反向代理 模式、上行代理模式、透明代理模式和 socks5 代理模式。 |
SniffJoke | 命令行 | SniffJoke 是一款网络防嗅探工具。在渗透测试中 , 通过网络嗅探, 可以获取网络通信主机的各种信息。SniffJoke 可以防止嗅探 , 它能够自 动对用户的网络数据进行附加处理,如发包延时、修改部分包、注入无效 包,使得嗅探工具无法正确读取数据包,并且所有这些附加处理不会影响 数据接收方的处理。 |
SSLstrip | 命令行 | SSLstrip 也叫 https 降级攻击 , 攻击者拦截用户流量后 , 欺骗用 户与攻击者进行 http 通信 , 攻击者与服务器保持正常通信 (http 或 https), 从而获取用户信息。 |
WebScarab | 图形用户界面 | WebScarab 是由开放式 Web 应用安全项目 (OWASP) 组开发的一个用 来分析使用 HTTP 和 HTTPS 协议的应用程序框架。WebScarab 可以记录它 检测到的会话内容(请求和应答),并允许使用者通过多种形式来查看记 录。可以用它来调试程序中较难处理的漏洞,也可以帮助安全专家发现潜 在的程序漏洞。 |
嗅探与欺骗是安全渗透的常用手段,它充分利用网络协议自身在安全方面不完善的问题,通过 IP 欺骗、ARP 欺骗等手段非法拦截或捕获网络中传输的数据包,通过对网络数据包的分析进一步获取有用的用户信息。通过上述工具的学习和使用,将有助于对网络协议的理解。
五、密码攻击工具
密码攻击可以说是安全渗透至关重要的一步,也是最为关键的一步。很多系统的安全大门就靠密码守护着,很多攻击者攻击到最后一步就是攻不破那道密码防线。一个好的、强健的密码是很难依靠技术手段攻破的,除非采用一些社会工程手段,如威逼、利诱或者利用对方的疏忽套取密码。那么密码攻击是否毫无用武之地呢 ? 事实上,网络中充斥着很多弱口令,这些弱口令产生的原因是很多用户缺乏安全意识,为了容易记忆,设置的密码过于简单或者有规律可循。另外,一些工具可以帮助我们对弱口令进行自动尝试,节省了手动尝试的时间和繁琐操作,这些工具对弱口令的攻击还是非常有效率的。kali 系统提供的密码攻击工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
BruteSpray | 命令行 | BruteSpray 是一个基于 Nmap 扫描结果的端口爆破工具,它可以载入 Nmap 的扫描结果(gnmap/XML 文件),然后对我们指定的端口和 IP 进行枚举口令爆破,爆破过程可通过自动调用 Medusa 来进行。 |
Cain&Abel | 图形用户界面 | Cain&Abel 是由 0xid.it 开发的一个针对 Microsoft 操作系统的免费口令回复工具,号称穷人使用的 LC,这是一款网络管理员必备的工具,它可以用来检测 Windows,UNIX 用户是否使用了不安全的密码。它的功能十分强大,可以进行网络嗅探、网络欺骗、破解加密口令、解码被打乱的口令、显示口令框、显示缓存口令和分析路由协议,甚至还可以监听内网中他人使用 V0IP 拨打电话。 |
Crunch | 命令行 | Crunch 是一款密码生成工具,可以按照指定的规则(用户可以指定字符集)生成密码字典。它可以产生所有有可能的组合和排列,其生成的字典字符序列可以输出到屏幕、文件或重定向到另一个程序中。 |
Findmyhash | 命令行 | Findmyhash 是一款可以破解哈希值的强大脚本,用 python 语言编写,如果用户希望破解一些难以理解的 Hash 值,使用 Findmyhash 脚本可以一键阅读出 Hash 值内的所有内容。 |
Hash-Identifier | 命令行 | Hash-Identifier 并不是 Hash 破解工具,而是用来判断 Hash 值所使用的加密方法的工具。 |
Hydra Hydra-gtk(九头蛇) | 命令行图形用户界面 | Hydra 是由 THC(黑客优选)社区开发的一个在线快速破译密码工具,目的是为研究人员及安全顾问展示如何从远程侵入系统,其密码词库支持超过 50 种网络协议,包括 Telnet、RDP、SSH、FTP、HTTP、HTTPS、SMB 等等,还支持多种数据库的密码破译,Hydra-gtk 是其图形用户界面 |
John the Ripper(开膛手约翰) | 命令行 | John the Ripper 是免费开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如 DES、MD5 等。它支持多种不同类型的系统架构,包括 Unix,Linux,Windows,Dos 模式、BeOs 和 openVMS,主要目的是破解不够牢固的 Unix。Linux 系统密码。 |
Medusa(美杜莎) | 命令行 | Medusa 和 Hydra 一样是一款在线密码破解工具。优点是 Medusa 的稳定性较好,但 Medusa 支持的模块要比 Hydra 少很多,也不支持 RDF 服务协议。同时它的表单破解也存在一些问题。 |
RainbowCrack | 命令行 图形用户界面 | RainbowCrack 是一个使用内存时间交换技术加速口令破解过程的口令破解器。它使用了彩虹表也就是一张预先计算好的明文和散列值的对照表。通过预先花费时间创建这样的彩虹表,能够再以后破解口令时节约大量的时间 |
rtgen | 命令行 | rtgen 工具用来生成彩虹表。彩虹表是一个庞大的,针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对 MD5 算法的,各种算法的都有,有了它可以快速地破解各种密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是 100G 以上的。不同的加密方式要用不同的彩虹表。 |
Samdump2 | 命令行 | Samdump2 是一款破解 Windows SAM 密码文件的工具。 |
密码破解采用穷举法,利用工具对密码进行自动尝试,这个过程比较耗时,并且只对弱口令有效。为了缩短时间,往往要用到密码字典,将常用的密码组合写在字典文件中,简单的排在前面,复杂的排在后面,破解密码时从字典文件的开头一个个地尝试,直到尝试出密码为止。对于一些复杂的密码,密码工具往往会失去作用,达不到效果。
六、权限提升工具
目前的操作系统往往是多用户系统,不同的用户有不同的访问权限,从而起到保护系统安全的目的。对系统的访问权限越大,能执行的功能就越多,安全渗透一个很重要的目标就是提升用户权限,获得更大的系统访问权,执行更多的操作。kali 提供的权限提升工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Meterpreter | Shell 命令行 | Meterpreter 是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型 Payload。这种是基于“内存 DLL 注入”理念实现的,它能够通过创建一个新进程并调用注入的 DLL 来让目标系统运行注入的 DLL 文件。在 Meterpreter 中可以执行 Getsystem 命令快速提权,Meterpreter 会自己尝试用多种方法去提升权限,使得用户只需要运行一条指令就能获得 System 权限。 |
SET | Shell 命令行 | SET 是社会工程包,是一个为社会工程设计的开放源码的渗透测试框架。它有许多自定义攻击向量,允许用户快速发起可信攻击。 |
kali 系统提供的很多漏洞利用和密码攻击附带权限提升的功能,用户可以参考 kali 官网中对这些工具的介绍。
七、Web 应用工具
Web 应用是互联网最重要的应用之一,其应用范围十分广泛,正是由于 Web 的普及,使得它几乎成为网络的代名词。同样地,Web 应用存在的安全问题很多,是最容易受到攻击的应用之一,因此针对 web 应用的安全渗透测试十分重要,通过渗透测试有助于发现 Web 应用的缺点和漏洞,从而弥补 web 应用的脆弱性,使得 Web 应用更加完善。kali 系统提供的 Web 应用工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Arachni | 命令行 | Arachni 是一个多功能、模块化、高性能的 Ruby 框架 , 旨 在帮助渗透测试人员和管理员评估 Web 应用程序的安全性。同时 Arachni 开源免费 , 可安装在 Windows、Linux 以及 Mac 系统上 , 并 且可导出评估报告。 |
BlindElephant | 命令行 | BlindElephant 是一款 Web 应用程序指纹识别工具。该工具可 以读取目标网站的特定静态文件 , 计算其对应的哈希值 , 然后和预 先计算出的哈希值做对比 , 从而判断目标网站的类型和版本号。目 前 , 该工具支持 15 种常见的 Web 应用程序的几百个版本。同时, 它还提供 WordPress 和 Joomla 的各种插件。该工具还允许用户自 已扩展,添加更多的版本支持。 |
CutyCapt | 命令行 | CutyCapt 是基于 Qt 实现的跨平台的将 HTML 网页转化成矢量 图形和位图图像格式的命令行工具 (比如 ,SVG、PDF、PS、PNG、 JPEG、TIFF、GIF 等)。 |
DIRB | 命令行 | DIRB 是一个专门用于爆破目录的工具 , 在 Kali 中默认已经安 装 , 类似工具还有国外的 patator、dirsearch、DirBuster, 国内 的御剑等。 |
Nikto | 命令行 | Nikto 是一款开源的 (GPL) 网页服务器扫描器 , 它可以对网页 服务器进行全面的多种扫描 , 包含超过 3300 种有潜在危险的文件/ CGIs、超过 625 种服务器版本、超过 230 种特定服务器问题。扫描 项和插件可以自动更新 (如果需要)。基于 Whisker/libwhisker 完成其底层功能。这是一款非常棒的工具,但其软件本身并不经常 更新,最新和最危险的可能检测不到。 |
OWASPZAP | 图形用户界面 | OWASP Zed Attack Proxy Project 攻击代理 , 是一款查找网页 应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处 理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OWASP ZAP 为会话类调试工具 , 调试功能对网站不会发起大量请求 , 对服 务器影响较小。 |
Paros | 图形用户界面 | Paros Proxy 是一个对 Web 应用程序的漏洞进行评估的代理程 序 , 它是一个基于 Java 的 Web 代理程序 , 可以评估 Web 应用程序 的漏洞。它支持动态地编辑 / 查看 HTTP/HTTPS, 从而改变 cookies 和表单字段等项目。它包括一个 Web 通信记录程序、Web 圈套程序、 hash 计算器 , 还有一个可以测试常见的 Web 应用程序攻击的扫描器。 该工具检查漏洞形式包括 :SQL 注入、跨站点脚本攻击、目录遍历等。 |
ProxyStrike | 图形用户界面 | ProxyStrike 是一款用于 web 漏洞扫描的工具,需要配置代理使用,带有爬虫模块、请求报告、日志、配置等功能模块 |
Vega | 图形用户界面 | Vega 是一个开放源代码的 Word 应用程序安全测试平台, Vega 能够帮助验证 SQL 注入、跨站脚本、敏感信息泄露和其他一些安全漏洞。Vega 使用 Java 编写 , 有 GUI, 可以在 Linux、OS X 和 Windows 下运行。 |
W3af | 命令行 图形用户界面 | Wild(Web Application Attack and Audit Forwardwork) 是 个 Web 应用程序攻击和审计框架。它的目标是创建一个易于使用和 扩展、能够发现和利用 Web 应用程序漏洞的主体框架。W3af 的核心 代码和插件完全由 Python 编写。项目已有超过 130 个的插件 , 这 些插件可以检测 SQL 注入、跨站脚本、本地和远程文件包含等漏洞。 |
Webshag | 命令行 | Webshag 是一个对 Web 服务器进行安全审计的跨平台多线程工具。Webshag 会收集那些通常对 Web 服务器有用的功能 , 比如 Webshag 是一个用于对 Web 服务器进行安全审计的跨平台多线 端口扫描、URL 扫描和文件模糊测试。可以通过代理和 HTTP 身份认 证 (基于认证或摘要认证 ), 以 HTTP 或 HTTPS 的方式扫描 Web 服务器。 此外 Webshag 可以凭借 IDS 规避能力 , 使请求之间的相关性变得更 复杂。 |
WebSploit | Shell 命令行 | WebSploit 是一个开源项目 , 主要用于远程扫描和分析系统漏 洞。使用它可以非常容易和快速发现系统中存在的问题,并用于深 入分析。 |
WhatWeb | 命令行 | Whatweb 是一个基于 Ruby 语言的开源网站指纹识别软件 , 正如 它的名字一样 ,Whatweb 能够识别各种关于网站的详细信息 , 包括: CMS 类型、博客平台、中间件、Web 框架模块、网站服务器、脚本类型、 JavaScript 库、IP、cookie 等等。 |
Web 应用广泛,相应的技术层出不穷,无论是用户前端还是服务器后端,都存在大量的漏洞,是黑客攻击的重点,因此 Web 的安全问题是网络安全一个十分重要的分支。但是学习 Web 安全渗透十分不易,各种客户端和服务器端技术非常庞杂,需要掌握大量的背景知识,熟悉各种脚本语言和网站架构。在学习 Web 安全渗透的过程中,熟练使用上述工具将对用户有很大的帮助,从而事半功倍
八、无线攻击工具
随着无线网络基础设施的提升,以智能手机为代表的无线网络通信得到了广泛的应用。无线网络摆脱了有线网络的限制,携带方便,用户可以随时随地访问网络。随着无线网络带宽的提升,有线网络带宽快这一优势已不明显,因此目前无线网络在智能终端应用方面已经远超有线网络,甚至在笔记本的应用上也有超越有线网络的趋势。随着越来越多的应用转移到智能手机平台,特别是手机购物、手机支付、手机理财应用的普及,近几年针对无线网络的攻击也甚嚣尘上,愈演愈烈。无线网络的安全问题与 Web 应用的安全问题一样,已成为安全领域一个重要的问题,不容忽视。Kali 系统提供的无线攻击工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Aircrack-ng | 图形用户界面 | Aircrack-ng 是一个与 802.11 标准的无线网络分析有关的 安全软件,主要功能有:虚拟管道创建、网络侦测、数据包嗅 探、WEP 和 WPA/WPA2-PSK 破解、essid 密码列表的保存和管理。 Aircrack-ng 可以工作在任何支持监听模式的无线网卡上并嗅探 802.11b,802.11b,802.11g 的数据。该程序可运行在 Linux 和 Windows 上。 |
Arpspoof | 命令行 | Arpspoof 是一款专业的 ARP 断网攻击软件 , 能够直接欺骗网 关 , 使得通过网关访问网络的电脑全被欺骗攻击 , 通过 ARP 欺骗 达到中间人嗅探和捕获网络数据包的目的,并替换传输中的数据, 方便用户开启 ARP 断网攻击 , 抢占网速。 |
Easy-Creds | 命令行 | Easy-Creds 是一款欺骗嗅探为主的攻击脚本工具 , 它具备 ARP 毒化、DNS 毒化等一些嗅探攻击模式。它最亮的地方就是它 的 fake AP(欺骗访问点) 功能。它比一般自行搭建的 fake AP 要稳定得多 , 而且里面还包含了针对 802.1x 的攻击模式。 |
Gerix Wifi Cracker | 图形用户界面 | Gerix Wifi Cracker 是一个 aircrack 图形用户界面的无线 网络破解工具,可破解无线网络密码。 |
Kismet | 命令行 | Kismet 是一款 802.11 二层无线网络探测器、嗅探器和入侵 检测系统,使用该工具可以检测周围的无线信号,并查看所有可 用的无线接入点 , 并能嗅出 802.11a/b/g/n 的流量。 |
Reaver | 命令行 | Reaver 是一款针对开启 Wi-Fi 安全防护设定 (Wi-Fi Protected Setup,WPS) 服务的无线网络的破解工具。 |
Wifte | 图形用户界面 | Wifte 是一款使用 Aircrack-ng 工具集来破解无线网络的带 图形用户界面的工具 , 是一款自动化 WEP、WPA 以及 WPS 破解工具, 特点是可以同时攻击多个采用 WEP 和 WPA 加密的网络。 |
上述无线网络攻击工具很多集中在对无线接入点的攻击上,包括伪造接入点、干扰无线信号、破解 WEP/WPA 密码等。针对无线网络应用的攻击与有线网络应用类似,可以采用相同的方法。
九、硬件黑客工具
针对一些特定的软硬件平台、产品和文件格式,如 Android、Arduino、树莓派、Jave 虚拟机、APK 文件, Kali 提供了一些软硬件环境模拟器,及对应文件格式的转换、编译和反编译的工具,放在硬件黑客工具类下面,这些工具如下表所示
名称 | 使用模式 | 描述 |
---|---|---|
Android-sdk | 图形用户界面 | Android-sdk 是一款运行于 Kali Linux 系统的安卓模拟器 , 为 用户提供了构建、测试和调试安卓应用程序所需的 API 库和开发工具。 |
Apktool | 命令行 | Apktool 是一款 APK(Android 安装包) 反编译工具 , 具有编译、 反编译、签名等功能。 |
Arduino | 图形用户界面 | Arduino 是一款便捷灵活、方便上手的开源电子原型平台 , 旨在 为艺术家、设计师、爱好者和任何感兴趣的人创造互动对象或环境。 |
Dex2jar | 命令行 | Dex2jar 是一个能操作 Android 的 dalvik(. dex) 文件格式和 Java(. class) 的工具集合。Dex2jar 是一个可以将. dex 文件转换 成 Java 的. class 文件的转换工具。Dex2jar 与 JD-GUI 组合起来就 能很好地对 apk 文件进行一个反编译。 |
Sakis3G | 命令行 | Sakis3G 是一个经过修改的 shell 脚本 , 它能与不同厂商生产的 调制解调器建立 3G 连接。它能自动设置 USB 或蓝牙调制解调器 , 甚 至可以检测操作人员的设置。 |
Smali/Baksmali | 命令行 | Smali/Baksmali 分别是指安卓系统里的 Java 虚拟机 (Dalvik) 所使用的一种. dex 格式文件的汇编器 / 反汇编器。 |
采用上述工具可以模拟特定的软硬件环境,提供特定文件格式的转换,帮助用户实地了解目标环境的运行情况,为进一步的安全渗透测试提供支持。
十、维持访问工具
在渗透进入对方系统,获取访问控制权限并提升权限之后,攻击者如想进一步维持这一访问权限,往往需要使用木马程序、后门程序和 Rootkit 来达到这一目的。Kali 系统提供的维持访问工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Cryptcat | 命令行 | Cryptcat 是网络工具 Netcat 的加密版本。Cryptcat 支持 TCP、UDP 两种 网络协议。它可以在两个计算机之间建立指定的连接,并使用特定的密钥对 传输数据进行加密。为了提高加密效果,该工具允许用户在每次连接时使用 自定义的密钥,从而保证数据的安全性。 |
Cymothoa | 命令行 | Cymothoa 是一款可以将 ShellCode 注入现有进程 (插入进程) 的后门工具。 借助这种注入手段 , 它能够把 ShellCode 伪装成常规程序。它所注入的后门 程序能够与被注入的程序共存 , 以避免被管理或维护人员怀疑。将 ShellCode 注入其他进程,还有另外一个优势就是:即使目标系统的安全防护工具能够 检验可执行程序的完整性,只要它不检查内存,就不能发现后门程序的进程。 |
Intersect | 命令行 | Intersect 是一款适合在漏洞利用以后使用的能够自动完成多种后期任 务的程序。它能够自动收集密码文件、赋值 SSH 密钥、收集网络信息 , 并能 识别杀毒软件和防火墙程序。若要它自动执行后期任务,用户需要创建自己 的脚本文件 , 脚本中指定需要执行的各种功能。对于 Inetersect 来说 , 每个 功能都有对应的执行模块。 |
NetCat | 命令行 | NetCat 是一个非常简单的 Unix 工具 , 可以读、写 TCP 或 UDP 网络连接 (Network Connection)。它被设计成一个可靠的后端 (Back-End) 工具, 能被其他的程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的 网络调试和开发工具,因为它可以建立用户可能用到的几乎任何类型的连接, 以及一些非常有意思的内建功能。 |
Weevely | 命令行 | Weevely 是一款针对 PHP 的 webshell 的自由软件 , 可用于模拟一个类似 于 Telnet 的连接 shell, Weevely 通常用于 Web 程序的漏洞利用 , 隐藏后门 或者使用类似 Telnet 的方式来代替 Web 页面式的管理, Weevely 生成的服 务器端 php 代码是经过了 base64 编码的 , 所以可以骗过主流的杀毒软件和 IDS, 上传服务器端代码后通常可以通过 Weevely 直接运行。 |
维持访问工具可以帮助攻击者维持对目标系统的访问控制权限,防止攻击行为被发现,同时可以留下后门,方便攻击者的下次访问。
十一、取证工具
在对电子证据进行取证的过程中,相应的取证工具必不可少。取证工具是在调查计算机犯罪时,为了保护证据的完整性和有效性所使用的一些辅助工具。取证工具一般分为勘查取证工具和检查取证工具两种,其中勘查取证工具包括在线取证工具、硬盘复制机、写保护接口硬件、数据擦除设备、手机取证系统等;检查取证工具则包括数据恢复工具、密码译破工具、专用计算机法证工具等。这些工具往往需要对磁盘数据、文件数据、加密数据等进行恢复和提取,从中寻找电子证据。Kali 系统提供的取证工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
Bulk _ extractor | 命令行 | Bulk _ extractor 是从数字证据文件中提取诸如电子邮件地址、信 用卡号、URL 和其他类型的信息的功能的程序。它是一个有用的取证 调查工具,可以用于许多任务,如恶意软件和入侵调查、身份调查和 网络调查,以及图像分析和密码破解。 |
Capstone | 命令行 | Capstone 是一款优秀的反汇编框架 , 支持多种 CPU 架构 , 支持多 个平台,提供反汇编指令的语义详情,用一个授权许可便可以为所有 重要编程语言提供捆包等。 |
Dumpzilla | 命令行 | Dumpzilla 是用 Python 3.x 开发的 , 目的是提取 Firefox, Iceweasel 和 Seamonkey 浏览器的相关信息进行分析。它在 Unix 和 Windows 32/64 位系统下工作 , 采用命令行界面 , 所以信息可以通过 管道重定向工具 (如 grep, awk, cut, sed) 进行转储。 |
Galeta | 命令行 | Galeta 是一个取证工具 , 用于检查微软公司 Internet Explorer 生产的 Cookie 文件的内容。它解析文件并输出可以在电子表格中加载 的字段。 |
Peepdf | 命令行 | Peepdf 是一个用 Python 开发的、集成了多个组件的、用于检测 和分析 PDF 文件是否有害的取证工具。 |
RegRipper | 图形用户界 面 | RegRipper 是一款用来对 Windows 操作系统的注册表进行取证的 工具。 |
Volatility | 命令行 | Volatility 是开源的 Windows, tinus:MaC, Android 的内存取 证分析工具、由 Python 编写成 , 命令行操作 , 支持各种操作系统。 |
电子证据其实就是计算机能够处理的数字化的数据,它以各种文件格式存储在不同类型的存储介质上。从上表中可以看出,针对不同类型的数据,需要相应的工具去读取,进行取证,有时对于加密数据,需要解密后才能取证。
十二、逆向工程工具
逆向工程 (又称反向工程),是一种产品设计技术再现过程。在软件工程领域,一般是先进行 UML 设计,然后用工具生成代码,这个过程叫正向工程;相应地,从代码生成 UML 设计图叫作逆向工程。最典型的逆向工程就是程序代码的反汇编或反编译,通过对可执行文件的反向编译还原出其源代码的过程。对于一些危害系统安全的、感染了病毒或者含有恶意代码的可执行文件,如果让其执行可能会引起破坏,造成无法挽回的损失,这时可通过逆向工程手段还原其源代码,在不执行代码的情况下通过对源代码的分析能够更容易地判断并找出恶意代码。Kali 系统提供的逆向工程工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
diStorm3 | 命令行 | diStorm3 是 Kali Linux 自带的一款轻量级、容易使用的反汇编 引擎。它可以反汇编生成 16 位、32 位和 64 位指令。它支持的指令 集包括 FPU、MMX、SSE、SSE2、SSE3、SSSE3、SSE4、x86-64、VMX、 AMDs、SVM 等。虽然 diStorm3 采用 C 语言编写 , 但可以被 Python、 Ruby、Java 快速封装。这样 , 用户可以使用 Python、Rudy 等脚本语言编写脚本,并引入 diStorm33,从而定制自己的反汇编工具。 |
edb-debugger | 图形用户界面 | edb-debugger 是一个跨平台的 x86/x86-64 调试器。它受到 Ollydbg 的启发 , 但是其目标是在 x86 和 x86-64 以及多个操作系 统上运行。Linux 是目前 edb-debugger 唯一官方支持的平台 , 但 FreeBSD,OpenBSD,OSX 和 Windows 端口正在进行不同程度的功能实现。 |
Flasm | 命令行 | Flasm 可以对 Flash 的 SWF 文件进行拆解 , 包括所有的时间表和 事件。通过反汇编 , 用户可以了解 Flash 编译器的工作原理 , 从而提 高用户的 ActionScript 技能。用户也可以手动对反汇编代码进行优 化 , 或者根据需要调整代码 , 然后利用 Flasm 将用户的更改应用于原 SWF, 替换原始操作 |
JavaSnoop | 图形用户界面 | JavaSnoop 是一个 java 应用程序安全测试工具,它允许已拦截的方法 , 篡改数据和 hack 运行在计算机上的 java 应用程序。通常在没 JavaSnoop 是一个 java 应用程序安全测试工具 , 它允许以拦截的 有源代码的情况下 , 测试 java 客户端的安全性是不可预知的。在有源 代码的情况下 , 可以运行一个简单的 java 程序 , 并在远程附加一个调 试器来调试它 , 单步运行 , 根据需要改变变量 , 但对于一个 applet 来 说要想做到这一点是有点困难的。有时,可能需要修改客户端和服务 器之间的通信,一般的做法是在客户端配置一个代理,在代理上修改 数据。问题的关键是,通信的数据通常不是明文的,可能使用了自定 义的协议、序列化的对象、加密的数据或者多种方式混合应用。这样 要想修改通信过程中的数据是比较困难的。JavaSnoop 试图解决这些 问题,它可直接附加到一个运行中的进程,类似于调试器,然后,篡 改方法调用、运行自定义代码或者对系统进行监视。 |
011yDbg | 图形用户界面 | 011yDbg 是一个新的动态追踪工具 , 将 IDA 与 SoftICE 结合起来, Ring 3 级调试器 , 非常容易上手 , 已代替 SoftICE 成为当今最为流行 的调试解密工具。同时还支持插件扩展功能,是目前最强大的调试工具。 |
Valgrind | 命令行 | Valgrind 是一款用于内存调试、内存泄漏检测以及性能分析的软 件开发工具。 |
在信息安全领域,逆向工程往往与编程相关,涉及程序代码的编译、反编译、调试等,其目的是分析代码、跟踪代码的运行,判断并评估代码执行的安全性,从中发现可能的恶意代码。
十三、压力测试工具
压力测试是一种基本的质量保证行为,测试的对象可以是一个独立的应用软件或者是一个完整的系统。它是每个产品在流向市场之前进行的一项重要的、全方位的质量检测。压力测试的基本思路很简单,它不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内存、CPU、磁盘空间和网络带宽。压力测试的时间往往持续很久,其目的是通过大量的、全面的操作使得产品长时间、高负荷地工作来检验产品的质量。Kali 系统提供的压力测试工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
DHCPig | 命令行 | DHCPig 可以发起一个高级的 DHCP 耗尽攻击。它将消耗局域网内的所 有 IP 地址以及阻止新客户端获取 IP, 同时它也防止旧客户端释放 IP 地址。 另外 , 它会发送无效的 ARP 去把所有的 Windows 主机震下线。 |
FunkLoad | 命令行 | FunkLoad 是一个功能和负载的 Web 测试仪 , 主要用于 Web 项目 , 对网 站项目进行功能测试、性能测试、负载测试(如音量的测试或寿命测试) 和压力测试。 |
iaxflood | 命令行 | IAX 是 Inter-Asterisk eXchange 的缩写 , 也就是 Asterisk 内部交换 协议。iaxflood 则是利用 IAX 设计缺陷而发起洪水式攻击的工具。 |
Inundator | 命令行 | Inundator 是一个支持多目标的、多线程的、队列驱动的、匿名的、 误用入侵检测系统。 |
MDK3 | 命令行 | MDK3 是一款无线 DOS 攻击测试工具 , 能够发起 Beacon Flood、 Authentication DoS、Deauthentication/Disassociation Amok 等模式的 攻击 , 另外它还具有针对隐藏 ESSID 的暴力探测模式、802.1X 渗透测试、 WIDS 干扰等功能。 |
rtpflood | 命令行 | rtpflood 可以洪水攻击 RTP 通话设备 , 实现拒绝服务的效果。 |
inviteflood | 命令行 | inviteflood 通过 TCP/UDP 进行泛洪攻击的 SIP/SDP 会话 , 该工具可 以在本机产生大量的流量,因为需要在本地读取数据进行对外发送。所以 在流量监控时可能会产生 40M/s 的速度。 |
SlowHTTPTest | 命令行 | lowHTTPTest 是依赖 HTTP 协议的慢速攻击 DoS 攻击工具 , 设计的基 本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度 缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并 发将导致 DoS。 |
THC-SSL-DOS | 命令行 | HC-SSL-DOS 是一款针对 SSL 的压力测试工具。该工具默认会同服务 器建立 400 个 SSL 连接 , 并且快速进行重新协商 Renegotiations, 以达到 大量消耗服务器 CPU 资源的目的。该工具目前只针对开启重新协商功能的 服务器,所以只要关闭该功能,就可以抵御该工具的攻击。 |
目前很多用于 DoS 攻击的工具被用来作为压力测试工具,它们的工作原理其实是相同的,都是通过大量的任务耗尽系统资源 (CPU、存储和网络带宽) 的方法来测试目标的抗压能力。
十四、报告工具
在一次渗透测试结束后,往往需要利用报告工具来生成报告,供工作人员进行存档或者工作报告。一些功能强大且友好的报告工具生成的报告不只包含最终的结果,还包括一些重要的原始数据、中间数据和对数据的分析,并且最终的报告形式可以是多样的、可视化的,用各种图表来生动形象地将结果更好地展示出来。Kali 系统提供的报告工具如下表所示:
名称 | 使用模式 | 描述 |
---|---|---|
CaseFile | 图形用户界面 | CaseFile 是 Maltego 的姊妹工具 , 功能非常类似于 Maltego。 CaseFile 主要针对数据进行离线分析 , 缺少 Maltego 的数据采集功能。 它可以导入各类数据 , 包括 Maltego 导出的数据。用户可以为信息添 加连接线、标签和注释 , 标记数据的关系。CaseFile 以图形化的方式 展现数据,方便分析人员找出隐含的数据关系。 |
CherryTree | 图形用户界面 | 支持富文本编辑和代码高亮 , 支持 Linux 和 Windows 平台。数据采用 CherryTree 是一个支持无限层级分类的笔记软件 , 由 Python 编与, sqlite 或 XML 存储 , 支持密码保护。支持从 NoteCase、KeepNote、 Knowit、Tomboy、TuxCards、Treepad、Leo 等笔记软件导入数据。 |
dos2unix | 命令行 | dos2unix 命令用来将 DOS 格式的文本文件转换成 UNIX 格式的文 本。 |
Dradis | 图形用户界面 | Dradis 框架是一个开源的、用 Ruby 开发的协作和报告平台。可 生成渗透测试报告,内容包括所提供的服务、使用的方法、发现的结 果和建议。 |
MagicTree | 图形用户界面 | MagicTree 是一个面向渗透测试人员的工具 , 可以帮助用户轻松 直接地进行数据合并、查询、外部命令执行和报告生成,所有的数据 都会以树形结构存储,非常方便。 |
Metagoofil | Shell 命令行 | Metagoofil 是一款利用 Google 收集信息的工具 , 目前支持的文 件类型有 Word、PPT、Excel 和 PDF, 结果可生成 HTML 报告文件。 |
上述报告工具都有其各自的应用领域,在使用时要根据实际情况来选择。但不管是哪种工具,都使得报告的生成更加自动和便利,节省了工作人员的时间。
十五、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 系统自带的安全工具如此之多,这些工具的功能、作用是什么 ? 什么时候应该使用什么工具 ? 也是一件令人烦恼的事情。为此本篇文章对一些常见的工具按照功能进行了分类介绍,为安全工作人员提供了便利。
暂无评论内容