B-3:应用服务漏洞扫描与利用
1. 使用命令nmap探测目标靶机的服务版本信息,将需要使用的参数作为FLAG进行提交;
flag: {sV}
2. 通过上述端口访问靶机系统并探测隐藏的页面,将找到的敏感文件、目录名作为FLAG(形式:[敏感文件或目录1,敏感文件或目录2…,敏感文件或目录n])提交;
flag:{ssh,robots.txt}
3. 通过上述敏感文件或目录下载可利用的私钥和认证关键字文件,将私钥文件名和认证关键字文件名作为FLAG(形式:[私钥文件名,认证关键字文件名])进行提交;
flag:{id_rsa,authorized_keys}
4. 查找认证关键字文件中用于登录靶机服务器的用户名,将用户名作为FLAG提交;
下载id_rsa和authorized_keys
在authorized_keys中查找到用户名
flag:{simon}
5. 使用该用户名及私钥登录靶机服务器,将服务器返回信息的第一行结尾的最后一个英文单词作为FLAG提交;
flag:{established}
6. 将私钥文件进行格式转换后进行解密,将成功解密出的密码作为FLAG提交;
上题回显提示我们权限太开放无法连接,我们需要对其降权操作
降权后再次进行连接发现需要密码
破解ssh密钥
/usr/share/john/ssh2john.py id_rsa > hack #将私钥破解后保存到hack
使用john工具再次进行破解
ssh -i id_rsa simon@172.16.1.105 #重新连接
使用破解出来的密码进行连接
成功连接
flag:{starwars}
7. 利用靶机服务器上的溢出程序进行提权,将接收用户输入的缓冲区的大小作为FLAG提交;
成功连接后去查找重要的信息,在/home/simon目录中找到robots.txt
查看robots.txt并没有发现重要信息
进入root目录查询
ls -al #列出所有的文件,包括隐藏文件还可以观察文件权限
发现flag.txt没有权限查看,在root目录中还有read_message.c的文件,我们去进行查看
得到缓冲区的大小
flag{20}
8. 成功提权后将获得到的靶机/root下的唯一.txt文件的文件名作为FLAG(形式:[文件名])提交;
继续分析上题中的源码猜测是缓存区溢出漏洞
了解到总共需要输入20个字节,/bin/sh会直接溢出执行
flag:{flag}
9. 利用上述漏洞源码后将获得到的靶机/root下的唯一.txt文件的文件内容作为FLAG(形式:[文件内容])提交。
flag:{das_bof_meister}