Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect interactive ppt features #786

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Commits on Nov 28, 2022

  1. Configuration menu
    Copy the full SHA
    6069d4b View commit details
    Browse the repository at this point in the history
  2. Minor uncorrelated fixes

    (new IDE complained about these)
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    59bd5cf View commit details
    Browse the repository at this point in the history
  3. ppt_record_parser: Add many types, parse CString

    Parse more record types from [MS-PPT] and some more from [MS-ODRAW],
    show more info in __str__ for debugging and extending
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    952bc7c View commit details
    Browse the repository at this point in the history
  4. olevba: Detect interactive record types in ppt

    Old powerpoint files (.ppt) can contain links to webpages or programs that
    are neither ActiveX nor VBA nor other tested types. They are saved in
    regular ppt-specific records and allow powerpoint to start arbitrary
    commands upon click or hovering over some item. The tineout for "hovering"
    is pretty fast here, it is very likely that users trigger this without
    realizing it.
    
    Add detection for these items to olevba
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    5f5f977 View commit details
    Browse the repository at this point in the history
  5. record_base: Provide complete record data for testing

    Expose existing param in record_base.test which is used to help extend and
    debug record-based streams (currently only ppt_record_parser).
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    ab9b348 View commit details
    Browse the repository at this point in the history
  6. record_base: Improve stability for real-word samples

    (1) Do not parse all sub-records in a container when constructing it
    
    (2) Allow for stray bytes at end of container data
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    9919410 View commit details
    Browse the repository at this point in the history
  7. ppt_parser: Relax requirements

    Had too harsh a requirement for ppt files, that it only contains root
    streams and no sub-streams. Not sure whether this theoretically should be
    true, but in any case it is not the case in real-world samples.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    325caf5 View commit details
    Browse the repository at this point in the history
  8. ppt_parser: Remove dead code

    This is left-over from my initial attempt to parsing ppt documents. Never
    worked properly.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    d3ba646 View commit details
    Browse the repository at this point in the history
  9. oleobj: Do not trust is_zipfile

    This can easily be fooled as shown by some malware sample. So, do it the
    pythonic way: try treating it like a zip file and deal with the exceptions
    if it is not.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    54b5693 View commit details
    Browse the repository at this point in the history
  10. ppt_record_parser: Optimize data loading

    Do not remember potentially huge blobs in memory, need that just for
    debugging.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    76da83a View commit details
    Browse the repository at this point in the history
  11. tests: Add sample and test for interactive ppt

    Self-made sample that triggers default browser with an URL upon clicking a
    shape, and that calls calc.exe upon hovering over another shape.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    feb2309 View commit details
    Browse the repository at this point in the history
  12. tests: Add helper to temporarily extract malware samples

    When testing json-output we need to run samples through the "main"
    functions of modules, not just their "process_file" functions that would
    accept the extracted and decrypted data from the existing helper
    function "loop_over_files". They need a filename as input, so add helper
    to create a temp dir and extract&decrypt samples to that temporarily.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    547cd30 View commit details
    Browse the repository at this point in the history
  13. tests: Return path-part from loop_and_extract

    When unzipping into temp dir, we often need to know the original sample
    name.
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    d67ae41 View commit details
    Browse the repository at this point in the history
  14. tests: Start test to run all tools on all data

    In another branch I missed a bug that occurred in one of our test samples.
    Avoid this by running all tools over all data
    christian-intra2net committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    9668cf6 View commit details
    Browse the repository at this point in the history