文章目录
- 前言
- 信息收集
- 渗透过程
- 权限提升
前言
靶机下载地址:https://www.vulnhub.com/entry/covfefe-1,199/
攻击机:kali(192.168.132.139)
靶机:covfefe(192.168.132.146)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式
信息收集
使用arp-scan确定目标靶机
确定目标靶机IP为192.168.132.146
使用nmap扫描查看目标靶机端口开放情况
nmap -A 192.168.132.146
开放端口:22、80、31337
浏览器访问目标靶机80端口啥都没有
31337端口也为http服务,访问试试
http://192.168.132.146:31337/
说没有找到,使用dirb进行目录结构扫描
这几个文件好像在哪里见过,发现只要对linux系统稍微熟悉点的会发现这些文件都是家目录下才有的,并且有.ssh页面,里面一般有公钥和私钥
渗透过程
浏览器访问.ssh页面
http://192.168.132.146:31337/.ssh
http://192.168.132.146:31337/.ssh/id_rsa.pub
这三个文件分别对应着公钥、已接受的认证公钥、公钥,将三个文件全部下载下来转到/tmp目录下
查看已接受的认证公钥(authorized_keys)和公钥(id_rsa.pub)内容
出现了simon用户,
使用john进行爆破密码试试
john貌似只能破解hash,所以要先将这个密文转成hash
进入/usr/share/john,使用ssh2john.py将私钥进行转换
再次使用John进行破解
密钥starwars
成功破解出私钥明文,使用ssh进行连接
这里发现报错了,是因为权限太高了,降低权限
chmod 600 id_rsa
再次使用ssh进行连接
连接成功
查找一下flag
find / -name flag* 2>/dev/null
可以看到在root用户目录下有flag,但是肯定是没有权限的
查看当前目录下的文件
发现http_server.py,查看内容,成功发现了第一个flag
权限提升
查看一下当前用户的sudo命令
没有sudo命令,查看一下suid命令
find / -perm -u=s -type f 2>/dev/null
发现在/usr/local/bin路径下有一个可疑文件,进入这个目录看看
查看一下这个文件的类型和权限
可以看到这个文件好像进行了编译,并且所有用户对这个文件都具有执行的权限,运行一个这个文件试试
这里要输入名字,先随便输入一个名字试试
说你不是Simon,那再运行一次输入Simon试试
貌似是root用户给Simon的一封信,信的内容翻译过来的意思是在我的家目录里面备份了一份源码
那就进入root的家目录看看
可以看到read_message.c文件是所有用户都有读的权限的,查看一下源代码
flag2{use_the_source_luke}
里面放着flag2和c语言代码,进行审计看看
这里看到他只识别20个字符串长度,如果输入的字符串长度超过了20个会怎么呢
simon@covfefe:/usr/local/bin$ ./read_message
What is your name?
Simon012345678901234/bin/sh
Hello Simon012345678901234/bin/sh! Here is your message:
# whoami
root
# cd /root
# ls
flag.txt read_message.c
# cat flag.txt
You did it! Congratulations, here's the final flag:
flag3{das_bof_meister}
#
可以看到,超过20位的字符串会直接当作命令去执行,这里存在缓冲区溢出的漏洞,成功提权为root
切换至root目录,找到最后一个flag,靶机covfefe渗透结束