当前位置: 首页 > news >正文

ctf训练 ssh私钥泄露

ctf训练 ssh私钥泄露

CTF比赛中,比赛环境的两种方式

1.给予在同一局域网中的攻击机和靶场机器,以web方式可以访问攻击机,通过攻击机来渗透靶场机器,获取对应的flag值;(一般情况下给于kali linux作为攻击机,并且举办方提供计算机)

⒉给予一个网线接口,用户自备工具,直接连接网线,进行渗透靶场机器,获取对应的flag值;

这里我们做一个小练习
实验准备:一台kail(作为攻击机),一台靶机

靶机镜像:https://pan.baidu.com/s/1Up3kgpwK4Mt3McGklN6rlA 提取码:lc8q

安装打开靶机(使用Oracle VM VirtualBox打开):
在这里插入图片描述接下来发现没法登陆,也没有办法获取ip地址
所以我们在kail下
进入控制台

使用netdiscover命令 netdiscover -r ip/子网掩码 命令来探测靶机,靶机ip为192.168.43.83
在这里插入图片描述
在这里插入图片描述本机ip为192.168.43.96
在这里插入图片描述

信息探测

对于只是给定一个对应IP地址的靶场机器,我们需要用对其进行扫描,探测开放的服务。

渗透其实是针对服务的漏洞探测,然后进行对应的数据包发送,获取机器的最高权限

-nmap -sV 靶机ip 挖掘 开放服务信息

在这里插入图片描述

分析探测结果

每一个服务对应计算机的一个端口,用来进行通信。常用端0~1023端口,在扫描结果中查找特殊端口

针特殊端口进行探测,尤其对开发大端口的http服务进行排查;

我们可以看到靶场开放的端口和对应的服务,此靶场机器上开启了ssh服务和http服务,
接下来我们分析特殊端口,尤其对开放http服务的大端口(本靶机上31337端口开放了http服务)

探测大端口的信息

对于开放http服务的大端口,可以采取http://ip:port/的形式访问;

在这里访问http://192.168.43.83:31337没有任何有用的信息

查看源代码对应信息;如果没有flag信息,使用工具探测隐藏页面

-dirb http://ip:port/对这个服务的隐藏文件进行探测
在这里插入图片描述访问ssh和robots目录
在这里插入图片描述在taxe1下发现flag
在这里插入图片描述
再看ssh目录:
在这里插入图片描述然后可以试着去访问这三个文件名,发现确实是一个文件,然后下载到桌面去

在这里插入图片描述接下来我们就去尝试与靶机建立ssh连接

解密ssh秘钥信息

使用ssh2john将id_isa秘钥信息转换为john可以识别的信息。
chmod 600 id_isa
ssh2john id_isa > isacrack
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析用户名、利用ssh登录服务器

ssh -i id_isa 用户名@ssh靶场机器IP地址

在这里插入图片描述

到这里登录到主机,但是并不是root权限?该如何获取呢?深入探测根目录

查找具有root权限的文件

-find / -perm -4000 2>/dev/null
在这里插入图片描述因为这里read_message.c也是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);}}

审计这段代码 发现

我们要执行readmessage

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

在这里插入图片描述
在这里插入图片描述我们试着输20多个字符使其溢出

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

获得root权限,发现flag
在这里插入图片描述

http://www.lryc.cn/news/570947.html

相关文章:

  • 中国信息安全测评中心:从数据全生命周期看数据泄露防护问题
  • 【C++ Primer Plus学习记录】字符串——C++ string类
  • 机器学习笔记(5)——SMO优化算法(实现SVM)
  • 【模拟 贪心】B4207 [常州市赛 2021] 战士|普及+
  • 麻雀要革命2 第19节:风马牛不相及
  • 关于脉冲功率技术的认识
  • 优化网站设计(二十):使用多个主机来平衡负载
  • 命令模式Command Pattern
  • redis 中 Hash哈希介绍 及常用命令 (附有示例)
  • 目标检测总结:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
  • STC 89C52 单片机引脚对应的功能以及实例讲解
  • 第六章、6.2 ESP32低功耗模式详解:深度睡眠与轻度睡眠实战指南
  • [python爬虫之路day5]:实战之电影天堂2019精选电影爬取
  • String.indexOf 用法
  • to avoid naming wrong index webpage for one website
  • Flash的126个为什么
  • Python | Python中最常用的100个函数(含内置函数、标准库函数及第三方库)
  • 《东周列国志》第十七回 宋国纳赂诛长万 楚王杯酒虏息妫
  • java permainan jombi_Ejaan ni Betul ke Salah?
  • [iOS] performSelectorOnMainThread支持多个参数
  • org.springframework.transaction.interceptor 类 TransactionProxyFactoryBean
  • VS2013+MFC 简易音乐播放器
  • 电商导购系统的基本架构与设计
  • 【习题解析】田忌赛马
  • linux设备树dts文件详解
  • matlab axis函数_MATLAB二维图形
  • HTML网页一键变黑白色调
  • Source Insight的入门使用
  • 网页鼠标点击特效案例收集
  • 如何使用十进制range()步长值?