在这篇文章中,我们将探讨在目的 Linux 机器上搜寻密码的技巧,以此作为横向或纵向提升权限的一种本事。我们将回顾各种搜寻密码的技术,以及密码存储的一些常见位置。在搜寻过程中,我们将在脚本、配置文件、文件名、哈希值中发现凭证!
用户乃至管理员(root)重复使用他们的密码或将他们的密码留在系统可读的位置是很常见的。
除了系统中随处可见的密码,我们还可以在许多地方找到密码哈希或受密码保护且需要破解的文件。因此,本文将使用 Hashcat 和 John 进行大量破解。
之前我们在位于 webroot (/var/www) 的 config.php 文件中找到了 MySQL 的 root 凭据,同时也在 juggernaut 用户的 .bash_history 文件中找到了相同的凭据。
让我们登入 MySQL 并枚举数据库和表,假如幸运的话,我们大概会找到 Web 应用程序以及 MySQL 自身的用户名和密码。
mysql -u root -p
复制代码
Awesome!我们已进入了 MySQL,现在可以开始枚举数据库了。
show databases;
复制代码
前四个数据库是默认内置的数据库,在这四个数据库当中,我们最感爱好的是 mysql 数据库,因为这个数据库包含了可以让我们进入 MySQL 的登录凭据。
除了默认数据库之外,我们始终应该对自界说数据库感爱好,因为自界说数据库通常会与 Web 应用程序相干联。假如我们在这里找到一些密码哈希值,大概就能破解它们,并使用它们来增加我们的访问权限。 4.1、内置数据库中的密码哈希值 – MySQL
在 mysql 数据库中,我们可以使用 use 下令切换当前使用的数据库,然后使用 show 下令检察所有表,其中最令人感爱好的是该数据库中的用户表。
use mysql;
show tables;
复制代码
现在我们知道要检察哪个表了,可以使用以下下令转储所有行和列:
select * from user;
复制代码
这里有两个哈希值。不外,root 哈希值是我们用来进入 MySQL 的密码的哈希值,这是因为 数据库 mysql 生存着 MySQL 服务运行相干的状态、用户等信息。我们可以使用以下下令检查密码是否相同:
select password('SuperS3cureP@ssw0rd');
复制代码
此下令会将传递的字符串转换为哈希值。可以看到,user 表中 root 用户的密码哈希与我们用于登录 MySQL 的密码的哈希是相同的。但是,我们找到的 dev 用户的哈希是唯一的,因此我们可以将此哈希复制到攻击者机器上的 TXT 文件中,然后使用 hashcat 对其进行破解。 4.1.1、使用 Hashcat 破解 mysql 哈希
该表有两个用户名和密码哈希值。由于该数据库与网络应用程序绑定,因此破解这些哈希值很大概会让我们以不同用户的身份登录 Web 应用程序。但这也在意料之中,因为密码的重复使用,我们还可以测试其他地方。
我们可以将这些哈希带到攻击者机器上,就像我们对找到的 mysql 数据库凭据所做的那样,然后使用 hashcat 破解它们。但是,这些哈希与 Web 应用程序相干,而 Web 应用程序通常会使用某种哈希算法来存储密码。但目前,我们还不知道这些哈希是什么类型的。 4.2.1、使用 Hashcat 破解 md5 哈希
我们要做的第一件事是确定这些哈希的类型。我们可以使用内置在 kali 中的一款名为 hash-identifier 的出色工具来做到这一点。