攻防练习1 ssh私钥泄露

靶场镜像:链接: https://pan.baidu.com/s/1xfKILyIzELi_ZgUw4aXT7w 提取码: 59g0

首先安装打开靶场机

没办法登录,也没法获取ip地址,怎么办呢?

打开kali

进入控制台
使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机

netdiscover -r 192.168.32.152/24

扫描开放的端口

我们可以看到靶场开放的端口和对应的服务,此靶场机器上开启了ssh服务和两个http服务,

接下来我们分析特殊端口,尤其对开放http服务的大端口(本靶机上31337端口开放了http服务)

怎么探测http端口信息?我们可以使用浏览器来浏览http服务的信息

探到5个隐藏文件

访问ssh和robots的目录

在taxes下发现flag1

再看ssh目录:

发现rsa的私钥和公钥信息

id_rsa是私钥和authorized_keys 是 认证关键字

我们发现在存在一个放私钥要key的目录可用下载

下载下来(公钥不用下载)
这里就是泄露的私钥

那么我们就去尝试与靶机建立ssh连接
对id_rsa 赋予权限 chmod 600 id_rsa

在key文件中我们能找到主机名

建立ssh连接:

ssh -i id_rsa simon@192.168.32.154

需要密码,那么我们可用通过破解私钥得到密码

ssh2john id_rsa >rsacrack

破解出来密码为starwars

连接成功!

进来看一看,有一个flag文件但,需要权限,我们也没有root权限

那么我们先查一下具有root权限的文件:
find / -perm -4000 2>/dev/null

好多东西。。

Root下也有给read_message文件打开看看

发现flag2一枚

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);

}

}

审计这段代码 发现

我们要执行readmessage

然后验证数组前5个字符,限定字符数为最多20个 ,前5个为Simon即可。

先打开

我们试着输20多个字符使其溢出

输入超过他缓存字符长度的字符 超出的部分为root权限的目录路径

获得root权限,发现flag

CTF—攻防练习之ssh私钥泄露的更多相关文章

  1. CTF—攻防练习之SMB私钥泄露

    攻击机:192.168.32.152 靶机 :192.168.32.155 打开靶机 nmap一下 我们看到了开放了 ssh,smb,mysql这些端口,还有一个大端口 对smb服务我们可以1.使用空 ...

  2. 【实验】ssh私钥泄露

    翻自己的笔记看到之前做过的一个实验,一个关于ssh私钥泄露的实验,贴出来与大家交流. 做这种题脑洞需要特别大,而且也需要运气. 1.实验环境准备 2.实验流程 1)探测信息 用namp进行端口扫描,扫 ...

  3. CtfStudying之SSH私钥泄露

    8/23/19 SSH私钥泄露 对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务.我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限:其实 ...

  4. 使用ssh-add命令添加ssh私钥时报错

    当使用ssh-add命令添加ssh私钥时,报如下错误: Could not open a connection to your authentication agent. 其实需要先执行如下命令: e ...

  5. CTF中常见Web源码泄露总结

    目录00x1 .ng源码泄露 00x2  git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露  ...

  6. SSH私钥取消密码(passphrase )

    1. 使用openssl命令去掉私钥的密码 openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa_new 2. 备份旧私钥 mv ~/.ssh/id_rsa ...

  7. [ssh] 通过ssh私钥生成公钥的方法

    ssh-keygen -y -f .ssh/id_rsa.key id_rsa.key是私钥.

  8. [Mac]secureCRT私钥转换为mac ssh私钥

    工作环境从win迁移到mac后,win上原来用secureCRT生成的key,在mac的iterm2中不能兼容使用,导致无法再mac下登录.报错如下: key_load_public:invalid ...

  9. SSH内存泄露及Spring Quartz问题

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/anoxia-logs/34360203.html 问题的起因: 为客户开发了一个系统权 ...

随机推荐

  1. 第五章 动画 44:动画-使用第三方animate.css类库实现动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. Spring整合Hibernate实现Spring Data JPA (简单使用)

    直接上代码: pom.xml <!-- hibernate start --> <!-- spring data jpa --> <dependency> < ...

  3. 命令方式 搭建 (简易)Maven项目

    原料:1.配好的Maven环境变量    2.c m d命令 win  + r  输入 cmd 切换到此项目所要存在的位置 使用命令创建文件夹 切换 到 maven_demo中  输入 cd mave ...

  4. IPC 进程间通信方式——消息队列

    消息队列 消息队列是内核中的一个链表 用户进程将数据传输到内核后,内核重新添加一些如用户ID.组ID.读写进程的ID和优先级等相关信息后并打包成一个数据包称为消息 允许一个或多个进程往消息队列中读写消 ...

  5. SpringMVC页面中文乱码

    刚开始学习使用SpringMVC,完成配置之后开始编辑页面源码,添加了几个中文字符(index.jsp) <html> <body> <h2>hello world ...

  6. 【leetcode】960. Delete Columns to Make Sorted III

    题目如下: We are given an array A of N lowercase letter strings, all of the same length. Now, we may cho ...

  7. 剑指Offer-快速排序

    剑指Offer上的快速排序的Partition函数与我在数据结构书上学到的不一样,因此就想要探索下这两种不同的处理方式. 1.基本思想 快速排序的基本思想是基于分治法.在待排序表L[1...n]中任取 ...

  8. Python基础-day05

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  9. hdu 1208 Ignatius and the Princess III 划分数,dp

    题目 题意:给你一个数字n,求将其划分成若干个数字相加总共有多少种划分数: <span style="font-size:24px;">#include <ios ...

  10. 【CF1262F】Wrong Answer on test 233(数学)

    题意:给定n道题目,每道题目有k个选项,已知所有正确选项,选对1题得1分 问循环后移一格后总得分s2大于原先总得分s1的方案数 n<=2e5,1<=k<=1e9 思路:特判k=1 e ...