Skip to main content

Jsunpack-n Tutorial (Analyzing Malicious Documents)


Required Dependencies(all these dependencies are present in jsunpack-n package in a folder named depend):
1) Build and install pynids (nids) from ./depends/pynids-0.6.1.tar.gz
To compile pynids, you may need the following (ubuntu) packages:
libpcap-dev pkg-config python-dev libgtk2.0-dev libnet1-dev
        To install these package either use software center or command apt-get install PackageName

    $ cd depends
    $ tar xvfz pynids-0.6.1.tar.gz
$ cd pynids-0.6.1/ directory
$ python build
$ sudo python install

2) Build SpiderMonkey 'js' from ./depends/js-1.8.0-rc1-src.tar.gz

    This package has modifications to the spidermonkey source code; therefore, it is not recommended you use default smjs packages. (Details of the modifications are in INSTALL.spidermonkey.shellcode and INSTALL.spidermonkey, for historical purposes)

    $ cd depends/
    $ tar xvfz js-1.8.0-rc1-src.tar.gz
    $ cd js-1.8.0-rc1-src
    $ make BUILD_OPT=1 -f Makefile.ref
    Then, make the 'js' binary available within your path.
    $ echo "export $PATH="     //to find your env var value...which will be used in JS_DIST
    $sudo make BUILD_OPT=1 JS_DIST=/usr/local -f Makefile.ref export

3) Build and install YARA from ./depends/yara-1.6.tar.gz
    (For Ubuntu or other systems, these packages may be required: libpcre3 libpcre3-dev)

    $ cd depends
    $ .
    $ cd yara-1.6
    $ ./configure
    $ make
    $ sudo make install

For Ubuntu12.04 or other systems, you may need to add the following path after building:

$ sudo echo "/usr/local/lib" >> /etc/
$ sudo ldconfig

4) Build and install YARA Python from ./depends/yara-python-1.6.tar.gz

    $ cd depends
    $ tar xvfz yara-python-1.6.tar.gz
    $ cd  yara-python-1.6
    $ python build
    $ sudo python install

5) Build and install BeautifulSoup from ./depends/BeautifulSoup-3.2.0.tar.gz
    (alternatively from the pypi

    $ cd depends
    $ tar xvfz BeautifulSoup-3.2.0.tar.gz
    $ cd BeautifulSoup-3.2.0/
    $ python build
    $ sudo python install

6) Install pycrypto (for encrypted PDFs) from ./depends/pycrypto-2.4.1.tar.gz
    (alternatively from the pypi

    $ cd depends
    $ tar xvfz pycrypto-2.4.1.tar.gz
    $ cd pycrypto-2.4.1
    $ python build
    $ sudo python install

a) To use the -g --graph option, you should install the "python-yapgvb" package.

b) Filetype identification: Magic (optional)
    If you use Ubuntu, you can install the python-magic package using apt-get install python-magic.
   To define your local magic data use file /etc/magic.

Using Jsunpack-n
Now unzip the samples.tgz,it contain many document on which you can test jsunpack
1:Run following command to find file type first as in sample folder file extension are renamed:
$file NameofFile 
$./ -V /home/alt/Desktop/Analyze-Mal-doc/jsunpack-n/jsunpack-n/samples/pdf.file

2:Read the decoded  file which is extracted in last step.
$cat ./temp/files/original_c34022681fa89171fc803baeb2b120400bc1775f 

Jsunpack decoded file

3:jsunpack-n also contain  tools that can be used to decompress javascripts.
$ ./ -V /home/alt/Desktop/Analyze-Mal-doc/jsunpack-n/jsunpack-n/samples/pdf-thisCreator.file
Above command will otput javascript in a ".out" file
$cat samples/pdf-thisCreator.file.out tool in jsunpack-n

4:Produce a graph using -g option,give name of a picture file with proper extension like uname.png with -g option ex: -g nameofpicfile.png
$./ -g unamed.png /home/alt/Desktop/Analyze-Mal-doc/jsunpack-n/jsunpack-n/samples/pdf.file
Jsunpack graph


Popular posts from this blog

Install Virtual Box On Kali Rolling

If you facing problem with virtualbox installation on kali rolling edition because of its outdated kernel 4.3.0-kali1-amd64 then this post is for you only.

Step1: Install latest kernel. First search the cache for list of available ones apt-cache search linux-headers
Depending upon the list choose one from the set and install install it.
you can download kernel file using wget from ubuntu source also.
for more refer to this post: link

Edit the boot entry /boot/vmlinuz-(New Linux kernel Version) & /boot/initrd.img-(New Linux kernel version) in grub menu.

Before making boot entry changes be sure these files exist in the /boot directory after running install command.
In my case following new file got created in /boot folder:


Thats all you need to do to install any virtual software on kali r…

Hacking Windows 10 UWP App: DLL Injection & common Vulnerabilities

I recently started working on  widows 10 Apps( Apps not Applications) security. Before diving deep in hacking terms lets try to understand what's new in Windows 10 UWP( Universal Platform) as compared to old Apps. Lets begin with how apps actually work on windows 10(desktop/tablet). Now windows 10 comes with a container only for running apps inside the isolated environment. By default, /APPCONTAINER(Linker Flag) is off. This option modifies an executable to indicate whether the app must be run in the appcontainer process-isolation environment. Specify /APPCONTAINER for an app that must run in the appcontainer environment—for example, a Windows Store app. (The option is set automatically in Visual Studio when you create a Windows Store app from a template.) For a desktop app, specify /APPCONTAINER:NO or just omit the option. The /APPCONTAINER option was introduced in Windows 8.
Now there is no registry entry concept for these app in the System HIVE rather they install they own hiv…

Assignment 01(Enroll TO Offensive-Security Course)

Steps 1:download the page.
2:open fc4.js in your favourite editor and add following lines in it or just replace it with vode given below.
3:then open the download html file in browser and fill the form with your email and a garbage value string.
4:thats it? it will show you the real security string??
yeah but  ...theirs another challenge waiting for you ... :D

function fc4me(srvstr) {

   if(! || !document.pleazfc4me.securitystring.value) {
      alert("Please fill in all the required fields!");
      return false;
   else {
   var t=hexMD5("\x74\x72\x79\x68\x61\x72\x64\x65\x72"+srvstr)

Finally Got In :-)