关于渗透测试过程中的SSH免登陆

      渗透测试过程中,经常会遇到服务器的系统为Linux相关的情况,菜刀下查看权限的时候,有时候运气好还是root权限。很久之前对于root权限的linux服务器,在渗透过程中我还真不知道如何下手。后来,我知道了,如果是root权限,我们可以看一看是否开了22端口,如果开了,很好,可以通过SSH公钥认证方式登录服务器,达到对服务器的完全访问和控制操作。这篇文章也不是什么新文,网上也有,在这里我只是留个笔记,后续可能用得到。不多说,开始吧。

      公钥认证:是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。在使用公钥认证之前,先检查一下服务器的ssh配置文件/etc/ssh/sshd_config

RSAAuthentication yes        # 启用 RSA 认证,默认为yes
PubkeyAuthentication yes     # 启用公钥认证,默认为yes

      以上配置只是基础配置,看了其他文章中的配置,有几个关键点如下:

RSAAuthentication yes
PubkeyAuthentication yes
ServerKeyBits 1024
PasswordAuthentication yes
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys

      以上的配置可以保证既能通过证书免密码登录,又不影响通过用户名口令登录。如果配置都OK了,那就进行下一步吧。

      本地生成公钥和私钥:使用ssh-keygen命令来生成公私钥。我在虚拟机中的Kali中实现,如下图所示:

64

      执行上述命令后,就会在/root/.ssh/目录下生成公私钥。

      服务器设置:

      第一步:如果目标站点/root/.ssh/下已经存在authorized_keys文件,则将公钥文件追加到authorized_keys文件上。如果不存在authorized_keys,则上传公钥文件id_rsa.pub并重命名为authorized_keys。

id_rsa.pub >> ./authorized_keys

      第二步:修改authorized_keys权限为600,修改.ssh目录权限为700:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

      设置完成后,执行命令service sshd restart(有些可能是service ssh restart)来重启ssh。

      这样就可以免密码登录了。

原文地址:https://www.cnblogs.com/hiccup/p/4644557.html