通过 WebVPN 扫描内网

简介: 通过 WebVPN 扫描内网

经过@尼克的信息搜集,获取到一位人员的工号并且成功重置其密码,登陆其统一认证系统,以及VPN,发现此VPN不是彼VPN,访问资源都是以他代理去访问的,而不是直接拨入内网。

访问任何资源都如此形式:

https://webvpn.xxxxx.cn/http-8009/77726476706e697776646265737421a1ae13d27666301e2f5bdce2ca

很明显URL路径中有HTTP协议,以及要访问资源的端口,而URL则被进行编码加密操作,此时想要批量探测内网变得有些困难,并且也通过href看到了几个内网IP段。

所以需要分析一下他做的加密操作:

查看JS发现点击“立即跳转”会调用go()

接着可以发现encrypUrl()函数为处理url函数,所以下断点查看调用方法

进入encrypUrl()函数发现又会调用encrypt函数,使用AES加密处理URL

至此已经确定是使用JS并且AES加密等编码来处理URL的,所以我们想使用这个“鸡肋”的VPN探测内网,并且批量可控的话,就要还原这个加密方式,可以考虑自己参照实现AES加密或者扒出来相关功能JS直接使用他的代码来进行处理自己的数据,事半功倍。

使用@c0ny1所写的jsEncrypterBurp插件,是用来爆破前端存在JS加密的登陆口使用的,原理一样,所以使用其中的phantomjs_server.js使用phantomjs开启webserver并提供一个接口,并将自己的数据传入到要调用的代码中做处理。

/**
 * author: c0ny1
 * date: 2017-12-16
 * last update: 2019-5-30 11:16
 */
var fs = require('fs');
var logfile = 'jsEncrypter.log';
var webserver = require('webserver');
server = webserver.create();
var host = '127.0.0.1';
var port = '1664';
// 加载实现加密算法的js脚本
var wasSuccessful = phantom.injectJs('xxxx.js');/*引入实现加密的js文件*/
// 处理函数
function js_encrypt(payload){
  var newpayload;
  /**********在这里编写调用加密函数进行加密的代码************/
  newpayload = encrypUrl("http",payload);
  /**********************************************************/
  return newpayload;
}
if(wasSuccessful){
  console.log("[*] load js successful");
  console.log("[!] ^_^");
  console.log("[*] jsEncrypterJS start!");
  console.log("[+] address: http://"+host+":"+port);
}else{
  console.log('[*] load js fail!');
}
var service = server.listen(1664, function(request, response){
  try{
    if(request.method == 'POST'){
      var payload = request.post['payload'];
      var encrypt_payload = js_encrypt(payload); 
      var log = payload + ':' + encrypt_payload;
      console.log('[+] ' + log);
            fs.write(logfile,log + '\n', 'w+');
      response.statusCode = 200;
      response.write(encrypt_payload.toString());
      response.close();
    }else{
        response.statusCode = 200;
        response.write("^_^\n\rhello jsEncrypter!");
        response.close();
    }
  }catch(e){
    //console.log('[Error]'+e.message+' happen '+e.line+'line');
    console.log('\n-----------------Error Info--------------------')
    var fullMessage = "Message: "+e.toString() + ':'+ e.line;
    for (var p in e) {
      fullMessage += "\n" + p.toUpperCase() + ": " + e[p];
    } 
    console.log(fullMessage);
    console.log('---------------------------------------------')
    console.log('[*] phantomJS exit!')
    phantom.exit();
    } 
});

我们使用这个脚本加载刚刚调试JS所用到的代码,把过程中所用到的go()encrypUrl()等函数全部放进去,再用上面的JS代码去调用返回到WEB。

配置完成后,访问web传入数据:

已经按照原网站的规则进行加密,之后我们就可以利用这个接口去探测内网了

最后使用python的requests库,编写一个扫描c段和常见端口的脚本进行内网探测:

可以成功探测内网,识别title:

最后就解决了尴尬的问题,比较有意思。


相关文章
|
安全 测试技术 网络安全
D盾防火墙安全防护绕过-[文件上传]
D盾防火墙安全防护绕过-[文件上传]
1242 0
|
缓存 网络协议 Linux
深入探索Linux操作系统的内核优化策略####
本文旨在探讨Linux操作系统内核的优化方法,通过分析当前主流的几种内核优化技术,结合具体案例,阐述如何有效提升系统性能与稳定性。文章首先概述了Linux内核的基本结构,随后详细解析了内核优化的必要性及常用手段,包括编译优化、内核参数调整、内存管理优化等,最后通过实例展示了这些优化技巧在实际场景中的应用效果,为读者提供了一套实用的Linux内核优化指南。 ####
480 1
|
搜索推荐 算法 SEO
移动端的seo优化要怎么做
在如今移动端优化规则不断完善的时代,现今做网站推广要想获得更多的流量,移动端网站关键词排名自然是不可轻视的优化步骤,但移动端网站排名的规则与PC端网站优化排名算法有很大的差异,那么移动端关键词优化有哪
|
安全 网络协议 Linux
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
772 0
|
测试技术 Linux API
超详细Postman下载安装与使用汉化版教程
Postman 是一款常用的 API 测试工具,可以方便地进行接口测试、调试和文档编写。本文将详细介绍如何下载安装 Postman 并汉化,包括每个步骤的详细说明。
超详细Postman下载安装与使用汉化版教程
|
安全 网络安全 数据安全/隐私保护
【网络安全 | 密码学】密码字典生成工具crunch、cupp安装使用教程
【网络安全 | 密码学】密码字典生成工具crunch、cupp安装使用教程
1300 0
|
SQL XML 安全
sql注入常用函数
sql注入常用函数
1271 0
|
安全 网络安全 CDN
ip查询显示泛播是什么意思?
好奇openai的请求是如何转发的。
12988 0