/getchoo

Cisco ASDM SGZ Parser

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Getchoo

Getchoo is a tool for parsing and extracting Cisco ASDM SGZ files. The SGZ file is hosted on the Cisco ASA's HTTP server and is downloaded/executed by the ASDM launcher at runtime. Researchers can either download the SGZ from an ASA at http://address/admin/pdm.sgz or extract the file from an ASDM binary package using theway.

The SGZ contains a lot of files. For example, the following file types are found in the pdm.sgz from 7.18.1:

albinolobster@ubuntu:~/getchoo/build/tmp$ find . -type f | sed -n 's/..*\.//p' | sort | uniq -c
  13472 class
      6 jar
      1 prop
      4 properties
      3 txt

Sample Output

Below is an example of parsing the pdm.sgz from 7.18.1 that was extracted by theway:

albinolobster@ubuntu:~/getchoo/build$ ./getchoo ~/theway/build/output/pdm.sgz 

  MM'"""""`MM            dP            dP
  M' .mmm. `M            88            88
  M  MMMMMMMM .d8888b. d8888P .d8888b. 88d888b. .d8888b. .d8888b.
  M  MMM   `M 88ooood8   88   88'  `"" 88'  `88 88'  `88 88'  `88
  M. `MMM' .M 88.  ...   88   88.  ... 88    88 88.  .88 88.  .88
  MM.     .MM `88888P'   dP   `88888P' dP    dP `88888P' `88888P'
  MMMMMMMMMMM
                           jbaines-r7 🦞

[+] File read. Size: 35855937
[+] Fingerprint: 2021CF9700264C3B20F18ACADA5AD950
[+] Unpacking to out.lzma
[+] End of lzma file extraction
[+] Decompressing to out
[+] Loading the decompressed file
[+] Creating ./tmp/ to write files into
[+] Creating tmp/SIGNATURE
[+] Creating tmp/env.properties
[+] Creating tmp/com/cisco/pdm/PDMApplet.class
[+] Creating tmp/hp.class
[+] Creating tmp/je.class
[+] Creating tmp/hu.class
[+] Creating tmp/go.class
[+] Creating tmp/hv.class
[+] Creating tmp/a4j.class
[+] Creating tmp/a4k.class
[+] Creating tmp/com/cisco/dmcommon/util/DMCommonEnv.class
[+] Creating tmp/org/apache/log4j/Category.class
[+] Creating tmp/f3.class
[+] Creating tmp/f2.class
[+] Creating tmp/f5.class
[+] Creating tmp/dfh.class
[+] Creating tmp/gb.class
[+] Creating tmp/dfi.class
[+] Creating tmp/f4.class
[+] Creating tmp/gc.class
[+] Creating tmp/dfj.class
[+] Creating tmp/b81.class
[+] Creating tmp/dij.class
... truncated ...

Credit