福建省建设执业注册资格管理中心网站,济南免费建站,徐州网站制作苏视,高端建站咨询ctf训练 ssh私钥泄露
CTF比赛中#xff0c;比赛环境的两种方式
1.给予在同一局域网中的攻击机和靶场机器#xff0c;以web方式可以访问攻击机#xff0c;通过攻击机来渗透靶场机器#xff0c;获取对应的flag值;(一般情况下给于kali linux作为攻击机#xff0c;并且举办方…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.8331337没有任何有用的信息
查看源代码对应信息;如果没有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// Youre getting close! Heres 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 cant mess with the binary location:execve(program, NULL, NULL);} else {printf(Sorry %s, youre 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