SSH-私钥泄露
0x00 环境配置
- SSH-私钥泄露靶机
- Kali 攻击机
- 靶机与攻击机处于同一网段
0x01 信息收集
寻找靶机IP
可以使用
netdiscover
或者nmap
进行IP扫描netdiscover 10.112.132.0/24 nmap 10.112.132.0/24
扫描服务
因为是使用了nmap进行了扫描IP , 所以顺便把服务也一起扫描了
nmap -A -T4 10.112.132.16
目录扫描
从nmap扫描结果得知 , 一共存在3个端口 22(SSH) , 80(HTTP) , 31337(ELIET) , 在nmap 综合扫描选项扫描靶机 , 能发现 31337也是运行Http服务 , 对两个Http服务的端口进行目录扫描 , 80结果为空 , 31337结果发现
.ssh
文件夹robots.txt 有个/taxes目录 , 访问得到一个Flag
访问
.ssh
下载三个文件 a. authorized_keys - 公钥
b. id_rsa - 私钥
c. id_rsa.pub - 私钥证书
0x02 SSH连接
关于SSH的一些知识-转自TelCruel
传送门
公钥
查看公钥发现用户名为
simon
私钥
尝试使用公钥登录 , 提示没权限
ssh -i id_rsa simon@10.112.132.16
修改权限 , 再次尝试登录 , 提示需要密码
chmod 600 id_rsa ssh -i id_rsa simon@10.112.132.16
破解私钥
使用
ssh2john
对 id_rsa 秘钥信息转为 John可以识别的信息 , 让使用zcat 破解isacrack 信息/usr/share/john/ssh2john.py id_rsa > isacrack zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules isacrack
破解出密码为:
starwars
, 再次登录
信息收集
在root 目录下 有个
flag.txt
与 ‘read_message.c’ , flag.txt没权限打开 , read_message.c查看发现第二个flag , 且提示我们需要执行这个源码查找已经编译的程序,并执行
find / -name "*read_message*" 2>/dev/null
0x03 提权
这个程序是一个简单的溢出攻击(然而我不会 (汗颜)),直接照搬TelCruel
的WP了
这里因为gets(buf)没有限制读取的长度,但是buf[]这个数组只能储存20个字符,那么超过20个字符的就会存入缓冲区,将后面的内容覆盖。然后当执行到execve的时候原来要执行program[]内的字符,被覆盖后就可以利用了。所以只要输入SimonAAAAAAAAAAAAAAA/bin/sh,即可进入root的shell
执行后 , 权限提升至root , 查看flag.txt 得到 第三个Flag
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!