概述

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

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

版权说明

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

实验环境:

Linux相关

  • CentOS 6.5
  • Python 2.6.6
  • W3m
  • TCPDump

Windows相关

  • Windows 7
  • WireShark

实验参考:

  • 《恶意软件分析诀窍与工具箱》- 诀窍6-13:使用Jsunpack从报文捕获文件中提取HTTP文件
  • https://www.aldeid.com/wiki/Jsunpackn

环境安装:

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

2. 本地解压

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

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

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

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抓包生成的文件,我们发现文件没有发现变化。

JSunpack-n的安装与简单使用相关推荐

  1. docker-compose的安装与简单使用

    docker-compose的安装与简单使用 docker-compose简介 屁话不这么多,直接开干 docker-compose安装步骤 由于docker-compose托管在github上面,所 ...

  2. 内核同步对性能的影响及perf的安装和简单的使用

    更多文章目录:点击这里 GitHub地址:https://github.com/ljrkernel 内核同步对性能的影响及perf的安装和简单的使用 看了一篇关于多线程应用程序性能分析的外文,结合之前 ...

  3. cakephp 安装mysql_CakePHP的安装的简单方法

    在对于CakePHP的作用有了初步认识后,我们可以下载CakePHP来进行一些使用.在安装前,要检查php的版本情况,防止CakePHP框架出现不适配的情况. 对于具体的框架组装,会涉及到依赖库和Co ...

  4. 怎么进入python官网-Python的安装及简单的使用

    原标题:Python的安装及简单的使用 像我们想要抓住一门好的编程语言,如何开始学习呢?我来简单介绍下python Python特性:语法简单,入门上手快,很多女神也在学习,方便找个编程的妹纸---- ...

  5. 刚安装的python如何使用-Python requests的安装与简单运用

    强烈推荐!requests官方文档已有了中文版,请见http://cn.python-requests.org/zh_CN/latest/ . requests是python的一个HTTP客户端库,跟 ...

  6. python requests的安装与简单运用

    强烈推荐!requests官方文档已有了中文版,请见http://cn.python-requests.org/en/latest/. requests是python的一个HTTP客户端库,跟urll ...

  7. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  8. Oracle数据库学习(一)安装和简单使用

    新公司的新项目,需要用到Oracle数据库,所以现在便来解除此数据库,不得不说,这个数据库还这是麻烦. 安装倒是简单,就是中间会遇到各种问题. 安装步骤参考:https://blog.csdn.net ...

  9. 1.Vue 安装与简单使用

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 1.Vue的安装与简单使用 这 ...

  10. FileZilla的下载与安装以及简单使用(Ubuntu和Windows之间互传文件需要下载——客户端)

    参考:FileZilla的下载与安装以及简单使用(有图解超简单) 作者:一只青木呀 发布时间: 2020-08-04 13:20:59 网址:https://blog.csdn.net/weixin_ ...

最新文章

  1. 基于Golang的对象序列化的程序包开发——myJsonMarshal
  2. ORB-SLAM3在windows下的编译使用
  3. IT人应该具备的几种技能
  4. spring 整合websoket(整理)
  5. 用python画猪_用python画小猪票佩奇
  6. ubuntu linux的特点,16个新特性,让你爱上Ubuntu 20.04,
  7. JDK 10的摘要Javadoc标签
  8. spring-boot使用教程(一):让程序跑起来
  9. 关于html中table表格tr,td的高度和宽度
  10. Anaconda 安装步骤
  11. 教大家一个快速批量去水印下载快手视频、图集的方法技巧
  12. uniapp 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付常用的支付方式以及各种常用的接口
  13. Android WIFI的管理方法
  14. python 删除字典none_python – 从字典中删除NoneTypes
  15. 团队组成五个基本要素_团队管理的五个基本要素
  16. c# DGV导出excel 使用object类型数组,解决string类型需双击后或分列才可运算的异常
  17. android 发送短信sms
  18. 强化学习策略梯度方法之: REINFORCE 算法(从原理到代码实现)
  19. Python简介及官网文档
  20. Codeforces Round #766 (Div. 2) B. Not Sitting

热门文章

  1. 深度探索C++ 对象模型(3)-默认构造函数Default Constructor续
  2. [密码学] RSA同模攻击与选择密文攻击
  3. optee中User TA的加载/验签和运行
  4. (56)等待链表,调度链表
  5. 身为网络安全的,连BlackMatter勒索软件都不知道,说出去丢不丢人啊
  6. python得到windows自启动列表
  7. 设计模式C++实现(4)——单例模式
  8. 9、 InnoDB行锁
  9. 5、数据库设计的三大范式
  10. ACM入门之【树状数组习题】