Vulnhub靶机 covfefe
靶机:修改靶机的网络配置为桥接模式。
攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机。
靶机难度:(Intermediate)
目标:Covfefe is my Debian 9 based B2R VM, originally created as a CTF for SecTalks_BNE. It has three flags…
flag进度:3/3
1. 探测靶机ip地址
arp-scan -l
2.nmap -sV -Pn -A x.x.x.227
看来web服务开了两个端口80和31337
不过80就一个Nginx的界面
3.dirb http://x.x.x.227扫描目录
并无发现什么
4.扫描http://x.x.x.227:31337
发现robots.txt 和 .ssh
5.访问robots.txt
6.访问/taxes,获得第一个flag
7.访问其他两个目录,下载了两个文件
查看下载的两个文件源码,发现可能是之后可以利用的shell文件
8.访问看提示,应该是有ssh登录使用的密钥信息
在URL后添加提示的文件名之后,确实直接下载了密钥文件信息
9.查看公钥信息,知道登录名为simon
10.使用命令ssh -i id_rsa [email protected] 进行连接,发现私钥有加密,无法直接连接
11.对私钥文件进行破解,先使用ssh2john.py将私钥文件生成一个HASH文件
12.如果ssh2john无法直接使用,说明是没有添加进入环境变量里,找到ssh2john所在目录之后,使用ln -s命令添加一个软链接即可
13.最后使用john工具来破解,输入命令john key,破解密码为starwars
14.需要权限为700,所以要赋权,使用命令chmod 700 id_rsa
15.再次使用私钥文件,输入密码进行连接,ssh登录成功
16.直接进入root目录下,得到flag文件,不过没有权限直接读取
17.查看read_message.c文件,得到第二个flag
18.看下边的代码,发现经典的溢出漏洞,但是没有权限进行编译执行
19.寻找靶场里可以执行的二进制文件,输入命令find / -perm -4000 2> /dev/null,找到可执行的命令
20.执行该文件
21.该文件为编译好的文件,执行之后,发现提示信息,就是之前看到的源码
22.代码原理是,当我们输入一个字符串时, 它将与Simon 一起检查字符串的前5字符。如果匹配, 它将运行一个程序/usr/local/bin/read_message。现在输入它被分配大小为20个字节。因此, 我们溢出堆栈进入超过20个字节的数据。我们使用前5个字符是 "Simon", 然后是 15 个任意字符, 然后是 "/bin/sh" 在第21字节,溢出提权。
运行read_message之后,输入SimonAAAAAAAAAAAAAAA/bin/sh,提权成功,获得flag3
1、该靶机算是巩固复习了ssh以私钥登录,john解私钥的方法
2、找到源码,没有权限编译、执行,就先全局搜一下可执行的二进制文件。
3、阅读源码,构造堆栈溢出/bin/bash提权