| 1612 | ` |
| 1613 | } |
| 1614 | func Beacon_PostEX_Struct() string { |
| 1615 | return ` |
| 1616 | post-ex { |
| 1617 | # control the temporary process we spawn to |
| 1618 | {{.Variables.Post_EX_Process_Name}} |
| 1619 | |
| 1620 | # change the permissions and content of our post-ex DLLs |
| 1621 | set obfuscate "true"; |
| 1622 | |
| 1623 | # Allows multi-threaded post-ex DLLs to spawn threads with a spoofed start address |
| 1624 | {{.Variables.thread_hint}} |
| 1625 | |
| 1626 | # pass key function pointers from Beacon to its child jobs |
| 1627 | set smartinject "true"; |
| 1628 | |
| 1629 | # disable AMSI in powerpick, execute-assembly, and psinject |
| 1630 | set amsi_disable "false"; |
| 1631 | # do not enable this unless needed. Disabling AMSI is an IOC |
| 1632 | |
| 1633 | # control the method used to log keystrokes |
| 1634 | set keylogger "{{.Variables.Keylogger}}"; |
| 1635 | |
| 1636 | # cleanup the post-ex UDRL memory when the post-ex DLL is loaded |
| 1637 | set cleanup "true"; |
| 1638 | } |
| 1639 | ` |
| 1640 | } |