T1.ssh免密登录
题目描述 通过操作机终端使用ssh登录靶机的test用户(密码123),flag用户目录中存放了可用于ssh免密码登录靶机的flag用户所必要的文件,使用这些文件登录靶机的flag用户,flag存在于flag用户目录中。
操作机:1.10.138.2 靶机:1.10.138.3
首先,在网上了解一下ssh免密登陆的配置步骤:从A登陆B
- 在B上输入命令
ssh-keygen -t rsa ,按下三次回车(使用默认配置) - 然后我们就会在
~/.ssh 生成两个文件:公钥id_rsa.pub 和私钥id_rsa - 将公钥放置到授权列表文件
authorized_keys 中,进入/root/.ssh 后使用命令cat id_rsa.pub>> authorized_keys - 修改
authorized_keys 文件的权限:chmod 600 authorized_keys - 将
authorized_keys 文件拷贝到A的~/.ssh 目录中 - 此时免密钥已经配置成功,使用命令
ssh localhost 或者ssh IP 地址连接到本机 第一次会询问是否确定建立连接,输入yes 即可;如果想要退出,可输入exit
我们要搞清楚这些步骤的逻辑 将事先生成B的公钥,并将B的公钥放置到授权列表文件中,存放在A的~/.ssh 目录中 这样从机器A登陆机器B时就不需要输入密码了
对于这道题 我们希望拿到flag的公钥授权列表文件,并放到test的~/.ssh 目录中
我们先进入flag目录下查看一下有哪些可以利用的文件 注意到.backup 目录比较奇怪,而且我们有其read和execute权限 那就可以大胆尝试一下,进入.backup 目录查看 发现里面是一个压缩包,我们尝试解压: 虽然没有解压成功,但是我们看到了关键文件:authorized_keys ,id_rsa ,id_rsa.pub ,known_hosts .shh
什么是known_hosts文件 A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
将文件拷贝到test目录下进行操作
cp .backup /home/test
在test目录下新建.ssh 目录,将文件authorized_keys ,id_rsa ,id_rsa.pub ,known_hosts .shh 放入.ssh 目录下即可
此时免密钥已经配置成功,直接登陆即可
ssh flag@1.10.138.3
T2.gdb工具使用
题目描述 靶机配置了ssh,可以账号test、密码123通过ssh登录到靶机。 靶机中存在两个用户:test和flag,分析getflag_main.c,使用gdb工具获取用户flag的passwd
操作机:1.10.149.2 靶机:1.10.149.3
首先,了解一下靶机的文件结构 查看源代码(snip部分省略了代码) 参考资料:Exploit-Exercises Nebula 学习与实践——level 13 参考资料:ExploitExercises_Nebula_Level13 顺利得到flag账户登陆密码,使用ssh登陆查看flag.txt文件即可
ssh flag@1.10.149.3
!o_o_cld
cat flag.txt
|