实验实训8

一、在vps安装docker和docker-compose

1、腾讯云Ubuntu服务器安装docker

(1)使用sudo apt update与sudo apt upgrade -y命令更新系统

(2)安装必要的包

sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

(3)添加dockers的官方密钥

curl -fsSL https://mirrors.tencentyun.com/docker-ce/linux/ubuntu/gpg | sudo tee /etc/apt/trusted.gpg.d/docker.gpg > /dev/null

(4)添加腾讯云镜像的docker APT源代替官方源:

echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tencentyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(5)安装docker

sudo apt install docker-ce docker-ce-cli containerd.io

(6)使用sudo systemctl start docker与sudo systemctl enable docker命令启动并运用docker服务

(7)使用sudo docker --version命令查看docker版本

(8)使用sudo usermod -aG docker $USER命令将用户添加到docker组

(9)使用newgrp docker命令重新登陆

(10)测试非root用户运行dockers:docker run hello-world,成功。

2、腾讯云Ubuntu服务器安装docker-compose

(1)使用sudo apt install -y docker-compose下载安装docker-compose

(2)使用docker-compose -v命令查看docker-compose的版本,成功。

二、vulhub中的漏洞复现

腾讯云Ubuntu服务器配置vulhub靶场(后续因为实在打不开网页转战kali,靶场文件通过xftp传输上去)

1、tomcat弱口令/后台文件上传getshell

(1)使用cd vulhub/tomcat/tomcat8命令到tomcat8目录下,再使用sudo docker-compose up -d启动tomcat。

(2)查看虚拟机的公网,使用浏览器输入http:公网:8080(tomcat默认端口8080)访问网站。

(3)点击manager app在弹窗尝试用tomcat的默认账号密码tomcat/tomcat发现可以直接登录。

(4)先使用sudo vim shell.jsp命令编辑shell.jsp文件,写入一段脚本。然后使用sudo jar -cvf shell.war shell.jsp命令将写好的shell.jsp文件打包成一个.war文件。

(5)将打包好的.war文件使用xftp(新建会话里输入虚拟机公网、用户名以及密码)传输到Windows主机上

拖拽shell.war文件到shell文件夹中,即可完成传输

(6)将.war文件传输到tomcat上

(7)发现可以访问刚刚上传的文件

(8)打开蚁剑添加数据,连接该文件地址则可以查看tomcat的所有文件

漏洞成因:首先tomcat manager登录界面存在弱口令漏洞,可以通过tomcat/tomcat如此简单的用户名及密码登录,然后服务器未对上传文件的路径和内容进行严格的验证,攻击者可以将恶意文件(如JSP WebShell)上传到服务器,此处的shell.war压缩包被解压后里面的shell.jsp可以直接被访问。

2、weblogic弱口令/任意文件读取

(1)使用cd vulhub-master/weblogic/weak_password命令进入该目录下,启动服务

(2)浏览器打开http://公网:7001/console/login/LoginForm.jsp(默认端口7001)

注意虚拟机的公网会随着改变网络适配的模式、或者一些特殊命令而改变,不确定ip可以通过ifconfig查看

(3)使用账号加密码weblogic/Oracle@123登录,进入后台管理界面

(4)随后打开http://公网IP:7001/hello/file.jsp?path=/etc/passwd,成功读取passwd文件。

(5)使用burpsuite抓包密钥文件SerializedSystemIni.dat与全局配置文件config.xml两个文件

访问路径path改为security/SerializedSystemIni.dat

访问路径path改为config/config.xml

最终抓包得到密钥。

使用weblogic_decrypt.jar工具解密最终得到账户密码Oracle@123

漏洞成因:WebLogic管理控制台存在弱口令,通过后台可以读取敏感文件,甚至上传恶意脚本。

3、apache换行解析

(1)进入CVE-2017-15715文件后启动靶场

(2)浏览器上使用kali公网:8080成功打开网页

(3)编写php一句话木马做测试文件

(4)上传测试文件时用burpsuite拦截抓包

(5)选择十六进制,在此处插入换行符0a,然后点击forward放行此请求

(6)访问刚上传的testtt.php%0a,发现后最不是php的文件已经被成功解析,说明此靶场存在换行解析漏洞。

漏洞成因:Apache某些版本存在换行解析漏洞,攻击者通过伪造请求包将换行符注入服务器,改变原始请求的结构,导致服务器误解析并执行恶意命令。

4、apache druid RCE

(1)将在https://github.com/apache/druid/archive/druid-0.20.0.zip下载的压缩包本地解压通过xftp传输到kali上

(2)到druid/distribution/docker目录下启动docker服务

注意apache/druid的版本需要与直接下载的druid版本一致,我原先的下载版本是0.17.0结果打不开网页,解决办法是vim docker-compose.yml将apache/druid的下载版本手动修改为0.20.0。

(3)访问kali公网ip:8888进入Druid console的控制台界面,点击Load data ——>Local disk。

(4)逐步进行以下设置

Base directory: quickstart/tutorial/

File filter: wikiticker-2015-09-12-sampled.json.gz

(5)先打开bp的拦截功能,然后返回网页点击apply进行抓包,将抓包结果发送给bp的repeater板块。

(6)修改网页的请求为以下内容再点击send按钮发送。

(7)发现服务器执行js脚本里的id命令

漏洞成因:Apache Druid(某些版本)存在任意代码执行漏洞,服务端对用户输入的验证不足,导致攻击者可以构造恶意的查询请求来执行任意代码。

三、总结RCE漏洞的原理和利用条件及解决方案

1、根据以上的实验总结

(1) Tomcat弱口令/后台文件上传

原理:Tomcat默认使用的 /manager 后台界面存在弱口令,攻击者可以通过弱密码直接登录后台,上传恶意的 脚本文件,实现代码执行。

利用条件:Tomcat 使用弱口令以及上传功能未受限制,且能上传可执行文件。

解决方案:使用强密码,禁止默认的弱口令;限制后台访问,配置防火墙或ip白名单;禁止随意上传可执行文件。

(2) WebLogic 弱口令/任意文件读取

原理:WebLogic管理控制台存在弱口令,通过后台可以读取敏感文件,甚至上传恶意脚本。

利用条件:WebLogic 后台弱口令、后台有文件上传功能或任意文件读取漏洞。

解决方案:使用强密码,禁用默认用户;限制后台访问权限;修复WebLogic的已知漏洞。

(3) Apache换行解析漏洞

原理:Apache某些版本存在换行解析漏洞,攻击者可以通过伪造请求包将换行符注入服务器,改变原始请求的结构,导致服务器误解析并执行恶意命令。

利用条件:Apache存在换行解析漏洞,服务器允许对用户输入进行解析。

解决方案:对输入进行严格验证和过滤,防止恶意请求注入。

(4) Apache Druid

原理:Apache Druid(某些版本)存在任意代码执行漏洞,服务端对用户输入的验证不足,导致攻击者可以构造恶意的查询请求来执行任意代码。

利用条件:Druid未及时更新,存在漏洞;攻击者可以构造查询请求并发送到Druid服务器。

解决方案:更新Druid到最新版本;对外部接口进行严格的权限管理和验证,避免恶意请求进入系统。

2、综合

RCE漏洞的核心是攻击者通过发送恶意数据到服务器,最终导致服务器在未经授权的情况下执行攻击者的代码。

1、RCE 漏洞的产生因素:

(1)输入验证不足:服务器未能严格验证用户输入,恶意代码可以注入并被执行。

(2)执行危险函数:服务器端直接执行用户输入的数据,使用了如 eval()、exec() 等能够动态执行代码的函数。

(3)未安全配置:如应用默认弱口令、错误权限管理,或者系统漏洞未及时修复。

2、 RCE漏洞的解决方案

(1)加强访问控制:限制后台管理界面的访问;实施强密码策略,禁用默认账号和弱密码。

(2)安全的输入和输出:对用户输入严格验证,防止代码注入。

(3)定期更新和打补丁:及时更新Web应用和服务器组件,修复已知漏洞。

(4)启用安全防护机制:使用 Web 应用防火墙(WAF)来过滤恶意请求。

(5)实施文件上传限制,确保只能上传特定文件类型,并检查文件内容。

(6)最小化权限:运行 Web 服务时使用最低权限账户,限制被入侵后能访问的资源范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值