Kali渗透测试:身份认证攻击

简介: Kali渗透测试:身份认证攻击

Kali渗透测试:身份认证攻击
1.1 简单网络服务认证的攻击
网络上很多常见的应用都采用了密码认证的方式,如SSH、Telnet、FTP等。这些应用被广泛应用在各种网络设备上,如果这些认证模式出现问题,就意味着网络中的大量设备将会沦陷。

针对这些常见的网络服务认证,我们可以采用一种“暴力破解”的方法。就是把所有可能的密码都尝试一遍。一般有以下3种思路:

1.1.1 纯字典攻击
这种思路最简单,攻击者只需要利用攻击工具将用户名和字典中的密码组合起来,一个一个尝试即可。破解成功的概率与选用的字典有很大关系。

1.1.2 混合攻击
混合攻击依靠一定的算法对字典中的单词进行处理之后再使用。一个最简单的算法就是在这些单词前面或者后面添加一些常见的数字,如一个单词“test”,经过算法处理之后就会变成“test1”“test2”……“test1981” “test19840123”等。

1.1.3 完全暴力攻击
这是一种最为“粗暴”的攻击方式,实际上这种方式并不需要字典,而是由攻击工具将所有的密码穷举出来。这种攻击方式通常需要很长时间,也是最不可行的一种方式。下图给出了一种使用SSL服务的身份验证界面, IP地址为192.168.68.125的服务器上提供了SSL服务,这个服务的拥有者将密码提供给合法用户,用户通过密码认证之后就可以访问里面的资源了。

image.png

下面讲解针对这种网络身份验证的渗透过程,这里我们使用Hydra作为渗透攻击。Hydra的本意为希腊神话中的九头蛇,是一款非常强大的网络服务密码破解工具。Hydra支持30多种常见的网络服务或者协议的破解,其中包括ARP、Cisco AAA验证、FTP、HTTP、POP3、SNMP、SSH、Telnet等。

在Kali中我们可以在Applications 中选择“05-Password Attacks”–> “Online Attacks”–>“Hydra”来启动这个工具,如下图所示:

image.png

Hydra是一款命令行工具,它的命令格式如下:

└─# hydra
Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [-m MODULE_OPT] [service://server[:PORT][/OPT]]

Options:
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  -C FILE   colon separated "login:pass" format, instead of -L/-P options
  -M FILE   list of servers to attack, one entry per line, ':' to specify port
  -t TASKS  run TASKS number of connects in parallel per target (default: 16)
  -U        service module usage details
  -m OPT    options specific for a module, see -U output for information
  -h        more command line options (COMPLETE HELP)
  server    the target: DNS, IP or 192.168.0.0/24 (this OR the -M option)
  service   the service to crack (see below for supported protocols)
  OPT       some service modules support additional input (-U for module help)

Supported services: adam6500 asterisk cisco cisco-enable cvs firebird ftp[s] http[s]-{
   head|get|post} http[s]-{
   get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{
   cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp

Hydra is a tool to guess/crack valid login/password pairs.
Licensed under AGPL v3.0. The newest version is always available at;
https://github.com/vanhauser-thc/thc-hydra
Please don't use in military or secret service organizations, or for illegal
purposes. (This is a wish and non-binding - most such people do not care about
laws and ethics anyway - and tell themselves they are one of the good ones.)

Example:  hydra -l user -P passlist.txt ftp://192.168.0.1

使用Kali自带的一个包含弱口令的字典small.txt,它位于/usr/share/wordlist/dirb目录中。假设事先已经知道用户名为kali,只需要破解密码:

┌──(root💀kali)-[~]
└─#hydra 192.168.68.242 ssh -l kali -P /usr/share/wordlists/dirb/small.txt -t 6 -v -f

其中- P用来指明使用的字典为small.txt,破解时需要用户名为liuxiaowei(假设事先已知),-t指明破解时的线程数,- v显示详细信息,-f表示成功找到一个密码后停止。下图所示给出了Hydra执行攻击的具体过程:

image.png

如果成功破解出了用户名和密码,结果将会以绿色显示(本人的操作背景就是绿色,所以不明显),Hydra得到的结果如下图所示:

image.png

接下来,我们尝试不使用字典,而使用完全暴力破解的方式。假设我们知道密码为4位,而且都为字符,那么我们可以用4:4:1来表示所有的长度为4位的纯字符密码。因为这种破解方式很慢,所以我们将线程设置为6(数值不能过大),破解命令如下:

┌──(root💀kali)-[~]
└─#hydra 192.168.68.125 ssh -l kali -x 4:4:a -t 6 -v -f

Hydra执行完全暴力破解攻击的具体过程如下图所示:
image.png

在攻击的最后,我们得到了可以登录的用户名和密码。但是这个过程十分漫长,因为不使用字典,单纯暴力破解是一件极为困难的事情。其他常见协议的破解方式都大同小异,只有Web页面都区别比较大。下面列出常见的协议破解命令:

#破解Telnet
┌──(root💀kali)-[~]
└─# hydra 目标ip地址 telnet -l 用户名 -P 密码字典 -s 23
# 破解IMAP
┌──(root💀kali)-[~]
└─# hydra - L 用户名字典 -P 密码字典 目标地址 service imap
# 破解MySQL
┌──(root💀kali)-[~]
└─# hydra 目标ip地址 mysql -l root -P 密码文件
相关文章
|
21天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
网络协议 安全 Linux
Kali渗透测试:拒绝服务攻击(一)
Kali渗透测试:拒绝服务攻击(一)
|
1月前
|
存储 网络协议 安全
Kali渗透测试:拒绝服务攻击(二)
Kali渗透测试:拒绝服务攻击(二)
|
1月前
|
安全 网络安全 数据库
Kali测试:散列密码破解(一)
Kali渗透测试:散列密码破解(一)
|
1月前
|
安全 应用服务中间件 网络安全
Kali测试:散列密码破解(二)
Kali渗透测试:散列密码破解(二)
|
1月前
|
Web App开发 测试技术 网络安全
Kali 测试:使用Burp Suite 对网络认证服务的攻击(一)
Kali 渗透测试:使用Burp Suite 对网络认证服务的攻击(一)
|
1月前
|
网络安全 数据安全/隐私保护 安全
Kali 测试:使用Burp Suite 对网络认证服务的攻击(二)
Kali 渗透测试:使用Burp Suite 对网络认证服务的攻击(二)
|
10天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
63 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
242 7
Jmeter实现WebSocket协议的接口测试方法