856 Commits
Author SHA1 Message Date
Jurriaan Bremer e03b217e32 symlink to analyzer/ directory 2016-07-19 16:26:18 +02:00
Jurriaan Bremer 6c8508adae move agent/ and analyzer/ into cuckoo/data/ 2016-04-14 03:22:12 +02:00
Jurriaan Bremer eabc926596 code cleanup 2016-03-22 15:12:17 +01:00
rep 7ff3c37152 fix unhandled exceptions in analyzer when network issues occur mid-analysis,
we really can't handle these exceptions in any meaningful way up the stack anyways
2016-03-21 13:01:43 +01:00
rep 4ae91b7baa add support for TRACK and DUMPREQS for customized memory dumping
this also brings back some python memory dumping code from the past
2016-03-18 14:06:07 +01:00
Nex 0750c96c8a Removed unused variable 2016-02-29 21:26:48 +01:00
Nex 026e8cf09f Removed redundant line 2016-02-29 21:23:51 +01:00
Nex 493dc7577d Removing unused dependencies from linux analyzer 2016-02-29 21:23:12 +01:00
Nex c71feb8295 Removed unused dependencies from darwin analyzer 2016-02-29 21:21:11 +01:00
Jurriaan Bremer e2199ef0f2 code cleanup (monitor no longer uses sockets) 2016-02-29 02:04:56 +01:00
Jurriaan Bremer aab784048b make the analyzer work in pythonw mode
The issue lied in the fact that Pythonw.exe is not a cmd.exe
application, but rather a GUI application. In turn GUI applications
don't have stdin/stdout/stderr and thus if we'd create subprocesses from
a Pythonw application that will automatically retrieve those file
descriptors we'd receive a couple of exceptions as they don't exist.
This commit works around the issue by not using the file descriptors in
the first place.
2016-02-28 19:10:27 +01:00
Nex 3bac865efc Removed redundant logging 2016-02-28 15:31:08 +01:00
razu 8587acfc03 decoding to latin1 doesn't work for me, but this does 2016-02-27 13:02:15 +02:00
Jurriaan Bremer 6f6cf137f8 fix unicode filename error (thanks razu) 2016-02-23 02:25:18 +01:00
Jurriaan Bremer e415bf9b6c reset the socket timeout after connecting (thanks spender)
Bugfix as per 2e9f663da6ca90cc46b8a578bdd8c801eda1eec0 by spender. This
avoids the issue where the socket timeout remains at 0.1 second after
connecting, providing the possibility to throw around exceptions.
2016-02-20 04:01:34 +01:00
Jurriaan Bremer 7dcdab5138 removed all references to cuckoomon #768 2016-02-16 02:59:33 +01:00
Jurriaan Bremer b80a6c69f9 Merge pull request #707 from Titotix/human
Human module: button to click
2016-02-14 02:10:02 +01:00
Jurriaan Bremer dfc6f70471 missing .wsf package handler and handle exception 2016-02-12 00:28:16 +01:00
Jurriaan Bremer fc58dffa15 .wsf analysis support
Recently a blogpost [1] was released covering a "new" technique used
in-the-wild. Rather than embedding a Javascript .js file, the .wsf
technique allows one to use the JScript.Encode feature to encode the
actual Javascript payload further.

As part of our static analysis we provide the decoded Javascript.
The implementation of this work is a port of scrdec18.c [2], a
JScript.Encode decoder implemented in C.

[1]: https://medium.com/@networksecurity/ransomware-delivered-using-wsf-windows-script-file-551a6589da47
[2]: https://gist.githubusercontent.com/bcse/1834878/raw/7483fb72abbb32aa69b853fdcc9f6f72e7568677/scrdec18.c
2016-02-12 00:15:24 +01:00
Nex a389d74f09 Updated copyright notice 2016-02-03 14:59:18 +01:00
Nex f68172bffb Added older version of Office (closes: #743) 2016-02-02 16:40:01 +01:00
Jurriaan Bremer 873190a07f also find buttons with different classes (thanks ford_)
Alternative button names include TButton and TNewButton.
2016-01-27 19:01:02 +01:00
Nex aa18c34df5 Merge branch 'master' of github.com:cuckoosandbox/cuckoo 2015-12-25 11:01:59 +01:00
Nex b4e616352a Fixed copyright notice in newer files 2015-12-25 11:01:36 +01:00
Jurriaan Bremer 843bcba642 update github references 2015-12-24 22:38:59 +01:00
Nex 61e70a153b Fixed copyright notice 2015-12-24 22:33:58 +01:00
Nex fb1b9285e2 Fixed copyright notice 2015-12-23 20:41:51 +01:00
Jurriaan Bremer 020e4acdfe enforce .js extension for js package 2015-12-19 13:05:10 +01:00
Thibault Marquand 8d128f226b human module: add few button to click keyword 2015-12-18 12:49:08 +01:00
Thibault Marquand 3c16f686a7 human module: french translation of button to click 2015-12-18 12:48:07 +01:00
Jurriaan Bremer 60d49615ab process memory dumping tweaks
Send over the whole memory dump from the Analyzer. Update to the latest
monitor which sends out the KILL message to the Analyzer. Resolve page
access permissions, ignore dump files not ending with .dmp, and rename
space to regions.
2015-11-26 06:23:54 +01:00
Jurriaan Bremer f3fe898858 rewrite process memory dumping logic
The monitor now informs the Analyzer when a process is about to finish.
This allows the Analyzer to dump the process memory right before it
actually finishes and thus adds support for dumping memory of processes
that terminate before reaching the critical analysis timeout (if that
even occurs in the first).

Furthermore the new dumping logic, which is now embedded in monitor's
inject.exe utility, also dumps metadata about the memory pages such as
their protection, size, etc. (And by separating the functionality into
a separate utility we now also support 32-bit vs 64-bit differences).

And last but not least we also support dumping processes multiple times
just in case this appears useful in the future.
2015-11-25 23:03:34 +01:00
Jurriaan Bremer 52dc5259e8 get rid of unused paths in the analyzer
These paths have not been used for a long while and are only cluttering
the analysis VM with predictable directory names. Simply get rid of it.
2015-11-25 22:00:11 +01:00
Jurriaan Bremer ff66dca29a make package a member of the analyzer object
So we can reference it in other modules, such as the pipe handler, that
have access to the Analyzer object.
2015-11-25 17:07:27 +01:00
Jurriaan Bremer 97c0acd6fd executive decission to switch to the iexplore monitoring mode
When we analyze a URL we don't Internet Explorer to take a minute to
fully load while appearing to freeze all the time, this simply doesn't
work practically speaking.

In the iexplore monitoring mode we only look at a very small subset of
the functionality provided by the monitor so to load websites close to
as fast as they would be loaded without the iexplore mode. Of course
this subset should still containing all the critical functionality such
as following created sub-processes, but if anything is missing as-is
this can be added later on.

One final note; including monitoring functions related to exploitation
techniques shouldn't fall under the iexplore monitoring mode per se as
we can simply combine the iexplore mode with the to-be-implemented
"exploit" monitoring mode.
2015-11-24 01:09:56 +01:00
Jurriaan Bremer 9396b22ebb remove some remainders of the hashes stuff
Once we pick up on that subject we can re-introduce it again.
2015-11-09 17:30:14 +01:00
Jurriaan Bremer a6d0980ea4 regsetvalueexw expects unicode strings 2015-11-02 13:31:23 +01:00
Jurriaan Bremer b357bcad03 correctly handle unicode buffers and trailing zeroes 2015-11-02 12:54:27 +01:00
Jurriaan Bremer fdae38c659 correctly handle volatile registry stuff under winxp
The _winreg API doesn't play nice under Windows XP due to Volatile
Registry limitations. Therefore we fallback to using the Windows API,
which does apparently work.
2015-11-02 06:19:45 +01:00
Jurriaan Bremer e387b8519a Merge pull request #644 from PickmanSec/master
fixed bson importing issue
2015-11-02 03:55:41 +01:00
Jurriaan Bremer 95f7649e65 populate the registry with various anti-anti-vm values 2015-11-01 21:50:09 +01:00
Jurriaan Bremer af480d48bc separate directory for keeping monitoring binaries
After having been overwriting the binaries in analyzer/windows/bin for
too many years now, it's time to start building up a small but useful
database of monitoring binaries in data/monitor/.

When releasing new features or bug fixes which also affect the monitor,
we can now update the data/monitor/latest symbolic link to point to the
Git hash of the required monitor version. Upon start of Cuckoo we can
then check whether the symbolic links target exists and report to the
user the need to upgrade to the latest monitoring binaries if it does
not. (In the end this will only occur when a user manually updates his
or her Cuckoo setup or does a Git clone of the Git repository).

Aside from the improved user experience this will also improve our
ability to bisect the monitor against older versions of it. Sometimes
new features break older features or introduce crashes. Being able to
replay analyses with older monitoring binaries we should be able to
have bisect-like functionality more easily (without race condition
problems that are introduced when overwriting the analyzer/windows/bin
directory while running multiple analyses in parallel).
2015-10-30 13:53:49 +01:00
Jurriaan Bremer 3a5c3ebb57 passthrough the disguise option to the monitor 2015-10-28 18:24:05 +01:00
Jurriaan Bremer 880b855cc5 slightly improve error message 2015-10-14 10:15:13 +02:00
Jurriaan Bremer 66fc13a9b1 generalize obtaining java.exe path through glob
This makes our Java package compatible with future versions of Java
without having to update Cuckoo with new paths later on. Thanks to
Statixs for reporting that the latest version of Java was not found.
2015-10-13 05:18:49 +02:00
Jurriaan Bremer 2d9668c51e code cleanup 2015-10-10 02:48:16 +02:00
Jurriaan Bremer f68141d93c create a random window title consisting of only ascii characters
Fixes #654, thanks to ds108j for reporting.
2015-10-09 10:23:54 +02:00
Jurriaan Bremer 0c6809e8a0 add path for adobe reader dc (thanks to Statixs for reporting) 2015-10-08 13:56:11 +02:00
rep 5a4f6e34bb picked up a .c :( - bugfix 2015-10-06 13:31:11 +02:00
rep 5b88c1eb3c minor changes stap aux module 2015-10-06 13:29:54 +02:00