宝塔后渗透-添加用户_反弹shell

本文介绍了两种获取宝塔(BT)后台权限的方法:一是直接获得BT后台权限后如何远程控制服务器;二是通过添加新用户的方式绕过原有认证。文章详细解释了如何通过计划任务反弹Shell以及如何利用SQLite数据库文件default.db来添加新用户。

更新时间:2022年11月21日
image.png

1. 背景介绍

对于想拿到bt后台来说,非常的艰难:无非是通过bypass之后提权,直接拿到服务器的root权限,然后再去宝塔后台。
当然,还有一种运气十分爆棚的方法:发现了bt的账密信息,可以直接登陆了bt后台(这种情况确实在实战中遇到过)
所以在这里就有了两个方向:

  • 直接拿到了bt的后台,想去服务器上大有可为
  • 拿到了服务器的权限,执行bt命令之后,利用原来的账密发现无法登录bt后台,但是又想去bt的后台上逛逛。

针对以上两种情况来说,在这里一一进行学习分析。

2. 有BT后台

这种是拿到bt的后台之后,想去服务器上逛逛,至于bt后台如何来的,有很多方法,也有很多的可能,我们只分析如何去服务器上。
bt的后台里面可以建一个计划任务进行反弹shell到你的vps上:

image.png

在计划任务中,可以通过bash反弹的方式将shell弹到你的vps上去,此时先使用你的vps生成一个反弹的命令:

image.png

在任务计划中,选择shell脚本模式,添加任务名称,自定义执行周期,在收到反弹的shell之后,停止或者删除任务计划:

image.png

在你的vps上开启监听模式:

image.png

此时去执行任务计划,即可收到弹回来的shell

image.png

image.png

3. 添加BT用户

在大部分情况下,我们得到的都是一个root权限的shell(没有root的请先提权到root),此时我们想去访问bt的话,只需要在命令行里面输入命令:bt,再输入14即可:

image.png

此时就会出现默认的bt初始账号密码,但是大部分情况下,你去登录的话,会发现密码已经被修改过了:

image.png

此时如果重置bt的密码的话,会非常容易被发现,我们可以选择利用BT的数据库给自己添加一个账号密码上去。

3.1 下载宝塔数据库文件

宝塔的数据库文件位置:
bt数据库位置:/www/server/panel/data/default.db
思路是你需要将该文件下载到本地,添加信息之后再将文件上传替换原来的default.db
下载到本地的方法也有很多,可以直接借助bt中的网站,将default.db复制过来之后,将权限修改为777,防止因为权限问题,无法下载该文件。
在这里注意:直接在bt的机器上利用Python起一个http服务,是无法直接访问的,因为bt对端口的管控比较严格。

3.2 添加用户

下载下来之后,使用navicat数据库管理工具打开该文件,具体的方法如下:
首先新建一个SQLite的数据库连接,然后打开这个下载下来的db文件,不用写密码:

image.png

在这里不用自己写密码,后面它会自动填充:

image.png

找到users表,然后添加数据:
因为bt用户的加密方式为:

password = md5(md5(md5(password) + '' + '_bt.cn') + salt)

所以如果想要自行添加新的用户,可以先把default.db下载到本地,此时里面有原来的用户密码,再在bt里面操作,选择5,修改用户密码,再下载修改之后的default.db文件,将修改之后的default.db中的内容添加到第一个default.db里面去,即可完成用户的新增:

这个方法是前台可以自己生成,也可以用以前的,记得id应该不要和第一个重复,不然会报错:

image.png
新增之后,将文件保存,然后将bt端的db文件备份,再替换掉原来的db文件,直接访问,利用新的账密即可登录成功。

4. 注意事项

在新增bt用户的过程中,一定要记得备份原来的default.db文件,防止出现异常。。。

### 宝塔在 MySQL 添加数据库时 127.0.0.1 状态异常的原因 #### MySQL 服务未启动 若 MySQL 服务未正常启动,宝塔面板无法连接到本地 MySQL 服务(127.0.0.1 代表本地),从而导致状态异常。可能是由于服务器重启、服务崩溃等原因造成服务未启动。 #### 端口被占用 MySQL 默认使用 3306 端口,如果该端口被其他程序占用,宝塔面板无法通过 127.0.0.1:3306 连接到 MySQL 服务,进而出现状态异常。 #### MySQL 配置文件错误 my.cnf 等 MySQL 配置文件中存在错误配置,如监听地址、端口号设置错误,会使 MySQL 服务无法正常监听 127.0.0.1:3306,导致连接异常。 #### 权限问题 宝塔面板没有足够的权限访问 MySQL 服务,或者 MySQL 服务配置了错误的权限,不允许本地地址(127.0.0.1)连接,会出现状态异常。 #### 防火墙限制 防火墙可能阻止了宝塔面板对 MySQL 服务的访问。如果防火墙规则中禁止了 127.0.0.1 对 3306 端口的访问,就会导致连接异常。 ### 解决办法 #### 启动 MySQL 服务 可以通过宝塔面板的软件管理,找到 MySQL 服务,点击启动按钮。也可以使用命令行启动,以 CentOS 为例: ```bash systemctl start mysqld ``` #### 检查并释放端口 使用以下命令检查 3306 端口是否被占用: ```bash netstat -tlnp | grep 3306 ``` 如果端口被占用,找到占用该端口的程序,停止该程序或者修改其使用的端口。 #### 检查并修正 MySQL 配置文件 打开 MySQL 的配置文件(通常为 /etc/my.cnf),检查监听地址和端口号是否正确: ```ini [mysqld] bind-address = 127.0.0.1 port = 3306 ``` 修改后重启 MySQL 服务: ```bash systemctl restart mysqld ``` #### 检查并修正权限 可以使用以下 SQL 语句确保 root 用户可以从本地(127.0.0.1)连接: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 其中 'your_password' 是 root 用户的密码。 #### 配置防火墙规则 如果使用的是 CentOS 的 firewalld 防火墙,可以使用以下命令开放 3306 端口: ```bash firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值