红队笔记7--Web机器为Linuxdocker逃逸

其实,不知道大家有没有想过,我们之前练习的都是web机器是windows的版本,但是其实,在现实生活中,服务器一般都是Linux的版本,根本不可能用到windows的版本

                

那么如果是Linux的话,我们就有很多的困难,比如说Linux的木马,cs没有插件能上线Linux? 

IPC横向移动?? 有一些代理工具不支持Linux ??? 这时候困难就出现了,但是没事!!

道高一尺魔高一丈!!!!我们一起来看看怎么打!!!


声明:本次的靶场来自于红日的vulstack靶场,课件内容来自于万里老师!!!


目录

1.拿下Linux服务器

1.Struts2-045

2.Tomcat 8.5.19 _CVE-2017-12615

3.CVE-2018-12613

4.Docker逃逸

1.Dirty Cow逃逸

2.特权模式逃逸

3.通过写入技术写入特权账号

5.通过木马上线Ubuntu

2.拿下内网的Win7

1.内网信息收集

2.用EW搭建隧道

3.拿下DC域控

MS14-068

总结


以下是本次实验拓扑!!! 

1.拿下Linux服务器

首先,它的Linux服务器开了三个docker服务,wanli老师分别用御剑扫出来了三个端口

2001 struts2  2002tomcat   2003phpmyadmin 

1.Struts2-045

首先它是访问了2001端口

通过f12在代码种找到了 Sruts2的框架

然后就是用struts2的漏扫工具去扫了,然后就能发现是存在对应的漏洞

而且whoami的返回值是一个root!!!说明很有可能是一个Linux的服务器,但是不管怎么样,rce文件上传都是可以了的,这样就已经算是把第一个靶机拿下了~~

2.Tomcat 8.5.19 _CVE-2017-12615

然后他就是能访问到了tomcat的页面

而对于这个版本,是存在文件上传的!!! 

甚至只用做两步

  1. 将POST格式改成PUT格式 ,并且添加一个  /wanli.jsp/的目录
  2. 然后将jsp木马内容粘贴到post包内

这个应该是一个解析漏洞吧,之前没见过,不管咋地,反正就是getshell了

3.CVE-2018-12613

这个就有点逆天了,直接访问,可以免密码登录(现实生活中怎么可能)

然后这个靶场,是存在文件包含的漏洞的,通过构造poc,可以看见它的用户信息

于是就可以写shell进去了!!!

至此,三个靶场都被拿下了

4.Docker逃逸

上面也说到了,他是一个Linux的服务器,那么既然能够RCE那么我们就可以尝试一下信息收集

正常来说,ifconfig是可以看见网卡信息的,但是!!

  可能是受限于docker的环境,所以没有ifconfig的命令

 ip addr  //可以换成这个命令

所以我们在看见ifconfig用不了的时候,我们就可以去想一下是不是docker环境

ls -a 

用这个命令看一下能否看见 .docker.env这个隐藏文件,或者

cat /proc/1/cgroup

如果是docker环境,那么就要docker逃逸

1.Dirty Cow逃逸

dirty cow漏洞可以让我们获取只读内存的写的权限,我们首先利用dirty cow漏洞写入一段shellcode到VDSO映射的一段闲置内存中,然后改变函数的执行顺序,使得调用正常的任意函数之前都要执行这段shellcode。这段shellcode初始化的时候会检查是否是被root调用,如果是则继续执行,如果不是,则接着执行clock_gettime函数,接下来它会检测/tmp/.X文件的存在,如果存在,则这时已经是root权限了,然后它会打开一个反向的TCP链接,为Shellcode中填写的ip返回一个Shell。\n\n这种利用方法利用成功的前提是,宿主机的内核有dirty cow漏洞。

但是,在操作的过程中,就发现了一下问题

  1. git命令使用不了(虽然可以上传脚本)
  2. make命令用不了(这基本上就说明了这个漏洞是不存在的)
  3. ping 百度 8.8.8.8也ping不通,(apt install || update肯定是不行的)

所以不管存不存在这个漏洞,肯定是利用不了的

2.特权模式逃逸

使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。

所以我们可以先用这个命令判断一下

fdisk -l

如果能看见如下的情况,基本上就可以逃逸了

 然后就是要挂载了:原理就是将Linux的根目录挂载到我们自己的目录下,然后我们呢在自己的目录下操作,就等于直接在Linux的bash下操作!!!

mkdir wanli

 创建成功

然后就是挂载了

mount  /dev/sda1   wanli    //将Linux的根目录挂载到wanli目录下

然后就是去查看一下是否挂载成功了

okay 那么我们现在能查看系统文件了,但是我们还想远程上去捏!!

3.通过写入技术写入特权账号

我们的想法就是创建一个特权用户!!在此之前,先来普及一些知识

cat /etc/passwd

 username : password : UserID : GroupID : comment : home directory : shell 
用户名 : 密码 : 用户表示符 : 组标识符 : 注释性描述 :主目录 : 登陆的shell 

然后就是下一个命令了

cat  /etc/shadow   //影子文件

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

那么了解完以上的知识之后,我们就可以开始操作了

我们可以先写入以下两条命令,顺便来解释一下

  1. 第一行命令就是追加一个wanli账号,并且具有root的权利
  2. 第二行就是创建wanli的密码,并且写入 /etc/shadow 文件其中的密码,其他直接照搬root的就好了,对于密码我们可以自己先去创建一个账号,然后再去看影子文件,然后照搬那个密码就好了!!!!

至此,我们就得到了一个root的账户,但是我们会发现这样的一个问题,虽然有这个账号,但是是ssh不上的!!!! 这里可能是禁止了root账户的远程登录

咋办呢???汗流浃背了      

但是还是那句话,道高一尺魔高一丈!!!

我们可以先创建一个普通用户,然后以普通用户的身份ssh连接,然后再 su wanli就好了!!

可以看见成功完成dokcer逃逸,拿下Ubuntu的bash!!!

5.通过木马上线Ubuntu

那既然都能get实体shell了,那我们肯定是要上线cs或者msf啦!!!

但是又遇到问题了,cs上线Linux??? 这又要去某hub上下载插件了呀!!!

那我肯定不想啊!!但是msf能上线Linux!!!

msf也集成了一键生成木马,不过记得它的后缀名字是elf哦!!

生成之后,我们就可以部署一个http服务(同一网段)!!然后让Ubuntu去下载

然后去Ubuntu中的shell去执行下载木马的命令

然后就是去Msfconsole监听就好 

记得该权限,然后运行就好 

至此,我们就拿下了第一台Web_Linux机器了!!!!

2.拿下内网的Win7

虽然这里它最后是失败了,但是还是对我们来说能产生一定的思考和收获的!!!

1.内网信息收集

进到内网,肯定是先进行信息收集,能发现还有一个网卡!!!

那么就可以去扫描,,可以写shell脚本实现域内探测主机,不过麻烦了!!我们直接上传fscan!!一键探测!

其中130 是DC ,128是域内主机(而且都存在ms17-010!!!)

2.用EW搭建隧道

那么就算发现内网存在漏洞,那也没有用捏!!流量出不来!!

所以我们就要搭建隧道了!!!

这里用的EW,我在以前讲过,确实挺强大的,确实挺不错的!!主要是比frp简单

然后这里它用的是正向连接,上传EW到Linux服务器,然后用启用socks5代理,让kali正向连接1080端口,这样就通过Ubuntu的1080端口,我们就打通了一条进入内网的隧道!!!!

其实这里用正向连接还是反向连接主要要看目标出不出网以及防火墙对流量的过滤情况,

还是那句话!!!视情况而定!!!!

  

这样就开启了Ubuntu上的8765端口,等待我们kali去连接

修改以下 /etc/proxychains4.conf 这个文件,让我们以后的流量直接走socks5 Ubuntu代理!!

至此,我们可以利用kali来渗透内网啦!!!!msf直接走起

一套流程下来,竟然是如此熟悉!!!

但是网安的魅力,总在与其多变性,在这里,就算是能扫描出来这个漏洞但是也是攻击不上!!

这是我之前的,也是发现会出现此类情况,即使能检测出漏洞,但是也是攻击不成功

当然了,wanli老师在这里也是使用了其他的解决方法

1. 更换payload,毕竟我们连进去用的也是正向连接,但是永恒之蓝是用的反向连接

set payload  windows/meterpreter/bind_tcp

但是还是打不通!!!

2.更换永恒之蓝的利用版本 

但是非常可惜,就算是尝试了所有的版本的永恒之蓝也是打不进去

 也许这就是红队的魅力吧,不断遇到问题,不断解决问题

这里他就没有展示别的攻击方法了,手动上线了一波

这样,也算是勉勉强强地拿下来域内地一台Windows7了吧!!

3.拿下DC域控

既然我们都拿下了域内的机器了,那就横向移动咯!!!

这里,我们不用IPC ,不用psexec ,不用wmic 这些。来尝试一下漏洞利用

MS14-068

当然了这个漏洞和黄金票据,白银票据那些有些像,都算是一种PTT的攻击,(域内攻击老多了,像什么  PTH  PTT PTC 等等等等,不列举了)但是他不需要去知道krbtgt的hash!!

这个漏洞不需要拿到 Krbtgt 或者 服务账号的ntlm hash ,但是需要DC没有打补丁!!!

以下是它的原理:

该漏洞最本质的地方在于Microsoft Windows Kerberos KDC无法正确检查Kerberos票证请求随附的特权属性证书(PAC)中的有效签名,这里面的签名就是上面提到的服务检验和以及KDC校验和。导致用户可以自己构造一张PAC。 签名原本的设计是要用到HMAC系列的checksum算法,也就是必须要有key的参与,我们没有krbtgt的hash以及服务的hash,就没有办法生成有效的签名,但是问题就出在,实现的时候允许所有的checksum算法都可以,包括MD5。那我们只需要把PAC 进行md5,就生成新的校验和。这也就意味着我们可以随意更改PAC的内容,完了之后再用md5 给他生成一个服务检验和以及KDC校验和。

不知道大家还记不记得以前我讲的白银票据

为了防止白银票据,Microsoft引进了PAC

PAC:Privilege Access Certificate 在TGT里面包含PAC,PAC包含用户的sid,用户所在的组

在白银票据中,有些服务并没有验证PAC这一步,这也是白银票据能成功的前提,但是如果加入了验证服务的这一步呢??? 那么白银票据是不是就失败了!!!而且!只有KDC能制作PAC!!

难道就要束手无策了吗??? 那肯定不是捏    

于是这里就是MS14-068 的魅力了!!!

首先检测有没有打补丁(如果打了基本上就没有机会了)(在域控上检查哦)

systeminfo | find "KB3011780"

 如果没有打补丁的话

那么就可以进行攻击啦!!!

whoami /user    //这个可以查看它的sid值

然后就是用工具伪造一张TGT

伪造完TGT之后就是要将他写入内存里了,首先确保当前是无法访问到DC上的!

首先将本机的票据清除 

mimikatz.exe  kerberos::list  //查看当前票据信息
mimikatz.exe  kerberos::purge

 可以看见是成功清除票据信息的

然后将刚才生成的TGT写入内存中

然后此时,我们就可以看见我们能够访问到域控的C盘了

接下来就是利用Psexec这样的工具拿下它的shell了(这里我还没学)

                  

总结

对于这一次的vulstack靶场环境,还是比较真实的还原了企业内部的环境的(就web机器来说)

其中遇到的问题也是比较贴切生活的,像用的Linux服务器,cs存在对应的限制,msf上线不成功,proxychains的摇曳等等等等,都是现实生活中会遇到的众多的问题,总之还是那句话

学海无涯,学无止境,cease to live ,cease to struggle !!!

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/450920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【正点原子STM32探索者】CubeMX+Keil开发环境搭建

文章目录 一、简单开箱二、资料下载三、环境搭建3.1 安装Keil MDK3.2 激活Keil MDK3.3 安装STM32CubeMX3.4 安装STM32F4系列MCU的Keil支持包 四、GPIO点灯4.1 查阅开发板原理图4.2 创建STM32CubeMX项目4.3 配置系统时钟和引脚功能4.4 生成Keil项目4.5 打开Keil项目4.6 编译Keil…

K8s的kubeadm方式部署集群实例

目录 一、准备环境 主机清单 修改主机名 设置防火墙、selinux状态 主机名解析 固定ip 重启网卡 同步时间 关闭swap分区 二、获取镜像 三、安装docker 四、配置kubeadm源 安装依赖包及常用插件 1.配置kubeadm源,安装对应版本 2.加载相关ipvs模块 3.配…

Day17:开发流程、开发社区首页、项目的调试、版本控制

开发流程 一次请求过程 先开发DAO,再开发service,再开发controller 开发社区首页的分布实现 显示前10个帖子 创建帖子数据表 CREATE TABLE discuss_post (id int NOT NULL AUTO_INCREMENT,user_id varchar(45) DEFAULT NULL,title varchar(100) DEF…

使用Java的等待/通知机制实现一个简单的阻塞队列

Java的等待/通知机制 Java的等待通知机制是多线程间进行通信的一种方式。 有三个重要的方法:wait(),notify() 和以及notifyAll() wait():该方法用于让当前线程(即调用该方法的线程)进入等待状态并且释放掉该对象上的…

SpringBoot中配置nacos

SpringBoot中配置nacos 在SpringBoot中使用nacos一定要注意name&#xff0c;使用openfeign特别要注意这个点。 spring:application:name: item-service需要的依赖包 config需要引入的包 <dependency><groupId>com.alibaba.cloud</groupId><artifactId…

搜索引擎:引擎霸屏推广的未来趋势解读-华媒舍

1. 引擎霸屏推广 引擎霸屏推广是一种广告推广策略&#xff0c;通过借助搜索引擎的广告服务&#xff0c;让广告展示在用户搜索关键词时的首页位置&#xff0c;以吸引潜在客户点击进入宣传页面。这种推广方式具有精准定位和较高的曝光率&#xff0c;对于产品推广和品牌塑造非常有…

IT驻场外包能提供哪些类型的服务?

随着信息技术的飞速发展&#xff0c;IT驻场外包作为一种高效的企业服务模式&#xff0c;正逐渐成为企业提升效率和削减成本的首选。这种外包形式将专业的IT人员直接派驻到客户现场&#xff0c;为企业提供全方位的技术支持和服务。本文将深入研究IT驻场外包所能提供的多种服务类…

51单片机基础篇系列-超声波测距

&#x1f308;个人主页&#xff1a;会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” HC-SR04产品特点 典型工作用电压&#xff1a;5V 超小静态工作电流&#xff1a;小于2mA 感应角度&#xff1a;不大于15度 探测距离&#xff1a;2cm-400cm 高精度&#…

新一代国产人工心脏推出,《2024心衰器械白皮书》重磅发布

2024年3月2日&#xff0c;永仁心医疗“EVA-Pulsar™新品发布会”在京举办。在国内外众多领域知名专家、投资人、企业家的共同见证下&#xff0c;永仁心最新一代EVA-Pulsar™人工心脏&#xff08;心室辅助装置&#xff09;重磅发布。 这款人工心脏集长期植入、超小体积、脉动血…

求最大公约数

本期介绍&#x1f356; 主要介绍&#xff1a;求两数的最大公约数&#xff0c;通过辗转相除法计算。 文章目录 1. 求最大公约数2. 遍历法3. 辗转相除法 1. 求最大公约数 题目&#xff1a;给定两个数&#xff0c;求这两个数的最大公约数。   最大公约数&#xff1a;指两个或多个…

MySQL--执行一条 select 语句,期间发生了什么?

执行一条 SQL 查询语句&#xff0c;期间发生了什么&#xff1f; 连接器&#xff1a;建立连接&#xff0c;管理连接、校验用户身份&#xff1b;查询缓存&#xff1a;查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行。MySQL 8.0 已删除该模块&#xff1b;解析 …

AI“造神运动”终结,杀死,重生

AGI回归本质&#xff0c;百亿美金创业机会涌现。 “专注AI技术迭代会让我焦虑&#xff0c;关注业务我不会焦虑&#xff0c;有些问题十年前存在十年后还在&#xff0c;我现在就明确不卷模型&#xff0c;只思考如何让产品能自我‘造血’。” 一位正卷在AI创业洪流里的硅谷创业者…

Qt对象树

对象树 1.QLabel* label new QLabal(this) 这个代码在new了之后没有释放&#xff0c;不会造成内存泄漏。 原因是这个对象是挂到了对象树上。 qt就是设计了一个n叉树&#xff0c;将各种元素组织起来了。 例如以下图 通过树形结构&#xff0c;就把界面上显示的这些控件对象…

韶音运动耳机好用吗?南卡、墨觉、韶音骨传导耳机三款全面评测

音乐是我生活中不可或缺的调味品&#xff0c;它伴随着我度过了无数个清晨的慢跑以及夜晚的悠闲散步。但是传统入耳式耳机总是让我感到不适&#xff0c;虽然它有着不错的降噪能力&#xff0c;但是很容易忽视周围环境的安全&#xff0c;而且运动的时候老容易掉。然后我遇到了骨传…

新质生产力浪潮下,RPA如何成为助力先锋?

新质生产力浪潮下&#xff0c;RPA如何成为助力先锋&#xff1f; 在数字化、智能化的今天&#xff0c;“新质生产力”一词越来越频繁地出现在我们的视野中。那么&#xff0c;究竟什么是新质生产力&#xff1f;它与我们又有什么关系&#xff1f;更重要的是&#xff0c;在这一浪潮…

【动态规划】代码随想录算法训练营第四十六天 |139.单词拆分,关于多重背包,你该了解这些! ,背包问题总结篇!(待补充)

139.单词拆分 1、题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict&#xff0c;判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词…

LeetCode:206.反转链表

206. 反转链表 解题过程 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; …

【C++】C++学习前言

C前言与发展 一.什么是C二.C的发展史三.C的重要性 一.什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪…

2023年中国抗DDoS市场规模现状及竞争格局,公有云抗DDoS是主要增长点

分布式拒绝服务&#xff08;DDoS&#xff09;是在DoS基础之上产生的一种新的攻击方式&#xff0c;具有多对一的攻击模式。它通过制造伪造的流量&#xff0c;使得被攻击的服务器、网络链路或是网络设备&#xff08;如防火墙、路由器等&#xff09;负载过高&#xff0c;无法处理正…

NUMA架构

UMA架构 在单cpu的时代&#xff0c;cpu与内存的交互需要通过北桥芯片来完成。cpu通过前端总线(FSB&#xff0c; front Side Bus)连接到北桥芯片&#xff0c;由北桥芯片连接到内存&#xff08;内存控制器是集成在北桥芯片里的&#xff09;。为了提升性能&#xff0c;cpu的频率不…