声明:此博客只是记录自己的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值。
浙公网安备 33010602011771号