红队笔记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.mzph.cn/news/753780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恒创科技:什么是BGP线路服务器?BGP机房的优点是什么?

在当今的互联网架构中,BGP(边界网关协议)线路服务器和BGP机房扮演着至关重要的角色。BGP作为一种用于在自治系统(AS)之间交换路由信息的路径向量协议,它确保了互联网上的数据能够高效、准确地从一个地方传输到另一个地方。那么,究竟什么是BGP…

车载电子电器架构 - 网络拓扑

车载电子电器架构 - 网络拓扑 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

单点登录:一把钥匙开启所有门

单点登录(SSO)技术,就像是一把开启企业数字化大门的钥匙,让用户一次登录,随处访问,极大地提升了工作效率和用户体验。具体到技术实现上,当用户首次登录时,SSO系统会进行认证&#xf…

Linux权限维持后门及应急响应

本次应急响应实验用kali和centos7来充当攻击机和靶机 kali:192.168.10.130 centos7:192.168.10.155 前提: 用kali连接到centos7上面ssh root192.168.10.155 一、SSH软链接 任意密码登录即可发现程度:|||||| ln -sf /usr/sbi…

CCleaner清理软件好不好 CCleaner怎么清理运行内存

CCleaner是一款使用简单,功能强大的电脑清理软件,该软件价格低廉,即使是学生也可以承担。那么这个软件究竟怎么样?可以怎么使用呢?下面就来带大家看一看CCleaner清理软件好不好,CCleaner怎么清理运行内存。…

Java-SpringAop 编程式事物实现

SpringAop 编程式事物实现 1. 数据库事物特性 原子性 多个数据库操作是不可分割的,只有所有的操作都执行成功,事物才能被提交;只要有一个操作执行失败,那么所有的操作都要回滚,数据库状态必须回复到操作之前的状态 …

redis-操作数据库

0 序言 一个Redis服务器可以包含多个数据库。在默认情况下,Redis服务器在启动时将会创建16个数据库:这些数据库都使用号码进行标识,其中第一个数据库为0号数据库,第二个数据库为1号数据库,而第三个数据库则为2号数据库…

每日五道java面试题之mybatis篇(一)

目录: 第一题. MyBatis是什么?第二题. ORM是什么?第三题. 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?第四题. 传统JDBC开发存在的问题第五题. JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的…

计算机考研|北航北理北邮怎么选?

北航985,北理985,北邮211 虽然北邮事211,但是北邮的计算机实力一点也不弱,学科评级,计算机是A 北航计算机评级也是A,北理的计算机评级是A- 所以,这三所学校在实力上来说,真的大差…

LeetCode 面试经典150题 274.H指数

题目: 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她…

DM数据库安装(Linux)

Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 先把压缩包扔过去 新建 dmdba 用户 创建用户所在的组,命令如下: groupadd dinstall 创建用户,命令如下: useradd -g dinstall -m -d /home/dmdba -s /…

由浅到深认识C语言(13):共用体

该文章Github地址:https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn…

ConKI: Contrastive Knowledge Injection for Multimodal Sentiment Analysis

文章目录 ConKI:用于多模态情感分析的对比知识注入文章信息研究目的研究内容研究方法1.总体结构2.Encoding with Knowledge Injection2.1 Pan-knowledge representations2.2 Knowledge-specific representations 3.Hierarchical Contrastive Learning4.损失函数5.训…

信息检索(十四):Simple Entity-Centric Questions Challenge Dense Retrievers

Simple Entity-Centric Questions Challenge Dense Retrievers 摘要1. 引言2. 背景和相关工作3. EntityQuestions4. 剖析问题:实体 vs 问题模式4.1 密集检索表现出流行偏差4.2 观察问题有助于泛化 5. 迈向稳健的密集检索6. 结论 原文链接:https://aclant…

一文教会你SpringBoot是如何启动的

SpringBoot启动流程分析 流程图 源码剖析 运行Application.run()方法 我们在创建好一个 SpringBoot 程序之后,肯定会包含一个类:xxxApplication,我们也是通过这个类来启动我们的程序的(梦开始的地方),而…

【趣味项目】命令行图片格式转换器

【趣味项目】一键生成LICENSE 项目地址:GitHub 项目介绍 一款命令行内可以批量修改图片格式的工具 使用方式 npm install xxhls/image-transformer -gimg-t --name.*.tiff --targetpng --path./images --recursiontrue技术选型 typeScript: 支持类型体操chal…

【网络安全】 MSF生成木马教程

本文章仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若读者因此作出任何危害网络安全的行为,后果自负,与作者无关。 环境准备: 名称系统位数IP攻击机Kali Linux6410.3.0.231客户端Windows 76410.3.0.234…

Python中的迭代器与生成器提高性能的秘密武器【第143篇—迭代器与生成器】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的迭代器与生成器:提高性能的秘密武器 在Python编程中,迭代…

[TJOI2010] 阅读理解 **STL**Tire树**

[TJOI2010] 阅读理解 题目链接: https://www.luogu.com.cn/problem/P3879 题目描述 思路1 (STL大法) 对每个单词,用map来映射存储它所在的短文编号 用set的好处: -------1. 存储直接自动排序,操作简单&…

【开源】SpringBoot框架开发毕业生追踪系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登陆注册模块2.2 学生基本配置模块2.3 就业状况模块2.4 学历深造模块2.5 信息汇总分析模块2.6 校友论坛模块 三、系统设计3.1 用例设计3.2 实体设计 四、系统展示五、核心代码5.1 查询我的就业状况5.2 初始化就业状况5.…