SSH私钥泄露

1. 首先我们先用ifconfig查看自己的IP地址

2.使用netdiscover -r 192.168.1.0/24(这个是查找与自己在同一个局域网中的靶场,如果已经知道IP地址可以省略)

3.使用namp -sV ip对靶场IP进行探测,可以获得靶场的端口(port)

4.探测大端口的信息,对于开放http服务的大端口,可以采用http://ip:port/de 形式在浏览器中访问,查看网页源代码有没有flag信息,如果没有,使用dirb http://ip:port/对这个服务的隐藏文件进行探测
SSH私钥泄露_第1张图片
robots.txt是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。
我们右键浏览器打开该文本,发现了不允许探测的taxes文件
SSH私钥泄露_第2张图片
我们在浏览器中加入/taxes/进行访问,获得第一个flag
SSH私钥泄露_第3张图片
同理,我们打开ssh
SSH 为Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH私钥泄露_第4张图片
在浏览器IP后面添加/id rsa/下载私钥和认证关键字,拖放到桌面上
查看一下权限
SSH私钥泄露_第5张图片
尝试远程登陆失败,原因是id_rsa权限不够(simon来自我们下载的认证文件中)
SSH私钥泄露_第6张图片
进行授权
SSH私钥泄露_第7张图片
再次登陆时需要密码
在这里插入图片描述
5.使用ssh2john 将id_isa密钥信息转换为john可以识别的信息

chmod 600 id_isa//授权行为
ssh2john id_isa > isacrack//将转换内容放入isacrack中

利用字典解密isacrack信息
我在使用ssh2john时提示没有该命令
解决:使用locate ssh2john 查看文件在那里
然后直接使用python直接执行即可

我们获得密码starwars
SSH私钥泄露_第8张图片
输入密码登陆
SSH私钥泄露_第9张图片
pwd命令,查看整个路径名,我们依然没有找到flag,我们cd root切换到根目录下查看,终于找到一个flag值,但是当我们cat查看的时候被拒绝了,说明我们权限不够,想办法提升权限
SSH私钥泄露_第10张图片
6.查找具有root权限的文件
SSH私钥泄露_第11张图片
read_message的文件和根目录下的文件是一样的,我们cat查看根目录下:cat read_message.c
SSH私钥泄露_第12张图片
内存溢出
这里面顺便了解一下linux提权 su由read_message被设置了+s属性,使得用户执行read_message时,具有文件拥有者的权限,这样在执行read_message时,实际上是以root权限执行的,所以当构造栈溢出时,通过字符串覆盖,把program[] = "/usr/local/sbin/message"的原内容替换成了program[] = “/bin/sh”。最终程序在执行时,就是通过root权限fork /bin/sh的程序。
首先,我們所执行的任何程式,都是由父行程(parent process)所产生出来的一个子行程(child process),子行程在结束后,將返回到父行程去。此一现像在 Linux 系統中被称为 fork 。我们执行这条语句的目的在于提升权限,因为执行完毕就返回到父进程root中
SSH私钥泄露_第13张图片
我们运行一下read_maeeage文件,成功登陆
SSH私钥泄露_第14张图片
buf是20的数组,我们溢出尝试
SSH私钥泄露_第15张图片
在这里插入图片描述
成果获得flag值
在这里插入图片描述

你可能感兴趣的:(CTF)