• JSunpack-n的安装与简单使用


    概述

    JSunpack-n的名称上我们就可以顾名思义,这是一个与JS相关的工具框架。JSunpack-n是用于解析JS脚本。而JSunpack-n的主要功能如下:

    • TCP流重组
    • HTTP协议解析
    • 提取可执行文件(-e命令行选项)
    • 提取所有文件(-s命令行选项)
    • 自动解压缩gzip流量
    • 处理以及标准化chunked流量


    版权说明

    本文链接:http://blog.csdn.net/lemon_tree12138/article/details/50674588Coding-Naga 
                                        — 转载请注明出处


    实验环境:

    Linux相关

    • CentOS 6.5
    • Python 2.6.6
    • W3m
    • TCPDump

    Windows相关

    • Windows 7
    • WireShark

     

    实验参考:

     

    环境安装:

      1. 从GitHub上下载Jsunpack-n源码。源码地址:https://github.com/urule99/jsunpack-n

      2. 本地解压

      3. 使用WinSCP传输工具,将下载到的源码文件从本地上传到远程的CentOS环境下

      4. 打开源码根目录,使用记录本打开“INSTALL”文件。这里包含了一些使用JSunpack-n的依赖包。依赖包及依赖关系如下:
       

      5. 安装上图中所提到的依赖文件。先安装除libnids-1.24pynids之外的其他依赖包

      6. 安装libnids-1.24:安装此包时需要格外注意,这里需要使用带参数编译。过程如下

    $ export GLIB_CFLAGS=/usr/local/bin/pkg-config
    $ export GLIB_LIBS=/usr/local/bin/pkg-config
    $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
    $ sudo ./configure CFLAGS=-fPIC --disable-libglib --disable-libnet --disable-shared
    $ sudo make
    $ sudo make install

      7. libnids编译安装完成之后,就可以安装pynids了。使用对setup.py文件的build和install来进行安装

      8. 如果发现pynids安装不成功,请检查libnids是否安装成功。并且在编译libnids的时候需要携带共享参数

      9. 如果编译libnids时携带了共享参数,当仍然不能完成pynids的安装,就clean一下libnids源码下的.o文件。再重新安装pynids

     

    使用步骤:

      1. 针对源码中的实例进行测试
         在源码下的./samples/目录有一些用于测试的文件

         

      2. 这里我们可以使用如下命令进行测试:
         python jsunpackn.py ./samples/pdf.pcap -s -J -v

         

      3. 在上面的测试中,我们获得了3个文件,此文件存在于./temp/files/目录下。我们对这些文件进行属性检查,如下:

         

      4. 我们将上面的html文件拷贝到本地,并以html的后缀重命名,使用浏览器打开。显示如下:

         

         注:此结果为放大后的效果,实际效果请自行实验。

      5. 将上面的PDF文件拷贝到本地,并以pdf的后缀重命名,使用Adobe阅读器打开。Adobe打开后卡顿,几秒后自动退出。

      6. 现在实验一下通过URL获取网页的方法。使用如下命令:

         python jsunpackn.py -u www.sina.com

         

      7. 检查此文件属性:

         

      8. 我们将此文件拷贝到本地,并以gzip的后缀重命名,并使用压缩软件打开,里面保存的还是之前的文件。如下:

         

      9. 从上一步中,我们获得了一个无后缀的文件,使用Notepad++打开后,发现是一个类似HTML文件的文件内容。于是,解压后以html后缀重命名。

     10. 使用Chrome打开上面的html文件。显示了新浪的首页,如下:

         

         注:这里考虑篇幅的原因只截取了部分网页内容

     

    验证步骤:

      在上面的使用步骤中,我们大概解了如何使用Jsunpack-n。现在需要对一些网络的操作进行验证。此处的验证分成了两个部分:基于Linux的和基于Windows的。

      基于Linux的网络环境

         a) 安装tcpdump抓包工具

         b) 使用tcpdump抓取网络流量包。命令如下:tcpdump -i eth0 -w sina.pcap
            注:这里有一点需要注意,就是确定上面命令中使用的网卡是正确的。这种情况存在于你的系统中存在两张以上的网卡时,我们不能确定当前访问网络时,经过的是哪张网卡。最简单的方式就是关闭除了eth0之外的全部网卡。

         c) 安装w3m网络访问工具

         d) 使用w3m访问新浪首页。命令如下:w3m www.sina.com

         e) 使用Jsunpack-n解析tcpdump抓取的流量包数据
            python jsunpackn.py ~/temp/sina.pcap -s -J -v
            
            这里只是给出了部分的结果展示,全部的结果请自行实验。

         f) 使用wget从网络下下载一张图片。命令如下:
            wget http://img.adbox.sina.com.cn/pic/3932012482-1450747748396.jpg

         g) 使用Jsunpack-n解析tcpdump抓取的流量包数据
            python jsunpackn.py ~/temp/wget-image.pcap -s -J -v

            

         h) 检查些文件属性,发现是一个JPEG文件。如下:

            

         i) 将此文件拷贝到本地目录,并以jpeg重命名。显示其可以打开为图片文件。

            

      基于Windows的网络环境

         a) 对于Windows下的操作则是利用WireShark进行抓包操作。

         b) 将WireShark抓到的包上传到CentOS上,使用Jsunpack-n进行分析。结果如下:

            

         c) 虽然上面的解析中,可以获得操作结果,不过对比解析生成的文件和WireShark抓包生成的文件,我们发现文件没有发现变化。


  • 相关阅读:
    linux-指令
    rabbitmq启动
    [浪峰前端开发]JS获取当前时间戳的方法
    [浪峰JQuery开发]jquery最有意思的IFrame类似应用--值得深入研究
    [浪峰分享]移动电商:不是渠道拓展,而是一次重新创业
    [浪峰分享]App必死 Web永生 看Web的前世今生 必会卷土重来
    [浪峰分享]推荐一些不错的计算机书籍
    [浪峰转载]Jquery取得iframe中元素的几种方法
    [浪峰分享] 如何管理一个远程团队
    [浪峰分享] 博客园博客导航固顶--简单实用的css代码
  • 原文地址:https://www.cnblogs.com/fengju/p/6336014.html
Copyright © 2020-2023  润新知