SSH-私密泄露(详)

我在网上找到的,资源地址,就在前几分钟内有网盘链接,博主比较懒,你们自己动手吧。

前言

最近一点也不想学习,写篇文章激励一下自己,加油ヾ(◍°∇°◍)ノ゙!


一、确保攻击机和虚拟机在同一网段

两台虚拟机都需要设置,进行网络设置才可以让攻击机能够在同一局域网下搜索到靶机
在这里插入图片描述

二、收集信息

1.先查找自己主机IP,然后查找同一网段下存活的主机

这里我的主机IP是192.168.43.173,然后使用以下命令

sudo netdiscover -r 192.168.43.173/24

在这里插入图片描述
这是我的靶机IP
在这里插入图片描述

2. 拿到靶机IP然后我们查找端口看看能不能找到有用信息
nmap 192.168.43.238 -p 1-65535

在这里插入图片描述
然后使用火狐浏览器挨个查看是否有有用信息
在这里插入图片描述在这里插入图片描述

前面两个端口我们都查找不到有用信息,我们继续查看第三个端口
在这里插入图片描述打开第三个端口我们好像还是找不到有用信息,然后我们尝试查找该端口目录下隐藏的目录文件

在这里插入图片描述
在这里插入图片描述
前面两个文件我们下载下来发现是系统文件,基本没什么用

在这里插入图片描述
但是当尝试第三个的时候,我们找到了第一个flag

在这里插入图片描述

3.然后我们尝试找其它flag

因为我们这里有些东西是重复的,所以不要如此麻烦,重复打开,只要打开其它剩余网址查看
在这里插入图片描述
/.bach history文件也没有什么作用,然后我们打开/.ssh,在这里我们找到了有用信息,ssh秘钥,把它们下载下来在这里插入图片描述

在这里插入图片描述

3.转换rsa

然后我们双击查看id_rsa,发现需要密码
在这里插入图片描述

我们使用John来破解密码,但是我们首先要使用ssh2john转换成John能识别样式

1、先给文件加权限 chmod 600 /home/toor/Desktop/id_rsa
2、然后进入 cd usr/share/john
3、ls

在这里插入图片描述

在这里插入图片描述使用ssh2john.py转换,例:你们自己的文件位置在哪里就怎么填

sudo python ssh2john.py /home/toor/Desktop/id_rsa>/home/toor/Desktop/john_rsa

在这里插入图片描述
获取到id_rsa密码starwars
在这里插入图片描述我们又在authorized_keys末尾找到用户名在这里插入图片描述

在这里插入图片描述

4.使用ssh远程登录

进去的时候好像还要在输入一下id_rsa密码,然后就进入靶机,相当于完成了一半。

ssh -i id_rsa simon@192.168.0.100

在这里插入图片描述

5.查找具有root权限的文件

我先讲一下我刚开始做题的思路,首先我先进入了/home,发现没有什么东西,之后才进入/root,找到两个文件和flag,但是flag.txt不能打开,
注:这是那些网上大佬做题思路

find / -perm -4000 2>/dev/null

在这里插入图片描述

int main(int argc, char *argv[]) {
    char program[] = "/usr/local/sbin/message";
    char buf[20];
    char authorized[] = "Simon";
//char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数
    printf("What is your name?\n");
    gets(buf);
  //gets(buf);//获取用户输入的字符串,存放到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);
    }

}

注:int main(int argc,char* argv[])详解

审计这段代码 发现
我们要执行readmessage
然后验证数组前5个字符,限定字符数为最多20个 ,前5个为Simon即可。
我们试着输20多个字符使其溢出
输入超过他缓存字符长度的字符 超出的部分为root权限的目录路径
获得root权限,发现flag
在这里插入图片描述

此文借鉴 Wings_shadowB站,小白可以先看视频,然后在看博客,这样更能加深理解。
如有冒犯,请及时告知,本文内容来着B站,如果有错误或者不详细地方,请告知,Thanks♪(・ω・)ノ!喜欢就点个赞吧。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值