Whilst there is a wealth of information out there about how to build environments that can be used for training, offensive tradecraft development and blue team response detection, a vital part of these environments is hard to emulate. A computer network is more than a collection of connected computer resources, it is a platform for communications and productivity between people. So the focus becomes how do you properly emulate people within a network environment?
My solution to this challenge is a tool called 'sheepl' which can be used emulate the tasks that people generally perform on a network whilst addressing some of the shortfalls of traditional script-based approaches to emulating user behaviour. The tool allows the creation of 'sheepl' who execute tasks over a period of time.
They can :
- Author Word documents
- Browse to websites
- Run command line processes
- Interact with PowerShell
- Create authenticated Remote Desktop Sessions
- Create text files
As these tasks spawn processes, then this brings in opportunities to steal tokens, inject etc. Furthermore, 'sheepl' actually emulate keystrokes which mean that other opportunities such as keylogging come into play. The task list is modular so can be expanded to add in new capabilities.
Essentially anything that can be typed on a Windows system can be emulated.
This brings another dimension to environments designed to develop attacking tradecraft or define detection capabilities. A core principle is that these actions should be random, so you define a period of time, say 3hours, and then assign tasks. These tasks will be performed randomly throughout that timescale forcing red and blue to focus on the traffic signatures. The output gets compiled into a Windows executable that then performs all the actions.
The benefits of this approach are realised when you embed 'moments of opportunity' into what could be considered a normal benign set of tasks. For example, a task list could be to author some word files, browse to the intranet notice board, temporarily store a password in a text file for copy and paste and then run some system administration commands. Assuming you have compromised the host whilst this activity is taking place and are keylogging the activity, you would capture the password as it is typed into the text file and could intercept a credential that would otherwise be missed.
For an overview, you can watch a 15 minute presentation of the details of the tooling showing the process tree it creates and examples of the tasks created.
The tool is in continuous development and version 0.2 introduced a new structure for task delivery and looping. Now when you set a total time window, the task list and the time gaps between each task execution are now randomised upon each loop based on the total time so if you had 5 tasks assigned over 20 minutes, the sequence is randomised every 20 mins further adding the unpredictability of when an action will occur. This ultimately serves to support the focus on tradecraft development.
The tool is available on the SpiderLabs git repository at https://www.github.com/SpiderLabs/sheepl