gitextract_7ncmzzmg/ ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── Bug_Report-Demon.yml │ ├── Bug_Report-Documentation.yml │ ├── Bug_Report-Teamserver-Client.yml │ ├── Feature_Suggestion.yml │ └── config.yml ├── .gitignore ├── .gitmodules ├── CONTRIBUTING.MD ├── CREDITS.md ├── LICENSE ├── README.md ├── RELEASE.md ├── WIKI.MD ├── assets/ │ ├── Havoc-Client.groovy │ └── Havoc-Teamserver.groovy ├── client/ │ ├── CMakeLists.txt │ ├── README.md │ ├── config.toml │ ├── include/ │ │ ├── External.h │ │ ├── Havoc/ │ │ │ ├── CmdLine.hpp │ │ │ ├── Connector.hpp │ │ │ ├── DBManager/ │ │ │ │ └── DBManager.hpp │ │ │ ├── DemonCmdDispatch.h │ │ │ ├── Havoc.hpp │ │ │ ├── Packager.hpp │ │ │ ├── PythonApi/ │ │ │ │ ├── Event.h │ │ │ │ ├── HavocUi.h │ │ │ │ ├── PyAgentClass.hpp │ │ │ │ ├── PyDemonClass.h │ │ │ │ ├── PythonApi.h │ │ │ │ └── UI/ │ │ │ │ ├── PyDialogClass.hpp │ │ │ │ ├── PyLoggerClass.hpp │ │ │ │ ├── PyTreeClass.hpp │ │ │ │ └── PyWidgetClass.hpp │ │ │ └── Service.hpp │ │ ├── UserInterface/ │ │ │ ├── Dialogs/ │ │ │ │ ├── About.hpp │ │ │ │ ├── Connect.hpp │ │ │ │ ├── Listener.hpp │ │ │ │ └── Payload.hpp │ │ │ ├── HavocUI.hpp │ │ │ ├── SmallWidgets/ │ │ │ │ └── EventViewer.hpp │ │ │ └── Widgets/ │ │ │ ├── Chat.hpp │ │ │ ├── DemonInteracted.h │ │ │ ├── FileBrowser.hpp │ │ │ ├── ListenerTable.hpp │ │ │ ├── LootWidget.h │ │ │ ├── ProcessList.hpp │ │ │ ├── PythonScript.hpp │ │ │ ├── ScriptManager.h │ │ │ ├── SessionGraph.hpp │ │ │ ├── SessionTable.hpp │ │ │ ├── Store.hpp │ │ │ ├── Teamserver.hpp │ │ │ └── TeamserverTabSession.h │ │ ├── Util/ │ │ │ ├── Base.hpp │ │ │ ├── Base64.h │ │ │ └── ColorText.h │ │ └── global.hpp │ ├── makefile │ └── src/ │ ├── Havoc/ │ │ ├── Connector.cc │ │ ├── DBManger/ │ │ │ ├── DBManager.cc │ │ │ ├── Scripts.cc │ │ │ └── Teamserver.cc │ │ ├── Demon/ │ │ │ ├── CommandOutput.cc │ │ │ ├── CommandSend.cc │ │ │ ├── Commands.cc │ │ │ └── ConsoleInput.cc │ │ ├── Havoc.cc │ │ ├── Packager.cc │ │ ├── PythonApi/ │ │ │ ├── Event.cc │ │ │ ├── Havoc.cc │ │ │ ├── HavocUi.cc │ │ │ ├── PyAgentClass.cc │ │ │ ├── PyDemonClass.cc │ │ │ ├── PythonApi.cc │ │ │ └── UI/ │ │ │ ├── PyDialogClass.cc │ │ │ ├── PyLoggerClass.cc │ │ │ ├── PyTreeClass.cc │ │ │ └── PyWidgetClass.cc │ │ └── Service.cc │ ├── Main.cc │ ├── UserInterface/ │ │ ├── Dialogs/ │ │ │ ├── About.cc │ │ │ ├── Connect.cc │ │ │ ├── Listener.cc │ │ │ └── Payload.cc │ │ ├── HavocUi.cc │ │ ├── SmallWidgets/ │ │ │ └── EventViewer.cc │ │ └── Widgets/ │ │ ├── Chat.cc │ │ ├── DemonInteracted.cc │ │ ├── FileBrowser.cc │ │ ├── ListenersTable.cc │ │ ├── LootWidget.cc │ │ ├── ProcessList.cc │ │ ├── PythonScript.cc │ │ ├── ScriptManager.cc │ │ ├── SessionGraph.cc │ │ ├── SessionTable.cc │ │ ├── Store.cc │ │ ├── Teamserver.cc │ │ └── TeamserverTabSession.cc │ ├── Util/ │ │ ├── Base.cpp │ │ ├── Base64.cpp │ │ └── ColorText.cpp │ └── global.cc ├── makefile ├── payloads/ │ ├── Demon/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ ├── Demon.h │ │ │ ├── common/ │ │ │ │ ├── Clr.h │ │ │ │ ├── Defines.h │ │ │ │ ├── Macros.h │ │ │ │ └── Native.h │ │ │ ├── core/ │ │ │ │ ├── CoffeeLdr.h │ │ │ │ ├── Command.h │ │ │ │ ├── Dotnet.h │ │ │ │ ├── Download.h │ │ │ │ ├── HwBpEngine.h │ │ │ │ ├── HwBpExceptions.h │ │ │ │ ├── Jobs.h │ │ │ │ ├── Kerberos.h │ │ │ │ ├── Memory.h │ │ │ │ ├── MiniStd.h │ │ │ │ ├── ObjectApi.h │ │ │ │ ├── Package.h │ │ │ │ ├── Parser.h │ │ │ │ ├── Pivot.h │ │ │ │ ├── Process.h │ │ │ │ ├── Runtime.h │ │ │ │ ├── SleepObf.h │ │ │ │ ├── Socket.h │ │ │ │ ├── Spoof.h │ │ │ │ ├── SysNative.h │ │ │ │ ├── Syscalls.h │ │ │ │ ├── Thread.h │ │ │ │ ├── Token.h │ │ │ │ ├── Transport.h │ │ │ │ ├── TransportHttp.h │ │ │ │ ├── TransportSmb.h │ │ │ │ └── Win32.h │ │ │ ├── crypt/ │ │ │ │ └── AesCrypt.h │ │ │ └── inject/ │ │ │ ├── Inject.h │ │ │ └── InjectUtil.h │ │ ├── makefile │ │ ├── scripts/ │ │ │ └── hash_func.py │ │ └── src/ │ │ ├── Demon.c │ │ ├── asm/ │ │ │ ├── Spoof.x64.asm │ │ │ ├── Spoof.x86.asm │ │ │ ├── Syscall.x64.asm │ │ │ └── Syscall.x86.asm │ │ ├── core/ │ │ │ ├── CoffeeLdr.c │ │ │ ├── Command.c │ │ │ ├── Dotnet.c │ │ │ ├── Download.c │ │ │ ├── HwBpEngine.c │ │ │ ├── HwBpExceptions.c │ │ │ ├── Jobs.c │ │ │ ├── Kerberos.c │ │ │ ├── Memory.c │ │ │ ├── MiniStd.c │ │ │ ├── Obf.c │ │ │ ├── ObjectApi.c │ │ │ ├── Package.c │ │ │ ├── Parser.c │ │ │ ├── Pivot.c │ │ │ ├── Runtime.c │ │ │ ├── Socket.c │ │ │ ├── Spoof.c │ │ │ ├── SysNative.c │ │ │ ├── Syscalls.c │ │ │ ├── Thread.c │ │ │ ├── Token.c │ │ │ ├── Transport.c │ │ │ ├── TransportHttp.c │ │ │ ├── TransportSmb.c │ │ │ └── Win32.c │ │ ├── crypt/ │ │ │ └── AesCrypt.c │ │ ├── inject/ │ │ │ ├── Inject.c │ │ │ └── InjectUtil.c │ │ └── main/ │ │ ├── MainDll.c │ │ ├── MainExe.c │ │ └── MainSvc.c │ ├── DllLdr/ │ │ ├── Include/ │ │ │ ├── Core.h │ │ │ ├── Macro.h │ │ │ └── Native.h │ │ ├── Scripts/ │ │ │ └── extract.py │ │ ├── Source/ │ │ │ └── Entry.c │ │ └── makefile │ └── Shellcode/ │ ├── Bin/ │ │ └── .gitignore │ ├── Include/ │ │ ├── Core.h │ │ ├── Macro.h │ │ ├── Utils.h │ │ └── Win32.h │ ├── Scripts/ │ │ ├── Hasher │ │ ├── Hasher.c │ │ ├── Linker.ld │ │ └── extract.py │ ├── Source/ │ │ ├── Asm/ │ │ │ ├── x64/ │ │ │ │ └── Asm.s │ │ │ └── x86/ │ │ │ └── Asm.s │ │ ├── Entry.c │ │ ├── Utils.c │ │ └── Win32.c │ └── makefile ├── profiles/ │ ├── havoc.yaotl │ ├── http_smb.yaotl │ └── webhook_example.yaotl └── teamserver/ ├── GA-Teamserver ├── Install.sh ├── README.md ├── Teamserver-Dockerfile ├── cmd/ │ ├── client.go │ ├── cmd.go │ ├── server/ │ │ ├── agent.go │ │ ├── dispatch.go │ │ ├── listener.go │ │ ├── service.go │ │ ├── teamserver.go │ │ └── types.go │ └── server.go ├── go.mod ├── go.sum ├── main.go └── pkg/ ├── agent/ │ ├── agent.go │ ├── commands.go │ ├── demons.go │ └── types.go ├── colors/ │ └── colors.go ├── common/ │ ├── builder/ │ │ └── builder.go │ ├── certs/ │ │ └── https.go │ ├── crypt/ │ │ └── aes.go │ ├── packer/ │ │ └── packer.go │ ├── parser/ │ │ └── parser.go │ └── util.go ├── db/ │ ├── agents.go │ ├── db.go │ ├── links.go │ ├── listeners.go │ └── misc.go ├── events/ │ ├── chatlog.go │ ├── demons.go │ ├── events.go │ ├── gate.go │ ├── listeners.go │ ├── service.go │ └── teamserver.go ├── handlers/ │ ├── 404.html │ ├── external.go │ ├── handlers.go │ ├── http.go │ ├── smb.go │ └── types.go ├── logger/ │ ├── global.go │ └── logger.go ├── logr/ │ ├── demon.go │ ├── listener.go │ ├── logr.go │ └── server.go ├── packager/ │ ├── packages.go │ └── types.go ├── profile/ │ ├── config.go │ ├── profile.go │ └── yaotl/ │ ├── diagnostic.go │ ├── diagnostic_text.go │ ├── didyoumean.go │ ├── doc.go │ ├── eval_context.go │ ├── expr_call.go │ ├── expr_list.go │ ├── expr_map.go │ ├── expr_unwrap.go │ ├── ext/ │ │ ├── README.md │ │ ├── customdecode/ │ │ │ ├── README.md │ │ │ ├── customdecode.go │ │ │ └── expression_type.go │ │ ├── dynblock/ │ │ │ ├── README.md │ │ │ ├── expand_body.go │ │ │ ├── expand_body_test.go │ │ │ ├── expand_spec.go │ │ │ ├── expr_wrap.go │ │ │ ├── iteration.go │ │ │ ├── public.go │ │ │ ├── schema.go │ │ │ ├── unknown_body.go │ │ │ ├── variables.go │ │ │ ├── variables_hcldec.go │ │ │ └── variables_test.go │ │ ├── transform/ │ │ │ ├── doc.go │ │ │ ├── error.go │ │ │ ├── transform.go │ │ │ ├── transform_test.go │ │ │ └── transformer.go │ │ ├── tryfunc/ │ │ │ ├── README.md │ │ │ ├── tryfunc.go │ │ │ └── tryfunc_test.go │ │ ├── typeexpr/ │ │ │ ├── README.md │ │ │ ├── doc.go │ │ │ ├── get_type.go │ │ │ ├── get_type_test.go │ │ │ ├── public.go │ │ │ ├── type_string_test.go │ │ │ ├── type_type.go │ │ │ └── type_type_test.go │ │ └── userfunc/ │ │ ├── README.md │ │ ├── decode.go │ │ ├── decode_test.go │ │ ├── doc.go │ │ └── public.go │ ├── gohcl/ │ │ ├── decode.go │ │ ├── doc.go │ │ ├── encode.go │ │ ├── schema.go │ │ └── types.go │ ├── guide/ │ │ ├── Makefile │ │ ├── conf.py │ │ ├── go.rst │ │ ├── go_decoding_gohcl.rst │ │ ├── go_decoding_hcldec.rst │ │ ├── go_decoding_lowlevel.rst │ │ ├── go_diagnostics.rst │ │ ├── go_expression_eval.rst │ │ ├── go_parsing.rst │ │ ├── go_patterns.rst │ │ ├── index.rst │ │ ├── intro.rst │ │ ├── language_design.rst │ │ ├── make.bat │ │ └── requirements.txt │ ├── hcldec/ │ │ ├── block_labels.go │ │ ├── decode.go │ │ ├── doc.go │ │ ├── gob.go │ │ ├── public.go │ │ ├── public_test.go │ │ ├── schema.go │ │ ├── spec.go │ │ ├── spec_test.go │ │ ├── variables.go │ │ └── variables_test.go │ ├── hcled/ │ │ ├── doc.go │ │ └── navigation.go │ ├── hclparse/ │ │ └── parser.go │ ├── hclsimple/ │ │ └── hclsimple.go │ ├── hclsyntax/ │ │ ├── diagnostics.go │ │ ├── didyoumean.go │ │ ├── doc.go │ │ ├── expression.go │ │ ├── expression_ops.go │ │ ├── expression_template.go │ │ ├── expression_vars.go │ │ ├── expression_vars_gen.go │ │ ├── file.go │ │ ├── fuzz/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── config/ │ │ │ │ ├── corpus/ │ │ │ │ │ ├── attr-expr.hcl │ │ │ │ │ ├── attr-literal.hcl │ │ │ │ │ ├── block-attrs.hcl │ │ │ │ │ ├── block-empty.hcl │ │ │ │ │ ├── block-nested.hcl │ │ │ │ │ ├── empty.hcl │ │ │ │ │ └── utf8.hcl │ │ │ │ └── fuzz.go │ │ │ ├── expr/ │ │ │ │ ├── corpus/ │ │ │ │ │ ├── empty.hcle │ │ │ │ │ ├── escape-dollar.hcle │ │ │ │ │ ├── escape-newline.hcle │ │ │ │ │ ├── function-call.hcle │ │ │ │ │ ├── int.hcle │ │ │ │ │ ├── literal.hcle │ │ │ │ │ ├── splat-attr.hcle │ │ │ │ │ ├── splat-full.hcle │ │ │ │ │ ├── utf8.hcle │ │ │ │ │ └── var.hcle │ │ │ │ └── fuzz.go │ │ │ ├── template/ │ │ │ │ ├── corpus/ │ │ │ │ │ ├── empty.tmpl │ │ │ │ │ ├── escape-dollar.tmpl │ │ │ │ │ ├── escape-newline.tmpl │ │ │ │ │ ├── function-call.tmpl │ │ │ │ │ ├── int.tmpl │ │ │ │ │ ├── just-interp.tmpl │ │ │ │ │ ├── literal.tmpl │ │ │ │ │ └── utf8.tmpl │ │ │ │ └── fuzz.go │ │ │ └── traversal/ │ │ │ ├── corpus/ │ │ │ │ ├── attr.hclt │ │ │ │ ├── complex.hclt │ │ │ │ ├── index.hclt │ │ │ │ └── root.hclt │ │ │ └── fuzz.go │ │ ├── generate.go │ │ ├── keywords.go │ │ ├── navigation.go │ │ ├── node.go │ │ ├── parser.go │ │ ├── parser_template.go │ │ ├── parser_traversal.go │ │ ├── peeker.go │ │ ├── public.go │ │ ├── scan_string_lit.go │ │ ├── scan_string_lit.rl │ │ ├── scan_tokens.go │ │ ├── scan_tokens.rl │ │ ├── structure.go │ │ ├── structure_at_pos.go │ │ ├── token.go │ │ ├── token_type_string.go │ │ ├── unicode2ragel.rb │ │ ├── unicode_derived.rl │ │ ├── variables.go │ │ └── walk.go │ ├── hcltest/ │ │ ├── doc.go │ │ ├── mock.go │ │ └── mock_test.go │ ├── hclwrite/ │ │ ├── ast.go │ │ ├── ast_attribute.go │ │ ├── ast_block.go │ │ ├── ast_block_test.go │ │ ├── ast_body.go │ │ ├── ast_body_test.go │ │ ├── ast_expression.go │ │ ├── ast_test.go │ │ ├── doc.go │ │ ├── examples_test.go │ │ ├── format.go │ │ ├── format_test.go │ │ ├── fuzz/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ └── config/ │ │ │ ├── corpus/ │ │ │ │ ├── attr-expr.hcl │ │ │ │ ├── attr-literal.hcl │ │ │ │ ├── attr.hcl │ │ │ │ ├── block-attrs.hcl │ │ │ │ ├── block-comment.hcl │ │ │ │ ├── block-empty.hcl │ │ │ │ ├── block-nested.hcl │ │ │ │ ├── complex.hcl │ │ │ │ ├── empty.hcl │ │ │ │ ├── escape-dollar.hcl │ │ │ │ ├── escape-newline.hcl │ │ │ │ ├── function-call-tmpl.hcl │ │ │ │ ├── function-call.hcl │ │ │ │ ├── hash-comment.hcl │ │ │ │ ├── index.hcl │ │ │ │ ├── int-tmpl.hcl │ │ │ │ ├── int.hcl │ │ │ │ ├── just-interp.hcl │ │ │ │ ├── literal.hcl │ │ │ │ ├── lots-of-comments.hcl │ │ │ │ ├── slash-comment.hcl │ │ │ │ ├── splat-attr.hcl │ │ │ │ ├── splat-dot-full.hcl │ │ │ │ ├── splat-full.hcl │ │ │ │ ├── traversal-dot-index-terminal.hcl │ │ │ │ ├── traversal-dot-index.hcl │ │ │ │ ├── traversal-index.hcl │ │ │ │ ├── utf8.hcl │ │ │ │ └── var.hcl │ │ │ └── fuzz.go │ │ ├── generate.go │ │ ├── generate_test.go │ │ ├── native_node_sorter.go │ │ ├── node.go │ │ ├── parser.go │ │ ├── parser_test.go │ │ ├── public.go │ │ ├── round_trip_test.go │ │ └── tokens.go │ ├── json/ │ │ ├── ast.go │ │ ├── didyoumean.go │ │ ├── didyoumean_test.go │ │ ├── doc.go │ │ ├── fuzz/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ └── config/ │ │ │ ├── corpus/ │ │ │ │ ├── attr-expr.hcl.json │ │ │ │ ├── attr-literal.hcl.json │ │ │ │ ├── block-attrs.hcl.json │ │ │ │ ├── block-empty.json │ │ │ │ ├── block-nested.hcl.json │ │ │ │ ├── empty.hcl.json │ │ │ │ ├── list-empty.json │ │ │ │ ├── list-nested.json │ │ │ │ ├── list-values.json │ │ │ │ ├── number-big.hcl.json │ │ │ │ ├── number-int.hcl.json │ │ │ │ └── utf8.hcl.json │ │ │ └── fuzz.go │ │ ├── navigation.go │ │ ├── navigation_test.go │ │ ├── parser.go │ │ ├── parser_test.go │ │ ├── peeker.go │ │ ├── public.go │ │ ├── public_test.go │ │ ├── scanner.go │ │ ├── scanner_test.go │ │ ├── spec.md │ │ ├── structure.go │ │ ├── structure_test.go │ │ └── tokentype_string.go │ ├── merged.go │ ├── ops.go │ ├── pos.go │ ├── pos_scanner.go │ ├── schema.go │ ├── specsuite/ │ │ ├── README.md │ │ ├── spec_test.go │ │ └── tests/ │ │ ├── comments/ │ │ │ ├── hash_comment.hcl │ │ │ ├── hash_comment.hcldec │ │ │ ├── hash_comment.t │ │ │ ├── multiline_comment.hcl │ │ │ ├── multiline_comment.hcldec │ │ │ ├── multiline_comment.t │ │ │ ├── slash_comment.hcl │ │ │ ├── slash_comment.hcldec │ │ │ └── slash_comment.t │ │ ├── empty.hcl │ │ ├── empty.hcl.json │ │ ├── empty.hcldec │ │ ├── empty.t │ │ ├── expressions/ │ │ │ ├── heredoc.hcl │ │ │ ├── heredoc.hcldec │ │ │ ├── heredoc.t │ │ │ ├── operators.hcl │ │ │ ├── operators.hcldec │ │ │ ├── operators.t │ │ │ ├── primitive_literals.hcl │ │ │ ├── primitive_literals.hcldec │ │ │ └── primitive_literals.t │ │ └── structure/ │ │ ├── attributes/ │ │ │ ├── expected.hcl │ │ │ ├── expected.hcldec │ │ │ ├── expected.t │ │ │ ├── singleline_bad.hcl │ │ │ ├── singleline_bad.hcldec │ │ │ ├── singleline_bad.t │ │ │ ├── unexpected.hcl │ │ │ ├── unexpected.hcldec │ │ │ └── unexpected.t │ │ └── blocks/ │ │ ├── single_empty_oneline.hcl │ │ ├── single_empty_oneline.hcldec │ │ ├── single_empty_oneline.t │ │ ├── single_expected.hcl │ │ ├── single_expected.hcldec │ │ ├── single_expected.t │ │ ├── single_oneline.hcl │ │ ├── single_oneline.hcldec │ │ ├── single_oneline.t │ │ ├── single_oneline_invalid.hcl │ │ ├── single_oneline_invalid.hcldec │ │ ├── single_oneline_invalid.t │ │ ├── single_unclosed.hcl │ │ ├── single_unclosed.hcldec │ │ └── single_unclosed.t │ ├── static_expr.go │ ├── structure.go │ ├── structure_at_pos.go │ ├── traversal.go │ └── traversal_for_expr.go ├── service/ │ ├── agent.go │ ├── external.go │ ├── listener.go │ ├── service.go │ └── types.go ├── socks/ │ ├── socks.go │ └── util.go ├── utils/ │ └── utils.go ├── webhook/ │ ├── discord.go │ └── webhook.go └── win32/ └── types.go