ssh_私钥泄露

探测靶场地址
先让物理机和靶机在同一网络中,可是net网络连接可是桥接
然后ifconfig找到物理机地址,
Netdiscover -r ip/netmask
例如你的物理机ip为192.168.81.138,
这时你可以netdiscover -r 192.168.83.1/24
找到同网段的不认识的主机可能就是靶机地址
然后ping 这个靶机地址,能通,便可以进行接下来的测试

信息探测
挖掘开放服务信息:nmap -sV 192.168.83.139(靶场地址)
在这里插入图片描述

分析探测结果
每一个服务对应一个端口,常见的端口0-1023
针对特殊端口进行探测,尤其对开放大端口的信息排查

探测大端口信息
对开放HTTP服务的大端口,可以采取http://ip:port/的形式访问
例如http://192.168.81.139:31337
在这里插入图片描述

查看源代码并没有我们想要的flag
查看源代码获取对应信息;如果没有flag信息,使用工具探测隐藏界面
-dirb http://ip:port/对这个服务的隐藏文件进行探测
在这里插入图片描述

我们看见很多隐藏文件
首先先看robots.txt(存放着不允许探测的文件名和允许探测的文件名)
打开链接,我们发现了不允许被探测的文件
在这里插入图片描述

有一个敏感文件taxes,我们看一下,我们就发现了一个flag值,很棒哦
在这里插入图片描述

针对隐藏页面分析
浏览器访问,对应源代码,可能会获得flag
挖掘ssh信息,不断访问获取更多泄露的ssh秘钥信息
(ssh作用:利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。)
打开ssh的链接
在这里插入图片描述

蓝色指的是私钥,红色指的是公钥,进行对比,对比成功就可以登服务器,对比不成功就登陆失败
所以我们可以看看是否存在这些文件,可以把私钥和认证关键字文件
怎样下载呢?
在这里插入图片描述

在这里插入图片描述

我们可以剪切到桌面
在这里插入图片描述

先使私钥文件具有可读可写功能
在这里插入图片描述

进行如下操作之后我们发下他是可读可写的
然后我们用私钥文件登一下远程服务器
我们先看一下authorized_keys文件,我们发现它是用私钥登陆的,用户名是simon
在这里插入图片描述

因此进行接下来的操作
在这里插入图片描述

我们发现没有给私钥赋权限
所以我们先赋权限
在这里插入图片描述

再次登录服务器,发现需要输入密码
在这里插入图片描述

我们寻找一下他的密码吧!!
注意:如果使用ssh2john命令时出现未找到命令的情况,按如下进行结果一样
在这里插入图片描述

我们将在桌面发现rsacrack文件,接下来就是利用字典破解isacrack信息了
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack
可以看见破解的密码starwars
在这里插入图片描述

继续登录,登陆成功

在这里插入图片描述在这里插入图片描述

依然没有找到需要的文件,继续解密
在这里插入图片描述

发现simon用户不能查看root用户文件的权限
find / -perm -4000 2>/dev/null
在这里插入图片描述

我们发现这里的readmessage和上面的readmessage.c文件相似,所以我们查看一下这个文件
simon@covfefe:/root$ cat 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
接下来我们观察代码,意思大致是判断输入字符串的前5个字符,如果是Simon的话,则执行代码的内容,否则输出错误
在这里插入图片描述

提示:输入溢出时会执行输入的命令
转到/bin/sh目录下提升一下权限,得到root权限,进入根目录查看flag.txt
(whoami命令用于显示自身用户名称。)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值