8/23/19 SSH私钥泄露

对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务。我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限;其实我的理解的有误差:渗透其实是针对服务的漏洞探测,然后进行对应的数据包发送,通过构造畸形数据包获得异常回应,根据这些异常回应从而拿到机器的最高权限。

1.探测靶场ip:netdiscover -r ip/netmask  ,然后测试连通性

探测到靶场,且可ping通

2.扫描已开启的服务:namp -sV ip

分析结果:每一个服务对应一个端口,端口用来通信,如果看到特殊端口(3306),对其进行深入探测。比如那种大端口(http服务端口),就可采用某些手段进行访问。

3.发现开启http服务大端口,采用形式访问:http://ip:port/

查看一下大端口号31337

返回的对应界面没有flag值。先看看页面源代码吧。发现源代码里面也没有flag值:

4.探测是否有隐藏页面:dirb http://ip:port/

看到了比较敏感的.ssh和robots.txt文件

Robots.txt:存放搜索引擎允许或者不被允许的的文件

打开每一个文件试试,找到第一个flag:

5.Robots.txt目前没有价值了,继续挖掘ssh信息,不断访问获取更多泄露的ssh密钥信息。

ssh 的验证:客户端公钥与服务器私钥进行对比,对比成功则验证通过,可远程登录

打开ssh文件发现里面有三个内容,所以我们应该思考这三个内容里面了是否包含了更多的内容,继续加“/”,试一试可否下载

然后发现,我的天,居然全部都有内容且可下载:

公钥可以不下载,毕竟是任何人都可以访问的。

6.现在已经有了公钥和私钥,那么尝试登陆一下远程服务器

首先切换到存放这些文件的位置:

查看权限:ls -alh

查询结果:可读可写

然后开始尝试远程登录:ssh -i (私钥) 用户名@ip

结果发现,,没有用户名,然后我们就在我们下载好的认证文件里面找到了用户名

那么就是:ssh -I id_rsa simon@192.168.43.42

观察这三个点:告诉我们不能建立远程连接,只能识别,yes;644告诉我们权限不够;再一次告诉我们没有建立连接,权限拒绝。

7.可以识别但是连接无法建立,尝试提升权限:chmod 600 id_rsa

重新赋予读写权限,接下来重新登录:

但是这一次,又出现了新的关卡:需要输入连接密码,只有三次机会;但是我们不知道密码,只有一个私钥以及认证文件。我们可以通过这两个文件,看看是否有其他信息。进一步探取私钥信息

=======================================

在这里插播一个电脑小问题,我还是单独开一篇文章记录我这些充满神奇力量、能给我带来毁灭性惊喜的设备们吧。耳机OK,笔记本外放OK,但是二者相结合就是噩梦开始了:

笔记本声卡OK,耳机OK,但是耳机插进笔记本就是无声:

解决方案:控制面板—》这啥管理器—》设置—》选择单独(反正能让他重启就行了)

最后,见证奇迹的时刻,插头已塞入插孔!所以,每一个提醒,都应该关注一下下面的详情。。以防未来的惊喜我都找不到来源。。

8.进一步探取私钥信息

解密ssh密钥信息

使用ssh2John 将id_rsa密钥信息转换为可识别的信息

ssh2john id_rsa > isacrack #使用John这个工具,将id_rsa 这个文件转化为isacrack这个文件,位置和前者相同;

解密该文件,利用字典解密isacrack信息,使用zcat这个工具:

zcat/usr/share/wordlists/rockyou.txt.gz |john –pipe –rules isacrack /#使用zcat来取得usr/share/wordlists/这个路径下,/rockyou.txt.gz的文件密码,管道标志符,使用John这个工具使用isacrack这个字典的规则

这个文件貌似只能开一次,然后密码就在starwars里面,接下来继续尝试登陆

9.使用starwars密码登陆

Ssh -i (私钥) name@ip

登陆成功,还看到了robots.txt文件

但是我们还是没有获得想要的flag文件,务必记住root这个文件夹很重要

切到root目录下,发现有我们想要的flag文件,但是我们没有权限阅读:

这个时候的查看权限ls -alh,还有提权chmod命令就不管用了。。。因为这些命令只限于本机,或者说拿到靶机的很高的权限。

10.提升权限,Simon只是为普通用户,我们要得到root权限,所以我们要查看哪些文件具有root权限:

find /-perm -4000 2>/dev/null #从根目录开始,查找具有执行权限的文件(-perm 4000),避免错误输出(2>/dev/null)

注意啊,输入错误可能就是错误!

我们选择个人觉得有意义的文件进行查阅,从而进一步得出:

第二个flag出现:

这里有一段C语言代码,也有flag2,读出来了说不定就是flag值。理解代码的意思以后,运行代码

11.进一步提权,我们通过溢出(我自己想的??),让程序执行非常规操作:

20字符/bin/sh #首先这个文件拥有root权限,其次我们将其切换到bin/sh这个远程文件夹里面,可建立远程连接(???)

第三个flag出现

CtfStudying之SSH私钥泄露的更多相关文章

  1. 【实验】ssh私钥泄露

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

  2. CTF—攻防练习之ssh私钥泄露

    攻防练习1 ssh私钥泄露 靶场镜像:链接: https://pan.baidu.com/s/1xfKILyIzELi_ZgUw4aXT7w 提取码: 59g0 首先安装打开靶场机 没办法登录,也没法 ...

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

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

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

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

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

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

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

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

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

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

  8. CTF-SSH私钥泄露渗透

    环境 Kali ip 192.168.56.102 Smb 靶机ip 192.168.56.104 0x01信息探测 使用netdiscover -r ip/mask 进行内网网段存活ip探测 靶机为 ...

  9. mac SSH私钥取消密码(passphrase)

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

随机推荐

  1. 整体二分&cdq分治 ZOJ 2112 Dynamic Rankings

    题目:单点更新查询区间第k大 按照主席树的思想,要主席树套树状数组.即按照每个节点建立主席树,然后利用树状数组的方法来更新维护前缀和.然而,这样的做法在实际中并不能AC,原因即卡空间. 因此我们采用一 ...

  2. java配置环境变量 jdk1.8

    1.首先第一步安装JDK window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/j ...

  3. React Native商城项目实战10 - 个人中心中间内容设置

    1.新建一个MineMiddleView.js,专门用于构建中间的内容 /** * 个人中心中间内容设置 */ import React, { Component } from 'react'; im ...

  4. python值的引用传递和go语言的值传递

    一:值传递 实参a 原本指向地址 1638212,代表1638212这个地址的值是3.在swap函数中,实参a将值拷贝给形参a,形参a此时也在内存中拥有地址,地址= xxxx,值为3,在所有的函数体内 ...

  5. Vue中解决路由切换,页面不更新的实用方法

    前言:vue-router的切换不同于传统的页面的切换.路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页 ...

  6. G2 基本使用 折线图 柱状图 饼图 基本配置

    G2的基本使用 1.浏览器引入  <!-- 引入在线资源 --> <script src="https://gw.alipayobjects.com/os/lib/antv ...

  7. 学习《Oracle PL/SQL 实例讲解 原书第5版》----创建账户

    通过readme.pdf创建student账户. 以下用sys账户登录时都是sysdba. 一.PL/SQL 登录oracle. SYS/123  AS SYSDBA 账户名:sys:密码:123:作 ...

  8. arduino相关文献阅读

    首推这个 https://wenku.baidu.com/view/e657b1f0bcd126fff6050baf.html 用Arduino IDE开发程序流程 当程序编写好之后,关闭前需要将文件 ...

  9. Java JDK安装教程以及JDK多版本间快速切换配置

    原本想自己写一篇,结果在网上发现一篇写的特别好的博文,大家可以去原网址围观浏览加点赞, 只是搬运工+迷弟. 原文地址:https://blog.csdn.net/qq_38916130/article ...

  10. 第一章:Java语言概述与环境开发

    1.计算机高级语言按程序的执行方式可以分为编译型和解释型两种: 2.JAVA程序的执行过程必须经过先编译后解释两个步骤: 3.JAVA语言里负责执行字节码文件的是JAVA虚拟机 (Java Virtu ...