CTF—攻防练习之ssh私钥泄露
攻防练习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私钥泄露的更多相关文章
- CTF—攻防练习之SMB私钥泄露
攻击机:192.168.32.152 靶机 :192.168.32.155 打开靶机 nmap一下 我们看到了开放了 ssh,smb,mysql这些端口,还有一个大端口 对smb服务我们可以1.使用空 ...
- 【实验】ssh私钥泄露
翻自己的笔记看到之前做过的一个实验,一个关于ssh私钥泄露的实验,贴出来与大家交流. 做这种题脑洞需要特别大,而且也需要运气. 1.实验环境准备 2.实验流程 1)探测信息 用namp进行端口扫描,扫 ...
- CtfStudying之SSH私钥泄露
8/23/19 SSH私钥泄露 对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务.我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限:其实 ...
- 使用ssh-add命令添加ssh私钥时报错
当使用ssh-add命令添加ssh私钥时,报如下错误: Could not open a connection to your authentication agent. 其实需要先执行如下命令: e ...
- CTF中常见Web源码泄露总结
目录00x1 .ng源码泄露 00x2 git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露 ...
- SSH私钥取消密码(passphrase )
1. 使用openssl命令去掉私钥的密码 openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa_new 2. 备份旧私钥 mv ~/.ssh/id_rsa ...
- [ssh] 通过ssh私钥生成公钥的方法
ssh-keygen -y -f .ssh/id_rsa.key id_rsa.key是私钥.
- [Mac]secureCRT私钥转换为mac ssh私钥
工作环境从win迁移到mac后,win上原来用secureCRT生成的key,在mac的iterm2中不能兼容使用,导致无法再mac下登录.报错如下: key_load_public:invalid ...
- SSH内存泄露及Spring Quartz问题
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/anoxia-logs/34360203.html 问题的起因: 为客户开发了一个系统权 ...
随机推荐
- 手动从Spring中获取指定对象
1.创建ApplicationContext对象: ApplicationContext context = new FileSystemXmlApplicationContext("D:/ ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(14)|Impls & Traits实现与特征]
[易学易懂系列|rustlang语言|零基础|快速入门|(14)] 有意思的基础知识 Impls & Traits实现与特征 我之前说到的struct结构体,其实就类似于面向对象语言中的类cl ...
- oracle的监听控制
来自网络: listener control 监听控制 因为你在键入 lsnrctl 回车之后,就进入到监听控制界面. 在启动.关闭或者重启oracle监听器之前确保使用lsnrctl status命 ...
- django 做 migrate 时 表已存在的处理方法
django 做 migrate 时 表已存在的处理方法 文章来源:嗨学网 http://www.piaodoo.com 在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数 ...
- eval与exec的区别,以及变量的作用范围
# eval与exec的区别:eval 有返回值,而 exec没有返回值 # 这两个函数都是执行python语句,注意:里面传的是字符串的格式 a = eval('1+2') a # 这里a有值 3 ...
- fetch 写法
fetch("../students.json").then(function(response){ if(response.status!==200){ console.log( ...
- UVA 11181 Possibility Given
#include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<cmath> ...
- TTTTTTTTTTTTTTTTTTT CF 银行转账 图论 智商题
C. Money Transfers time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- redhat6.5 安装oracle11G
一.安装依赖包 下面是Oracle数据库需要依赖的软件,依次执行下面命令,不存在则安装. yum install binutils yum install elfutils-libelf yum in ...
- java取小数点后两位
package com.yonyou.sud.algorithm; import java.math.BigDecimal;import java.text.DecimalFormat;/*** ja ...