Showing preview only (3,190K chars total). Download the full file or copy to clipboard to get everything.
Repository: Orange-Cyberdefense/GOAD
Branch: main
Commit: 992307adf944
Files: 804
Total size: 2.9 MB
Directory structure:
gitextract_23x405d2/
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── ad/
│ ├── DRACARYS/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc01/
│ │ │ │ ├── cert.md
│ │ │ │ ├── keepass_bot.ps1
│ │ │ │ ├── ldaps.crt
│ │ │ │ ├── ldaps.key
│ │ │ │ └── ldaps.pfx
│ │ │ └── srv01/
│ │ │ ├── bot_ssh.ps1
│ │ │ └── vault.kdbx
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── set_spn.ps1
│ │ └── wsman_kerb.ps1
│ ├── GOAD/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc02/
│ │ │ │ ├── bot_rdp.ps1
│ │ │ │ └── sysvol_scripts/
│ │ │ │ ├── script.ps1
│ │ │ │ └── secret.ps1
│ │ │ └── srv02/
│ │ │ ├── all/
│ │ │ │ └── arya.txt
│ │ │ └── wwwroot/
│ │ │ ├── Default.aspx
│ │ │ ├── Web.config
│ │ │ ├── bin/
│ │ │ │ ├── WebApp.pdb
│ │ │ │ └── roslyn/
│ │ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ │ ├── VBCSCompiler.exe.config
│ │ │ │ ├── csc.exe.config
│ │ │ │ ├── csc.rsp
│ │ │ │ ├── csi.exe.config
│ │ │ │ ├── csi.rsp
│ │ │ │ ├── vbc.exe.config
│ │ │ │ └── vbc.rsp
│ │ │ ├── index.html
│ │ │ └── upload/
│ │ │ └── .gitkeep
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── archives/
│ │ │ ├── acl.ps1
│ │ │ ├── anonymous_ldap.ps1
│ │ │ ├── kerberoasting.ps1
│ │ │ ├── rbcd.ps1
│ │ │ └── unconstrained_delegation.ps1
│ │ ├── asrep_roasting.ps1
│ │ ├── asrep_roasting2.ps1
│ │ ├── constrained_delegation_kerb_only.ps1
│ │ ├── constrained_delegation_use_any.ps1
│ │ ├── gpo_abuse.ps1
│ │ ├── ntlm_relay.ps1
│ │ ├── rdp_scheduler.ps1
│ │ ├── responder.ps1
│ │ ├── sidhistory.ps1
│ │ └── unconstrained_delegation_user.ps1
│ ├── GOAD-Light/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc01/
│ │ │ │ └── templates/
│ │ │ │ └── ESC1.json
│ │ │ ├── dc02/
│ │ │ │ ├── bot_rdp.ps1
│ │ │ │ └── sysvol_scripts/
│ │ │ │ ├── script.ps1
│ │ │ │ └── secret.ps1
│ │ │ └── srv02/
│ │ │ ├── all/
│ │ │ │ └── arya.txt
│ │ │ └── wwwroot/
│ │ │ ├── Default.aspx
│ │ │ ├── Web.config
│ │ │ ├── bin/
│ │ │ │ ├── WebApp.pdb
│ │ │ │ └── roslyn/
│ │ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ │ ├── VBCSCompiler.exe.config
│ │ │ │ ├── csc.exe.config
│ │ │ │ ├── csc.rsp
│ │ │ │ ├── csi.exe.config
│ │ │ │ ├── csi.rsp
│ │ │ │ ├── vbc.exe.config
│ │ │ │ └── vbc.rsp
│ │ │ ├── index.html
│ │ │ └── upload/
│ │ │ └── .gitkeep
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── archive/
│ │ │ ├── acl.ps1
│ │ │ ├── anonymous_ldap.ps1
│ │ │ ├── kerberoasting.ps1
│ │ │ ├── rbcd.ps1
│ │ │ └── unconstrained_delegation.ps1
│ │ ├── asrep_roasting.ps1
│ │ ├── constrained_delegation_kerb_only.ps1
│ │ ├── constrained_delegation_use_any.ps1
│ │ ├── gpo_abuse.ps1
│ │ ├── ntlm_relay.ps1
│ │ ├── rdp_scheduler.ps1
│ │ └── responder.ps1
│ ├── GOAD-Mini/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ └── dc01/
│ │ │ └── templates/
│ │ │ └── ESC1.json
│ │ └── providers/
│ │ ├── aws/
│ │ │ ├── inventory
│ │ │ ├── linux.tf
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ ├── config.yml
│ │ │ └── inventory
│ │ ├── proxmox/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ ├── NHA/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── SQL/
│ │ │ │ └── academy_dump.sql
│ │ │ ├── bot.ps1
│ │ │ ├── flags/
│ │ │ │ ├── dc_academy.txt
│ │ │ │ ├── dc_final.txt
│ │ │ │ ├── share.txt
│ │ │ │ ├── sql_high.txt
│ │ │ │ ├── sql_low.txt
│ │ │ │ └── web.txt
│ │ │ ├── templates/
│ │ │ │ └── SignatureValidation.json
│ │ │ └── wwwroot/
│ │ │ ├── Content/
│ │ │ │ ├── Site.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ └── bootstrap.css
│ │ │ ├── Global.asax
│ │ │ ├── Models/
│ │ │ │ └── AcademyModel.edmx.diagram
│ │ │ ├── Scripts/
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── jquery-3.4.1.js
│ │ │ │ ├── jquery-3.4.1.slim.js
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ └── modernizr-2.8.3.js
│ │ │ ├── Views/
│ │ │ │ ├── Home/
│ │ │ │ │ ├── About.cshtml
│ │ │ │ │ ├── Contact.cshtml
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── Students/
│ │ │ │ │ ├── Create.cshtml
│ │ │ │ │ ├── Delete.cshtml
│ │ │ │ │ ├── Details.cshtml
│ │ │ │ │ ├── Edit.cshtml
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Web.config
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── Web.config
│ │ │ └── bin/
│ │ │ ├── Antlr3.Runtime.pdb
│ │ │ ├── adrutro.pdb
│ │ │ └── roslyn/
│ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ ├── VBCSCompiler.exe.config
│ │ │ ├── csc.exe.config
│ │ │ ├── csc.rsp
│ │ │ ├── csi.exe.config
│ │ │ ├── csi.rsp
│ │ │ ├── vbc.exe.config
│ │ │ └── vbc.rsp
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ └── constrained_delegation_use_any.ps1
│ ├── SCCM/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ └── providers/
│ │ ├── aws/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ ├── config.yml
│ │ │ └── inventory
│ │ ├── proxmox/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ └── TEMPLATE/
│ ├── README.md
│ ├── data/
│ │ ├── config.json
│ │ └── inventory
│ ├── files/
│ │ └── flag.txt
│ ├── providers/
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ └── scripts/
│ └── features.ps1
├── ansible/
│ ├── ad-acl.yml
│ ├── ad-child_domain.yml
│ ├── ad-data.yml
│ ├── ad-enroll_linux.yml
│ ├── ad-gmsa.yml
│ ├── ad-members.yml
│ ├── ad-parent_domain.yml
│ ├── ad-relations.yml
│ ├── ad-servers.yml
│ ├── ad-trusts.yml
│ ├── ad.yml
│ ├── adcs.yml
│ ├── ansible.cfg
│ ├── build.yml
│ ├── data.yml
│ ├── dhcp.yml
│ ├── disable_vagrant.yml
│ ├── elk.yml
│ ├── enable_vagrant.yml
│ ├── fix_dns.yml
│ ├── fix_trust.yml
│ ├── glpi.yml
│ ├── interfaces.yml
│ ├── keepass.yml
│ ├── klink.yml
│ ├── laps.yml
│ ├── localusers.yml
│ ├── main.yml
│ ├── onlyusers.yml
│ ├── private_data_dir/
│ │ └── .git_keep
│ ├── reboot.yml
│ ├── requirements.yml
│ ├── requirements_311.yml
│ ├── roles/
│ │ ├── acl/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── ad/
│ │ │ └── tasks/
│ │ │ ├── groups.yml
│ │ │ ├── main.yml
│ │ │ ├── ou.yml
│ │ │ └── users.yml
│ │ ├── adcs/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── adcs_templates/
│ │ │ ├── files/
│ │ │ │ ├── ADCSTemplate/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── ADCSTemplate.psd1
│ │ │ │ │ ├── ADCSTemplate.psm1
│ │ │ │ │ ├── DSCResources/
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate/
│ │ │ │ │ │ ├── COMMUNITY_ADCSTemplate.psm1
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate.schema.mof
│ │ │ │ │ ├── Examples/
│ │ │ │ │ │ ├── Build-ADCS.ps1
│ │ │ │ │ │ ├── Demo.ps1
│ │ │ │ │ │ ├── PowerShellCMS.json
│ │ │ │ │ │ └── Tanium.json
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ ├── ESC1.json
│ │ │ │ ├── ESC13.json
│ │ │ │ ├── ESC2.json
│ │ │ │ ├── ESC3-CRA.json
│ │ │ │ ├── ESC3.json
│ │ │ │ ├── ESC4.json
│ │ │ │ └── ESC9.json
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── add_dns_record/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── child_domain/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── common/
│ │ │ └── tasks/
│ │ │ ├── chocolatey.yml
│ │ │ └── main.yml
│ │ ├── commonwkstn/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dc_dns_conditional_forwarder/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dhcp/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── disable_user/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dns_conditional_forwarder/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── domain_controller/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── domain_controller_slave/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── elk/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── elasticsearch.yml
│ │ │ │ └── kibana.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── enable_user/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── fix_dns/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── gmsa/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── gmsa_hosts/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── groups_domains/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── iis/
│ │ │ ├── files/
│ │ │ │ └── index.html
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── keepass/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── klink/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── laps/
│ │ │ ├── dc/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ └── comment.cmtx
│ │ │ │ ├── library/
│ │ │ │ │ ├── win_ad_dacl.ps1
│ │ │ │ │ ├── win_ad_object.ps1
│ │ │ │ │ ├── win_gpo.ps1
│ │ │ │ │ ├── win_gpo_link.ps1
│ │ │ │ │ └── win_gpo_reg.ps1
│ │ │ │ ├── tasks/
│ │ │ │ │ ├── install.yml
│ │ │ │ │ ├── main.yml
│ │ │ │ │ └── move_server_to_ou.yml
│ │ │ │ └── vars/
│ │ │ │ └── main.yml
│ │ │ ├── permissions/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── server/
│ │ │ │ └── tasks/
│ │ │ │ ├── install.yml
│ │ │ │ └── main.yml
│ │ │ └── verify/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── linux/
│ │ │ ├── add_linux_to_domain/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── apache/
│ │ │ │ ├── files/
│ │ │ │ │ └── 000-default.conf
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── common/
│ │ │ │ ├── files/
│ │ │ │ │ └── common.sh
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_user/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_user/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── glpi/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ ├── glpi_config.php
│ │ │ │ │ ├── glpi_insert_mail.php
│ │ │ │ │ ├── glpi_ldap.php
│ │ │ │ │ └── glpi_password.php
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── guacamole/
│ │ │ │ ├── README.md
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── tasks/
│ │ │ │ │ ├── client.yml
│ │ │ │ │ ├── config.yml
│ │ │ │ │ ├── jdbc.yml
│ │ │ │ │ ├── main.yml
│ │ │ │ │ ├── server.yml
│ │ │ │ │ └── user.yml
│ │ │ │ └── templates/
│ │ │ │ ├── guacamole.properties.j2
│ │ │ │ └── guacd.conf.j2
│ │ │ ├── guacamole_create_connections/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ ├── users_hosts.yml
│ │ │ │ └── users_iterate.yml
│ │ │ ├── php/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── proxy_server/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ └── 000-default.conf
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── templates/
│ │ │ │ ├── squid.conf.j2
│ │ │ │ └── wpad.dat.j2
│ │ │ └── tomcat/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── localusers/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── logs_windows/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sysmonconfig-export.xml
│ │ │ │ └── uninstall-service-winlogbeat.ps1
│ │ │ ├── handlers/
│ │ │ │ └── main.yml
│ │ │ ├── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── winlogbeat.yml
│ │ │ └── templates/
│ │ │ └── winlogbeat.yml.j2
│ │ ├── member_server/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── move_to_ou/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sql_conf.ini.MSSQL_2019.j2
│ │ │ │ └── sql_conf.ini.MSSQL_2022.j2
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql_link/
│ │ │ └── tasks/
│ │ │ ├── logins.yml
│ │ │ └── main.yml
│ │ ├── mssql_reporting/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql_ssms/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── onlyusers/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── parent_child_dns/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── password_policy/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── ps/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── sccm/
│ │ │ ├── config/
│ │ │ │ ├── accounts/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── boundary/
│ │ │ │ │ ├── library/
│ │ │ │ │ │ ├── sccm_boundary.ps1
│ │ │ │ │ │ ├── sccm_boundary_group.ps1
│ │ │ │ │ │ └── sccm_boundary_to_boundarygroup.ps1
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── client_install/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── client_push/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── discovery/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── naa/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── pxe/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── users/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── install/
│ │ │ │ ├── adk/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── iis/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── mecm/
│ │ │ │ │ ├── files/
│ │ │ │ │ │ └── ConfigMgrAutoSave.ini
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── prerequistes/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── wsus/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── pxe/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── security/
│ │ │ ├── account_is_sensitive/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── asr/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── directory/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_run_as_ppl/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── ldaps/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── maq0_client/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── maq0_server/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── powershell_restrict/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── settings/
│ │ │ ├── adjust_rights/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── admin_password/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── copy_files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_nat_adapter/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_nat_adapter/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── gpmc/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── gpo_remove/
│ │ │ │ ├── files/
│ │ │ │ │ └── remove-gpo.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── hostname/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── keyboard/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_updates/
│ │ │ │ ├── files/
│ │ │ │ │ └── noupdate.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── updates/
│ │ │ │ └── tasks/
│ │ │ │ └── default.yml
│ │ │ ├── user_rights/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── windows_defender/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── sync_domains/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── trusts/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── vulns/
│ │ │ ├── acls/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc10_case1/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc10_case2/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc11/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc13/
│ │ │ │ ├── files/
│ │ │ │ │ └── esc13.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc15/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc6/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc7/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_templates/
│ │ │ │ ├── files/
│ │ │ │ │ └── ADCSTemplate/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── ADCSTemplate.psd1
│ │ │ │ │ ├── ADCSTemplate.psm1
│ │ │ │ │ ├── DSCResources/
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate/
│ │ │ │ │ │ ├── COMMUNITY_ADCSTemplate.psm1
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate.schema.mof
│ │ │ │ │ ├── Examples/
│ │ │ │ │ │ ├── Build-ADCS.ps1
│ │ │ │ │ │ ├── Demo.ps1
│ │ │ │ │ │ ├── PowerShellCMS.json
│ │ │ │ │ │ └── Tanium.json
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── administrator_folder/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── autologon/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── credentials/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── directory/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_firewall/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_credssp_client/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_credssp_server/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_llmnr/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_nbt-ns/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── mssql/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_channel_binding/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_integrity/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_signing/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── ntlmdowngrade/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── openshares/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── permissions/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── schedule/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── shares/
│ │ │ │ └── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── perm.yml
│ │ │ └── smbv1/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ └── webdav/
│ │ └── tasks/
│ │ └── main.yml
│ ├── sccm-client.yml
│ ├── sccm-config.yml
│ ├── sccm-install.yml
│ ├── sccm-pxe.yml
│ ├── security.yml
│ ├── servers.yml
│ ├── vulnerabilities.yml
│ └── wait5m.yml
├── docs/
│ ├── img/
│ │ └── azure_architecture.excalidraw
│ └── mkdocs/
│ ├── docs/
│ │ ├── changelog.md
│ │ ├── developers/
│ │ │ ├── add_extension.md
│ │ │ ├── add_lab.md
│ │ │ ├── add_provider.md
│ │ │ └── index.md
│ │ ├── extensions/
│ │ │ ├── elk.md
│ │ │ ├── exchange.md
│ │ │ ├── guacamole.md
│ │ │ ├── index.md
│ │ │ ├── lx01.md
│ │ │ ├── wazuh.md
│ │ │ └── ws01.md
│ │ ├── img/
│ │ │ └── azure_architecture.excalidraw
│ │ ├── index.md
│ │ ├── installation/
│ │ │ ├── index.md
│ │ │ ├── linux.md
│ │ │ └── windows.md
│ │ ├── instances.md
│ │ ├── javascripts/
│ │ │ └── extra.js
│ │ ├── labs/
│ │ │ ├── DRACARYS.md
│ │ │ ├── GOAD-Light.md
│ │ │ ├── GOAD-Mini.md
│ │ │ ├── GOAD.md
│ │ │ ├── MINILAB.md
│ │ │ ├── NHA.md
│ │ │ ├── SCCM.md
│ │ │ └── index.md
│ │ ├── packer/
│ │ │ └── packer.md
│ │ ├── providers/
│ │ │ ├── aws.md
│ │ │ ├── azure.md
│ │ │ ├── index.md
│ │ │ ├── ludus.md
│ │ │ ├── proxmox.md
│ │ │ ├── virtualbox.md
│ │ │ ├── vmware.md
│ │ │ └── vmware_esxi.md
│ │ ├── provisioning.md
│ │ ├── questions.md
│ │ ├── references.md
│ │ ├── stylesheets/
│ │ │ └── extra.css
│ │ ├── thx.md
│ │ ├── troobleshoot.md
│ │ ├── usage/
│ │ │ ├── goad_args.md
│ │ │ ├── goad_console.md
│ │ │ └── index.md
│ │ └── vulnerabilities.md
│ └── mkdocs.yml
├── extensions/
│ ├── elk/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── install.yml
│ │ │ └── roles/
│ │ │ ├── elk/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ ├── elasticsearch.yml
│ │ │ │ │ └── kibana.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── logs_windows/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sysmonconfig-export.xml
│ │ │ │ └── uninstall-service-winlogbeat.ps1
│ │ │ ├── handlers/
│ │ │ │ └── main.yml
│ │ │ ├── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── winlogbeat.yml
│ │ │ └── templates/
│ │ │ └── winlogbeat.yml.j2
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── exchange/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ ├── install.yml
│ │ │ ├── iso/
│ │ │ │ └── .gitkeep
│ │ │ └── roles/
│ │ │ ├── exchange_bot/
│ │ │ │ ├── files/
│ │ │ │ │ ├── botScheduler.ps1
│ │ │ │ │ └── readMail.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── ludus_exchange/
│ │ │ ├── README.md
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── meta/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ ├── ludus-create-mailbox.yml
│ │ │ ├── ludus-download-exchange-2016.yml
│ │ │ ├── ludus-download-exchange-2019.yml
│ │ │ ├── ludus-exchange-2016-install.yml
│ │ │ ├── ludus-exchange-2019-install.yml
│ │ │ ├── ludus-exchange-dns.yml
│ │ │ ├── ludus-exchange-pre.yml
│ │ │ ├── ludus_sendconnector.yml
│ │ │ └── main.yml
│ │ ├── data/
│ │ │ └── config.json
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── guacamole/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ └── install.yml
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── linux.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── lx01/
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ └── install.yml
│ │ ├── data/
│ │ │ └── config.json
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── linux.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── wazuh/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── install.yml
│ │ │ └── roles/
│ │ │ ├── wazuh_agent/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── wazuh_agent_linux/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── wazuh_manager/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── wazuh_socfortress_rules.sh
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ └── ws01/
│ ├── README.md
│ ├── ansible/
│ │ ├── ansible.cfg
│ │ └── install.yml
│ ├── data/
│ │ └── config.json
│ ├── extension.json
│ ├── inventory
│ └── providers/
│ ├── aws/
│ │ └── windows.tf
│ ├── azure/
│ │ └── windows.tf
│ ├── ludus/
│ │ └── config.yml
│ ├── proxmox/
│ │ ├── windows.tf
│ │ └── ws01.tf
│ ├── virtualbox/
│ │ └── Vagrantfile
│ └── vmware/
│ └── Vagrantfile
├── globalsettings.ini
├── goad/
│ ├── __init__.py
│ ├── command/
│ │ ├── cmd.py
│ │ ├── cmd_factory.py
│ │ ├── linux.py
│ │ ├── windows.py
│ │ └── wsl.py
│ ├── config.py
│ ├── dependencies.py
│ ├── exceptions.py
│ ├── extension.py
│ ├── goadpath.py
│ ├── infos.py
│ ├── instance.py
│ ├── instances.py
│ ├── jumpbox.py
│ ├── lab_manager.py
│ ├── labs.py
│ ├── local_jumpbox.py
│ ├── log.py
│ ├── menu.py
│ ├── provider/
│ │ ├── ludus/
│ │ │ └── ludus.py
│ │ ├── provider.py
│ │ ├── provider_factory.py
│ │ ├── terraform/
│ │ │ ├── aws.py
│ │ │ ├── azure.py
│ │ │ ├── proxmox.py
│ │ │ └── terraform.py
│ │ └── vagrant/
│ │ ├── vagrant.py
│ │ ├── virtualbox.py
│ │ ├── vmware.py
│ │ └── vmware_esxi.py
│ ├── provisioner/
│ │ ├── ansible/
│ │ │ ├── ansible.py
│ │ │ ├── docker.py
│ │ │ ├── local.py
│ │ │ ├── remote.py
│ │ │ ├── runner.py
│ │ │ └── vm.py
│ │ ├── provisioner.py
│ │ └── provisioner_factory.py
│ ├── settings.py
│ └── utils.py
├── goad.py
├── goad.sh
├── goad_docker.sh
├── guacamole.yml
├── noansible_requirements.yml
├── packer/
│ ├── proxmox/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── answer_files/
│ │ │ ├── 10_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 10_proxmox_cloudinit_uptodate/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 2016_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 2019_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ └── 2019_proxmox_cloudinit_uptodate/
│ │ │ └── Autounattend.xml
│ │ ├── build_proxmox_iso.sh
│ │ ├── config.auto.pkrvars.hcl.template
│ │ ├── iso/
│ │ │ └── .gitignore
│ │ ├── packer.json.pkr.hcl
│ │ ├── scripts/
│ │ │ ├── ConfigureRemotingForAnsible.ps1
│ │ │ ├── Install-WMF3Hotfix.ps1
│ │ │ ├── disable-screensaver.ps1
│ │ │ ├── disable-winrm.ps1
│ │ │ ├── enable-winrm.ps1
│ │ │ ├── fixnetwork.ps1
│ │ │ ├── microsoft-updates.bat
│ │ │ ├── set-proxy.ps1
│ │ │ ├── sysprep/
│ │ │ │ ├── cloudbase-init-p2.ps1
│ │ │ │ ├── cloudbase-init-unattend.conf
│ │ │ │ ├── cloudbase-init-unattend.xml
│ │ │ │ ├── cloudbase-init.conf
│ │ │ │ ├── cloudbase-init.ps1
│ │ │ │ └── sysprep.bat
│ │ │ └── win-updates.ps1
│ │ ├── variables.pkr.hcl
│ │ ├── windows_10_22h2_proxmox_cloudinit.pkvars.hcl
│ │ ├── windows_10_22h2_proxmox_cloudinit_uptodate.pkvars.hcl
│ │ ├── windows_server2016_proxmox_cloudinit.pkvars.hcl
│ │ ├── windows_server2019_proxmox_cloudinit.pkvars.hcl
│ │ └── windows_server2019_proxmox_cloudinit_uptodate.pkvars.hcl
│ └── vagrant/
│ ├── README.md
│ ├── answer_files/
│ │ ├── 10/
│ │ │ └── Autounattend.xml
│ │ ├── 11/
│ │ │ └── Autounattend.xml
│ │ ├── 2016/
│ │ │ └── Autounattend.xml
│ │ ├── 2019/
│ │ │ └── Autounattend.xml
│ │ └── 2022/
│ │ └── Autounattend.xml
│ ├── build_all.sh
│ ├── build_windows_10.sh
│ ├── build_windows_11.sh
│ ├── build_windows_2019.sh
│ ├── build_windows_2022.sh
│ ├── scripts/
│ │ ├── compile-dotnet-assemblies.bat
│ │ ├── dis-updates.bat
│ │ ├── disable-screensaver.ps1
│ │ ├── disable-winrm.ps1
│ │ ├── enable-rdp.bat
│ │ ├── enable-winrm.ps1
│ │ ├── fixnetwork.ps1
│ │ ├── microsoft-updates.bat
│ │ ├── set-powerplan.ps1
│ │ ├── set-winrm-automatic.bat
│ │ ├── sysprep.bat
│ │ ├── uac-enable.bat
│ │ ├── unattend.xml
│ │ ├── vm-guest-tools.ps1
│ │ └── win-updates.ps1
│ ├── vagrantfile-windows_10.template
│ ├── vagrantfile-windows_2016.template
│ ├── windows_10.json
│ ├── windows_11.json
│ ├── windows_2019.json
│ └── windows_2022.json
├── playbooks.yml
├── pyproject.toml
├── requirements.yml
├── requirements_311.yml
├── scripts/
│ ├── check.sh
│ ├── setup_aws.sh
│ ├── setup_azure.sh
│ ├── setup_esxi.sh
│ ├── setup_local_jumpbox.sh
│ └── setup_proxmox.sh
├── template/
│ └── provider/
│ ├── aws/
│ │ ├── instance-init.ps1.tpl
│ │ ├── instance-init.sh.tpl
│ │ ├── jumpbox-init.sh.tpl
│ │ ├── jumpbox.tf
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── network.tf
│ │ ├── outputs.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── azure/
│ │ ├── jumpbox.tf
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── network.tf
│ │ ├── outputs.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── ludus/
│ │ └── config.yml
│ ├── proxmox/
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── virtualbox/
│ │ └── Vagrantfile
│ ├── vmware/
│ │ └── Vagrantfile
│ └── vmware_esxi/
│ └── Vagrantfile
└── vagrant/
├── ConfigureRemotingForAnsible.ps1
├── Install-WMF3Hotfix.ps1
└── fix_ip.ps1
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.vagrant/
.idea/
.venv/
.archives/
writeup/
docs/scenarios/
docs/notes.md
temp/
ansible/.venv/
ansible/collections/
ansible/test.yml
*VBoxHeadless*.log
.terraform/
.terraform.lock.hcl
*.tfstate*
tfplan
*.pem
ad/PURPLE
ad/REDLAB
ad/EDRLAB
ad/DEMO
ad/FEDGOAD
ansible/roles/edr
ansible/edr.yml
ansible/private_data_dir/artifacts/
.vscode
ad/MINILAB
ad/*/providers/*/ssh_keys/*id_rsa*
ad/*/providers/*/ssh_keys/*.pub
ad/*/providers/*/extensions/*.rb
__pycache__/
*.pyc
workspace/*
todo.md
next_extensions/
/extensions/exchange/ansible/iso/resources/iso/*.ISO
docs/site/
docs/olddocs/
docs/mkdocs/site/
scripts/archives/
================================================
FILE: Dockerfile
================================================
FROM ubuntu:22.04
RUN apt-get update \
&& apt-get install -y python3-pip
RUN pip install --upgrade pip
RUN pip install ansible-core==2.12.6
RUN pip install pywinrm
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sshpass lftp rsync openssh-client
COPY ./ansible/requirements.yml .
RUN ansible-galaxy install -r requirements.yml
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
================================================
FILE: README.md
================================================
<div align="center">
<h1><img alt="GOAD (Game Of Active Directory)" src="./docs/mkdocs/docs/img/logo_GOAD3.png"></h1>
<br>
</div>
**GOAD (v3)**
:bookmark: Documentation : [https://orange-cyberdefense.github.io/GOAD/](https://orange-cyberdefense.github.io/GOAD/)
## Description
GOAD is a pentest active directory LAB project.
The purpose of this lab is to give pentesters a vulnerable Active directory environment ready to use to practice usual attack techniques.
> [!CAUTION]
> This lab is extremely vulnerable, do not reuse recipe to build your environment and do not deploy this environment on internet without isolation (this is a recommendation, use it as your own risk).<br>
> This repository was build for pentest practice.

## Licenses
This lab use free Windows VM only (180 days). After that delay enter a license on each server or rebuild all the lab (may be it's time for an update ;))
## Available labs
- GOAD Lab family and extensions overview
<div align="center">
<img alt="GOAD" width="800" src="./docs/img/diagram-GOADv3-full.png">
</div>
- [GOAD](https://orange-cyberdefense.github.io/GOAD/labs/GOAD/) : 5 vms, 2 forests, 3 domains (full goad lab)
<div align="center">
<img alt="GOAD" width="800" src="./docs/img/GOAD_schema.png">
</div>
- [GOAD-Light](https://orange-cyberdefense.github.io/GOAD/labs/GOAD-Light/) : 3 vms, 1 forest, 2 domains (smaller goad lab for those with a smaller pc)
<div align="center">
<img alt="GOAD Light" width="600" src="./docs/img/GOAD-Light_schema.png">
</div>
- [MINILAB](https://orange-cyberdefense.github.io/GOAD/labs/MINILAB/): 2 vms, 1 forest, 1 domain (basic lab with one DC (windows server 2019) and one Workstation (windows 10))
- [SCCM](https://orange-cyberdefense.github.io/GOAD/labs/SCCM/) : 4 vms, 1 forest, 1 domain, with microsoft configuration manager installed
<div align="center">
<img alt="SCCM" width="600" src="./docs/img/SCCMLAB_overview.png">
</div>
- [NHA](https://orange-cyberdefense.github.io/GOAD/labs/NHA/) : A challenge with 5 vms and 2 domains. no schema provided, you will have to find out how break it.
<div align="center">
<img alt="SCCM" width="600" src="./docs/img/logo_NHA.jpeg">
</div>
- [DRACARYS](https://orange-cyberdefense.github.io/GOAD/labs/DRACARYS/) : A challenge with 3 vms and 1 domains. no schema provided, you will have to find out how break it.
<div align="center">
<img alt="SCCM" width="600" src="./docs/img/dracarys_logo.png">
</div>
================================================
FILE: ad/DRACARYS/README.md
================================================
# DRACARYS

- DRACARYS is written as a training challenge where GOAD was written as a lab with a maximum of vulns.
- You should find your way in to get domain admin on the domain dracarys.lab
- Using vagrant user is prohibited of course ^^
- Starting point is on lx01 : `<ip_range>.12`
- Obviously do not cheat by looking at the passwords and flags in the recipe files, the lab must start without user to full compromise.
- If you use goad previously your ansible requirements may not be up to date. Be sure to do this before the install:
```bash
source ~/.goad/.venv/bin/activate
cd ~/GOAD/ansible
# if you python is >=3.11
ansible-galaxy install -r requirements_311.yml
# if you got a python <3.10
ansible-galaxy install -r requirements.yml
```
- Install :
```bash
./goad.sh -t install -l DRACARYS -p virtualbox
```
or
```bash
./goad.sh
> set_lab DRACARYS
> set_provider <your_provider>
> set_iprange 192.168.56 # select the one you want and you can skip this with ludus
> install
```
- Once install finish disable vagrant user to avoid using it :
```bash
./goad.sh
> load <instance_id>
> disable_vagrant
```
- Now do a reboot of all the machine to avoid unintended secrets stored :
```bash
> stop
> start
```
And you are ready to play ! :)
- If you need to re-enable vagrant
```bash
> load <instance_id>
> enable_vagrant
```
- If you want to create a write up of the chall, no problem, have fun. Please ping me on X (@M4yFly) or Discord, i will be happy to read it :)
!!! tip
Be sure to get your arsenal up to date
================================================
FILE: ad/DRACARYS/data/config.json
================================================
{
"lab" : {
"hosts" : {
"dc01" : {
"hostname" : "balerion",
"type" : "dc",
"local_admin_password": "8dCsfT-DJjgS3xdcp",
"domain" : "dracarys.lab",
"path" : "DC=dracarys,DC=lab",
"local_groups" : {
"Administrators" : [
"dracarys\\Drogon"
]
},
"scripts" : ["set_spn.ps1","wsman_kerb.ps1"],
"security": ["directory", "files", "ldaps"],
"security_vars": {
"directory": {
"setup": "c:\\setup"
},
"files" : {
"certificate" : {
"src" : "dc01/ldaps.pfx",
"dest" : "c:\\setup\\ldaps.pfx"
}
},
"ldaps": {
"certificate" : {
"pfx" : "c:\\setup\\ldaps.pfx",
"cert_password" : "MyStr@ngeCertP@ssword123"
}
}
},
"vulns" : ["files", "enable_credssp_client", "schedule"],
"vulns_vars" : {
"files" : {
"bot_keepass" : {
"src" : "dc01/keepass_bot.ps1",
"dest" : "c:\\keepass_bot.ps1"
}
},
"schedule": {
"bot": {
"name": "keepass_bot",
"cmd" : "powershell c:\\keepass_bot.ps1",
"interval" : "PT1M",
"multiple_instances" : "3"
}
}
}
},
"srv01" : {
"hostname" : "vhagar",
"type" : "server",
"local_admin_password": "NgtkgtIAs75cKV+Pu",
"domain" : "dracarys.lab",
"path" : "DC=dracarys,DC=lab",
"use_laps": false,
"local_groups" : {
"Administrators" : [
"dracarys\\Rhaegal"
],
"Remote Desktop Users" : [
"dracarys\\Rhaegal"
]
},
"scripts" : [],
"vulns" : ["files", "enable_credssp_server", "schedule"],
"vulns_vars" : {
"files" : {
"vault" : {
"src" : "srv01/vault.kdbx",
"dest" : "c:\\vault.kdbx"
},
"bot_ssh" : {
"src" : "srv01/bot_ssh.ps1",
"dest" : "c:\\bot_ssh.ps1"
}
},
"schedule": {
"bot": {
"name": "bot_ssh",
"cmd" : "powershell c:\\bot_ssh.ps1",
"interval" : "PT1M"
}
}
}
},
"lx01" : {
"hostname" : "syrax",
"type" : "server",
"os": "linux",
"local_admin_password": "HGLXaxQSP@ssw_rd$",
"domain" : "dracarys.lab",
"path" : "DC=dracarys,DC=lab",
"local_groups" : {
"sudoers" : ["LinuxAdmins"],
"ssh" : ["LinuxAdmins", "LinuxUsers"]
},
"security": [],
"security_vars": {},
"scripts" : []
}
},
"domains" : {
"dracarys.lab" : {
"dc": "dc01",
"domain_password" : "8dCsfT-DJjgS3xdcp",
"netbios_name": "DRACARYS",
"organisation_units" : {
},
"groups" : {
"universal" : {},
"global" : {
"LinuxAdmins" : {
"managed_by" : "drogon",
"path" : "CN=Users,DC=dracarys,DC=lab"
},
"LinuxUsers" : {
"managed_by" : "drogon",
"path" : "CN=Users,DC=dracarys,DC=lab"
}
},
"domainlocal" : {}
},
"multi_domain_groups_member" : {},
"acls" : {
"WriteSPN_viserion_vhagar": {"for": "viserion", "to": "vhagar$", "right": "Ext-Write-SPN", "inheritance": "None"},
},
"users" : {
"drogon" : {
"firstname" : "drogon",
"surname" : "-",
"password" : "sUIjHxs1i0yxZsGBreh0",
"city" : "-",
"description" : "Domain admin",
"groups" : ["LinuxAdmins", "Domain Admins"],
"path" : "CN=Users,DC=dracarys,DC=lab"
},
"rhaegal" : {
"firstname" : "rhaegal",
"surname" : "-",
"password" : "ufsmcvDaFz1uEqzAtaiL",
"city" : "-",
"description" : "Rhaegal",
"groups" : ["LinuxAdmins"],
"path" : "CN=Users,DC=dracarys,DC=lab"
},
"viserion" : {
"firstname" : "viserion",
"surname" : "-",
"password" : "aLHtz1WvIVmeV4Zh4CDE",
"city" : "-",
"description" : "viserion",
"groups" : ["LinuxUsers"],
"path" : "CN=Users,DC=dracarys,DC=lab"
},
"sunfyre" : {
"firstname" : "sunfyre",
"surname" : "-",
"password" : "BSno5DP4tjJ4jIu8is3B",
"city" : "-",
"description" : "glpi service account",
"groups" : ["LinuxUsers"],
"path" : "CN=Users,DC=dracarys,DC=lab"
}
}
}
}
}}
================================================
FILE: ad/DRACARYS/data/inventory
================================================
; GLOBAL CONFIG
[all:vars]
; domain_name : folder inside ad/
domain_name=DRACARYS
; administrator user
admin_user=administrator
; global settings inventory default value
keyboard_layouts=["en-US", "da-DK", "fr-FR"]
; modify this to add a default route
add_route=no
route_gateway=192.168.56.1
route_network=10.0.0.0/8
; modify this to enable http proxy
enable_http_proxy=no
ad_http_proxy=http://x.x.x.x:xxxx
ad_https_proxy=http://x.x.x.x:xxxx
;force_dns_server
force_dns_server=no
dns_server=1.1.1.1
;dns server forwarder
dns_server_forwarder=1.1.1.1
; winrm connection (windows)
ansible_user=vagrant
ansible_password=vagrant
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_operation_timeout_sec=400
ansible_winrm_read_timeout_sec=500
# ansible_winrm_transport=basic
# ansible_port=5985
; proxy settings (the lab need internet for some install, if you are behind a proxy you should set the proxy here)
enable_http_proxy=no
ad_http_proxy=http://x.x.x.x:xxxx
ad_https_proxy=http://x.x.x.x:xxxx
; LAB SCENARIO CONFIGURATION -----------------------------
; computers inside domain (mandatory)
; usage : build.yml, ad-relations.yml, ad-servers.yml, vulnerabilities.yml
[domain]
dc01
srv01
[linux_domain]
lx01
; domain controler (mandatory)
; usage : ad-acl.yml, ad-data.yml, ad-relations.yml, laps.yml
[dc]
dc01
; domain server to enroll (mandatory if you want servers)
; usage : ad-data.yml, ad-servers.yml, laps.yml
[server]
srv01
; workstation to enroll (mandatory if you want workstation)
; usage : ad-servers.yml, laps.yml
[workstation]
; parent domain controler (mandatory)
; usage : ad-servers.yml
[parent_dc]
dc01
; child domain controler (need a fqdn child_name.parent_name)
; usage : ad-servers.yml
[child_dc]
; allow computer update
; usage : update.yml
[update]
dc01
; disable update
; usage : update.yml
[no_update]
srv01
; allow defender
; usage : security.yml
[defender_on]
dc01
srv01
; disable defender
; usage : security.yml
[defender_off]
[glpi]
lx01
[klink]
srv01
[keepass]
srv01
;stay empty until override
[extensions]
================================================
FILE: ad/DRACARYS/data/inventory_disable_vagrant
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=drogon@dracarys.lab ansible_password=sUIjHxs1i0yxZsGBreh0
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01 ansible_user=drogon@dracarys.lab ansible_password=sUIjHxs1i0yxZsGBreh0
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no' ansible_user=drogon ansible_password=sUIjHxs1i0yxZsGBreh0
[all:vars]
; domain_name : folder inside ad/
domain_name=DRACARYS
; winrm connection (windows)
ansible_winrm_transport=ntlm
ansible_user=notused
ansible_password=notused
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_operation_timeout_sec=400
ansible_winrm_read_timeout_sec=500
; LAB SCENARIO CONFIGURATION -----------------------------
[domain]
dc01
srv01
[linux_domain]
lx01
================================================
FILE: ad/DRACARYS/files/dc01/cert.md
================================================
openssl genrsa -out ldaps.key 2048
openssl req -new -x509 -key ldaps.key -out ldaps.crt -days 3650 -subj "/CN=balerion.dracarys.lab" -addext "subjectAltName = DNS:balerion.dracarys.lab,DNS:balerion"
openssl pkcs12 -export -out ldaps.pfx -inkey ldaps.key -in ldaps.crt -passout pass:MyStr@ngeCertP@ssword123
================================================
FILE: ad/DRACARYS/files/dc01/keepass_bot.ps1
================================================
$pass = ConvertTo-SecureString 'ufsmcvDaFz1uEqzAtaiL' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential (
'dracarys.lab\rhaegal',
$pass
)
Invoke-Command `
-ComputerName vhagar.dracarys.lab `
-Authentication Credssp `
-Credential $creds `
-ScriptBlock {
$kpPath = '"C:\Program Files\KeePass Password Safe 2\KeePass.exe"'
$dbPath = 'C:\vault.kdbx'
$masterPassword = 'lj-endlmkfQSLDKPDFNZLEK'
$openTime = 30
Write-Host "[*] Start KeePass via cmd pipe"
cmd /c "echo $masterPassword | $kpPath $dbPath -pw-stdin"
Write-Host "[+] KeePass started"
Start-Sleep -Seconds $openTime
Write-Host "[-] Closing KeePass"
Get-Process KeePass -ErrorAction SilentlyContinue | Stop-Process -Force
}
================================================
FILE: ad/DRACARYS/files/dc01/ldaps.crt
================================================
-----BEGIN CERTIFICATE-----
MIIDTTCCAjWgAwIBAgIUU2yqCIa/Vzxgktgu/1gcLG6OjMkwDQYJKoZIhvcNAQEL
BQAwIDEeMBwGA1UEAwwVYmFsZXJpb24uZHJhY2FyeXMubGFiMB4XDTI1MTIwODA4
NTk0OVoXDTM1MTIwNjA4NTk0OVowIDEeMBwGA1UEAwwVYmFsZXJpb24uZHJhY2Fy
eXMubGFiMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl+jBdQImgoxK
d52vvYnmtgLqF7M5v6620aBAMOs316P1SBX8GVrdpWo2uC+pYF78TK5/MfP8QLs5
QMM3Qb46Y8rtA6Gueg9fQcTJAI9rsLg+JCA3YjWlvSN3yEjdHuZ1vQO6Ttjb1S29
ORl3MBEiqW2JTkS2xiFwhRNFV900TSoHKF1ZCqp1jvqS73f8kjaGckJ3Xq2IU3WU
FQvpWGlKWvJxKN2MDAhB48mtscDvi9kfkTbXDn5w8ChWtWeTdDi5fQaRezTNdOzu
gfZoMZKrNVdvR4DhHYPrk8YXsVJf7LuVcOhRHykzCcMqEF7eH2AKpB9EitycJIEV
LGA8dryqgQIDAQABo38wfTAdBgNVHQ4EFgQU/OzihMQWP+/mO+HcNdR8Dn7QWpYw
HwYDVR0jBBgwFoAU/OzihMQWP+/mO+HcNdR8Dn7QWpYwDwYDVR0TAQH/BAUwAwEB
/zAqBgNVHREEIzAhghViYWxlcmlvbi5kcmFjYXJ5cy5sYWKCCGJhbGVyaW9uMA0G
CSqGSIb3DQEBCwUAA4IBAQAZhdFOXz/WMPFewlHnDIMuVdkJPIHjMHyUCIdX7CtV
wiEw0u2U6If6hXgsMw7WbYFhQRDWvR+zKLfL4xODxYivtAhr/P4T0jGqznTk6y5T
YU59K4NSGj7iJzkF0euRbPWJWdK9i+YG0TyGB4xanl6jOqjLZPt7UxL+IFM73Qxf
Mnhn8YxqXg2vTPdknoaqytu3oD4st3bdSH6+ssthBnExm6PpCCnp3a7hosO6I4JZ
ae5zg5Wy3jcXghOHA3h+MKgk4CTNLjQBNioVBY7gfoW4GzcjxkfiBufxlfvtH7pd
/WUoRKKmKUfOEMATBvCFxoAm+8cW3HlSVCjgZWBwbT6X
-----END CERTIFICATE-----
================================================
FILE: ad/DRACARYS/files/dc01/ldaps.key
================================================
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCX6MF1AiaCjEp3
na+9iea2AuoXszm/rrbRoEAw6zfXo/VIFfwZWt2laja4L6lgXvxMrn8x8/xAuzlA
wzdBvjpjyu0Doa56D19BxMkAj2uwuD4kIDdiNaW9I3fISN0e5nW9A7pO2NvVLb05
GXcwESKpbYlORLbGIXCFE0VX3TRNKgcoXVkKqnWO+pLvd/ySNoZyQnderYhTdZQV
C+lYaUpa8nEo3YwMCEHjya2xwO+L2R+RNtcOfnDwKFa1Z5N0OLl9BpF7NM107O6B
9mgxkqs1V29HgOEdg+uTxhexUl/su5Vw6FEfKTMJwyoQXt4fYAqkH0SK3JwkgRUs
YDx2vKqBAgMBAAECggEANgAerTqLeALpAeaDL4yTAAa/MpeaosI36QLfbsRfAIAf
VHXEPTso6YF9XDJNMp3xcEzjmF1UQaqMarI6tVsrJIhhgtX50Rgf06Bhl5pkPNjx
9iOhrH7HoRm3nfIQ8MgZ+IwXsamzU+/DgUXFMcgVm0b99V3F317JwfScxOQ0kG0g
5uD9QDfxRRAJ0DbLYovFYG2Xg8+BAldb9S7gD3JTVLRDEmSixruSkK0hHQA2GNGP
bxvEJpgS153Qv6NbHCwJAWEY3HWhPBBzd5ObC0DVDPs56AzFsTdbjaIKbCFYfyPY
wRw+r66aIw3cx9143GZEXlgM29lvM3lfpx0f1eBvRQKBgQC7kivCqUQQjAse2QbR
uMnZuuXS0gPgD4Dk+48rbsvE6g8FG84FQmoB9hiAi4jT5nEQKgHg2I+NQRnu4spz
MpwBhhZC/12mtBW6kTRSzuoGdJhivZHarTuvH6+nnkw7uwzDnB7BrnhHhbosgpb7
fhsVritbA3f+s6VCXIJOisJ4hwKBgQDPVAWcIAyMAn4QaGjuLYdxkBE1AukCGTTS
IAQsRFUb9i8PA8zvIXTrJjACJlNTVfDuPk4qp68eO/GwQRHFqTXlmz/Lhvdn9m9p
CWpmL4fLpLYjdTZ8iFXlvjW155PuPCmE0vD3qtQKlYo03LVtcxgX3VhHgQQ2RT0l
x/UmEr3utwKBgHtB8JO4m0usW1poDz0dizcSxBenfnhsd60BSfGmmyzJChm3TcjS
/cpQJ4XBK6bjlYSjthxE8wBFuX7rdVIB/dZagKKCIM59JJI2/QU1hz+6urCYFhJ3
J/NKhSlGsp3FqvuXyfZIai3FyLObFRAqrC2xCDiErQOolX5oQBDQyj5dAoGAWDL+
T/SyYb2Ns503RlvICt+m8k5SobnnZpyIKezH6CVKz7BmNjSdcIvGUKPNPt6IqFGJ
H0xGiy4lGz4TOWtKqmrpMMQx6+BCdQS0ZtRBiLiBY4QxsbiuEhZg8wmZPPgLEZ5L
NJFPs1D6gpKB/BXCYiSfsYuJJy09Xh06hP/kHPECgYBMUh9ZD8UJTLXdWqn2sLxS
U+ippoaBR1PaD6Id/31FpR+5wuv78Kzz4e8wejMlp0oPMpxLrp78q0F0RGbVsZOy
E78Sr9qrQWHDyjWImtkzcWAPcbsrUeBCAmsjCov17yCwBsCuODIT8oImuGBjDRrB
JGj0b+OHm2nmez8vAmb0jg==
-----END PRIVATE KEY-----
================================================
FILE: ad/DRACARYS/files/srv01/bot_ssh.ps1
================================================
$User = "viserion"
$SSHHost = "syrax"
$Password = "aLHtz1WvIVmeV4Zh4CDE"
& "C:\Program Files\PuTTY\klink.exe" -auto_store_sshkey $SSHHost -l "$User" -pw $Password "sleep 45"
================================================
FILE: ad/DRACARYS/providers/aws/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCsfT-DJjgS3xdcp
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01 ansible_user=ansible ansible_password=NgtkgtIAs75cKV+Pu
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no' ansible_user=goadmin ansible_password=HGLXaxQSP@ssw_rd$
[all:vars]
admin_user=goadmin
================================================
FILE: ad/DRACARYS/providers/aws/linux.tf
================================================
"lx01" = {
name = "lx01"
linux_sku = "24_04-lts-gen2"
linux_version = "latest"
ami = "ami-0bb8b77ad97138af1"
private_ip_address = "{{ip_range}}.12"
password = "HGLXaxQSP@ssw_rd$"
instance_type = "t3.medium"
}
================================================
FILE: ad/DRACARYS/providers/aws/windows.tf
================================================
# Standard_B2s : 2 CPU / 4GB
# Standard_B2ms : 2CPU / 8GB
# Standard_B4ms : 4 cpu / 16 GB
"dc01" = {
name = "dc01"
domain = "dracarys.lab"
windows_sku = "2025-Datacenter"
ami = "ami-0979a3709cb073ec3"
instance_type = "t3.medium"
private_ip_address = "{{ip_range}}.10"
password = "8dCsfT-DJjgS3xdcp"
}
"srv01" = {
name = "srv01"
domain = "dracarys.lab"
windows_sku = "2025-Datacenter"
ami = "ami-0979a3709cb073ec3"
instance_type = "t3.medium"
private_ip_address = "{{ip_range}}.11"
password = "NgtkgtIAs75cKV+Pu"
}
================================================
FILE: ad/DRACARYS/providers/azure/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCsfT-DJjgS3xdcp
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01 ansible_user=ansible ansible_password=NgtkgtIAs75cKV+Pu
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no' ansible_user=goadmin ansible_password=HGLXaxQSP@ssw_rd$
[all:vars]
admin_user=goadmin
================================================
FILE: ad/DRACARYS/providers/azure/linux.tf
================================================
"lx01" = {
name = "lx01"
linux_offer = "ubuntu-24_04-lts"
linux_sku = "server"
linux_version = "latest"
private_ip_address = "{{ip_range}}.12"
password = "HGLXaxQSP@ssw_rd$"
size = "Standard_B2s"
}
================================================
FILE: ad/DRACARYS/providers/azure/windows.tf
================================================
# Standard_B2s : 2 CPU / 4GB
# Standard_B2ms : 2CPU / 8GB
# Standard_B4ms : 4 cpu / 16 GB
"dc01" = {
name = "dc01"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2025-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.10"
password = "8dCsfT-DJjgS3xdcp"
size = "Standard_B2s"
}
"srv01" = {
name = "srv01"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2025-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.11"
password = "NgtkgtIAs75cKV+Pu"
size = "Standard_B2s"
}
================================================
FILE: ad/DRACARYS/providers/ludus/config.yml
================================================
ludus:
- vm_name: "{{ range_id }}-DC01"
hostname: "{{ range_id }}-DC01"
template: win2025-server-x64-tpm-template
vlan: 10
ip_last_octet: 10
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-SRV01"
hostname: "{{ range_id }}-SRV01"
template: win2025-server-x64-tpm-template
vlan: 10
ip_last_octet: 11
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-LX01"
hostname: "{{ range_id }}-LX01"
template: ubuntu-24.04-x64-server-template
vlan: 10
ip_last_octet: 12
ram_gb: 4
cpus: 2
linux: true
================================================
FILE: ad/DRACARYS/providers/ludus/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
[all:vars]
force_dns_server=no
dns_server={{ip_range}}.254
dns_server_forwarder={{ip_range}}.254
ansible_user=localuser
ansible_password=password
================================================
FILE: ad/DRACARYS/providers/proxmox/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no'
[all:vars]
force_dns_server=yes
dns_server={{ip_range}}.1
================================================
FILE: ad/DRACARYS/providers/proxmox/linux.tf
================================================
"lx01" = {
name = "LX01"
desc = "LX01 - DRACARYS"
cores = 2
memory = 4096
clone = "Ubuntu_2404_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.12/24"
gateway = "{{ip_range}}.1"
}
================================================
FILE: ad/DRACARYS/providers/proxmox/windows.tf
================================================
"dc01" = {
name = "DC01"
desc = "DC01 - DRACARYS - windows server 2025 - {{ip_range}}.10"
cores = 2
memory = 4096
clone = "WinServer2025_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.10/24"
gateway = "{{ip_range}}.1"
os = "win11"
}
"srv01" = {
name = "SRV01"
desc = "SRV01 - DRACARYS- windows server 2025 - {{ip_range}}.11"
cores = 2
memory = 4096
clone = "WinServer2025_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.11/24"
gateway = "{{ip_range}}.1"
os = "win11"
}
================================================
FILE: ad/DRACARYS/providers/virtualbox/Vagrantfile
================================================
boxes =
[
{ :name => "DRACARYS-DC01",
:ip => "{{ip_range}}.10",
:box => "GOAD/WindowsServer2025",
:box_version => "2026.02.09",
:os => "windows",
:cpus => 2,
:mem => 3000
},
{ :name => "DRACARYS-SRV01",
:ip => "{{ip_range}}.11",
:box => "GOAD/WindowsServer2025",
:box_version => "2026.02.09",
:os => "windows",
:cpus => 2,
:mem => 3000
},
{ :name => "DRACARYS-LX01",
:ip => "{{ip_range}}.12",
:box => "bento/ubuntu-24.04",
:box_version => "202510.26.0",
:os => "linux",
:cpus => 2,
:mem => 3000,
:forwarded_port => [ {:guest => 22, :host => 2210, :id => "ssh"} ]
}
]
================================================
FILE: ad/DRACARYS/providers/virtualbox/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no'
================================================
FILE: ad/DRACARYS/providers/vmware/Vagrantfile
================================================
boxes =
[
{ :name => "DRACARYS-DC01",
:ip => "{{ip_range}}.10",
:box => "GOAD/WindowsServer2025",
:box_version => "2026.02.09",
:os => "windows",
:cpus => 2,
:mem => 3000
},
{ :name => "DRACARYS-SRV01",
:ip => "{{ip_range}}.11",
:box => "GOAD/WindowsServer2025",
:box_version => "2026.02.09",
:os => "windows",
:cpus => 2,
:mem => 3000
},
{ :name => "DRACARYS-LX01",
:ip => "{{ip_range}}.12",
:box => "bento/ubuntu-24.04",
:box_version => "202510.26.0",
:os => "linux",
:cpus => 2,
:mem => 3000,
:forwarded_port => [ {:guest => 22, :host => 2210, :id => "ssh"} ]
}
]
================================================
FILE: ad/DRACARYS/providers/vmware/inventory
================================================
[default]
; ------------------------------------------------
; dracarys.lab
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
srv01 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=srv01
lx01 ansible_host={{ip_range}}.12 dict_key=lx01 ansible_connection=ssh ansible_ssh_common_args='-o StrictHostKeyChecking=no'
================================================
FILE: ad/DRACARYS/scripts/set_spn.ps1
================================================
Set-ADComputer -Identity "syrax$" -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/arrax.dracarys.lab','HTTP/arrax')}
================================================
FILE: ad/DRACARYS/scripts/wsman_kerb.ps1
================================================
Set-ADComputer -Identity "vhagar$" -ServicePrincipalNames @{Add='WSMAN/vhagar.dracarys.lab'}
Set-ADComputer -Identity "vhagar$" -Add @{'msDS-AllowedToDelegateTo'=@('WSMAN/vhagar.dracarys.lab')}
================================================
FILE: ad/GOAD/README.md
================================================
# GOAD
- LAB Content

## Servers
This lab is actually composed of five virtual machines:
- **kingslanding** : DC01 running on Windows Server 2019 (with windefender enabled by default)
- **winterfell** : DC02 running on Windows Server 2019 (with windefender enabled by default)
- **castelblack** : SRV02 running on Windows Server 2019 (with windefender **disabled** by default)
- **meereen** : DC03 running on Windows Server 2016 (with windefender enabled by default)
- **braavos** : SRV03 running on Windows Server 2016 (with windefender enabled by default)
## domain : north.sevenkingdoms.local
- **winterfell** : DC01
- **castelblack** : SRV02 : MSSQL / IIS
## domain : sevenkingdoms.local
- **kingslanding** : DC02
- **castelrock** : SRV01 (disabled due to resources reasons)
## domain : essos.local
- **braavos** : DC03
- **meeren** : SRV03 : MSSQL / ADCS
The lab setup is automated using vagrant and ansible automation tools.
You can change the vm version in the Vagrantfile according to Stefan Scherer vagrant repository : https://app.vagrantup.com/StefanScherer
## Users/Groups and associated vulnerabilites/scenarios
- You can find a lot of the available scenarios on [https://mayfly277.github.io/categories/ad/](https://mayfly277.github.io/categories/ad/)
- Graph of some scenarios is available here :

NORTH.SEVENKINGDOMS.LOCAL
- STARKS: RDP on WINTERFELL AND CASTELBLACK
- arya.stark: Execute as user on mssql, pass on all share
- eddard.stark: DOMAIN ADMIN NORTH/ (bot 5min) LLMRN request to do NTLM relay with responder
- catelyn.stark:
- robb.stark: bot (3min) RESPONDER LLMR / lsass present user
- sansa.stark: keywalking password / unconstrained delegation
- brandon.stark: ASREP_ROASTING
- rickon.stark: pass spray WinterYYYY
- jon.snow: mssql admin / KERBEROASTING / mssql trusted link
- hodor: PASSWORD SPRAY (user=password)
- NIGHT WATCH: RDP on CASTELBLACK
- samwell.tarly: Password in ldap description / mssql execute as login
GPO abuse (Edit Settings on "STARKWALLPAPER" GPO)
- jon.snow: (see starks)
- jeor.mormont: (see mormont)
- MORMONT: RDP on CASTELBLACK
- jeor.mormont: Admin castelblack, pass in sysvol script
- AcrossTheSea : cross forest group
SEVENKINGDOMS.LOCAL
- LANISTERS
- tywin.lannister: ACE forcechangepassword on jaime.lanister, password on sysvol cyphered
- jaime.lannister: ACE genericwrite-on-user joffrey.baratheon
- tyron.lannister: ACE self membership on small council
- cersei.lannister: DOMAIN ADMIN SEVENKINGDOMS
- BARATHEON: RDP on KINGSLANDING
- robert.baratheon: DOMAIN ADMIN SEVENKINGDOMS, protected user
- joffrey.baratheon: ACE Write DACL on tyron.lannister
- renly.baratheon: WriteDACL on container, sensitive user
- stannis.baratheon: ACE genericall-on-computer kingslanding
- SMALL COUNCIL : ACE add Member to group dragon stone / RDP on KINGSLANDING
- petyer.baelish:
- lord.varys: ACE genericall-on-group Domain Admins and sdholder
- maester.pycelle:
- DRAGONSTONE : ACE Write Owner on group KINGSGUARD
- KINGSGUARD : ACE generic all on user stannis.baratheon
- AccorsTheNarrowSea: cross forest group
ESSOS.LOCAL
- TARGERYEN
- missande : ASREP roasting, generic all on khal
- daenerys.targaryen: DOMAIN ADMIN ESSOS
- viserys.targaryen: ACE write property on jorah.mormont
- jorah.mormont: mssql execute as login / mssql trusted link / Read LAPS Password
- DOTHRAKI
- khal.drogo: mssql admin / GenericAll on viserys (shadow credentials) / GenericAll on ECS4
- DragonsFriends: cross forest group
- Spys: cross forest group / Read LAPS password / ACL generic all jorah.mormont
## Computers Users and group permissions
- SEVENKINGDOMS
- DC01 : kingslanding.sevenkingdoms.local (Windows Server 2019) (SEVENKINGDOMS DC)
- Admins : robert.baratheon (U), cersei.lannister (U)
- RDP: Small Council (G)
- NORTH
- DC02 : winterfell.north.sevenkingdoms.local (Windows Server 2019) (NORTH DC)
- Admins : eddard.stark (U), catelyn.stark (U), robb.stark (U)
- RDP: Stark(G)
- SRV02 : castelblack.essos.local (Windows Server 2019) (IIS, MSSQL, SMB share)
- Admins: jeor.mormont (U)
- RDP: Night Watch (G), Mormont (G), Stark (G)
- IIS : allow asp upload, run as NT Authority/network
- MSSQL:
- admin : jon.snow
- impersonate :
- execute as login : samwel.tarlly -> sa
- execute as user : arya.stark -> dbo
- link :
- to braavos : jon.snow -> sa
- ESSOS
- DC03 : meereen.essos.local (Windows Server 2016) (ESSOS DC)
- Admins: daenerys.targaryen (U)
- RDP: Targaryen (G)
- SRV03 : braavos.essos.local (Windows Server 2016) (MSSQL, SMB share)
- Admins: khal.drogo (U)
- RDP: Dothraki (G)
- MSSQL :
- admin : khal.drogo
- impersonate :
- execute as login : jorah.mormont -> sa
- link:
- to castelblack: jorah.mormont -> sa
## Blueteam / ELK
- **elk** a kibana is configured on http://192.168.56.50:5601 to follow the lab events
- infos : log encyclopedia : https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/
- the elk is not installed by default due to resources reasons.
- prerequistes:
- you need `sshpass` for the elk installation
```bash
sudo apt install sshpass
```
- Chocolatey is needed to use elk. To install it run:
```bash
ansible-galaxy collection install chocolatey.chocolatey
```
- To install and start the elk play the following commands :
```bash
./goad.sh -t install -l GOAD -p virtualbox -m local -r elk.yml -e elk
#or
./goad.sh -t install -l GOAD -p vmware -m local -r elk.yml -e elk
```
* -e : to add the elk in vagrantfile for the vagrant up
* -r : to run only the elk.yml ansible script
If you want to only launch the elk.yml file without providing (vm creation), because your elk vm is already up do :
```bash
./goad.sh -t install -l GOAD -p virtualbox -m local -a -r elk.yml -e elk
#or
./goad.sh -t install -l GOAD -p vmware -m local -a -r elk.yml -e elk
```
If you want to do that by hand:
1. run: `GOAD_VAGRANT_OPTIONS=elk vagrant up`
2. launch the elk provisionning with the command :
```
cd ansible
ansible-playbook -i ../ad/GOAD/data/inventory -i ../ad/GOAD/providers/<your_provider>/inventory elk.yml
```
### V2 breaking changes
- If you previously install the v1 do not try to update as a lot of things have changed. Just drop your old lab and build the new one (you will not regret it)
- Chocolatey is no more used and basic tools like git or notepad++ are no more installed by default (as chocolatey regularly crash the install due to hitting rate on multiples builds)
- ELK is no more installed by default to save resources but you still can install it separately (see the blueteam/elk part)
- Dragonstone vm as disappear and there is no more DC replication in the lab to save resources
- Wintefell is now a domain controller for the subdomain north of the sevenkingdoms.local domain
================================================
FILE: ad/GOAD/data/config.json
================================================
{
"lab" : {
"hosts" : {
"dc01" : {
"hostname" : "kingslanding",
"type" : "dc",
"local_admin_password": "8dCT-DJjgScp",
"domain" : "sevenkingdoms.local",
"path" : "DC=sevenkingdoms,DC=local",
"local_groups" : {
"Administrators" : [
"sevenkingdoms\\robert.baratheon",
"sevenkingdoms\\cersei.lannister",
"sevenkingdoms\\DragonRider"
],
"Remote Desktop Users" : [
"sevenkingdoms\\Small Council",
"sevenkingdoms\\Baratheon"
]
},
"scripts" : ["sidhistory.ps1"],
"vulns" : ["disable_firewall", "adcs_esc10_case1", "adcs_esc10_case2"],
"security": ["account_is_sensitive"],
"security_vars": {
"account_is_sensitive" : { "renly": {"account" : "renly.baratheon"} }
}
},
"dc02" : {
"hostname" : "winterfell",
"type" : "dc",
"local_admin_password": "NgtI75cKV+Pu",
"domain" : "north.sevenkingdoms.local",
"path" : "DC=north,DC=sevenkingdoms,DC=local",
"local_groups" : {
"Administrators" : [
"north\\eddard.stark",
"north\\catelyn.stark",
"north\\robb.stark"
],
"Remote Desktop Users" : [
"north\\Stark"
]
},
"scripts" : [
"asrep_roasting.ps1",
"constrained_delegation_use_any.ps1",
"constrained_delegation_kerb_only.ps1",
"ntlm_relay.ps1",
"responder.ps1",
"gpo_abuse.ps1",
"rdp_scheduler.ps1"
],
"vulns" : ["disable_firewall","directory", "credentials", "autologon", "files", "enable_llmnr", "enable_nbt-ns", "shares"],
"vulns_vars" : {
"directory": {
"setup": "c:\\setup"
},
"credentials" : {
"TERMSRV/castelblack": {
"username" : "north\\robb.stark",
"secret" : "sexywolfy",
"runas" : "north\\robb.stark",
"runas_password" : "sexywolfy"
}
},
"autologon" : {
"robb.stark" : {
"username" : "north\\robb.stark",
"password" : "sexywolfy"
}
},
"files" : {
"rdp" : {
"src" : "dc02/bot_rdp.ps1",
"dest" : "c:\\setup\\bot_rdp.ps1"
},
"sysvol_fake_script": {
"src" : "dc02/sysvol_scripts/script.ps1",
"dest": "C:\\Windows\\SYSVOL\\domain\\scripts\\script.ps1"
},
"sysvol_secret": {
"src" : "dc02/sysvol_scripts/secret.ps1",
"dest": "C:\\Windows\\SYSVOL\\domain\\scripts\\secret.ps1"
}
}
}
},
"srv02" : {
"hostname" : "castelblack",
"type" : "server",
"local_admin_password": "NgtI75cKV+Pu",
"domain" : "north.sevenkingdoms.local",
"path" : "DC=north,DC=sevenkingdoms,DC=local",
"use_laps": false,
"local_groups" : {
"Administrators" : [
"north\\jeor.mormont"
],
"Remote Desktop Users" : [
"north\\Night Watch",
"north\\Mormont",
"north\\Stark"
]
},
"scripts" : [],
"vulns" : ["directory", "disable_firewall", "openshares", "files", "permissions"],
"vulns_vars" : {
"directory": {
"shares": "C:\\shares",
"all": "C:\\shares\\all"
},
"files" : {
"website" : {
"src" : "srv02/wwwroot",
"dest" : "C:\\inetpub\\"
},
"letter_in_shares": {
"src" : "srv02/all/arya.txt",
"dest": "C:\\shares\\all\\arya.txt"
}
},
"permissions" : {
"IIS_IUSRS_upload": {
"path" : "C:\\inetpub\\wwwroot\\upload",
"user" : "IIS_IUSRS",
"rights" : "FullControl"
}
},
"shares" : {
"thewall" : {
"path" : "C:\\thewall",
"list" : "yes",
"full" : "NORTH\\Stark",
"change" : "NORTH\\jon.snow,NORTH\\samwell.tarly",
"read" : "Users"
}
}
},
"mssql":{
"sa_password": "Sup1_sa_P@ssw0rd!",
"svcaccount" : "sql_svc",
"sysadmins" : [
"NORTH\\jon.snow"
],
"executeaslogin" : {
"NORTH\\samwell.tarly" : "sa",
"NORTH\\brandon.stark" : "NORTH\\jon.snow"
},
"executeasuser" : {
"arya_master_dbo": {
"user": "NORTH\\arya.stark",
"db" : "master",
"impersonate" : "dbo"
},
"arya_dbms_dbo": {
"user": "NORTH\\arya.stark",
"db" : "msdb",
"impersonate" : "dbo"
}
},
"linked_servers": {
"BRAAVOS" : {
"data_src": "braavos.essos.local",
"users_mapping": [
{"local_login": "NORTH\\jon.snow","remote_login": "sa", "remote_password": "sa_P@ssw0rd!Ess0s"}
]
}
}
}
},
"dc03" : {
"hostname" : "meereen",
"type" : "dc",
"local_admin_password": "Ufe-bVXSx9rk",
"domain" : "essos.local",
"path" : "DC=essos,DC=local",
"local_groups" : {
"Administrators" : [
"essos\\daenerys.targaryen",
"essos\\greatmaster"
],
"Remote Desktop Users" : [
"essos\\Targaryen"
]
},
"scripts" : ["asrep_roasting2.ps1"],
"vulns" : ["ntlmdowngrade", "disable_firewall", "adcs_esc7", "adcs_esc13", "adcs_esc15"],
"vulns_vars" : {
"adcs_esc7": {
"viserys": {
"ca_manager": "essos\\viserys.targaryen"
}
},
"adcs_esc13": {
"esc13" : {
"adcs_esc13_group": "greatmaster",
"adcs_esc13_template": "ESC13"
}
}
}
},
"srv03" : {
"hostname" : "braavos",
"type" : "server",
"local_admin_password": "978i2pF43UJ-",
"domain" : "essos.local",
"path" : "DC=essos,DC=local",
"use_laps": true,
"local_groups" : {
"Administrators" : [
"essos\\khal.drogo"
]
},
"Remote Desktop Users" : [
"essos\\Dothraki"
],
"scripts" : [],
"vulns" : ["openshares","disable_firewall", "adcs_esc6", "adcs_esc11"],
"security": ["enable_run_as_ppl"],
"mssql":{
"sa_password": "sa_P@ssw0rd!Ess0s",
"svcaccount" : "sql_svc",
"sysadmins" : [
"ESSOS\\khal.drogo"
],
"executeaslogin" : {
"ESSOS\\jorah.mormont" : "sa"
},
"executeasuser" : {},
"linked_servers": {
"CASTELBLACK" : {
"data_src": "castelblack.north.sevenkingdoms.local",
"users_mapping": [
{"local_login": "ESSOS\\khal.drogo","remote_login": "sa", "remote_password": "Sup1_sa_P@ssw0rd!"}
]
}
}
}
}
},
"domains" : {
"essos.local" : {
"dc": "dc03",
"domain_password" : "Ufe-bVXSx9rk",
"netbios_name": "ESSOS",
"ca_server": "Braavos",
"trust" : "sevenkingdoms.local",
"laps_path": "OU=Laps,DC=essos,DC=local",
"organisation_units" : {
},
"laps_readers": [
"jorah.mormont",
"Spys"
],
"groups" : {
"universal" : {
"greatmaster" : {
"path" : "CN=Users,DC=essos,DC=local"
}
},
"global" : {
"Targaryen" : {
"managed_by" : "viserys.targaryen",
"path" : "CN=Users,DC=essos,DC=local"
},
"Dothraki" : {
"managed_by" : "khal.drogo",
"path" : "CN=Users,DC=essos,DC=local"
},
"Dragons":{
"managed_by" : "Administrator",
"path" : "CN=Users,DC=essos,DC=local"
},
"QueenProtector":{
"managed_by" : "Administrator",
"path" : "CN=Users,DC=essos,DC=local",
"members" : ["ESSOS\\Dragons"]
},
"Domain Admins":{
"managed_by" : "Administrator",
"path" : "CN=Users,DC=essos,DC=local",
"members" : ["ESSOS\\QueenProtector"]
}
},
"domainlocal" : {
"DragonsFriends" : {
"managed_by" : "daenerys.targaryen",
"path" : "CN=Users,DC=essos,DC=local"
},
"Spys" : {
"path" : "CN=Users,DC=essos,DC=local"
}
}
},
"multi_domain_groups_member" : {
"DragonsFriends" : [
"sevenkingdoms.local\\tyron.lannister",
"essos.local\\daenerys.targaryen"
],
"Spys" : [
"sevenkingdoms.local\\Small Council"
]
},
"gmsa" : {
"gmsa_account": {
"gMSA_Name" : "gmsaDragon",
"gMSA_FQDN" : "gmsaDragon.essos.local",
"gMSA_SPNs" : ["HTTP/braavos", "HTTP/braavos.essos.local"],
"gMSA_HostNames" : ["braavos"]
}
},
"acls" : {
"GenericAll_khal_viserys" : {"for": "khal.drogo", "to": "viserys.targaryen", "right": "GenericAll", "inheritance": "None"},
"GenericAll_spy_jorah" : {"for": "Spys", "to": "jorah.mormont", "right": "GenericAll", "inheritance": "None"},
"GenericAll_khal_esc4" : {"for": "khal.drogo", "to": "CN=ESC4,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=essos,DC=local", "right": "GenericAll", "inheritance": "None"},
"WriteProperty_petyer_domadmin" : {"for": "viserys.targaryen", "to": "jorah.mormont", "right": "WriteProperty", "inheritance": "All"},
"GenericWrite_DragonsFriends_braavos" : {"for": "DragonsFriends", "to": "braavos$", "right": "GenericWrite", "inheritance": "None"},
"GenericAll_missandei_khal" : {"for": "missandei", "to": "khal.drogo", "right": "GenericAll", "inheritance": "None"},
"GenericAll_gmsaDragon_drogo" : {"for": "gmsaDragon$", "to": "drogon", "right": "GenericAll", "inheritance": "None"},
"GenericWrite_missandei_viserys" : {"for": "missandei", "to": "viserys.targaryen", "right": "GenericWrite", "inheritance": "None"}
},
"users" : {
"daenerys.targaryen" : {
"firstname" : "daenerys",
"surname" : "targaryen",
"password" : "BurnThemAll!",
"city" : "-",
"description" : "Darnerys Targaryen",
"groups" : ["Targaryen", "Domain Admins"],
"path" : "CN=Users,DC=essos,DC=local"
},
"viserys.targaryen" : {
"firstname" : "viserys",
"surname" : "targaryen",
"password" : "GoldCrown",
"city" : "-",
"description" : "Viserys Targaryen",
"groups" : ["Targaryen"],
"path" : "CN=Users,DC=essos,DC=local"
},
"khal.drogo" : {
"firstname" : "khal",
"surname" : "drogo",
"password" : "horse",
"city" : "-",
"description" : "Khal Drogo",
"groups" : ["Dothraki"],
"path" : "CN=Users,DC=essos,DC=local"
},
"jorah.mormont" : {
"firstname" : "jorah",
"surname" : "mormont",
"password" : "H0nnor!",
"city" : "-",
"description" : "Jorah Mormont",
"groups" : ["Targaryen"],
"path" : "CN=Users,DC=essos,DC=local"
},
"missandei" : {
"firstname" : "missandei",
"surname" : "-",
"password" : "fr3edom",
"city" : "-",
"description" : "missandei",
"groups" : [],
"path" : "CN=Users,DC=essos,DC=local"
},
"drogon" : {
"firstname" : "drogon",
"surname" : "-",
"password" : "Dracarys",
"city" : "-",
"description" : "drogon",
"groups" : ["Dragons"],
"path" : "CN=Users,DC=essos,DC=local"
},
"sql_svc" : {
"firstname" : "sql",
"surname" : "service",
"password" : "YouWillNotKerboroast1ngMeeeeee",
"city" : "-",
"description" : "sql service",
"groups" : [],
"path" : "CN=Users,DC=essos,DC=local",
"spns" : ["MSSQLSvc/braavos.essos.local:1433","MSSQLSvc/braavos.essos.local"]
}
}
},
"north.sevenkingdoms.local" : {
"dc": "dc02",
"domain_password" : "NgtI75cKV+Pu",
"netbios_name": "NORTH",
"trust" : "",
"laps_path": "OU=Laps,DC=north,DC=sevenkingdoms,DC=local",
"organisation_units" : {
},
"groups" : {
"universal" : {},
"global" : {
"Stark" : {
"managed_by" : "eddard.stark",
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"Night Watch" : {
"managed_by" : "jeor.mormont",
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"Mormont" : {
"managed_by" : "jeor.mormont",
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
}
},
"domainlocal" : {
"AcrossTheSea" : {
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
}
}
},
"multi_domain_groups_member" : {},
"acls" : {
"anonymous_rpc" : {"for": "NT AUTHORITY\\ANONYMOUS LOGON", "to": "DC=North,DC=sevenkingdoms,DC=local", "right": "ReadProperty", "inheritance": "All"},
"anonymous_rpc2" : {"for": "NT AUTHORITY\\ANONYMOUS LOGON", "to": "DC=North,DC=sevenkingdoms,DC=local", "right": "GenericExecute", "inheritance": "All"}
},
"users" : {
"arya.stark" : {
"firstname" : "Arya",
"surname" : "Stark",
"password" : "Needle",
"city" : "Winterfell",
"description" : "Arya Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"eddard.stark" : {
"firstname" : "Eddard",
"surname" : "Stark",
"password" : "FightP3aceAndHonor!",
"city" : "King's Landing",
"description" : "Eddard Stark",
"groups" : ["Stark", "Domain Admins"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"catelyn.stark" : {
"firstname" : "Catelyn",
"surname" : "Stark",
"password" : "robbsansabradonaryarickon",
"city" : "King's Landing",
"description" : "Catelyn Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"robb.stark" : {
"firstname" : "Robb",
"surname" : "Stark",
"password" : "sexywolfy",
"city" : "Winterfell",
"description" : "Robb Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"sansa.stark" : {
"firstname" : "Sansa",
"surname" : "Stark",
"password" : "345ertdfg",
"city" : "Winterfell",
"description" : "Sansa Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local",
"spns" : ["HTTP/eyrie.north.sevenkingdoms.local"]
},
"brandon.stark" : {
"firstname" : "Brandon",
"surname" : "Stark",
"password" : "iseedeadpeople",
"city" : "Winterfell",
"description" : "Brandon Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"rickon.stark" : {
"firstname" : "Rickon",
"surname" : "Stark",
"password" : "Winter2022",
"city" : "Winterfell",
"description" : "Rickon Stark",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"hodor" : {
"firstname" : "hodor",
"surname" : "hodor",
"password" : "hodor",
"city" : "Winterfell",
"description" : "Brainless Giant",
"groups" : ["Stark"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"jon.snow" : {
"firstname" : "Jon",
"surname" : "Snow",
"password" : "iknownothing",
"city" : "Castel Black",
"description" : "Jon Snow",
"groups" : ["Stark", "Night Watch"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local",
"spns" : ["HTTP/thewall.north.sevenkingdoms.local"]
},
"samwell.tarly" : {
"firstname" : "Samwell",
"surname" : "Tarly",
"password" : "Heartsbane",
"city" : "Castel Black",
"description" : "Samwell Tarly (Password : Heartsbane)",
"groups" : ["Night Watch"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"jeor.mormont" : {
"firstname" : "Jeor",
"surname" : "Mormont",
"password" : "_L0ngCl@w_",
"city" : "Castel Black",
"description" : "Jeor Mormont",
"groups" : ["Night Watch", "Mormont"],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local"
},
"sql_svc" : {
"firstname" : "sql",
"surname" : "service",
"password" : "YouWillNotKerboroast1ngMeeeeee",
"city" : "-",
"description" : "sql service",
"groups" : [],
"path" : "CN=Users,DC=North,DC=sevenkingdoms,DC=local",
"spns" : ["MSSQLSvc/castelblack.north.sevenkingdoms.local:1433","MSSQLSvc/castelblack.north.sevenkingdoms.local"]
}
}
},
"sevenkingdoms.local" : {
"dc": "dc01",
"domain_password" : "8dCT-DJjgScp",
"netbios_name": "SEVENKINGDOMS",
"trust" : "essos.local",
"laps_path": "OU=Laps,DC=sevenkingdoms,DC=local",
"organisation_units" : {
"Vale" : { "path" : "DC=sevenkingdoms,DC=local"},
"IronIslands" : { "path" : "DC=sevenkingdoms,DC=local"},
"Riverlands" : { "path" : "DC=sevenkingdoms,DC=local"},
"Crownlands" : { "path" : "DC=sevenkingdoms,DC=local"},
"Stormlands" : { "path" : "DC=sevenkingdoms,DC=local"},
"Westerlands" : { "path" : "DC=sevenkingdoms,DC=local"},
"Reach" : { "path" : "DC=sevenkingdoms,DC=local"},
"Dorne" : { "path" : "DC=sevenkingdoms,DC=local"}
},
"groups" : {
"universal" : {},
"global" : {
"Lannister" : {
"managed_by" : "tywin.lannister",
"path" : "OU=Westerlands,DC=sevenkingdoms,DC=local"
},
"Baratheon" : {
"managed_by" : "robert.baratheon",
"path" : "OU=Stormlands,DC=sevenkingdoms,DC=local"
},
"Small Council" : {
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"DragonStone" : {
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"KingsGuard" : {
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"DragonRider" : {
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
}
},
"domainlocal" : {
"AcrossTheNarrowSea" : {
"path" : "CN=Users,DC=sevenkingdoms,DC=local"
}
}
},
"multi_domain_groups_member" : {
"AcrossTheNarrowSea" : [
"essos.local\\daenerys.targaryen"
]
},
"acls" : {
"forcechangepassword_tywin_jaime" : {"for": "tywin.lannister", "to": "jaime.lannister", "right": "Ext-User-Force-Change-Password", "inheritance": "None"},
"GenericWrite_on_user_jaimie_joffrey" : {"for": "jaime.lannister", "to": "joffrey.baratheon", "right": "GenericWrite", "inheritance": "None"},
"Writedacl_joffrey_tyron" : {"for": "joffrey.baratheon", "to": "tyron.lannister", "right": "WriteDacl", "inheritance": "None"},
"self-self-membership-on-group_tyron_small_council" : {"for": "tyron.lannister", "to": "Small Council", "right": "Ext-Self-Self-Membership", "inheritance": "None"},
"addmember_smallcouncil_DragonStone" : {"for": "Small Council", "to": "DragonStone", "right": "Ext-Write-Self-Membership", "inheritance": "All"},
"write_owner_dragonstone_kingsguard" : {"for": "DragonStone", "to": "KingsGuard", "right": "WriteOwner", "inheritance": "None"},
"GenericAll_kingsguard_stanis" : {"for": "KingsGuard", "to": "stannis.baratheon", "right": "GenericAll", "inheritance": "None"},
"GenericAll_stanis_dc" : {"for": "stannis.baratheon", "to": "kingslanding$", "right": "GenericAll", "inheritance": "None"},
"GenericAll_group_acrrosdom_dc" : {"for": "AcrossTheNarrowSea", "to": "kingslanding$", "right": "GenericAll", "inheritance": "None"},
"GenericAll_varys_domadmin" : {"for": "lord.varys", "to": "Domain Admins", "right": "GenericAll", "inheritance": "None"},
"GenericAll_varys_domadmin_holder" : {"for": "lord.varys", "to": "CN=AdminSDHolder,CN=System,DC=sevenkingdoms,DC=local", "right": "GenericAll", "inheritance": "None"},
"WriteDACL_renly_Crownlands" : {"for": "renly.baratheon", "to": "OU=Crownlands,DC=sevenkingdoms,DC=local", "right": "WriteDacl", "inheritance": "None"}
},
"users" : {
"tywin.lannister" : {
"firstname" : "Tywin",
"surname" : "Lanister",
"password" : "powerkingftw135",
"city" : "Casterly Rock",
"description" : "Tywin Lanister",
"groups" : ["Lannister"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"jaime.lannister" : {
"firstname" : "Jaime",
"surname" : "Lanister",
"password" : "cersei",
"city" : "King's Landing",
"description" : "Jaime Lanister",
"groups" : ["Lannister"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"cersei.lannister" : {
"firstname" : "Cersei",
"surname" : "Lanister",
"password" : "il0vejaime",
"city" : "King's Landing",
"description" : "Cersei Lanister",
"groups" : ["Lannister","Baratheon","Domain Admins","Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"tyron.lannister" : {
"firstname" : "Tyron",
"surname" : "Lanister",
"password" : "Alc00L&S3x",
"city" : "King's Landing",
"description" : "Tyron Lanister",
"groups" : ["Lannister"],
"path" : "OU=Westerlands,DC=sevenkingdoms,DC=local"
},
"robert.baratheon" : {
"firstname" : "Robert",
"surname" : "Baratheon",
"password" : "iamthekingoftheworld",
"city" : "King's Landing",
"description" : "Robert Lanister",
"groups" : ["Baratheon","Domain Admins","Small Council","Protected Users"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"joffrey.baratheon" : {
"firstname" : "Joffrey",
"surname" : "Baratheon",
"password" : "1killerlion",
"city" : "King's Landing",
"description" : "Joffrey Baratheon",
"groups" : ["Baratheon","Lannister"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"renly.baratheon" : {
"firstname" : "Renly",
"surname" : "Baratheon",
"password" : "lorastyrell",
"city" : "King's Landing",
"description" : "Renly Baratheon",
"groups" : ["Baratheon","Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"stannis.baratheon" : {
"firstname" : "Stannis",
"surname" : "Baratheon",
"password" : "Drag0nst0ne",
"city" : "King's Landing",
"description" : "Stannis Baratheon",
"groups" : ["Baratheon","Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"petyer.baelish" : {
"firstname" : "Petyer",
"surname" : "Baelish",
"password" : "@littlefinger@",
"city" : "King's Landing",
"description" : "Petyer Baelish",
"groups" : ["Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"lord.varys" : {
"firstname" : "Lord",
"surname" : "Varys",
"password" : "_W1sper_$",
"city" : "King's Landing",
"description" : "Lord Varys",
"groups" : ["Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
},
"maester.pycelle" : {
"firstname" : "Maester",
"surname" : "Pycelle",
"password" : "MaesterOfMaesters",
"city" : "King's Landing",
"description" : "Maester Pycelle",
"groups" : ["Small Council"],
"path" : "OU=Crownlands,DC=sevenkingdoms,DC=local"
}
}
}
}
}}
================================================
FILE: ad/GOAD/data/inventory
================================================
; GLOBAL CONFIG
[all:vars]
; domain_name : folder inside ad/
domain_name=GOAD
; administrator user
admin_user=administrator
; global settings inventory default value
keyboard_layouts=["en-US", "da-DK", "fr-FR"]
; modify this to add a default route
add_route=no
route_gateway=192.168.56.1
route_network=10.0.0.0/8
; modify this to enable http proxy
enable_http_proxy=no
ad_http_proxy=http://x.x.x.x:xxxx
ad_https_proxy=http://x.x.x.x:xxxx
;force_dns_server
force_dns_server=no
dns_server=1.1.1.1
;dns server forwarder
dns_server_forwarder=1.1.1.1
; winrm connection (windows)
ansible_user=vagrant
ansible_password=vagrant
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_operation_timeout_sec=400
ansible_winrm_read_timeout_sec=500
# ansible_winrm_transport=basic
# ansible_port=5985
; proxy settings (the lab need internet for some install, if you are behind a proxy you should set the proxy here)
enable_http_proxy=no
ad_http_proxy=http://x.x.x.x:xxxx
ad_https_proxy=http://x.x.x.x:xxxx
; LAB SCENARIO CONFIGURATION -----------------------------
; computers inside domain (mandatory)
; usage : build.yml, ad-relations.yml, ad-servers.yml, vulnerabilities.yml
[domain]
dc01
dc02
dc03
srv02
srv03
[linux_domain]
; domain controler (mandatory)
; usage : ad-acl.yml, ad-data.yml, ad-relations.yml, laps.yml
[dc]
dc01
dc02
dc03
; domain server to enroll (mandatory if you want servers)
; usage : ad-data.yml, ad-servers.yml, laps.yml
[server]
srv02
srv03
; workstation to enroll (mandatory if you want workstation)
; usage : ad-servers.yml, laps.yml
[workstation]
; parent domain controler (mandatory)
; usage : ad-servers.yml
[parent_dc]
dc01
dc03
; child domain controler (need a fqdn child_name.parent_name)
; usage : ad-servers.yml
[child_dc]
dc02
; external trust, need domain trust entry in config (bidirectionnal)
; usage : ad-trusts.yml
[trust]
dc01
dc03
; install adcs
; usage : adcs.yml
[adcs]
dc01
srv03
; install custom template (dc)
; usage : adcs.yml
[adcs_customtemplates]
dc03
; install iis with default website asp upload on 80
; usage : servers.yml
[iis]
srv02
; install mssql
; usage : servers.yml
[mssql]
srv02
srv03
; install mssql gui
; usage : servers.yml
[mssql_ssms]
srv02
; install webdav
[webdav]
srv02
srv03
[laps_dc]
dc03
[laps_server]
srv03
[laps_workstation]
; allow computer update
; usage : update.yml
[update]
srv02
; disable update
; usage : update.yml
[no_update]
dc01
dc02
dc03
srv03
; allow defender
; usage : security.yml
[defender_on]
dc01
dc02
dc03
srv03
; disable defender
; usage : security.yml
[defender_off]
srv02
;stay empty until override
[extensions]
================================================
FILE: ad/GOAD/data/inventory_disable_vagrant
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=administrator@sevenkingdoms.local ansible_password=8dCT-DJjgScp
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02 ansible_user=administrator@north.sevenkingdoms.local ansible_password=NgtI75cKV+Pu
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02 ansible_user=administrator@north.sevenkingdoms.local ansible_password=NgtI75cKV+Pu
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03 ansible_user=administrator@essos.local ansible_password=Ufe-bVXSx9rk
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03 ansible_user=administrator@essos.local ansible_password=Ufe-bVXSx9rk
[all:vars]
; domain_name : folder inside ad/
domain_name=GOAD
; winrm connection (windows)
ansible_winrm_transport=ntlm
ansible_user=notused
ansible_password=notused
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_operation_timeout_sec=400
ansible_winrm_read_timeout_sec=500
; LAB SCENARIO CONFIGURATION -----------------------------
[domain]
dc01
dc02
srv02
dc03
srv03
================================================
FILE: ad/GOAD/files/dc02/bot_rdp.ps1
================================================
# https://learn.microsoft.com/fr-fr/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon
if(-not(query session robb.stark /server:castelblack)) {
#kill process if exist
Get-Process mstsc -IncludeUserName | Where {$_.UserName -eq "NORTH\robb.stark"}|Stop-Process
#run the command
mstsc /v:castelblack
}
================================================
FILE: ad/GOAD/files/dc02/sysvol_scripts/script.ps1
================================================
# fake script in netlogon with creds
$task = '/c TODO'
$taskName = "fake task"
$user = "NORTH\jeor.mormont"
$password = "_L0ngCl@w_"
# passwords in sysvol still ...
================================================
FILE: ad/GOAD/files/dc02/sysvol_scripts/secret.ps1
================================================
# cypher script
# $domain="sevenkingdoms.local"
# $EncryptionKeyBytes = New-Object Byte[] 32
# [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($EncryptionKeyBytes)
# $EncryptionKeyBytes | Out-File "encryption.key"
# $EncryptionKeyData = Get-Content "encryption.key"
# Read-Host -AsSecureString | ConvertFrom-SecureString -Key $EncryptionKeyData | Out-File -FilePath "secret.encrypted"
# secret stored :
$keyData = 177, 252, 228, 64, 28, 91, 12, 201, 20, 91, 21, 139, 255, 65, 9, 247, 41, 55, 164, 28, 75, 132, 143, 71, 62, 191, 211, 61, 154, 61, 216, 91
$secret="76492d1116743f0423413b16050a5345MgB8AGkAcwBDACsAUwArADIAcABRAEcARABnAGYAMwA3AEEAcgBFAEIAYQB2AEEAPQA9AHwAZQAwADgANAA2ADQAMABiADYANAAwADYANgA1ADcANgAxAGIAMQBhAGQANQBlAGYAYQBiADQAYQA2ADkAZgBlAGQAMQAzADAANQAyADUAMgAyADYANAA3ADAAZABiAGEAOAA0AGUAOQBkAGMAZABmAGEANAAyADkAZgAyADIAMwA="
# T.L.
================================================
FILE: ad/GOAD/files/srv02/all/arya.txt
================================================
Subject: Quick Departure
Hey Arya,
I hope this message finds you well. Something urgent has come up, and I have to leave for a while. Don't worry; I'll be back soon.
I left a little surprise for you in your room – the sword You've named "Needle." It felt fitting, given your skills. Take care of it, and it'll take care of you.
I'll explain everything when I return. Until then, stay sharp, sis.
Best,
John
================================================
FILE: ad/GOAD/files/srv02/wwwroot/Default.aspx
================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApp.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
File uploader to the upload/ folder
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br/>
<asp:Button ID="Button1" runat="server" Text="Upload File" OnClick="UploadFile" /><br/>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/Web.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
</configuration>
<!--ProjectGuid: 2B11A106-027E-4619-8BFC-1997E60A510C-->
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.CSharp.Core.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Microsoft.Managed.Core.targets"/>
<Target Name="CoreCompile"
Inputs="$(MSBuildAllProjects);
@(Compile);
@(_CoreCompileResourceInputs);
$(ApplicationIcon);
$(AssemblyOriginatorKeyFile);
@(ReferencePathWithRefAssemblies);
@(CompiledLicenseFile);
@(LinkResource);
@(EmbeddedDocumentation);
$(Win32Resource);
$(Win32Manifest);
@(CustomAdditionalCompileInputs);
$(ResolvedCodeAnalysisRuleSet);
@(AdditionalFiles);
@(EmbeddedFiles)"
Outputs="@(DocFileItem);
@(IntermediateAssembly);
@(IntermediateRefAssembly);
@(_DebugSymbolsIntermediatePath);
$(NonExistentFile);
@(CustomAdditionalCompileOutputs)"
Returns="@(CscCommandLineArgs)"
DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile">
<!-- These two compiler warnings are raised when a reference is bound to a different version
than specified in the assembly reference version number. MSBuild raises the same warning in this case,
so the compiler warning would be redundant. -->
<PropertyGroup Condition="('$(TargetFrameworkVersion)' != 'v1.0') and ('$(TargetFrameworkVersion)' != 'v1.1')">
<NoWarn>$(NoWarn);1701;1702</NoWarn>
</PropertyGroup>
<PropertyGroup>
<!-- To match historical behavior, when inside VS11+ disable the warning from csc.exe indicating that no sources were passed in-->
<NoWarn Condition="'$(BuildingInsideVisualStudio)' == 'true' AND '$(VisualStudioVersion)' != '' AND '$(VisualStudioVersion)' > '10.0'">$(NoWarn);2008</NoWarn>
</PropertyGroup>
<PropertyGroup>
<!-- If the user has specified AppConfigForCompiler, we'll use it. If they have not, but they set UseAppConfigForCompiler,
then we'll use AppConfig -->
<AppConfigForCompiler Condition="'$(AppConfigForCompiler)' == '' AND '$(UseAppConfigForCompiler)' == 'true'">$(AppConfig)</AppConfigForCompiler>
<!-- If we are targeting winmdobj we want to specifically the pdbFile property since we do not want it to collide with the output of winmdexp-->
<PdbFile Condition="'$(PdbFile)' == '' AND '$(OutputType)' == 'winmdobj' AND '$(_DebugSymbolsProduced)' == 'true'">$(IntermediateOutputPath)$(TargetName).compile.pdb</PdbFile>
</PropertyGroup>
<!-- Condition is to filter out the _CoreCompileResourceInputs so that it doesn't pass in culture resources to the compiler -->
<Csc Condition="'%(_CoreCompileResourceInputs.WithCulture)' != 'true'"
AdditionalLibPaths="$(AdditionalLibPaths)"
AddModules="@(AddModules)"
AdditionalFiles="@(AdditionalFiles)"
AllowUnsafeBlocks="$(AllowUnsafeBlocks)"
Analyzers="@(Analyzer)"
ApplicationConfiguration="$(AppConfigForCompiler)"
BaseAddress="$(BaseAddress)"
CheckForOverflowUnderflow="$(CheckForOverflowUnderflow)"
ChecksumAlgorithm="$(ChecksumAlgorithm)"
CodeAnalysisRuleSet="$(ResolvedCodeAnalysisRuleSet)"
CodePage="$(CodePage)"
DebugType="$(DebugType)"
DefineConstants="$(DefineConstants)"
DelaySign="$(DelaySign)"
DisabledWarnings="$(NoWarn)"
DocumentationFile="@(DocFileItem)"
EmbedAllSources="$(EmbedAllSources)"
EmbeddedFiles="@(EmbeddedFiles)"
EmitDebugInformation="$(DebugSymbols)"
EnvironmentVariables="$(CscEnvironment)"
ErrorEndLocation="$(ErrorEndLocation)"
ErrorLog="$(ErrorLog)"
ErrorReport="$(ErrorReport)"
Features="$(Features)"
FileAlignment="$(FileAlignment)"
GenerateFullPaths="$(GenerateFullPaths)"
HighEntropyVA="$(HighEntropyVA)"
Instrument="$(Instrument)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
LangVersion="$(LangVersion)"
LinkResources="@(LinkResource)"
MainEntryPoint="$(StartupObject)"
ModuleAssemblyName="$(ModuleAssemblyName)"
NoConfig="true"
NoLogo="$(NoLogo)"
NoStandardLib="$(NoCompilerStandardLib)"
NoWin32Manifest="$(NoWin32Manifest)"
Optimize="$(Optimize)"
Deterministic="$(Deterministic)"
PublicSign="$(PublicSign)"
OutputAssembly="@(IntermediateAssembly)"
OutputRefAssembly="@(IntermediateRefAssembly)"
PdbFile="$(PdbFile)"
Platform="$(PlatformTarget)"
Prefer32Bit="$(Prefer32Bit)"
PreferredUILang="$(PreferredUILang)"
ProvideCommandLineArgs="$(ProvideCommandLineArgs)"
References="@(ReferencePathWithRefAssemblies)"
ReportAnalyzer="$(ReportAnalyzer)"
Resources="@(_CoreCompileResourceInputs);@(CompiledLicenseFile)"
ResponseFiles="$(CompilerResponseFile)"
RuntimeMetadataVersion="$(RuntimeMetadataVersion)"
SharedCompilationId="$(SharedCompilationId)"
SkipCompilerExecution="$(SkipCompilerExecution)"
Sources="@(Compile)"
SubsystemVersion="$(SubsystemVersion)"
TargetType="$(OutputType)"
ToolExe="$(CscToolExe)"
ToolPath="$(CscToolPath)"
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
UseHostCompilerIfAvailable="$(UseHostCompilerIfAvailable)"
UseSharedCompilation="$(UseSharedCompilation)"
Utf8Output="$(Utf8Output)"
VsSessionGuid="$(VsSessionGuid)"
WarningLevel="$(WarningLevel)"
WarningsAsErrors="$(WarningsAsErrors)"
WarningsNotAsErrors="$(WarningsNotAsErrors)"
Win32Icon="$(ApplicationIcon)"
Win32Manifest="$(Win32Manifest)"
Win32Resource="$(Win32Resource)"
PathMap="$(PathMap)"
SourceLink="$(SourceLink)">
<Output TaskParameter="CommandLineArgs" ItemName="CscCommandLineArgs" />
</Csc>
<ItemGroup>
<_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" />
</ItemGroup>
<CallTarget Targets="$(TargetsTriggeredByCompilation)" Condition="'$(TargetsTriggeredByCompilation)' != ''" />
</Target>
</Project>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.Managed.Core.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Common targets for managed compilers.
-->
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.Tasks.CodeAnalysis.dll" />
<Target Name="ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies"
BeforeTargets="CoreCompile"
Condition="'@(ReferencePathWithRefAssemblies)' == ''">
<!--
FindReferenceAssembliesForReferences target in Common targets populate this item
since dev15.3. The compiler targets may be used (via NuGet package) on earlier MSBuilds.
If the ReferencePathWithRefAssemblies item is not populated, just use ReferencePaths
(implementation assemblies) as they are.
Since XAML inner build runs CoreCompile directly (instead of Compile target),
it also doesn't invoke FindReferenceAssembliesForReferences listed in CompileDependsOn.
In that case we also populate ReferencePathWithRefAssemblies with implementation assemblies.
-->
<ItemGroup>
<ReferencePathWithRefAssemblies Include="@(ReferencePath)" />
</ItemGroup>
</Target>
<Target Name="_BeforeVBCSCoreCompile"
DependsOnTargets="ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies">
<ItemGroup Condition="'$(TargetingClr2Framework)' == 'true'">
<ReferencePathWithRefAssemblies>
<EmbedInteropTypes />
</ReferencePathWithRefAssemblies>
</ItemGroup>
<!-- Prefer32Bit was introduced in .NET 4.5. Set it to false if we are targeting 4.0 -->
<PropertyGroup Condition="('$(TargetFrameworkVersion)' == 'v4.0')">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<!-- TODO: Remove this ItemGroup once it has been moved to "_GenerateCompileInputs" target in Microsoft.Common.CurrentVersion.targets.
https://github.com/dotnet/roslyn/issues/12223 -->
<ItemGroup Condition="('$(AdditionalFileItemNames)' != '')">
<AdditionalFileItems Include="$(AdditionalFileItemNames)" />
<AdditionalFiles Include="@(%(AdditionalFileItems.Identity))" />
</ItemGroup>
<PropertyGroup Condition="'$(UseSharedCompilation)' == ''">
<UseSharedCompilation>true</UseSharedCompilation>
</PropertyGroup>
</Target>
<!--
========================
DeterministicSourcePaths
========================
Unless specified otherwise enable deterministic source root (PathMap) when building deterministically on CI server, but not for local builds.
In order for the debugger to find source files when debugging a locally built binary the PDB must contain original, unmapped local paths.
-->
<PropertyGroup>
<DeterministicSourcePaths Condition="'$(DeterministicSourcePaths)' == '' and '$(Deterministic)' == 'true' and '$(ContinuousIntegrationBuild)' == 'true'">true</DeterministicSourcePaths>
</PropertyGroup>
<!--
==========
SourceRoot
==========
All source files of the project are expected to be located under one of the directories specified by SourceRoot item group.
This target collects all SourceRoots from various sources.
This target calculates final local path for each SourceRoot and sets SourceRoot.MappedPath metadata accordingly.
The final path is a path with deterministic prefix when DeterministicSourcePaths is true, and the original path otherwise.
In addition, the target validates and deduplicates the SourceRoot items.
InitializeSourceControlInformation is an msbuild target that ensures the SourceRoot items are populated from source control.
The target is available only if SourceControlInformationFeatureSupported is true.
A consumer of SourceRoot.MappedPath metadata, such as Source Link generator, shall depend on this target.
-->
<Target Name="InitializeSourceRootMappedPaths"
DependsOnTargets="_InitializeSourceRootMappedPathsFromSourceControl">
<ItemGroup Condition="'@(_MappedSourceRoot)' != ''">
<_MappedSourceRoot Remove="@(_MappedSourceRoot)" />
</ItemGroup>
<Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots SourceRoots="@(SourceRoot)" Deterministic="$(DeterministicSourcePaths)">
<Output TaskParameter="MappedSourceRoots" ItemName="_MappedSourceRoot" />
</Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots>
<ItemGroup>
<SourceRoot Remove="@(SourceRoot)" />
<SourceRoot Include="@(_MappedSourceRoot)" />
</ItemGroup>
</Target>
<!--
Declare that target InitializeSourceRootMappedPaths that populates MappedPaths metadata on SourceRoot items is available.
-->
<PropertyGroup>
<SourceRootMappedPathsFeatureSupported>true</SourceRootMappedPathsFeatureSupported>
</PropertyGroup>
<!--
If InitializeSourceControlInformation target isn't supported, we just continue without invoking that synchronization target.
We'll proceed with SourceRoot (and other source control properties) provided by the user (or blank).
-->
<Target Name="_InitializeSourceRootMappedPathsFromSourceControl"
DependsOnTargets="InitializeSourceControlInformation"
Condition="'$(SourceControlInformationFeatureSupported)' == 'true'" />
<!--
=======
PathMap
=======
If DeterministicSourcePaths is true sets PathMap based on SourceRoot.MappedPaths.
This target requires SourceRoot to be initialized in order to calculate the PathMap.
If SourceRoot doesn't contain any top-level roots an error is reported.
-->
<Target Name="_SetPathMapFromSourceRoots"
DependsOnTargets="InitializeSourceRootMappedPaths"
BeforeTargets="CoreCompile"
Condition="'$(DeterministicSourcePaths)' == 'true'">
<ItemGroup>
<_TopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''"/>
</ItemGroup>
<PropertyGroup Condition="'@(_TopLevelSourceRoot)' != ''">
<!-- TODO: Report error/warning if /pathmap doesn't cover all emitted source paths: https://github.com/dotnet/roslyn/issues/23969 -->
<!-- TODO: PathMap should accept and ignore empty mapping: https://github.com/dotnet/roslyn/issues/23523 -->
<PathMap Condition="'$(PathMap)' != ''">,$(PathMap)</PathMap>
<!--
Prepend the SourceRoot.MappedPath values to PathMap, if it already has a value.
For each emitted source path the compiler applies the first mapping that matches the path.
PathMap values set previously will thus only be applied if the mapping provided by
SourceRoot.MappedPath doesn't match. Since SourceRoot.MappedPath is also used by SourceLink
preferring it over manually set PathMap ensures that PathMap is consistent with SourceLink.
TODO: quote the paths to avoid misinterpreting ',' and '=' in them as separators,
but quoting doesn't currently work (see https://github.com/dotnet/roslyn/issues/22835).
-->
<PathMap>@(_TopLevelSourceRoot->'%(Identity)=%(MappedPath)', ',')$(PathMap)</PathMap>
</PropertyGroup>
</Target>
</Project>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.VisualBasic.Core.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Microsoft.Managed.Core.targets"/>
<Target Name="CoreCompile"
Inputs="$(MSBuildAllProjects);
@(Compile);
@(_CoreCompileResourceInputs);
$(ApplicationIcon);
$(AssemblyOriginatorKeyFile);
@(ReferencePathWithRefAssemblies);
@(CompiledLicenseFile);
@(LinkResource);
@(EmbeddedDocumentation);
$(Win32Resource);
$(Win32Manifest);
@(CustomAdditionalCompileInputs);
$(ResolvedCodeAnalysisRuleSet);
@(AdditionalFiles);
@(EmbeddedFiles)"
Outputs="@(DocFileItem);
@(IntermediateAssembly);
@(IntermediateRefAssembly);
@(_DebugSymbolsIntermediatePath);
$(NonExistentFile);
@(CustomAdditionalCompileOutputs)"
Returns="@(VbcCommandLineArgs)"
DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile">
<PropertyGroup>
<_NoWarnings Condition="'$(WarningLevel)' == '0'">true</_NoWarnings>
<_NoWarnings Condition="'$(WarningLevel)' == '1'">false</_NoWarnings>
</PropertyGroup>
<PropertyGroup>
<!-- If we are targeting winmdobj we want to specifically the pdbFile property since we do not want it to collide with the output of winmdexp-->
<PdbFile Condition="'$(PdbFile)' == '' AND '$(OutputType)' == 'winmdobj' AND '$(DebugSymbols)' == 'true'">$(IntermediateOutputPath)$(TargetName).compile.pdb</PdbFile>
</PropertyGroup>
<!-- Condition is to filter out the _CoreCompileResourceInputs so that it doesn't pass in culture resources to the compiler -->
<Vbc Condition="'%(_CoreCompileResourceInputs.WithCulture)' != 'true'"
AdditionalLibPaths="$(AdditionalLibPaths)"
AddModules="@(AddModules)"
AdditionalFiles="@(AdditionalFiles)"
Analyzers="@(Analyzer)"
BaseAddress="$(BaseAddress)"
ChecksumAlgorithm="$(ChecksumAlgorithm)"
CodeAnalysisRuleSet="$(ResolvedCodeAnalysisRuleSet)"
CodePage="$(CodePage)"
DebugType="$(DebugType)"
DefineConstants="$(FinalDefineConstants)"
DelaySign="$(DelaySign)"
DisabledWarnings="$(NoWarn)"
DocumentationFile="@(DocFileItem)"
EmbedAllSources="$(EmbedAllSources)"
EmbeddedFiles="@(EmbeddedFiles)"
EmitDebugInformation="$(DebugSymbols)"
EnvironmentVariables="$(VbcEnvironment)"
ErrorLog="$(ErrorLog)"
ErrorReport="$(ErrorReport)"
Features="$(Features)"
FileAlignment="$(FileAlignment)"
GenerateDocumentation="$(GenerateDocumentation)"
HighEntropyVA="$(HighEntropyVA)"
Imports="@(Import)"
Instrument="$(Instrument)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
LangVersion="$(LangVersion)"
LinkResources="@(LinkResource)"
MainEntryPoint="$(StartupObject)"
ModuleAssemblyName="$(ModuleAssemblyName)"
NoConfig="true"
NoStandardLib="$(NoCompilerStandardLib)"
NoVBRuntimeReference="$(NoVBRuntimeReference)"
NoWarnings="$(_NoWarnings)"
NoWin32Manifest="$(NoWin32Manifest)"
Optimize="$(Optimize)"
Deterministic="$(Deterministic)"
PublicSign="$(PublicSign)"
OptionCompare="$(OptionCompare)"
OptionExplicit="$(OptionExplicit)"
OptionInfer="$(OptionInfer)"
OptionStrict="$(OptionStrict)"
OptionStrictType="$(OptionStrictType)"
OutputAssembly="@(IntermediateAssembly)"
OutputRefAssembly="@(IntermediateRefAssembly)"
PdbFile="$(PdbFile)"
Platform="$(PlatformTarget)"
Prefer32Bit="$(Prefer32Bit)"
PreferredUILang="$(PreferredUILang)"
ProvideCommandLineArgs="$(ProvideCommandLineArgs)"
References="@(ReferencePathWithRefAssemblies)"
RemoveIntegerChecks="$(RemoveIntegerChecks)"
ReportAnalyzer="$(ReportAnalyzer)"
Resources="@(_CoreCompileResourceInputs);@(CompiledLicenseFile)"
ResponseFiles="$(CompilerResponseFile)"
RootNamespace="$(RootNamespace)"
RuntimeMetadataVersion="$(RuntimeMetadataVersion)"
SdkPath="$(FrameworkPathOverride)"
SharedCompilationId="$(SharedCompilationId)"
SkipCompilerExecution="$(SkipCompilerExecution)"
Sources="@(Compile)"
SubsystemVersion="$(SubsystemVersion)"
TargetCompactFramework="$(TargetCompactFramework)"
TargetType="$(OutputType)"
ToolExe="$(VbcToolExe)"
ToolPath="$(VbcToolPath)"
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
UseHostCompilerIfAvailable="$(UseHostCompilerIfAvailable)"
UseSharedCompilation="$(UseSharedCompilation)"
Utf8Output="$(Utf8Output)"
VBRuntimePath="$(VBRuntimePath)"
Verbosity="$(VbcVerbosity)"
VsSessionGuid="$(VsSessionGuid)"
WarningsAsErrors="$(WarningsAsErrors)"
WarningsNotAsErrors="$(WarningsNotAsErrors)"
Win32Icon="$(ApplicationIcon)"
Win32Manifest="$(Win32Manifest)"
Win32Resource="$(Win32Resource)"
VBRuntime="$(VBRuntime)"
PathMap="$(PathMap)"
SourceLink="$(SourceLink)">
<Output TaskParameter="CommandLineArgs" ItemName="VbcCommandLineArgs" />
</Vbc>
<ItemGroup>
<_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" />
</ItemGroup>
<CallTarget Targets="$(TargetsTriggeredByCompilation)" Condition="'$(TargetsTriggeredByCompilation)' != ''" />
</Target>
</Project>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/VBCSCompiler.exe.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<runtime>
<gcServer enabled="true" />
<gcConcurrent enabled="false" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.3.0" newVersion="1.4.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<appSettings>
<!-- Number of seconds with no activity before the server times out and closes.
Set to -1 to never shut down the server. -->
<add key="keepalive" value="600" />
</appSettings>
</configuration>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/csc.exe.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<runtime>
<gcServer enabled="true" />
<gcConcurrent enabled="false" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.3.0" newVersion="1.4.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/csc.rsp
================================================
# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
# This file contains command-line options that the C#
# command line compiler (CSC) will process as part
# of every compilation, unless the "/noconfig" option
# is specified.
# Reference the common Framework libraries
/r:Accessibility.dll
/r:Microsoft.CSharp.dll
/r:System.Configuration.dll
/r:System.Configuration.Install.dll
/r:System.Core.dll
/r:System.Data.dll
/r:System.Data.DataSetExtensions.dll
/r:System.Data.Linq.dll
/r:System.Data.OracleClient.dll
/r:System.Deployment.dll
/r:System.Design.dll
/r:System.DirectoryServices.dll
/r:System.dll
/r:System.Drawing.Design.dll
/r:System.Drawing.dll
/r:System.EnterpriseServices.dll
/r:System.Management.dll
/r:System.Messaging.dll
/r:System.Runtime.Remoting.dll
/r:System.Runtime.Serialization.dll
/r:System.Runtime.Serialization.Formatters.Soap.dll
/r:System.Security.dll
/r:System.ServiceModel.dll
/r:System.ServiceModel.Web.dll
/r:System.ServiceProcess.dll
/r:System.Transactions.dll
/r:System.Web.dll
/r:System.Web.Extensions.Design.dll
/r:System.Web.Extensions.dll
/r:System.Web.Mobile.dll
/r:System.Web.RegularExpressions.dll
/r:System.Web.Services.dll
/r:System.Windows.Forms.dll
/r:System.Workflow.Activities.dll
/r:System.Workflow.ComponentModel.dll
/r:System.Workflow.Runtime.dll
/r:System.Xml.dll
/r:System.Xml.Linq.dll
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/csi.exe.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.3.0" newVersion="1.4.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/csi.rsp
================================================
/r:System
/r:System.Core
/r:Microsoft.CSharp
/r:System.ValueTuple.dll
/u:System
/u:System.IO
/u:System.Collections.Generic
/u:System.Console
/u:System.Diagnostics
/u:System.Dynamic
/u:System.Linq
/u:System.Linq.Expressions
/u:System.Text
/u:System.Threading.Tasks
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/vbc.exe.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<runtime>
<gcServer enabled="true" />
<gcConcurrent enabled="false" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.3.0" newVersion="1.4.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/bin/roslyn/vbc.rsp
================================================
# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
# This file contains command-line options that the VB
# command line compiler (VBC) will process as part
# of every compilation, unless the "/noconfig" option
# is specified.
# Reference the common Framework libraries
/r:Accessibility.dll
/r:System.Configuration.dll
/r:System.Configuration.Install.dll
/r:System.Data.dll
/r:System.Data.OracleClient.dll
/r:System.Deployment.dll
/r:System.Design.dll
/r:System.DirectoryServices.dll
/r:System.dll
/r:System.Drawing.Design.dll
/r:System.Drawing.dll
/r:System.EnterpriseServices.dll
/r:System.Management.dll
/r:System.Messaging.dll
/r:System.Runtime.Remoting.dll
/r:System.Runtime.Serialization.Formatters.Soap.dll
/r:System.Security.dll
/r:System.ServiceProcess.dll
/r:System.Transactions.dll
/r:System.Web.dll
/r:System.Web.Mobile.dll
/r:System.Web.RegularExpressions.dll
/r:System.Web.Services.dll
/r:System.Windows.Forms.dll
/r:System.XML.dll
/r:System.Workflow.Activities.dll
/r:System.Workflow.ComponentModel.dll
/r:System.Workflow.Runtime.dll
/r:System.Runtime.Serialization.dll
/r:System.ServiceModel.dll
/r:System.Core.dll
/r:System.Xml.Linq.dll
/r:System.Data.Linq.dll
/r:System.Data.DataSetExtensions.dll
/r:System.Web.Extensions.dll
/r:System.Web.Extensions.Design.dll
/r:System.ServiceModel.Web.dll
# Import System and Microsoft.VisualBasic
/imports:System
/imports:Microsoft.VisualBasic
/imports:System.Linq
/imports:System.Xml.Linq
/optioninfer+
================================================
FILE: ad/GOAD/files/srv02/wwwroot/index.html
================================================
<html>
<head>
</head>
<body>
<p>Please follow <a href="/Default.aspx">this link</a> to upload your files.</p>
</body>
</html>
================================================
FILE: ad/GOAD/files/srv02/wwwroot/upload/.gitkeep
================================================
================================================
FILE: ad/GOAD/providers/aws/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCT-DJjgScp
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02 ansible_user=ansible ansible_password=NgtI75cKV+Pu
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02 ansible_user=ansible ansible_password=NgtI75cKV+Pu
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03 ansible_user=ansible ansible_password=Ufe-bVXSx9rk
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03 ansible_user=ansible ansible_password=978i2pF43UJ-
[all:vars]
admin_user=goadmin
================================================
FILE: ad/GOAD/providers/aws/linux.tf
================================================
# "lx01" = {
# name = "lx01"
# linux_sku = "22_04-lts-gen2"
# linux_version = "latest"
# ami = "ami-04c332520bd9cedb4"
# private_ip_address = "{{ip_range}}.40"
# password = "suppaP@ssw0rd$"
# size = "t2.medium"
# }
================================================
FILE: ad/GOAD/providers/aws/windows.tf
================================================
# t2.medium = 2cpu / 4GB
# t2.large = 2cpu / 8GB
# t2.xlarge = 4cpu / 16GB
"dc01" = {
name = "dc01"
domain = "sevenkingdoms.local"
windows_sku = "2019-Datacenter"
ami = "ami-03440f0d88fea1060"
instance_type = "t2.medium"
private_ip_address = "{{ip_range}}.10"
password = "8dCT-DJjgScp"
}
"dc02" = {
name = "dc02"
domain = "north.sevenkingdoms.local"
windows_sku = "2019-Datacenter"
ami = "ami-03440f0d88fea1060"
instance_type = "t2.medium"
private_ip_address = "{{ip_range}}.11"
password = "NgtI75cKV+Pu"
}
"dc03" = {
name = "dc03"
domain = "essos.local"
windows_sku = "2016-Datacenter"
ami = "ami-053492b4735046f1c"
instance_type = "t2.medium"
private_ip_address = "{{ip_range}}.12"
password = "Ufe-bVXSx9rk"
}
"srv02" = {
name = "srv02"
domain = "north.sevenkingdoms.local"
windows_sku = "2019-Datacenter"
ami = "ami-03440f0d88fea1060"
instance_type = "t2.medium"
private_ip_address = "{{ip_range}}.22"
password = "NgtI75cKV+Pu"
}
"srv03" = {
name = "srv03"
domain = "essos.local"
windows_sku = "2016-Datacenter"
ami = "ami-053492b4735046f1c"
instance_type = "t2.medium"
private_ip_address = "{{ip_range}}.23"
password = "978i2pF43UJ-"
}
================================================
FILE: ad/GOAD/providers/azure/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCT-DJjgScp
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02 ansible_user=ansible ansible_password=NgtI75cKV+Pu
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02 ansible_user=ansible ansible_password=NgtI75cKV+Pu
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03 ansible_user=ansible ansible_password=Ufe-bVXSx9rk
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03 ansible_user=ansible ansible_password=978i2pF43UJ-
[all:vars]
admin_user=goadmin
================================================
FILE: ad/GOAD/providers/azure/linux.tf
================================================
# "lx01" = {
# name = "lx01"
# linux_offer = "0001-com-ubuntu-server-jammy"
# linux_sku = "22_04-lts-gen2"
# linux_version = "latest"
# private_ip_address = "{{ip_range}}.40"
# password = "suppaP@ssw0rd$"
# size = "Standard_B2s"
# }
================================================
FILE: ad/GOAD/providers/azure/windows.tf
================================================
# Standard_B2s : 2 CPU / 4GB
# Standard_B2ms : 2CPU / 8GB
# Standard_B4ms : 4 cpu / 16 GB
"dc01" = {
name = "dc01"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2019-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.10"
password = "8dCT-DJjgScp"
size = "Standard_B2s"
}
"dc02" = {
name = "dc02"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2019-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.11"
password = "NgtI75cKV+Pu"
size = "Standard_B2s"
}
"dc03" = {
name = "dc03"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2016-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.12"
password = "Ufe-bVXSx9rk"
size = "Standard_B2s"
}
"srv02" = {
name = "srv02"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2019-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.22"
password = "NgtI75cKV+Pu"
size = "Standard_B2s"
}
"srv03" = {
name = "srv03"
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
windows_sku = "2016-Datacenter"
windows_version = "latest"
private_ip_address = "{{ip_range}}.23"
password = "978i2pF43UJ-"
size = "Standard_B2s"
}
================================================
FILE: ad/GOAD/providers/ludus/config.yml
================================================
ludus:
- vm_name: "{{ range_id }}-GOAD-DC01"
hostname: "{{ range_id }}-DC01"
template: win2019-server-x64-template
vlan: 10
ip_last_octet: 10
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-GOAD-DC02"
hostname: "{{ range_id }}-DC02"
template: win2019-server-x64-template
vlan: 10
ip_last_octet: 11
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-GOAD-DC03"
hostname: "{{ range_id }}-DC03"
template: win2016-server-x64-template
vlan: 10
ip_last_octet: 12
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-GOAD-SRV02"
hostname: "{{ range_id }}-SRV02"
template: win2019-server-x64-template
vlan: 10
ip_last_octet: 22
ram_gb: 4
cpus: 2
windows:
sysprep: true
- vm_name: "{{ range_id }}-GOAD-SRV03"
hostname: "{{ range_id }}-SRV03"
template: win2019-server-x64-template
vlan: 10
ip_last_octet: 23
ram_gb: 4
cpus: 2
windows:
sysprep: true
================================================
FILE: ad/GOAD/providers/ludus/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03
[all:vars]
force_dns_server=no
dns_server={{ip_range}}.254
dns_server_forwarder={{ip_range}}.254
ansible_user=localuser
ansible_password=password
================================================
FILE: ad/GOAD/providers/proxmox/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03
[all:vars]
force_dns_server=yes
dns_server={{ip_range}}.1
================================================
FILE: ad/GOAD/providers/proxmox/windows.tf
================================================
"dc01" = {
name = "DC01"
desc = "DC01 - windows server 2019 - {{ip_range}}.10"
cores = 2
memory = 3096
clone = "WinServer2019_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.10/24"
gateway = "{{ip_range}}.1"
}
"dc02" = {
name = "DC02"
desc = "DC02 - windows server 2019 - {{ip_range}}.11"
cores = 2
memory = 3096
clone = "WinServer2019_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.11/24"
gateway = "{{ip_range}}.1"
}
"dc03" = {
name = "DC03"
desc = "DC03 - windows server 2016 - {{ip_range}}.12"
cores = 2
memory = 3096
clone = "WinServer2016_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.12/24"
gateway = "{{ip_range}}.1"
}
"srv02" = {
name = "SRV02"
desc = "SRV02 - windows server 2019 - {{ip_range}}.22"
cores = 2
memory = 6240
clone = "WinServer2019_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.22/24"
gateway = "{{ip_range}}.1"
}
"srv03" = {
name = "SRV03"
desc = "SRV03 - windows server 2016 - {{ip_range}}.23"
cores = 2
memory = 5120
clone = "WinServer2016_x64"
dns = "{{ip_range}}.1"
ip = "{{ip_range}}.23/24"
gateway = "{{ip_range}}.1"
}
================================================
FILE: ad/GOAD/providers/virtualbox/Vagrantfile
================================================
boxes = [
# windows server 2019
{ :name => "GOAD-DC01", :ip => "{{ip_range}}.10", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-DC02", :ip => "{{ip_range}}.11", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2016
{ :name => "GOAD-DC03", :ip => "{{ip_range}}.12", :box => "StefanScherer/windows_2016", :box_version => "2017.12.14", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-SRV02", :ip => "{{ip_range}}.22", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 6000},
# windows server 2016
{ :name => "GOAD-SRV03", :ip => "{{ip_range}}.23", :box => "StefanScherer/windows_2016", :box_version => "2019.02.14", :os => "windows", :cpus => 2, :mem => 5000}
]
================================================
FILE: ad/GOAD/providers/virtualbox/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03
================================================
FILE: ad/GOAD/providers/vmware/Vagrantfile
================================================
boxes = [
# windows server 2019
{ :name => "GOAD-DC01", :ip => "{{ip_range}}.10", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-DC02", :ip => "{{ip_range}}.11", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2016
{ :name => "GOAD-DC03", :ip => "{{ip_range}}.12", :box => "StefanScherer/windows_2016", :box_version => "2017.12.14", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-SRV02", :ip => "{{ip_range}}.22", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 6000},
# windows server 2016
{ :name => "GOAD-SRV03", :ip => "{{ip_range}}.23", :box => "StefanScherer/windows_2016", :box_version => "2019.02.14", :os => "windows", :cpus => 2, :mem => 5000}
]
================================================
FILE: ad/GOAD/providers/vmware/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03
================================================
FILE: ad/GOAD/providers/vmware_esxi/Vagrantfile
================================================
boxes = [
# windows server 2019
{ :name => "GOAD-DC01", :ip => "{{ip_range}}.10", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-DC02", :ip => "{{ip_range}}.11", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2016
{ :name => "GOAD-DC03", :ip => "{{ip_range}}.12", :box => "StefanScherer/windows_2016", :box_version => "2017.12.14", :os => "windows", :cpus => 2, :mem => 3000},
# windows server 2019
{ :name => "GOAD-SRV02", :ip => "{{ip_range}}.22", :box => "StefanScherer/windows_2019", :box_version => "2021.05.15", :os => "windows", :cpus => 2, :mem => 6000},
# windows server 2016
{ :name => "GOAD-SRV03", :ip => "{{ip_range}}.23", :box => "StefanScherer/windows_2016", :box_version => "2019.02.14", :os => "windows", :cpus => 2, :mem => 5000}
]
================================================
FILE: ad/GOAD/providers/vmware_esxi/inventory
================================================
[default]
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
; servers will break.
; ------------------------------------------------
; sevenkingdoms.local
; ------------------------------------------------
dc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01
; ------------------------------------------------
; north.sevenkingdoms.local
; ------------------------------------------------
dc02 ansible_host={{ip_range}}.11 dns_domain=dc01 dict_key=dc02
srv02 ansible_host={{ip_range}}.22 dns_domain=dc02 dict_key=srv02
; ------------------------------------------------
; essos.local
; ------------------------------------------------
dc03 ansible_host={{ip_range}}.12 dns_domain=dc03 dict_key=dc03
srv03 ansible_host={{ip_range}}.23 dns_domain=dc03 dict_key=srv03
================================================
FILE: ad/GOAD/scripts/archives/acl.ps1
================================================
# https://github.com/davidprowe/BadBlood/blob/master/AD_OU_SetACL/Full%20Control%20Permissions.ps1
Import-Module ActiveDirectory
Set-Location AD:
###########################################################################################################
# SetAcl $for ---- $right ----> $to
###########################################################################################################
Function SetAcl($for, $to, $right, $inheritance)
{
$forSID = New-Object System.Security.Principal.SecurityIdentifier (Get-ADUser $for).SID
$objOU = ($to).DistinguishedName
$objAcl = get-acl $objOU
# https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectoryrights?view=dotnet-plat-ext-5.0
$adRight = [System.DirectoryServices.ActiveDirectoryRights] $right # https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectoryrights?view=dotnet-plat-ext-5.0
$type = [System.Security.AccessControl.AccessControlType] "Allow" # https://docs.microsoft.com/fr-fr/dotnet/api/system.security.accesscontrol.accesscontroltype?view=dotnet-plat-ext-5.0
$inheritanceType = [System.DirectoryServices.ActiveDirectorySecurityInheritance] $inheritance # https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectorysecurityinheritance?view=dotnet-plat-ext-5.0
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $forSID,$adRight,$type,$inheritanceType
$objAcl.AddAccessRule($ace)
Set-Acl -AclObject $objAcl -path $objOU
}
# https://jorgequestforknowledge.wordpress.com/2014/08/20/powershell-and-dacls-in-ad-adding-ace-for-some-extended-right-on-some-object/
Function SetAclExtended($for, $to, $right, $extendedRightGUID, $inheritance)
{
$forSID = New-Object System.Security.Principal.SecurityIdentifier (Get-ADUser $for).SID
$objOU = ($to).DistinguishedName
$objAcl = get-acl $objOU
# https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectoryrights?view=dotnet-plat-ext-5.0
$adRight = [System.DirectoryServices.ActiveDirectoryRights] $right # https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectoryrights?view=dotnet-plat-ext-5.0
$type = [System.Security.AccessControl.AccessControlType] "Allow" # https://docs.microsoft.com/fr-fr/dotnet/api/system.security.accesscontrol.accesscontroltype?view=dotnet-plat-ext-5.0
$inheritanceType = [System.DirectoryServices.ActiveDirectorySecurityInheritance] $inheritance # https://docs.microsoft.com/fr-fr/dotnet/api/system.directoryservices.activedirectorysecurityinheritance?view=dotnet-plat-ext-5.0
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $forSID,$adRight,$type,$extendedRightGUID,$inheritanceType
$objAcl.AddAccessRule($ace)
Set-Acl -AclObject $objAcl -path $objOU
}
## acl values :
# AccessSystemSecurity
# CreateChild
# Delete
# DeleteChild
# DeleteTree
# ExtendedRight
# GenericAll
# GenericExecute
# GenericRead
# GenericWrite
# ListChildren
# ListObject
# ReadControl
# ReadProperty
# Self
# Synchronize
# WriteDacl
# WriteOwner
# WriteProperty
## extend rights
# "00299570-246d-11d0-a768-00aa006e0529" {$right = "User-Force-Change-Password"}
# "45ec5156-db7e-47bb-b53f-dbeb2d03c40" {$right = "Reanimate-Tombstones"}
# "bf9679c0-0de6-11d0-a285-00aa003049e2" {$right = "Self-Membership"}
# "ba33815a-4f93-4c76-87f3-57574bff8109" {$right = "Manage-SID-History"}
# "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2" {$right = "DS-Replication-Get-Changes-All"}
# ACL abuse scenarios
# https://sensepost.com/blog/2020/ace-to-rce/
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces
# https://adsecurity.org/?p=3658
# genericall-on-user
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#genericall-on-user
SetAcl (Get-ADUser "tywin.lannister") (Get-ADUser "cersei.lannister") "GenericAll" "None"
# genericall-on-group
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#genericall-on-group
SetAcl (Get-ADUser "lord.varys") (Get-ADGroup "Domain Admins") "GenericAll" "None"
# genericall-genericwrite-write-on-computer
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#genericall-genericwrite-write-on-computer
SetAcl (Get-ADUser "stannis.baratheon") (Get-ADComputer "kingslanding") "GenericAll" "None"
# writeproperty-on-group
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#writeproperty-on-group
SetAcl (Get-ADUser "petyer.baelish") (Get-ADGroup "Domain Admins") "WriteProperty" "All"
# self-self-membership-on-group
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#self-self-membership-on-group
SetAclExtended (Get-ADUser "tyron.lannister") (Get-ADGroup "Domain Admins") "Self" "bf9679c0-0de6-11d0-a285-00aa003049e2" "None"
# writeproperty-self-membership
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#writeproperty-self-membership
SetAclExtended (Get-ADUser "stannis.baratheon") (Get-ADGroup "Domain Admins") "WriteProperty" "bf9679c0-0de6-11d0-a285-00aa003049e2" "All"
# forcechangepassword
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#forcechangepassword
# https://docs.microsoft.com/fr-fr/windows/win32/adschema/r-user-change-password
SetAclExtended (Get-ADUser "tywin.lannister") (Get-ADUser "jaime.lannister") "ExtendedRight" "00299570-246d-11d0-a768-00aa006e0529" "None"
# write owner on group
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#writeowner-on-group
SetAcl (Get-ADUser "maester.pycelle") (Get-ADGroup "Domain Admins") "WriteOwner" "None"
# genericwrite-on-user
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#genericwrite-on-user
SetAcl (Get-ADUser "jaime.lannister") (Get-ADUser "cersei.lannister") "GenericWrite" "None"
# writedacl-writeowner
# https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces#writedacl-writeowner
SetAcl (Get-ADUser "tywin.lannister") (Get-ADGroup "Small Council") "WriteDacl" "None"
================================================
FILE: ad/GOAD/scripts/archives/anonymous_ldap.ps1
================================================
$anonymousId = New-Object System.Security.Principal.NTAccount "NT AUTHORITY\ANONYMOUS LOGON"
$secInheritanceAll = [System.DirectoryServices.ActiveDirectorySecurityInheritance] "All"
$Ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $anonymousId,"ReadProperty, GenericExecute","Allow",$secInheritanceAll
$Acl = Get-Acl -Path "AD:$($node.DCPathEnd)"
$Acl.AddAccessRule($Ace)
Set-Acl -Path "AD:$($node.DCPathEnd)" -AclObject $Acl
================================================
FILE: ad/GOAD/scripts/archives/kerberoasting.ps1
================================================
Set-ADUser -Identity "jon.snow" -ServicePrincipalNames @{Add='HTTP/thewallserver'}
================================================
FILE: ad/GOAD/scripts/archives/rbcd.ps1
================================================
# TODO
================================================
FILE: ad/GOAD/scripts/archives/unconstrained_delegation.ps1
================================================
Get-ADComputer -Identity "bravoos" | Set-ADAccountControl -TrustedForDelegation $true
================================================
FILE: ad/GOAD/scripts/asrep_roasting.ps1
================================================
Get-ADUser -Identity "brandon.stark" | Set-ADAccountControl -DoesNotRequirePreAuth:$true
================================================
FILE: ad/GOAD/scripts/asrep_roasting2.ps1
================================================
Get-ADUser -Identity "missandei" | Set-ADAccountControl -DoesNotRequirePreAuth:$true
gitextract_23x405d2/
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── ad/
│ ├── DRACARYS/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc01/
│ │ │ │ ├── cert.md
│ │ │ │ ├── keepass_bot.ps1
│ │ │ │ ├── ldaps.crt
│ │ │ │ ├── ldaps.key
│ │ │ │ └── ldaps.pfx
│ │ │ └── srv01/
│ │ │ ├── bot_ssh.ps1
│ │ │ └── vault.kdbx
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── set_spn.ps1
│ │ └── wsman_kerb.ps1
│ ├── GOAD/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc02/
│ │ │ │ ├── bot_rdp.ps1
│ │ │ │ └── sysvol_scripts/
│ │ │ │ ├── script.ps1
│ │ │ │ └── secret.ps1
│ │ │ └── srv02/
│ │ │ ├── all/
│ │ │ │ └── arya.txt
│ │ │ └── wwwroot/
│ │ │ ├── Default.aspx
│ │ │ ├── Web.config
│ │ │ ├── bin/
│ │ │ │ ├── WebApp.pdb
│ │ │ │ └── roslyn/
│ │ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ │ ├── VBCSCompiler.exe.config
│ │ │ │ ├── csc.exe.config
│ │ │ │ ├── csc.rsp
│ │ │ │ ├── csi.exe.config
│ │ │ │ ├── csi.rsp
│ │ │ │ ├── vbc.exe.config
│ │ │ │ └── vbc.rsp
│ │ │ ├── index.html
│ │ │ └── upload/
│ │ │ └── .gitkeep
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── archives/
│ │ │ ├── acl.ps1
│ │ │ ├── anonymous_ldap.ps1
│ │ │ ├── kerberoasting.ps1
│ │ │ ├── rbcd.ps1
│ │ │ └── unconstrained_delegation.ps1
│ │ ├── asrep_roasting.ps1
│ │ ├── asrep_roasting2.ps1
│ │ ├── constrained_delegation_kerb_only.ps1
│ │ ├── constrained_delegation_use_any.ps1
│ │ ├── gpo_abuse.ps1
│ │ ├── ntlm_relay.ps1
│ │ ├── rdp_scheduler.ps1
│ │ ├── responder.ps1
│ │ ├── sidhistory.ps1
│ │ └── unconstrained_delegation_user.ps1
│ ├── GOAD-Light/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── dc01/
│ │ │ │ └── templates/
│ │ │ │ └── ESC1.json
│ │ │ ├── dc02/
│ │ │ │ ├── bot_rdp.ps1
│ │ │ │ └── sysvol_scripts/
│ │ │ │ ├── script.ps1
│ │ │ │ └── secret.ps1
│ │ │ └── srv02/
│ │ │ ├── all/
│ │ │ │ └── arya.txt
│ │ │ └── wwwroot/
│ │ │ ├── Default.aspx
│ │ │ ├── Web.config
│ │ │ ├── bin/
│ │ │ │ ├── WebApp.pdb
│ │ │ │ └── roslyn/
│ │ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ │ ├── VBCSCompiler.exe.config
│ │ │ │ ├── csc.exe.config
│ │ │ │ ├── csc.rsp
│ │ │ │ ├── csi.exe.config
│ │ │ │ ├── csi.rsp
│ │ │ │ ├── vbc.exe.config
│ │ │ │ └── vbc.rsp
│ │ │ ├── index.html
│ │ │ └── upload/
│ │ │ └── .gitkeep
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ ├── linux.tf
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ ├── archive/
│ │ │ ├── acl.ps1
│ │ │ ├── anonymous_ldap.ps1
│ │ │ ├── kerberoasting.ps1
│ │ │ ├── rbcd.ps1
│ │ │ └── unconstrained_delegation.ps1
│ │ ├── asrep_roasting.ps1
│ │ ├── constrained_delegation_kerb_only.ps1
│ │ ├── constrained_delegation_use_any.ps1
│ │ ├── gpo_abuse.ps1
│ │ ├── ntlm_relay.ps1
│ │ ├── rdp_scheduler.ps1
│ │ └── responder.ps1
│ ├── GOAD-Mini/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ └── dc01/
│ │ │ └── templates/
│ │ │ └── ESC1.json
│ │ └── providers/
│ │ ├── aws/
│ │ │ ├── inventory
│ │ │ ├── linux.tf
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ ├── config.yml
│ │ │ └── inventory
│ │ ├── proxmox/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ ├── NHA/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ ├── files/
│ │ │ ├── SQL/
│ │ │ │ └── academy_dump.sql
│ │ │ ├── bot.ps1
│ │ │ ├── flags/
│ │ │ │ ├── dc_academy.txt
│ │ │ │ ├── dc_final.txt
│ │ │ │ ├── share.txt
│ │ │ │ ├── sql_high.txt
│ │ │ │ ├── sql_low.txt
│ │ │ │ └── web.txt
│ │ │ ├── templates/
│ │ │ │ └── SignatureValidation.json
│ │ │ └── wwwroot/
│ │ │ ├── Content/
│ │ │ │ ├── Site.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ └── bootstrap.css
│ │ │ ├── Global.asax
│ │ │ ├── Models/
│ │ │ │ └── AcademyModel.edmx.diagram
│ │ │ ├── Scripts/
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── jquery-3.4.1.js
│ │ │ │ ├── jquery-3.4.1.slim.js
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ └── modernizr-2.8.3.js
│ │ │ ├── Views/
│ │ │ │ ├── Home/
│ │ │ │ │ ├── About.cshtml
│ │ │ │ │ ├── Contact.cshtml
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── Students/
│ │ │ │ │ ├── Create.cshtml
│ │ │ │ │ ├── Delete.cshtml
│ │ │ │ │ ├── Details.cshtml
│ │ │ │ │ ├── Edit.cshtml
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Web.config
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── Web.config
│ │ │ └── bin/
│ │ │ ├── Antlr3.Runtime.pdb
│ │ │ ├── adrutro.pdb
│ │ │ └── roslyn/
│ │ │ ├── Microsoft.CSharp.Core.targets
│ │ │ ├── Microsoft.Managed.Core.targets
│ │ │ ├── Microsoft.VisualBasic.Core.targets
│ │ │ ├── VBCSCompiler.exe.config
│ │ │ ├── csc.exe.config
│ │ │ ├── csc.rsp
│ │ │ ├── csi.exe.config
│ │ │ ├── csi.rsp
│ │ │ ├── vbc.exe.config
│ │ │ └── vbc.rsp
│ │ ├── providers/
│ │ │ ├── aws/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── azure/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── ludus/
│ │ │ │ ├── config.yml
│ │ │ │ └── inventory
│ │ │ ├── proxmox/
│ │ │ │ ├── inventory
│ │ │ │ └── windows.tf
│ │ │ ├── virtualbox/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ ├── vmware/
│ │ │ │ ├── Vagrantfile
│ │ │ │ └── inventory
│ │ │ └── vmware_esxi/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── scripts/
│ │ └── constrained_delegation_use_any.ps1
│ ├── SCCM/
│ │ ├── README.md
│ │ ├── data/
│ │ │ ├── config.json
│ │ │ ├── inventory
│ │ │ └── inventory_disable_vagrant
│ │ └── providers/
│ │ ├── aws/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ ├── config.yml
│ │ │ └── inventory
│ │ ├── proxmox/
│ │ │ ├── inventory
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ └── TEMPLATE/
│ ├── README.md
│ ├── data/
│ │ ├── config.json
│ │ └── inventory
│ ├── files/
│ │ └── flag.txt
│ ├── providers/
│ │ ├── virtualbox/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ ├── vmware/
│ │ │ ├── Vagrantfile
│ │ │ └── inventory
│ │ └── vmware_esxi/
│ │ ├── Vagrantfile
│ │ └── inventory
│ └── scripts/
│ └── features.ps1
├── ansible/
│ ├── ad-acl.yml
│ ├── ad-child_domain.yml
│ ├── ad-data.yml
│ ├── ad-enroll_linux.yml
│ ├── ad-gmsa.yml
│ ├── ad-members.yml
│ ├── ad-parent_domain.yml
│ ├── ad-relations.yml
│ ├── ad-servers.yml
│ ├── ad-trusts.yml
│ ├── ad.yml
│ ├── adcs.yml
│ ├── ansible.cfg
│ ├── build.yml
│ ├── data.yml
│ ├── dhcp.yml
│ ├── disable_vagrant.yml
│ ├── elk.yml
│ ├── enable_vagrant.yml
│ ├── fix_dns.yml
│ ├── fix_trust.yml
│ ├── glpi.yml
│ ├── interfaces.yml
│ ├── keepass.yml
│ ├── klink.yml
│ ├── laps.yml
│ ├── localusers.yml
│ ├── main.yml
│ ├── onlyusers.yml
│ ├── private_data_dir/
│ │ └── .git_keep
│ ├── reboot.yml
│ ├── requirements.yml
│ ├── requirements_311.yml
│ ├── roles/
│ │ ├── acl/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── ad/
│ │ │ └── tasks/
│ │ │ ├── groups.yml
│ │ │ ├── main.yml
│ │ │ ├── ou.yml
│ │ │ └── users.yml
│ │ ├── adcs/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── adcs_templates/
│ │ │ ├── files/
│ │ │ │ ├── ADCSTemplate/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── ADCSTemplate.psd1
│ │ │ │ │ ├── ADCSTemplate.psm1
│ │ │ │ │ ├── DSCResources/
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate/
│ │ │ │ │ │ ├── COMMUNITY_ADCSTemplate.psm1
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate.schema.mof
│ │ │ │ │ ├── Examples/
│ │ │ │ │ │ ├── Build-ADCS.ps1
│ │ │ │ │ │ ├── Demo.ps1
│ │ │ │ │ │ ├── PowerShellCMS.json
│ │ │ │ │ │ └── Tanium.json
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ ├── ESC1.json
│ │ │ │ ├── ESC13.json
│ │ │ │ ├── ESC2.json
│ │ │ │ ├── ESC3-CRA.json
│ │ │ │ ├── ESC3.json
│ │ │ │ ├── ESC4.json
│ │ │ │ └── ESC9.json
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── add_dns_record/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── child_domain/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── common/
│ │ │ └── tasks/
│ │ │ ├── chocolatey.yml
│ │ │ └── main.yml
│ │ ├── commonwkstn/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dc_dns_conditional_forwarder/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dhcp/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── disable_user/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── dns_conditional_forwarder/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── domain_controller/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── domain_controller_slave/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── elk/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── elasticsearch.yml
│ │ │ │ └── kibana.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── enable_user/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── fix_dns/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── gmsa/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── gmsa_hosts/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── groups_domains/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── iis/
│ │ │ ├── files/
│ │ │ │ └── index.html
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── keepass/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── klink/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── laps/
│ │ │ ├── dc/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ └── comment.cmtx
│ │ │ │ ├── library/
│ │ │ │ │ ├── win_ad_dacl.ps1
│ │ │ │ │ ├── win_ad_object.ps1
│ │ │ │ │ ├── win_gpo.ps1
│ │ │ │ │ ├── win_gpo_link.ps1
│ │ │ │ │ └── win_gpo_reg.ps1
│ │ │ │ ├── tasks/
│ │ │ │ │ ├── install.yml
│ │ │ │ │ ├── main.yml
│ │ │ │ │ └── move_server_to_ou.yml
│ │ │ │ └── vars/
│ │ │ │ └── main.yml
│ │ │ ├── permissions/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── server/
│ │ │ │ └── tasks/
│ │ │ │ ├── install.yml
│ │ │ │ └── main.yml
│ │ │ └── verify/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── linux/
│ │ │ ├── add_linux_to_domain/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── apache/
│ │ │ │ ├── files/
│ │ │ │ │ └── 000-default.conf
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── common/
│ │ │ │ ├── files/
│ │ │ │ │ └── common.sh
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_user/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_user/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── glpi/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ ├── glpi_config.php
│ │ │ │ │ ├── glpi_insert_mail.php
│ │ │ │ │ ├── glpi_ldap.php
│ │ │ │ │ └── glpi_password.php
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── guacamole/
│ │ │ │ ├── README.md
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── tasks/
│ │ │ │ │ ├── client.yml
│ │ │ │ │ ├── config.yml
│ │ │ │ │ ├── jdbc.yml
│ │ │ │ │ ├── main.yml
│ │ │ │ │ ├── server.yml
│ │ │ │ │ └── user.yml
│ │ │ │ └── templates/
│ │ │ │ ├── guacamole.properties.j2
│ │ │ │ └── guacd.conf.j2
│ │ │ ├── guacamole_create_connections/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ ├── users_hosts.yml
│ │ │ │ └── users_iterate.yml
│ │ │ ├── php/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── proxy_server/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ └── 000-default.conf
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── templates/
│ │ │ │ ├── squid.conf.j2
│ │ │ │ └── wpad.dat.j2
│ │ │ └── tomcat/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── localusers/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── logs_windows/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sysmonconfig-export.xml
│ │ │ │ └── uninstall-service-winlogbeat.ps1
│ │ │ ├── handlers/
│ │ │ │ └── main.yml
│ │ │ ├── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── winlogbeat.yml
│ │ │ └── templates/
│ │ │ └── winlogbeat.yml.j2
│ │ ├── member_server/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── move_to_ou/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sql_conf.ini.MSSQL_2019.j2
│ │ │ │ └── sql_conf.ini.MSSQL_2022.j2
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql_link/
│ │ │ └── tasks/
│ │ │ ├── logins.yml
│ │ │ └── main.yml
│ │ ├── mssql_reporting/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── mssql_ssms/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── onlyusers/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── parent_child_dns/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── password_policy/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── ps/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── sccm/
│ │ │ ├── config/
│ │ │ │ ├── accounts/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── boundary/
│ │ │ │ │ ├── library/
│ │ │ │ │ │ ├── sccm_boundary.ps1
│ │ │ │ │ │ ├── sccm_boundary_group.ps1
│ │ │ │ │ │ └── sccm_boundary_to_boundarygroup.ps1
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── client_install/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── client_push/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── discovery/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── naa/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── pxe/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── users/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── install/
│ │ │ │ ├── adk/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── iis/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── mecm/
│ │ │ │ │ ├── files/
│ │ │ │ │ │ └── ConfigMgrAutoSave.ini
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── prerequistes/
│ │ │ │ │ └── tasks/
│ │ │ │ │ └── main.yml
│ │ │ │ └── wsus/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── pxe/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── security/
│ │ │ ├── account_is_sensitive/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── asr/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── directory/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_run_as_ppl/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── ldaps/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── maq0_client/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── maq0_server/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── powershell_restrict/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── settings/
│ │ │ ├── adjust_rights/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── admin_password/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── copy_files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_nat_adapter/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_nat_adapter/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── gpmc/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── gpo_remove/
│ │ │ │ ├── files/
│ │ │ │ │ └── remove-gpo.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── hostname/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── keyboard/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_updates/
│ │ │ │ ├── files/
│ │ │ │ │ └── noupdate.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── updates/
│ │ │ │ └── tasks/
│ │ │ │ └── default.yml
│ │ │ ├── user_rights/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── windows_defender/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── sync_domains/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── trusts/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── vulns/
│ │ │ ├── acls/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc10_case1/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc10_case2/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc11/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc13/
│ │ │ │ ├── files/
│ │ │ │ │ └── esc13.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc15/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc6/
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_esc7/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── adcs_templates/
│ │ │ │ ├── files/
│ │ │ │ │ └── ADCSTemplate/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── ADCSTemplate.psd1
│ │ │ │ │ ├── ADCSTemplate.psm1
│ │ │ │ │ ├── DSCResources/
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate/
│ │ │ │ │ │ ├── COMMUNITY_ADCSTemplate.psm1
│ │ │ │ │ │ └── COMMUNITY_ADCSTemplate.schema.mof
│ │ │ │ │ ├── Examples/
│ │ │ │ │ │ ├── Build-ADCS.ps1
│ │ │ │ │ │ ├── Demo.ps1
│ │ │ │ │ │ ├── PowerShellCMS.json
│ │ │ │ │ │ └── Tanium.json
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── administrator_folder/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── autologon/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── credentials/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── directory/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── disable_firewall/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_credssp_client/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_credssp_server/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_llmnr/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── enable_nbt-ns/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── mssql/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_channel_binding/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_integrity/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── no_ldap_signing/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── ntlmdowngrade/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── openshares/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── permissions/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── schedule/
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── shares/
│ │ │ │ └── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── perm.yml
│ │ │ └── smbv1/
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ └── webdav/
│ │ └── tasks/
│ │ └── main.yml
│ ├── sccm-client.yml
│ ├── sccm-config.yml
│ ├── sccm-install.yml
│ ├── sccm-pxe.yml
│ ├── security.yml
│ ├── servers.yml
│ ├── vulnerabilities.yml
│ └── wait5m.yml
├── docs/
│ ├── img/
│ │ └── azure_architecture.excalidraw
│ └── mkdocs/
│ ├── docs/
│ │ ├── changelog.md
│ │ ├── developers/
│ │ │ ├── add_extension.md
│ │ │ ├── add_lab.md
│ │ │ ├── add_provider.md
│ │ │ └── index.md
│ │ ├── extensions/
│ │ │ ├── elk.md
│ │ │ ├── exchange.md
│ │ │ ├── guacamole.md
│ │ │ ├── index.md
│ │ │ ├── lx01.md
│ │ │ ├── wazuh.md
│ │ │ └── ws01.md
│ │ ├── img/
│ │ │ └── azure_architecture.excalidraw
│ │ ├── index.md
│ │ ├── installation/
│ │ │ ├── index.md
│ │ │ ├── linux.md
│ │ │ └── windows.md
│ │ ├── instances.md
│ │ ├── javascripts/
│ │ │ └── extra.js
│ │ ├── labs/
│ │ │ ├── DRACARYS.md
│ │ │ ├── GOAD-Light.md
│ │ │ ├── GOAD-Mini.md
│ │ │ ├── GOAD.md
│ │ │ ├── MINILAB.md
│ │ │ ├── NHA.md
│ │ │ ├── SCCM.md
│ │ │ └── index.md
│ │ ├── packer/
│ │ │ └── packer.md
│ │ ├── providers/
│ │ │ ├── aws.md
│ │ │ ├── azure.md
│ │ │ ├── index.md
│ │ │ ├── ludus.md
│ │ │ ├── proxmox.md
│ │ │ ├── virtualbox.md
│ │ │ ├── vmware.md
│ │ │ └── vmware_esxi.md
│ │ ├── provisioning.md
│ │ ├── questions.md
│ │ ├── references.md
│ │ ├── stylesheets/
│ │ │ └── extra.css
│ │ ├── thx.md
│ │ ├── troobleshoot.md
│ │ ├── usage/
│ │ │ ├── goad_args.md
│ │ │ ├── goad_console.md
│ │ │ └── index.md
│ │ └── vulnerabilities.md
│ └── mkdocs.yml
├── extensions/
│ ├── elk/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── install.yml
│ │ │ └── roles/
│ │ │ ├── elk/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ ├── elasticsearch.yml
│ │ │ │ │ └── kibana.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── logs_windows/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ ├── sysmonconfig-export.xml
│ │ │ │ └── uninstall-service-winlogbeat.ps1
│ │ │ ├── handlers/
│ │ │ │ └── main.yml
│ │ │ ├── tasks/
│ │ │ │ ├── main.yml
│ │ │ │ └── winlogbeat.yml
│ │ │ └── templates/
│ │ │ └── winlogbeat.yml.j2
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── exchange/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ ├── install.yml
│ │ │ ├── iso/
│ │ │ │ └── .gitkeep
│ │ │ └── roles/
│ │ │ ├── exchange_bot/
│ │ │ │ ├── files/
│ │ │ │ │ ├── botScheduler.ps1
│ │ │ │ │ └── readMail.ps1
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── ludus_exchange/
│ │ │ ├── README.md
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── meta/
│ │ │ │ └── main.yml
│ │ │ └── tasks/
│ │ │ ├── ludus-create-mailbox.yml
│ │ │ ├── ludus-download-exchange-2016.yml
│ │ │ ├── ludus-download-exchange-2019.yml
│ │ │ ├── ludus-exchange-2016-install.yml
│ │ │ ├── ludus-exchange-2019-install.yml
│ │ │ ├── ludus-exchange-dns.yml
│ │ │ ├── ludus-exchange-pre.yml
│ │ │ ├── ludus_sendconnector.yml
│ │ │ └── main.yml
│ │ ├── data/
│ │ │ └── config.json
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── windows.tf
│ │ ├── azure/
│ │ │ └── windows.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── windows.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── guacamole/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ └── install.yml
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── linux.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── lx01/
│ │ ├── ansible/
│ │ │ ├── ansible.cfg
│ │ │ └── install.yml
│ │ ├── data/
│ │ │ └── config.json
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── proxmox/
│ │ │ └── linux.tf
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ ├── wazuh/
│ │ ├── README.md
│ │ ├── ansible/
│ │ │ ├── install.yml
│ │ │ └── roles/
│ │ │ ├── wazuh_agent/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── wazuh_agent_linux/
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ └── tasks/
│ │ │ │ └── main.yml
│ │ │ └── wazuh_manager/
│ │ │ ├── defaults/
│ │ │ │ └── main.yml
│ │ │ ├── files/
│ │ │ │ └── wazuh_socfortress_rules.sh
│ │ │ └── tasks/
│ │ │ └── main.yml
│ │ ├── extension.json
│ │ ├── inventory
│ │ └── providers/
│ │ ├── aws/
│ │ │ └── linux.tf
│ │ ├── azure/
│ │ │ └── linux.tf
│ │ ├── ludus/
│ │ │ └── config.yml
│ │ ├── virtualbox/
│ │ │ └── Vagrantfile
│ │ └── vmware/
│ │ └── Vagrantfile
│ └── ws01/
│ ├── README.md
│ ├── ansible/
│ │ ├── ansible.cfg
│ │ └── install.yml
│ ├── data/
│ │ └── config.json
│ ├── extension.json
│ ├── inventory
│ └── providers/
│ ├── aws/
│ │ └── windows.tf
│ ├── azure/
│ │ └── windows.tf
│ ├── ludus/
│ │ └── config.yml
│ ├── proxmox/
│ │ ├── windows.tf
│ │ └── ws01.tf
│ ├── virtualbox/
│ │ └── Vagrantfile
│ └── vmware/
│ └── Vagrantfile
├── globalsettings.ini
├── goad/
│ ├── __init__.py
│ ├── command/
│ │ ├── cmd.py
│ │ ├── cmd_factory.py
│ │ ├── linux.py
│ │ ├── windows.py
│ │ └── wsl.py
│ ├── config.py
│ ├── dependencies.py
│ ├── exceptions.py
│ ├── extension.py
│ ├── goadpath.py
│ ├── infos.py
│ ├── instance.py
│ ├── instances.py
│ ├── jumpbox.py
│ ├── lab_manager.py
│ ├── labs.py
│ ├── local_jumpbox.py
│ ├── log.py
│ ├── menu.py
│ ├── provider/
│ │ ├── ludus/
│ │ │ └── ludus.py
│ │ ├── provider.py
│ │ ├── provider_factory.py
│ │ ├── terraform/
│ │ │ ├── aws.py
│ │ │ ├── azure.py
│ │ │ ├── proxmox.py
│ │ │ └── terraform.py
│ │ └── vagrant/
│ │ ├── vagrant.py
│ │ ├── virtualbox.py
│ │ ├── vmware.py
│ │ └── vmware_esxi.py
│ ├── provisioner/
│ │ ├── ansible/
│ │ │ ├── ansible.py
│ │ │ ├── docker.py
│ │ │ ├── local.py
│ │ │ ├── remote.py
│ │ │ ├── runner.py
│ │ │ └── vm.py
│ │ ├── provisioner.py
│ │ └── provisioner_factory.py
│ ├── settings.py
│ └── utils.py
├── goad.py
├── goad.sh
├── goad_docker.sh
├── guacamole.yml
├── noansible_requirements.yml
├── packer/
│ ├── proxmox/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── answer_files/
│ │ │ ├── 10_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 10_proxmox_cloudinit_uptodate/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 2016_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ ├── 2019_proxmox_cloudinit/
│ │ │ │ └── Autounattend.xml
│ │ │ └── 2019_proxmox_cloudinit_uptodate/
│ │ │ └── Autounattend.xml
│ │ ├── build_proxmox_iso.sh
│ │ ├── config.auto.pkrvars.hcl.template
│ │ ├── iso/
│ │ │ └── .gitignore
│ │ ├── packer.json.pkr.hcl
│ │ ├── scripts/
│ │ │ ├── ConfigureRemotingForAnsible.ps1
│ │ │ ├── Install-WMF3Hotfix.ps1
│ │ │ ├── disable-screensaver.ps1
│ │ │ ├── disable-winrm.ps1
│ │ │ ├── enable-winrm.ps1
│ │ │ ├── fixnetwork.ps1
│ │ │ ├── microsoft-updates.bat
│ │ │ ├── set-proxy.ps1
│ │ │ ├── sysprep/
│ │ │ │ ├── cloudbase-init-p2.ps1
│ │ │ │ ├── cloudbase-init-unattend.conf
│ │ │ │ ├── cloudbase-init-unattend.xml
│ │ │ │ ├── cloudbase-init.conf
│ │ │ │ ├── cloudbase-init.ps1
│ │ │ │ └── sysprep.bat
│ │ │ └── win-updates.ps1
│ │ ├── variables.pkr.hcl
│ │ ├── windows_10_22h2_proxmox_cloudinit.pkvars.hcl
│ │ ├── windows_10_22h2_proxmox_cloudinit_uptodate.pkvars.hcl
│ │ ├── windows_server2016_proxmox_cloudinit.pkvars.hcl
│ │ ├── windows_server2019_proxmox_cloudinit.pkvars.hcl
│ │ └── windows_server2019_proxmox_cloudinit_uptodate.pkvars.hcl
│ └── vagrant/
│ ├── README.md
│ ├── answer_files/
│ │ ├── 10/
│ │ │ └── Autounattend.xml
│ │ ├── 11/
│ │ │ └── Autounattend.xml
│ │ ├── 2016/
│ │ │ └── Autounattend.xml
│ │ ├── 2019/
│ │ │ └── Autounattend.xml
│ │ └── 2022/
│ │ └── Autounattend.xml
│ ├── build_all.sh
│ ├── build_windows_10.sh
│ ├── build_windows_11.sh
│ ├── build_windows_2019.sh
│ ├── build_windows_2022.sh
│ ├── scripts/
│ │ ├── compile-dotnet-assemblies.bat
│ │ ├── dis-updates.bat
│ │ ├── disable-screensaver.ps1
│ │ ├── disable-winrm.ps1
│ │ ├── enable-rdp.bat
│ │ ├── enable-winrm.ps1
│ │ ├── fixnetwork.ps1
│ │ ├── microsoft-updates.bat
│ │ ├── set-powerplan.ps1
│ │ ├── set-winrm-automatic.bat
│ │ ├── sysprep.bat
│ │ ├── uac-enable.bat
│ │ ├── unattend.xml
│ │ ├── vm-guest-tools.ps1
│ │ └── win-updates.ps1
│ ├── vagrantfile-windows_10.template
│ ├── vagrantfile-windows_2016.template
│ ├── windows_10.json
│ ├── windows_11.json
│ ├── windows_2019.json
│ └── windows_2022.json
├── playbooks.yml
├── pyproject.toml
├── requirements.yml
├── requirements_311.yml
├── scripts/
│ ├── check.sh
│ ├── setup_aws.sh
│ ├── setup_azure.sh
│ ├── setup_esxi.sh
│ ├── setup_local_jumpbox.sh
│ └── setup_proxmox.sh
├── template/
│ └── provider/
│ ├── aws/
│ │ ├── instance-init.ps1.tpl
│ │ ├── instance-init.sh.tpl
│ │ ├── jumpbox-init.sh.tpl
│ │ ├── jumpbox.tf
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── network.tf
│ │ ├── outputs.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── azure/
│ │ ├── jumpbox.tf
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── network.tf
│ │ ├── outputs.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── ludus/
│ │ └── config.yml
│ ├── proxmox/
│ │ ├── linux.tf
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── windows.tf
│ ├── virtualbox/
│ │ └── Vagrantfile
│ ├── vmware/
│ │ └── Vagrantfile
│ └── vmware_esxi/
│ └── Vagrantfile
└── vagrant/
├── ConfigureRemotingForAnsible.ps1
├── Install-WMF3Hotfix.ps1
└── fix_ip.ps1
SYMBOL INDEX (653 symbols across 49 files)
FILE: ad/NHA/files/wwwroot/Scripts/bootstrap.js
function transitionEnd (line 34) | function transitionEnd() {
function removeElement (line 127) | function removeElement() {
function Plugin (line 143) | function Plugin(option) {
function Plugin (line 252) | function Plugin(option) {
function Plugin (line 478) | function Plugin(option) {
function getTargetFromTrigger (line 705) | function getTargetFromTrigger($trigger) {
function Plugin (line 717) | function Plugin(option) {
function getParent (line 784) | function getParent($this) {
function clearMenus (line 797) | function clearMenus(e) {
function Plugin (line 890) | function Plugin(option) {
function Plugin (line 1234) | function Plugin(option, _relatedTarget) {
function allowedAttribute (line 1361) | function allowedAttribute(attr, allowedAttributeList) {
function sanitizeHtml (line 1386) | function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
function complete (line 1757) | function complete() {
function Plugin (line 1936) | function Plugin(option) {
function Plugin (line 2060) | function Plugin(option) {
function ScrollSpy (line 2103) | function ScrollSpy(element, options) {
function Plugin (line 2223) | function Plugin(option) {
function next (line 2332) | function next() {
function Plugin (line 2378) | function Plugin(option) {
function Plugin (line 2537) | function Plugin(option) {
FILE: ad/NHA/files/wwwroot/Scripts/jquery-3.4.1.js
function DOMEval (line 98) | function DOMEval( code, node, doc ) {
function toType (line 128) | function toType( obj ) {
function isArrayLike (line 496) | function isArrayLike( obj ) {
function Sizzle (line 729) | function Sizzle( selector, context, results, seed ) {
function createCache (line 871) | function createCache() {
function markFunction (line 889) | function markFunction( fn ) {
function assert (line 898) | function assert( fn ) {
function addHandle (line 920) | function addHandle( attrs, handler ) {
function siblingCheck (line 935) | function siblingCheck( a, b ) {
function createInputPseudo (line 961) | function createInputPseudo( type ) {
function createButtonPseudo (line 972) | function createButtonPseudo( type ) {
function createDisabledPseudo (line 983) | function createDisabledPseudo( disabled ) {
function createPositionalPseudo (line 1039) | function createPositionalPseudo( fn ) {
function testContext (line 1062) | function testContext( context ) {
function setFilters (line 2150) | function setFilters() {}
function toSelector (line 2221) | function toSelector( tokens ) {
function addCombinator (line 2231) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2295) | function elementMatcher( matchers ) {
function multipleContexts (line 2309) | function multipleContexts( selector, contexts, results ) {
function condense (line 2318) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2339) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2432) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2490) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function nodeName (line 2826) | function nodeName( elem, name ) {
function winnow (line 2836) | function winnow( elements, qualifier, not ) {
function sibling (line 3131) | function sibling( cur, dir ) {
function createOptions (line 3218) | function createOptions( options ) {
function Identity (line 3443) | function Identity( v ) {
function Thrower (line 3446) | function Thrower( ex ) {
function adoptValue (line 3450) | function adoptValue( value, resolve, reject, noValue ) {
function resolve (line 3543) | function resolve( depth, deferred, handler, special ) {
function completed (line 3908) | function completed() {
function fcamelCase (line 4003) | function fcamelCase( all, letter ) {
function camelCase (line 4010) | function camelCase( string ) {
function Data (line 4027) | function Data() {
function getData (line 4196) | function getData( data ) {
function dataAttr (line 4221) | function dataAttr( elem, key, data ) {
function adjustCSS (line 4554) | function adjustCSS( elem, prop, valueParts, tween ) {
function getDefaultDisplay (line 4622) | function getDefaultDisplay( elem ) {
function showHide (line 4645) | function showHide( elements, show ) {
function getAll (line 4746) | function getAll( context, tag ) {
function setGlobalEval (line 4771) | function setGlobalEval( elems, refElements ) {
function buildFragment (line 4787) | function buildFragment( elems, context, scripts, selection, ignored ) {
function returnTrue (line 4908) | function returnTrue() {
function returnFalse (line 4912) | function returnFalse() {
function expectSync (line 4922) | function expectSync( elem, type ) {
function safeActiveElement (line 4929) | function safeActiveElement() {
function on (line 4935) | function on( elem, types, selector, data, fn, one ) {
function leverageNative (line 5420) | function leverageNative( el, type, expectSync ) {
function manipulationTarget (line 5791) | function manipulationTarget( elem, content ) {
function disableScript (line 5802) | function disableScript( elem ) {
function restoreScript (line 5806) | function restoreScript( elem ) {
function cloneCopyEvent (line 5816) | function cloneCopyEvent( src, dest ) {
function fixInput (line 5851) | function fixInput( src, dest ) {
function domManip (line 5864) | function domManip( collection, args, callback, ignored ) {
function remove (line 5956) | function remove( elem, selector, keepData ) {
function computeStyleTests (line 6249) | function computeStyleTests() {
function roundPixelMeasures (line 6293) | function roundPixelMeasures( measure ) {
function curCSS (line 6338) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 6391) | function addGetHookIf( conditionFn, hookFn ) {
function vendorPropName (line 6416) | function vendorPropName( name ) {
function finalPropName (line 6431) | function finalPropName( name ) {
function setPositiveNumber (line 6457) | function setPositiveNumber( elem, value, subtract ) {
function boxModelAdjustment (line 6469) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
function getWidthOrHeight (line 6537) | function getWidthOrHeight( elem, dimension, extra ) {
function Tween (line 6904) | function Tween( elem, options, prop, end, easing ) {
function schedule (line 7027) | function schedule() {
function createFxNow (line 7040) | function createFxNow() {
function genFx (line 7048) | function genFx( type, includeWidth ) {
function createTween (line 7068) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 7082) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 7254) | function propFilter( props, specialEasing ) {
function Animation (line 7291) | function Animation( elem, properties, options ) {
function stripAndCollapse (line 8006) | function stripAndCollapse( value ) {
function getClass (line 8012) | function getClass( elem ) {
function classesToArray (line 8016) | function classesToArray( value ) {
function buildParams (line 8638) | function buildParams( prefix, obj, traditional, add ) {
function addToPrefiltersOrTransports (line 8792) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 8826) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 8855) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 8875) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 8933) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 9448) | function done( status, nativeStatusText, responses, headers ) {
FILE: ad/NHA/files/wwwroot/Scripts/jquery-3.4.1.slim.js
function DOMEval (line 98) | function DOMEval( code, node, doc ) {
function toType (line 128) | function toType( obj ) {
function isArrayLike (line 496) | function isArrayLike( obj ) {
function Sizzle (line 729) | function Sizzle( selector, context, results, seed ) {
function createCache (line 871) | function createCache() {
function markFunction (line 889) | function markFunction( fn ) {
function assert (line 898) | function assert( fn ) {
function addHandle (line 920) | function addHandle( attrs, handler ) {
function siblingCheck (line 935) | function siblingCheck( a, b ) {
function createInputPseudo (line 961) | function createInputPseudo( type ) {
function createButtonPseudo (line 972) | function createButtonPseudo( type ) {
function createDisabledPseudo (line 983) | function createDisabledPseudo( disabled ) {
function createPositionalPseudo (line 1039) | function createPositionalPseudo( fn ) {
function testContext (line 1062) | function testContext( context ) {
function setFilters (line 2150) | function setFilters() {}
function toSelector (line 2221) | function toSelector( tokens ) {
function addCombinator (line 2231) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2295) | function elementMatcher( matchers ) {
function multipleContexts (line 2309) | function multipleContexts( selector, contexts, results ) {
function condense (line 2318) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2339) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2432) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2490) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function nodeName (line 2826) | function nodeName( elem, name ) {
function winnow (line 2836) | function winnow( elements, qualifier, not ) {
function sibling (line 3131) | function sibling( cur, dir ) {
function createOptions (line 3218) | function createOptions( options ) {
function Identity (line 3443) | function Identity( v ) {
function Thrower (line 3446) | function Thrower( ex ) {
function adoptValue (line 3450) | function adoptValue( value, resolve, reject, noValue ) {
function resolve (line 3543) | function resolve( depth, deferred, handler, special ) {
function completed (line 3908) | function completed() {
function fcamelCase (line 4003) | function fcamelCase( all, letter ) {
function camelCase (line 4010) | function camelCase( string ) {
function Data (line 4027) | function Data() {
function getData (line 4196) | function getData( data ) {
function dataAttr (line 4221) | function dataAttr( elem, key, data ) {
function adjustCSS (line 4554) | function adjustCSS( elem, prop, valueParts, tween ) {
function getDefaultDisplay (line 4622) | function getDefaultDisplay( elem ) {
function showHide (line 4645) | function showHide( elements, show ) {
function getAll (line 4746) | function getAll( context, tag ) {
function setGlobalEval (line 4771) | function setGlobalEval( elems, refElements ) {
function buildFragment (line 4787) | function buildFragment( elems, context, scripts, selection, ignored ) {
function returnTrue (line 4908) | function returnTrue() {
function returnFalse (line 4912) | function returnFalse() {
function expectSync (line 4922) | function expectSync( elem, type ) {
function safeActiveElement (line 4929) | function safeActiveElement() {
function on (line 4935) | function on( elem, types, selector, data, fn, one ) {
function leverageNative (line 5420) | function leverageNative( el, type, expectSync ) {
function manipulationTarget (line 5791) | function manipulationTarget( elem, content ) {
function disableScript (line 5802) | function disableScript( elem ) {
function restoreScript (line 5806) | function restoreScript( elem ) {
function cloneCopyEvent (line 5816) | function cloneCopyEvent( src, dest ) {
function fixInput (line 5851) | function fixInput( src, dest ) {
function domManip (line 5864) | function domManip( collection, args, callback, ignored ) {
function remove (line 5956) | function remove( elem, selector, keepData ) {
function computeStyleTests (line 6249) | function computeStyleTests() {
function roundPixelMeasures (line 6293) | function roundPixelMeasures( measure ) {
function curCSS (line 6338) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 6391) | function addGetHookIf( conditionFn, hookFn ) {
function vendorPropName (line 6416) | function vendorPropName( name ) {
function finalPropName (line 6431) | function finalPropName( name ) {
function setPositiveNumber (line 6457) | function setPositiveNumber( elem, value, subtract ) {
function boxModelAdjustment (line 6469) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
function getWidthOrHeight (line 6537) | function getWidthOrHeight( elem, dimension, extra ) {
function stripAndCollapse (line 7213) | function stripAndCollapse( value ) {
function getClass (line 7219) | function getClass( elem ) {
function classesToArray (line 7223) | function classesToArray( value ) {
function buildParams (line 7817) | function buildParams( prefix, obj, traditional, add ) {
FILE: ad/NHA/files/wwwroot/Scripts/jquery.validate.js
function handle (line 70) | function handle() {
function delegate (line 411) | function delegate( event ) {
FILE: ad/NHA/files/wwwroot/Scripts/jquery.validate.unobtrusive.js
function setValidationValues (line 25) | function setValidationValues(options, ruleName, value) {
function splitAndTrim (line 32) | function splitAndTrim(value) {
function escapeAttributeValue (line 36) | function escapeAttributeValue(value) {
function getModelPrefix (line 41) | function getModelPrefix(fieldName) {
function appendModelPrefix (line 45) | function appendModelPrefix(value, prefix) {
function onError (line 52) | function onError(error, inputElement) { // 'this' is the form element
function onErrors (line 69) | function onErrors(event, validator) { // 'this' is the form element
function onSuccess (line 83) | function onSuccess(error) { // 'this' is the form element
function onReset (line 99) | function onReset(event) { // 'this' is the form element
function validationInfo (line 124) | function validationInfo(form) {
FILE: ad/NHA/files/wwwroot/Scripts/modernizr-2.8.3.js
function isEventSupported (line 193) | function isEventSupported( eventName, element ) {
function setCss (line 289) | function setCss( str ) {
function setCssAll (line 296) | function setCssAll( str1, str2 ) {
function is (line 303) | function is( obj, type ) {
function contains (line 310) | function contains( str, substr ) {
function testProps (line 334) | function testProps( props, prefixed ) {
function testDOMProps (line 350) | function testDOMProps( props, obj, elem ) {
function testPropsAll (line 378) | function testPropsAll( prop, prefixed, elem ) {
function webforms (line 849) | function webforms() {
function addStyleSheet (line 1073) | function addStyleSheet(ownerDocument, cssText) {
function getElements (line 1086) | function getElements() {
function getExpandoData (line 1097) | function getExpandoData(ownerDocument) {
function createElement (line 1115) | function createElement(nodeName, ownerDocument, data){
function createDocumentFragment (line 1151) | function createDocumentFragment(ownerDocument, data){
function shivMethods (line 1175) | function shivMethods(ownerDocument, data) {
function shivDocument (line 1213) | function shivDocument(ownerDocument) {
FILE: ansible/roles/linux/glpi/files/glpi_ldap.php
function encrypt_string (line 34) | function encrypt_string(string $string, string $key): string
FILE: docs/mkdocs/docs/javascripts/extra.js
function load_navpane (line 5) | function load_navpane() {
FILE: goad.py
class Goad (line 12) | class Goad(cmd.Cmd):
method __init__ (line 14) | def __init__(self, args):
method welcome (line 35) | def welcome(self):
method refresh_prompt (line 42) | def refresh_prompt(self):
method default (line 48) | def default(self, line):
method do_help (line 51) | def do_help(self, arg):
method do_exit (line 54) | def do_exit(self, arg):
method do_check (line 59) | def do_check(self, arg=''):
method do_status (line 62) | def do_status(self, arg=''):
method do_install (line 66) | def do_install(self, arg=''):
method do_start (line 69) | def do_start(self, arg=''):
method do_start_vm (line 73) | def do_start_vm(self, arg):
method do_stop (line 80) | def do_stop(self, arg=''):
method do_stop_vm (line 84) | def do_stop_vm(self, arg):
method do_destroy (line 91) | def do_destroy(self, arg=''):
method do_destroy_vm (line 95) | def do_destroy_vm(self, arg):
method do_snapshot (line 102) | def do_snapshot(self, arg=''):
method do_reset (line 108) | def do_reset(self, arg=''):
method do_provide (line 114) | def do_provide(self, arg=''):
method do_provision (line 131) | def do_provision(self, arg):
method do_provision_lab (line 142) | def do_provision_lab(self, arg=''):
method do_provision_lab_from (line 151) | def do_provision_lab_from(self, arg):
method do_sync_source_jumpbox (line 159) | def do_sync_source_jumpbox(self, arg=''):
method do_prepare_jumpbox (line 163) | def do_prepare_jumpbox(self, arg=''):
method do_config (line 171) | def do_config(self, arg):
method do_ssh_jumpbox (line 174) | def do_ssh_jumpbox(self, arg):
method do_ssh_jumpbox_proxy (line 184) | def do_ssh_jumpbox_proxy(self, arg):
method do_set_lab (line 198) | def do_set_lab(self, arg):
method complete_set_lab (line 217) | def complete_set_lab(self, text, line, begidx, endidx):
method do_set_provider (line 225) | def do_set_provider(self, arg):
method complete_set_provider (line 241) | def complete_set_provider(self, text, line, begidx, endidx):
method do_set_provisioning_method (line 249) | def do_set_provisioning_method(self, arg):
method complete_set_provisioning_method (line 260) | def complete_set_provisioning_method(self, text, line, begidx, endidx):
method do_set_ip_range (line 268) | def do_set_ip_range(self, arg):
method do_set_extensions (line 276) | def do_set_extensions(self, arg):
method do_list_extensions (line 285) | def do_list_extensions(self, arg):
method do_install_extension (line 291) | def do_install_extension(self, arg):
method do_provision_extension (line 312) | def do_provision_extension(self, arg):
method do_labs (line 330) | def do_labs(self, arg):
method do_show_list_providers (line 333) | def do_show_list_providers(self, arg):
method do_update_instance_files (line 336) | def do_update_instance_files(self, arg):
method do_create (line 339) | def do_create(self, arg=''):
method do_install_instance (line 364) | def do_install_instance(self, arg=''):
method do_create_empty (line 380) | def do_create_empty(self, arg=''):
method do_set_as_default (line 384) | def do_set_as_default(self, arg):
method do_use (line 388) | def do_use(self, arg):
method complete_use (line 391) | def complete_use(self, text, line, begidx, endidx):
method do_cd (line 395) | def do_cd(self, arg):
method complete_cd (line 401) | def complete_cd(self, text, line, begidx, endidx):
method do_load (line 404) | def do_load(self, arg):
method complete_load (line 414) | def complete_load(self, text, line, begidx, endidx):
method do_unload (line 422) | def do_unload(self, arg=''):
method do_delete (line 427) | def do_delete(self, arg):
method do_disable_vagrant (line 433) | def do_disable_vagrant(self, arg):
method do_enable_vagrant (line 441) | def do_enable_vagrant(self, arg):
method do_ls (line 449) | def do_ls(self, arg=''):
method do_list (line 452) | def do_list(self, arg=''):
function parse_args (line 456) | def parse_args():
function show_help (line 475) | def show_help():
FILE: goad/command/cmd.py
class Command (line 8) | class Command:
method __init__ (line 10) | def __init__(self):
method is_in_path (line 15) | def is_in_path(self, bin_file, show_log=True):
method check_vagrant (line 27) | def check_vagrant(self):
method check_vagrant_plugin (line 30) | def check_vagrant_plugin(self, plugin_name, mandatory=True):
method check_vmware_utility (line 46) | def check_vmware_utility(self):
method check_ovftool (line 49) | def check_ovftool(self):
method check_gem (line 52) | def check_gem(self, gem_name):
method check_vmware (line 55) | def check_vmware(self):
method check_virtualbox (line 58) | def check_virtualbox(self):
method check_terraform (line 61) | def check_terraform(self):
method check_aws (line 64) | def check_aws(self):
method check_azure (line 67) | def check_azure(self):
method check_rsync (line 70) | def check_rsync(self):
method check_ansible (line 73) | def check_ansible(self):
method check_ansible_galaxy (line 85) | def check_ansible_galaxy(self, collection):
method check_ludus (line 98) | def check_ludus(self):
method check_disk (line 102) | def check_disk(self, min_disk_gb=120):
method check_ram (line 111) | def check_ram(self, min_ram_gb=24):
method run_shell (line 119) | def run_shell(self, command, path):
method run_command (line 127) | def run_command(self, command, path):
method run_vagrant (line 138) | def run_vagrant(self, args, path):
method run_terraform (line 150) | def run_terraform(self, args, path):
method run_terraform_output (line 162) | def run_terraform_output(self, args, path):
method on_ludus (line 183) | def on_ludus(self):
method run_ludus (line 186) | def run_ludus(self, args, path, api_key, user_id='', impersonation=Fal...
method run_docker_ansible (line 190) | def run_docker_ansible(self, args, path, ansible_path, sudo):
method run_ansible (line 194) | def run_ansible(self, args, path):
method run_docker_ansible (line 207) | def run_docker_ansible(self, args, path, sudo):
method get_azure_account_output (line 211) | def get_azure_account_output(self):
method scp (line 224) | def scp(self, source, destination, ssh_key, path):
method rsync (line 231) | def rsync(self, source, destination, ssh_key, exclude=True):
FILE: goad/command/cmd_factory.py
class CommandFactory (line 7) | class CommandFactory:
method get_command (line 10) | def get_command():
FILE: goad/command/linux.py
class LinuxCommand (line 11) | class LinuxCommand(Command):
method __init__ (line 13) | def __init__(self):
method check_gem (line 19) | def check_gem(self, gem_name):
method check_vmware (line 32) | def check_vmware(self):
method check_vmware_utility (line 35) | def check_vmware_utility(self):
method check_ovftool (line 47) | def check_ovftool(self):
method check_virtualbox (line 62) | def check_virtualbox(self):
method check_ludus (line 65) | def check_ludus(self):
method run_ludus (line 69) | def run_ludus(self, args, path, api_key, user_id='', impersonation=Fal...
method run_ludus_result (line 89) | def run_ludus_result(self, command, path, api_key, do_log=True, user_i...
method run_docker_ansible (line 120) | def run_docker_ansible(self, args, path, ansible_path, sudo):
FILE: goad/command/windows.py
class WindowsCommand (line 7) | class WindowsCommand(Command):
method __init__ (line 9) | def __init__(self):
method file_exist (line 14) | def file_exist(self, file):
method is_in_path (line 20) | def is_in_path(self, bin_file):
method check_gem (line 31) | def check_gem(self, gem_name):
method check_vmware (line 35) | def check_vmware(self):
method check_vmware_utility (line 38) | def check_vmware_utility(self):
method check_ovftool (line 41) | def check_ovftool(self):
method check_virtualbox (line 44) | def check_virtualbox(self):
method check_terraform (line 47) | def check_terraform(self):
method check_ludus (line 50) | def check_ludus(self):
FILE: goad/command/wsl.py
class WslCommand (line 10) | class WslCommand(Command):
method __init__ (line 12) | def __init__(self):
method file_exist (line 17) | def file_exist(self, file):
method check_gem (line 24) | def check_gem(self, gem_name):
method check_vmware (line 28) | def check_vmware(self):
method check_vmware_utility (line 31) | def check_vmware_utility(self):
method check_ovftool (line 34) | def check_ovftool(self):
method check_virtualbox (line 37) | def check_virtualbox(self):
method check_terraform (line 40) | def check_terraform(self):
method check_ludus (line 43) | def check_ludus(self):
FILE: goad/config.py
class Config (line 8) | class Config:
method __init__ (line 11) | def __init__(self):
method get_config_parser (line 19) | def get_config_parser(self):
method create_config_file (line 22) | def create_config_file(self):
method merge_config (line 85) | def merge_config(self, args):
method get_value (line 128) | def get_value(self, section, key, fallback=None):
method set_value (line 131) | def set_value(self, section, key, value):
method show (line 134) | def show(self):
FILE: goad/dependencies.py
class Dependencies (line 4) | class Dependencies:
FILE: goad/exceptions.py
class ProviderPathNotFound (line 1) | class ProviderPathNotFound(Exception):
class AuthenticationFailed (line 5) | class AuthenticationFailed(Exception):
class JumpBoxInitFailed (line 9) | class JumpBoxInitFailed(Exception):
FILE: goad/extension.py
class Extension (line 7) | class Extension:
method __init__ (line 9) | def __init__(self, extension_name):
method load_extension_providers (line 16) | def load_extension_providers(self, extension_name):
method load_extension_config_file (line 23) | def load_extension_config_file(self, extension_name):
method is_available (line 32) | def is_available(self, lab_name):
method list_providers_name (line 35) | def list_providers_name(self):
method get_playbook (line 38) | def get_playbook(self, install=True):
method get_ansible_path (line 44) | def get_ansible_path(self):
method show (line 47) | def show(self):
FILE: goad/goadpath.py
class GoadPath (line 7) | class GoadPath:
method get_config_path (line 10) | def get_config_path():
method get_config_file (line 15) | def get_config_file():
method get_global_inventory_path (line 19) | def get_global_inventory_path():
method get_workspace_path (line 23) | def get_workspace_path():
method get_project_path (line 27) | def get_project_path():
method get_template_path (line 31) | def get_template_path(provider):
method get_playbooks_lab_config (line 39) | def get_playbooks_lab_config():
method get_labs_path (line 47) | def get_labs_path():
method get_lab_path (line 54) | def get_lab_path(lab_name):
method get_lab_data_path (line 61) | def get_lab_data_path(lab_name):
method get_lab_providers_path (line 68) | def get_lab_providers_path(lab_name):
method get_lab_provider_path (line 75) | def get_lab_provider_path(lab_name, provider_name):
method get_provider_inventory_file (line 82) | def get_provider_inventory_file(lab_name, provider_name):
method get_lab_inventory_file (line 89) | def get_lab_inventory_file(lab_name):
method get_script_path (line 97) | def get_script_path():
method get_script_file (line 104) | def get_script_file(script):
method get_provisioner_path (line 112) | def get_provisioner_path():
method get_instance_path (line 120) | def get_instance_path(instance_id):
method get_instance_provider_path (line 127) | def get_instance_provider_path(instance_id):
method get_extensions_path (line 132) | def get_extensions_path():
method get_extension_path (line 136) | def get_extension_path(extension_name):
method get_extension_config_file (line 143) | def get_extension_config_file(extension_name):
method get_extension_providers_path (line 150) | def get_extension_providers_path(extension_name):
method get_extension_providers_provider_path (line 157) | def get_extension_providers_provider_path(extension_name, provider_name):
method get_extension_ansible_path (line 164) | def get_extension_ansible_path(extension_name):
FILE: goad/infos.py
function show_labs_providers_list (line 5) | def show_labs_providers_list(labs):
function show_labs_providers_table (line 12) | def show_labs_providers_table(labs):
FILE: goad/instance.py
class LabInstance (line 12) | class LabInstance:
method __init__ (line 14) | def __init__(self, instance_id, lab_name, config, provider_name, provi...
method load (line 40) | def load(self, labs, creation=False):
method is_terraform (line 80) | def is_terraform(self):
method is_vagrant (line 83) | def is_vagrant(self):
method is_ludus (line 86) | def is_ludus(self):
method enable_extension (line 89) | def enable_extension(self, extension_name):
method disable_extension (line 96) | def disable_extension(self, extension_name):
method save_json_instance (line 102) | def save_json_instance(self):
method _create_vagrantfile (line 117) | def _create_vagrantfile(self):
method _create_esxi_env (line 157) | def _create_esxi_env(self):
method _create_ludus_config_file (line 185) | def _create_ludus_config_file(self):
method _create_terraform_folder (line 223) | def _create_terraform_folder(self):
method _create_provider_dir (line 276) | def _create_provider_dir(self):
method _create_provisioning_lab_inventory (line 295) | def _create_provisioning_lab_inventory(self, inventory_file):
method _create_provisioning_provider_inventory (line 313) | def _create_provisioning_provider_inventory(self):
method _create_extensions_inventory (line 331) | def _create_extensions_inventory(self):
method update_instance_folder (line 350) | def update_instance_folder(self):
method create_instance_folder (line 353) | def create_instance_folder(self, force=False):
method set_status (line 387) | def set_status(self, status):
method get_status (line 391) | def get_status(self):
method delete_instance (line 394) | def delete_instance(self):
method update_ip_range (line 411) | def update_ip_range(self, ip_range):
FILE: goad/instances.py
class LabInstances (line 9) | class LabInstances:
method __init__ (line 11) | def __init__(self, config):
method _init_instances (line 15) | def _init_instances(self, config):
method nb_instances (line 33) | def nb_instances(self):
method add_instance (line 36) | def add_instance(self, instance):
method del_instance (line 39) | def del_instance(self, instance_id):
method get_instance (line 42) | def get_instance(self, instance_id):
method color_status (line 49) | def color_status(status):
method color_provider (line 59) | def color_provider(provider):
method show_instances (line 74) | def show_instances(self, lab_name='', provider_name='', current_instan...
FILE: goad/jumpbox.py
class JumpBox (line 7) | class JumpBox:
method __init__ (line 9) | def __init__(self, instance, creation=False):
method provision (line 29) | def provision(self):
method get_jumpbox_key (line 37) | def get_jumpbox_key(self, creation=False):
method ssh (line 40) | def ssh(self):
method ssh_proxy (line 44) | def ssh_proxy(self, port):
method run_script (line 48) | def run_script(self, script):
method sync_sources (line 52) | def sync_sources(self):
method run_command (line 70) | def run_command(self, command, path):
FILE: goad/lab_manager.py
class LabManager (line 8) | class LabManager(metaclass=SingletonMeta):
method __init__ (line 10) | def __init__(self):
method init (line 23) | def init(self, config, args):
method load_default_instance (line 40) | def load_default_instance(self):
method show_settings (line 47) | def show_settings(self):
method inline_settings (line 54) | def inline_settings(self):
method update_instance_files (line 57) | def update_instance_files(self, arg=''):
method create_instance (line 61) | def create_instance(self):
method load_instance (line 78) | def load_instance(self, instance_id, creation=False):
method set_as_default_instance (line 93) | def set_as_default_instance(self):
method unload_instance (line 104) | def unload_instance(self):
method delete_instance (line 108) | def delete_instance(self):
method set_lab (line 117) | def set_lab(self, lab_name):
method set_provider (line 124) | def set_provider(self, provider_name):
method set_provisioner (line 131) | def set_provisioner(self, provisioner_name):
method set_ip_range (line 134) | def set_ip_range(self, ip_range):
method get_ip_range (line 137) | def get_ip_range(self):
method set_extensions (line 140) | def set_extensions(self, extensions_name):
method get_labs (line 143) | def get_labs(self):
method get_lab (line 146) | def get_lab(self, lab_name):
method is_lab_exist (line 149) | def is_lab_exist(self, lab_name):
method get_current_lab_name (line 152) | def get_current_lab_name(self):
method get_current_provider_name (line 155) | def get_current_provider_name(self):
method check (line 158) | def check(self):
method get_current_instance_id (line 168) | def get_current_instance_id(self):
method get_current_instance (line 173) | def get_current_instance(self):
method get_current_instance_lab (line 176) | def get_current_instance_lab(self):
method get_current_instance_provider (line 181) | def get_current_instance_provider(self):
method get_instance_options (line 187) | def get_instance_options(self):
method get_current_instance_provisioner (line 190) | def get_current_instance_provisioner(self):
method get_labs_options (line 193) | def get_labs_options(self):
method get_provider_options (line 196) | def get_provider_options(self):
method provisioning_method_options (line 205) | def provisioning_method_options(self):
FILE: goad/labs.py
class Labs (line 9) | class Labs:
method __init__ (line 10) | def __init__(self, config):
method get_lab (line 19) | def get_lab(self, lab_name):
method get_labs_list (line 24) | def get_labs_list(self):
method is_exist (line 27) | def is_exist(self, lab_name):
class Lab (line 31) | class Lab:
method __init__ (line 32) | def __init__(self, lab_name, config):
method _load_providers (line 46) | def _load_providers(self, lab_name, config):
method _load_extensions (line 52) | def _load_extensions(self, lab_name):
method get_provider (line 58) | def get_provider(self, provider_name):
method get_first_provider_name (line 63) | def get_first_provider_name(self):
method get_extension (line 66) | def get_extension(self, extension_name):
method get_list_extensions_name (line 72) | def get_list_extensions_name(self):
method show_extensions (line 75) | def show_extensions(self):
FILE: goad/local_jumpbox.py
class LocalJumpBox (line 11) | class LocalJumpBox(JumpBox):
method __init__ (line 13) | def __init__(self, instance, creation=False):
method provision (line 17) | def provision(self):
method get_jumpbox_key (line 30) | def get_jumpbox_key(self, creation=False):
method sync_sources (line 41) | def sync_sources(self):
FILE: goad/log.py
class Log (line 8) | class Log:
method error (line 11) | def error(message, level=INFO):
method warning (line 16) | def warning(message, level=INFO):
method success (line 21) | def success(message, level=INFO):
method info (line 26) | def info(message, level=INFO):
method basic (line 31) | def basic(message, level=INFO):
method cmd (line 36) | def cmd(message, level=INFO):
FILE: goad/menu.py
function print_logo (line 5) | def print_logo():
function print_menu_title (line 21) | def print_menu_title(title):
function print_menu_entry (line 26) | def print_menu_entry(cmd, description):
function print_menu (line 31) | def print_menu(lab_manager, advanced=True, debug=False):
FILE: goad/provider/ludus/ludus.py
function _get_ludus_major_version (line 9) | def _get_ludus_major_version(config):
class LudusProvider (line 32) | class LudusProvider(Provider):
method __init__ (line 38) | def __init__(self, lab_name, config):
method _user_command (line 45) | def _user_command(self, args):
method set_lab_user (line 51) | def set_lab_user(self, lab_user):
method get_ludus_user (line 55) | def get_ludus_user(self):
method check (line 82) | def check(self):
method user_exist (line 98) | def user_exist(self, user_to_test):
method _create_user (line 110) | def _create_user(self):
method _grant_access (line 125) | def _grant_access(self, current_ludus_user):
method install (line 139) | def install(self):
method get_ip_range (line 203) | def get_ip_range(self):
method destroy (line 218) | def destroy(self):
method start (line 224) | def start(self):
method stop (line 230) | def stop(self):
method status (line 236) | def status(self):
method destroy_vm (line 242) | def destroy_vm(self, vm_name):
method start_vm (line 262) | def start_vm(self, vm_name):
method stop_vm (line 268) | def stop_vm(self, vm_name):
FILE: goad/provider/provider.py
class Provider (line 6) | class Provider(ABC):
method __init__ (line 13) | def __init__(self, lab_name):
method set_instance_path (line 18) | def set_instance_path(self, provider_instance_path):
method check (line 21) | def check(self):
method install (line 24) | def install(self):
method destroy (line 27) | def destroy(self):
method start (line 30) | def start(self):
method stop (line 33) | def stop(self):
method status (line 36) | def status(self):
method start_vm (line 39) | def start_vm(self, vm_name):
method stop_vm (line 42) | def stop_vm(self, vm_name):
method destroy_vm (line 45) | def destroy_vm(self, vm_name):
method get_jumpbox_ip (line 48) | def get_jumpbox_ip(self, ip_range=''):
method restart_vm (line 51) | def restart_vm(self, vm_name):
FILE: goad/provider/provider_factory.py
class ProviderFactory (line 20) | class ProviderFactory:
method get_provider (line 23) | def get_provider(provider_name, lab_name, config):
FILE: goad/provider/terraform/aws.py
class AwsProvider (line 12) | class AwsProvider(TerraformProvider):
method __init__ (line 17) | def __init__(self, lab_name, config):
method set_tag (line 25) | def set_tag(self, tag):
method _color_vm_state (line 30) | def _color_vm_state(state):
method check (line 37) | def check(self):
method status (line 67) | def status(self):
method _get_vm_instance_id_list (line 102) | def _get_vm_instance_id_list(self, ec2_client):
method start (line 115) | def start(self):
method stop (line 122) | def stop(self):
method start_vm (line 129) | def start_vm(self, vm_id):
method stop_vm (line 145) | def stop_vm(self, vm_id):
method destroy_vm (line 160) | def destroy_vm(self, vm_id):
method get_jumpbox_ip (line 175) | def get_jumpbox_ip(self, ip_range=''):
FILE: goad/provider/terraform/azure.py
class AzureProvider (line 14) | class AzureProvider(TerraformProvider):
method __init__ (line 19) | def __init__(self, lab_name):
method set_resource_group (line 24) | def set_resource_group(self, resource_group):
method _get_subscription_id (line 27) | def _get_subscription_id(self):
method check (line 39) | def check(self):
method _auth (line 71) | def _auth(self):
method status (line 81) | def status(self):
method start (line 143) | def start(self):
method stop (line 163) | def stop(self):
method start_vm (line 183) | def start_vm(self, vm_name):
method stop_vm (line 208) | def stop_vm(self, vm_name):
method destroy_vm (line 233) | def destroy_vm(self, vm_name):
method _get_az_jumpbox_ip (line 258) | def _get_az_jumpbox_ip(self):
method get_jumpbox_ip (line 292) | def get_jumpbox_ip(self, ip_range=''):
FILE: goad/provider/terraform/proxmox.py
class ProxmoxProvider (line 12) | class ProxmoxProvider(TerraformProvider):
method __init__ (line 17) | def __init__(self, lab_name, config):
method _get_proxmox (line 25) | def _get_proxmox(self):
method check (line 41) | def check(self):
method _color_vm_state (line 49) | def _color_vm_state(state):
method status (line 56) | def status(self):
method start (line 122) | def start(self):
method stop (line 150) | def stop(self):
method start_vm (line 178) | def start_vm(self, vmid):
method stop_vm (line 189) | def stop_vm(self, vmid):
method destroy_vm (line 200) | def destroy_vm(self, vm_name):
FILE: goad/provider/terraform/terraform.py
class TerraformProvider (line 8) | class TerraformProvider(Provider):
method check (line 10) | def check(self):
method install (line 17) | def install(self):
method destroy (line 22) | def destroy(self):
method start (line 25) | def start(self):
method stop (line 28) | def stop(self):
method status (line 31) | def status(self):
method start_vm (line 34) | def start_vm(self, vm_name):
method stop_vm (line 37) | def stop_vm(self, vm_name):
method destroy_vm (line 40) | def destroy_vm(self, vm_name):
method ssh_jumpbox (line 43) | def ssh_jumpbox(self):
FILE: goad/provider/vagrant/vagrant.py
class VagrantProvider (line 4) | class VagrantProvider(Provider):
method __init__ (line 6) | def __init__(self, lab_name):
method check (line 10) | def check(self):
method install (line 20) | def install(self):
method destroy (line 23) | def destroy(self):
method start (line 26) | def start(self):
method stop (line 29) | def stop(self):
method status (line 32) | def status(self):
method snapshot (line 35) | def snapshot(self):
method reset (line 38) | def reset(self):
method destroy_vm (line 41) | def destroy_vm(self, vm_name):
method start_vm (line 44) | def start_vm(self, vm_name):
method stop_vm (line 47) | def stop_vm(self, vm_name):
method remove_extension (line 50) | def remove_extension(self, extension_name):
method get_jumpbox_ip (line 54) | def get_jumpbox_ip(self, ip_range=''):
FILE: goad/provider/vagrant/virtualbox.py
class VirtualboxProvider (line 5) | class VirtualboxProvider(VagrantProvider):
method check (line 10) | def check(self):
FILE: goad/provider/vagrant/vmware.py
class VmwareProvider (line 5) | class VmwareProvider(VagrantProvider):
method check (line 10) | def check(self):
FILE: goad/provider/vagrant/vmware_esxi.py
class VmwareEsxiProvider (line 5) | class VmwareEsxiProvider(VagrantProvider):
method check (line 10) | def check(self):
FILE: goad/provisioner/ansible/ansible.py
class Ansible (line 9) | class Ansible(Provisioner):
method _get_lab_inventory (line 11) | def _get_lab_inventory(self, lab_name, provider_name):
method _get_global_inventory (line 25) | def _get_global_inventory(self):
method get_inventory (line 33) | def get_inventory(self, lab_name, provider_name):
method get_playbook_list (line 41) | def get_playbook_list(self, lab_name):
method run (line 62) | def run(self, playbook=None):
method run_extension (line 76) | def run_extension(self, extension, current_instance_extensions_name, i...
method run_from (line 104) | def run_from(self, task):
method run_playbook (line 128) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
method get_disable_vagrant_inventory (line 132) | def get_disable_vagrant_inventory(self):
method run_disable_vagrant (line 144) | def run_disable_vagrant(self, disable_vagrant=True):
FILE: goad/provisioner/ansible/docker.py
class DockerAnsibleProvisionerCmd (line 9) | class DockerAnsibleProvisionerCmd(Ansible):
method __init__ (line 12) | def __init__(self, lab_name, provider):
method is_current_user_in_docker_group (line 21) | def is_current_user_in_docker_group(self):
method check_docker_image (line 38) | def check_docker_image(self):
method run_playbook (line 45) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
FILE: goad/provisioner/ansible/local.py
class LocalAnsibleProvisionerCmd (line 6) | class LocalAnsibleProvisionerCmd(Ansible):
method run_playbook (line 9) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
FILE: goad/provisioner/ansible/remote.py
class RemoteAnsibleProvisioner (line 6) | class RemoteAnsibleProvisioner(Ansible):
method __init__ (line 10) | def __init__(self, lab_name, provider):
method prepare_jumpbox (line 15) | def prepare_jumpbox(self, jumpbox_ip):
method sync_source_jumpbox (line 23) | def sync_source_jumpbox(self):
method run (line 29) | def run(self, playbook=None):
method run_playbook (line 35) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
FILE: goad/provisioner/ansible/runner.py
class LocalAnsibleProvisionerEmbed (line 9) | class LocalAnsibleProvisionerEmbed(Ansible):
method run_playbook (line 12) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
FILE: goad/provisioner/ansible/vm.py
class VmAnsibleProvisioner (line 6) | class VmAnsibleProvisioner(Ansible):
method __init__ (line 10) | def __init__(self, lab_name, provider):
method prepare_jumpbox (line 15) | def prepare_jumpbox(self, jumpbox_ip):
method sync_source_jumpbox (line 27) | def sync_source_jumpbox(self):
method run (line 33) | def run(self, playbook=None):
method run_playbook (line 39) | def run_playbook(self, playbook, inventories, tries=3, timeout=30, pla...
FILE: goad/provisioner/provisioner.py
class Provisioner (line 9) | class Provisioner(ABC):
method __init__ (line 15) | def __init__(self, lab_name, provider):
method set_instance_path (line 23) | def set_instance_path(self, path):
method run (line 26) | def run(self, arg):
method run_extension (line 29) | def run_extension(self, arg, current_instance_extensions):
method run_from (line 32) | def run_from(self, arg):
method update_jumpbox_ip (line 35) | def update_jumpbox_ip(self, ip):
FILE: goad/provisioner/provisioner_factory.py
class ProvisionerFactory (line 18) | class ProvisionerFactory:
method get_provisioner (line 21) | def get_provisioner(provisioner_name, instance, is_instance_creation):
FILE: goad/settings.py
class Settings (line 6) | class Settings:
method __init__ (line 11) | def __init__(self, lab_manager):
method update (line 19) | def update(self, instance):
method show (line 30) | def show(self):
method inline (line 40) | def inline(self):
method set_lab_name (line 46) | def set_lab_name(self, lab_name, refresh=True):
method _refresh_provider (line 64) | def _refresh_provider(self):
method set_provider_name (line 79) | def set_provider_name(self, provider_name, refresh=True):
method refresh_provisioner (line 96) | def refresh_provisioner(self, provider):
method set_provisioner_name (line 107) | def set_provisioner_name(self, provisioner_name):
method set_ip_range (line 133) | def set_ip_range(self, ip_range):
method set_extensions (line 152) | def set_extensions(self, extensions_name):
FILE: goad/utils.py
class SingletonMeta (line 64) | class SingletonMeta(type):
method __call__ (line 67) | def __call__(cls, *args, **kwargs):
class Utils (line 73) | class Utils:
method is_wsl (line 76) | def is_wsl():
method is_windows (line 85) | def is_windows():
method confirm (line 91) | def confirm(message):
method is_valid_ipv4 (line 98) | def is_valid_ipv4(ip):
method list_folders (line 107) | def list_folders(path):
method list_files (line 114) | def list_files(path):
method get_relative_path (line 122) | def get_relative_path(path):
method transform_local_path_to_remote_path (line 126) | def transform_local_path_to_remote_path(origin, remote_project_path):
method get_random_string (line 133) | def get_random_string(length):
method replace_in_file (line 140) | def replace_in_file(filename, search_string, new_string):
Condensed preview — 804 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,300K chars).
[
{
"path": ".gitignore",
"chars": 616,
"preview": ".vagrant/\n.idea/\n.venv/\n.archives/\nwriteup/\ndocs/scenarios/\ndocs/notes.md\ntemp/\nansible/.venv/\nansible/collections/\nansi"
},
{
"path": "Dockerfile",
"chars": 399,
"preview": "FROM ubuntu:22.04\n\nRUN apt-get update \\\n && apt-get install -y python3-pip\n\nRUN pip install --upgrade pip\nRUN pip ins"
},
{
"path": "LICENSE",
"chars": 35149,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "README.md",
"chars": 2500,
"preview": "<div align=\"center\">\n <h1><img alt=\"GOAD (Game Of Active Directory)\" src=\"./docs/mkdocs/docs/img/logo_GOAD3.png\"></h1>\n"
},
{
"path": "ad/DRACARYS/README.md",
"chars": 1589,
"preview": "# DRACARYS\n\n\n\n- DRACARYS is written as a training challenge where GOAD was "
},
{
"path": "ad/DRACARYS/data/config.json",
"chars": 6166,
"preview": "{\n\"lab\" : {\n \"hosts\" : {\n \"dc01\" : {\n \"hostname\" : \"balerion\",\n \"type\" : \"dc\",\n "
},
{
"path": "ad/DRACARYS/data/inventory",
"chars": 2091,
"preview": "; GLOBAL CONFIG\n[all:vars]\n; domain_name : folder inside ad/\ndomain_name=DRACARYS\n\n; administrator user\nadmin_user=admin"
},
{
"path": "ad/DRACARYS/data/inventory_disable_vagrant",
"chars": 999,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/files/dc01/cert.md",
"chars": 307,
"preview": "openssl genrsa -out ldaps.key 2048\nopenssl req -new -x509 -key ldaps.key -out ldaps.crt -days 3650 -subj \"/CN=balerion.d"
},
{
"path": "ad/DRACARYS/files/dc01/keepass_bot.ps1",
"chars": 823,
"preview": "$pass = ConvertTo-SecureString 'ufsmcvDaFz1uEqzAtaiL' -AsPlainText -Force\n$creds = New-Object System.Management.Automati"
},
{
"path": "ad/DRACARYS/files/dc01/ldaps.crt",
"chars": 1204,
"preview": "-----BEGIN CERTIFICATE-----\nMIIDTTCCAjWgAwIBAgIUU2yqCIa/Vzxgktgu/1gcLG6OjMkwDQYJKoZIhvcNAQEL\nBQAwIDEeMBwGA1UEAwwVYmFsZXJ"
},
{
"path": "ad/DRACARYS/files/dc01/ldaps.key",
"chars": 1704,
"preview": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCX6MF1AiaCjEp3\nna+9iea2AuoXszm/rrbRoEAw6zf"
},
{
"path": "ad/DRACARYS/files/srv01/bot_ssh.ps1",
"chars": 175,
"preview": "$User = \"viserion\"\n$SSHHost = \"syrax\"\n$Password = \"aLHtz1WvIVmeV4Zh4CDE\"\n\n& \"C:\\Program Files\\PuTTY\\klink.exe\" -auto_sto"
},
{
"path": "ad/DRACARYS/providers/aws/inventory",
"chars": 581,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/providers/aws/linux.tf",
"chars": 280,
"preview": "\"lx01\" = {\n name = \"lx01\"\n linux_sku = \"24_04-lts-gen2\"\n linux_version = \"latest\"\n ami "
},
{
"path": "ad/DRACARYS/providers/aws/windows.tf",
"chars": 667,
"preview": "# Standard_B2s : 2 CPU / 4GB\n# Standard_B2ms : 2CPU / 8GB\n# Standard_B4ms : 4 cpu / 16 GB\n\"dc01\" = {\n name "
},
{
"path": "ad/DRACARYS/providers/azure/inventory",
"chars": 581,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/providers/azure/linux.tf",
"chars": 270,
"preview": "\"lx01\" = {\n name = \"lx01\"\n linux_offer = \"ubuntu-24_04-lts\"\n linux_sku = \"server\"\n lin"
},
{
"path": "ad/DRACARYS/providers/azure/windows.tf",
"chars": 741,
"preview": "# Standard_B2s : 2 CPU / 4GB\n# Standard_B2ms : 2CPU / 8GB\n# Standard_B4ms : 4 cpu / 16 GB\n\"dc01\" = {\n name "
},
{
"path": "ad/DRACARYS/providers/ludus/config.yml",
"chars": 626,
"preview": "ludus:\n - vm_name: \"{{ range_id }}-DC01\"\n hostname: \"{{ range_id }}-DC01\"\n template: win2025-server-x64-tpm-templ"
},
{
"path": "ad/DRACARYS/providers/ludus/inventory",
"chars": 562,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/providers/proxmox/inventory",
"chars": 442,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/providers/proxmox/linux.tf",
"chars": 302,
"preview": "\"lx01\" = {\n name = \"LX01\"\n desc = \"LX01 - DRACARYS\"\n cores = 2\n memory "
},
{
"path": "ad/DRACARYS/providers/proxmox/windows.tf",
"chars": 751,
"preview": "\"dc01\" = {\n name = \"DC01\"\n desc = \"DC01 - DRACARYS - windows server 2025 - {{ip_range}}.10"
},
{
"path": "ad/DRACARYS/providers/virtualbox/Vagrantfile",
"chars": 667,
"preview": "boxes = \n[\n { :name => \"DRACARYS-DC01\", \n :ip => \"{{ip_range}}.10\", \n :box => \"GOAD/WindowsServer2025\", \n :box"
},
{
"path": "ad/DRACARYS/providers/virtualbox/inventory",
"chars": 383,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/providers/vmware/Vagrantfile",
"chars": 667,
"preview": "boxes = \n[\n { :name => \"DRACARYS-DC01\", \n :ip => \"{{ip_range}}.10\", \n :box => \"GOAD/WindowsServer2025\", \n :box"
},
{
"path": "ad/DRACARYS/providers/vmware/inventory",
"chars": 383,
"preview": "[default]\n; ------------------------------------------------\n; dracarys.lab\n; ------------------------------------------"
},
{
"path": "ad/DRACARYS/scripts/set_spn.ps1",
"chars": 111,
"preview": "Set-ADComputer -Identity \"syrax$\" -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/arrax.dracarys.lab','HTTP/arrax')}\n"
},
{
"path": "ad/DRACARYS/scripts/wsman_kerb.ps1",
"chars": 194,
"preview": "Set-ADComputer -Identity \"vhagar$\" -ServicePrincipalNames @{Add='WSMAN/vhagar.dracarys.lab'}\nSet-ADComputer -Identity \"v"
},
{
"path": "ad/GOAD/README.md",
"chars": 7362,
"preview": "# GOAD\n\n- LAB Content \n\n\n\n## Servers\nThis lab is actually composed of fi"
},
{
"path": "ad/GOAD/data/config.json",
"chars": 32414,
"preview": "{\n\"lab\" : {\n \"hosts\" : {\n \"dc01\" : {\n \"hostname\" : \"kingslanding\",\n \"type\" : \"dc\",\n "
},
{
"path": "ad/GOAD/data/inventory",
"chars": 2658,
"preview": "; GLOBAL CONFIG\n[all:vars]\n; domain_name : folder inside ad/\ndomain_name=GOAD\n\n; administrator user\nadmin_user=administr"
},
{
"path": "ad/GOAD/data/inventory_disable_vagrant",
"chars": 1589,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/files/dc02/bot_rdp.ps1",
"chars": 332,
"preview": "# https://learn.microsoft.com/fr-fr/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon\nif(-not("
},
{
"path": "ad/GOAD/files/dc02/sysvol_scripts/script.ps1",
"chars": 165,
"preview": "# fake script in netlogon with creds\n$task = '/c TODO'\n$taskName = \"fake task\"\n$user = \"NORTH\\jeor.mormont\"\n$password = "
},
{
"path": "ad/GOAD/files/dc02/sysvol_scripts/secret.ps1",
"chars": 869,
"preview": "# cypher script\n# $domain=\"sevenkingdoms.local\"\n# $EncryptionKeyBytes = New-Object Byte[] 32\n# [Security.Cryptography.RN"
},
{
"path": "ad/GOAD/files/srv02/all/arya.txt",
"chars": 411,
"preview": "Subject: Quick Departure\n\nHey Arya,\n\nI hope this message finds you well. Something urgent has come up, and I have to lea"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/Default.aspx",
"chars": 614,
"preview": "<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"Default.aspx.cs\" Inherits=\"WebApp.Default\" %>\r\n\r\n<!DOCTYPE ht"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/Web.config",
"chars": 1197,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--\r\n For more information on how to configure your ASP.NET application, plea"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.CSharp.Core.targets",
"chars": 6816,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.Managed.Core.targets",
"chars": 7515,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/Microsoft.VisualBasic.Core.targets",
"chars": 6234,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/VBCSCompiler.exe.config",
"chars": 8097,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/csc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/csc.rsp",
"chars": 1494,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/csi.exe.config",
"chars": 8476,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/csi.rsp",
"chars": 277,
"preview": "/r:System\r\n/r:System.Core\r\n/r:Microsoft.CSharp\r\n/r:System.ValueTuple.dll\r\n/u:System\r\n/u:System.IO\r\n/u:System.Collection"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/vbc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/bin/roslyn/vbc.rsp",
"chars": 1632,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/GOAD/files/srv02/wwwroot/index.html",
"chars": 149,
"preview": "<html>\n <head>\n </head>\n <body>\n <p>Please follow <a href=\"/Default.aspx\">this link</a> to upload your f"
},
{
"path": "ad/GOAD/files/srv02/wwwroot/upload/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "ad/GOAD/providers/aws/inventory",
"chars": 1085,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/aws/linux.tf",
"chars": 295,
"preview": "# \"lx01\" = {\n# name = \"lx01\"\n# linux_sku = \"22_04-lts-gen2\"\n# linux_version = \"latest\""
},
{
"path": "ad/GOAD/providers/aws/windows.tf",
"chars": 1525,
"preview": "# t2.medium = 2cpu / 4GB\n# t2.large = 2cpu / 8GB\n# t2.xlarge = 4cpu / 16GB\n\"dc01\" = {\n name = \"dc01\"\n d"
},
{
"path": "ad/GOAD/providers/azure/inventory",
"chars": 1085,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/azure/linux.tf",
"chars": 305,
"preview": "# \"lx01\" = {\n# name = \"lx01\"\n# linux_offer = \"0001-com-ubuntu-server-jammy\"\n# linux_sku "
},
{
"path": "ad/GOAD/providers/azure/windows.tf",
"chars": 1694,
"preview": "# Standard_B2s : 2 CPU / 4GB\n# Standard_B2ms : 2CPU / 8GB\n# Standard_B4ms : 4 cpu / 16 GB\n\"dc01\" = {\n name "
},
{
"path": "ad/GOAD/providers/ludus/config.yml",
"chars": 1071,
"preview": "ludus:\n - vm_name: \"{{ range_id }}-GOAD-DC01\"\n hostname: \"{{ range_id }}-DC01\"\n template: win2019-server-x64-temp"
},
{
"path": "ad/GOAD/providers/ludus/inventory",
"chars": 948,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/proxmox/inventory",
"chars": 860,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/proxmox/windows.tf",
"chars": 1670,
"preview": "\"dc01\" = {\n name = \"DC01\"\n desc = \"DC01 - windows server 2019 - {{ip_range}}.10\"\n cores "
},
{
"path": "ad/GOAD/providers/virtualbox/Vagrantfile",
"chars": 960,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windows_20"
},
{
"path": "ad/GOAD/providers/virtualbox/inventory",
"chars": 800,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/vmware/Vagrantfile",
"chars": 960,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windows_20"
},
{
"path": "ad/GOAD/providers/vmware/inventory",
"chars": 800,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/providers/vmware_esxi/Vagrantfile",
"chars": 960,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windows_20"
},
{
"path": "ad/GOAD/providers/vmware_esxi/inventory",
"chars": 800,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD/scripts/archives/acl.ps1",
"chars": 6610,
"preview": "# https://github.com/davidprowe/BadBlood/blob/master/AD_OU_SetACL/Full%20Control%20Permissions.ps1\nImport-Module ActiveD"
},
{
"path": "ad/GOAD/scripts/archives/anonymous_ldap.ps1",
"chars": 445,
"preview": "$anonymousId = New-Object System.Security.Principal.NTAccount \"NT AUTHORITY\\ANONYMOUS LOGON\"\n$secInheritanceAll = [Syste"
},
{
"path": "ad/GOAD/scripts/archives/kerberoasting.ps1",
"chars": 82,
"preview": "Set-ADUser -Identity \"jon.snow\" -ServicePrincipalNames @{Add='HTTP/thewallserver'}"
},
{
"path": "ad/GOAD/scripts/archives/rbcd.ps1",
"chars": 6,
"preview": "# TODO"
},
{
"path": "ad/GOAD/scripts/archives/unconstrained_delegation.ps1",
"chars": 85,
"preview": "Get-ADComputer -Identity \"bravoos\" | Set-ADAccountControl -TrustedForDelegation $true"
},
{
"path": "ad/GOAD/scripts/asrep_roasting.ps1",
"chars": 88,
"preview": "Get-ADUser -Identity \"brandon.stark\" | Set-ADAccountControl -DoesNotRequirePreAuth:$true"
},
{
"path": "ad/GOAD/scripts/asrep_roasting2.ps1",
"chars": 84,
"preview": "Get-ADUser -Identity \"missandei\" | Set-ADAccountControl -DoesNotRequirePreAuth:$true"
},
{
"path": "ad/GOAD/scripts/constrained_delegation_kerb_only.ps1",
"chars": 500,
"preview": "# https://www.thehacker.recipes/ad/movement/kerberos/delegations/constrained#without-protocol-transition\nSet-ADComputer "
},
{
"path": "ad/GOAD/scripts/constrained_delegation_use_any.ps1",
"chars": 323,
"preview": "Set-ADUser -Identity \"jon.snow\" -ServicePrincipalNames @{Add='CIFS/thewall.north.sevenkingdoms.local'}\nGet-ADUser -Ident"
},
{
"path": "ad/GOAD/scripts/gpo_abuse.ps1",
"chars": 1857,
"preview": "Install-WindowsFeature -Name GPMC\r\n$gpo_exist = Get-GPO -Name \"StarkWallpaper\" -erroraction ignore\r\n\r\nif ($gpo_exist) {\r"
},
{
"path": "ad/GOAD/scripts/ntlm_relay.ps1",
"chars": 852,
"preview": "$task = '/c powershell New-PSDrive -Name \"Public\" -PSProvider \"FileSystem\" -Root \"\\\\Meren\\Private\"'\n$repeat = (New-TimeS"
},
{
"path": "ad/GOAD/scripts/rdp_scheduler.ps1",
"chars": 885,
"preview": "$task = '/c powershell c:\\setup\\bot_rdp.ps1'\n$repeat = (New-TimeSpan -Minutes 1)\n$taskName = \"connect_bot\"\n$user = \"nort"
},
{
"path": "ad/GOAD/scripts/responder.ps1",
"chars": 846,
"preview": "$task = '/c powershell New-PSDrive -Name \"Public\" -PSProvider \"FileSystem\" -Root \"\\\\Bravos\\private\"'\n$repeat = (New-Time"
},
{
"path": "ad/GOAD/scripts/sidhistory.ps1",
"chars": 69,
"preview": "netdom trust sevenkingdoms.local /d:essos.local /enablesidhistory:yes"
},
{
"path": "ad/GOAD/scripts/unconstrained_delegation_user.ps1",
"chars": 85,
"preview": "Get-ADUser -Identity \"sansa.stark\" | Set-ADAccountControl -TrustedForDelegation $true"
},
{
"path": "ad/GOAD-Light/README.md",
"chars": 4110,
"preview": "# GOAD-Light\n\n\n\nThis is a light version of goad without the "
},
{
"path": "ad/GOAD-Light/data/config.json",
"chars": 22693,
"preview": "{\n\"lab\" : {\n \"hosts\" : {\n \"dc01\" : {\n \"hostname\" : \"kingslanding\",\n \"type\" : \"dc\",\n "
},
{
"path": "ad/GOAD-Light/data/inventory",
"chars": 2269,
"preview": "[all:vars]\n; domain_name : folder inside ad/\ndomain_name=GOAD-Light\n; administrator user\nadmin_user=administrator\n\nforce"
},
{
"path": "ad/GOAD-Light/data/inventory_disable_vagrant",
"chars": 1201,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/files/dc02/bot_rdp.ps1",
"chars": 332,
"preview": "# https://learn.microsoft.com/fr-fr/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon\nif(-not("
},
{
"path": "ad/GOAD-Light/files/dc02/sysvol_scripts/script.ps1",
"chars": 165,
"preview": "# fake script in netlogon with creds\n$task = '/c TODO'\n$taskName = \"fake task\"\n$user = \"NORTH\\jeor.mormont\"\n$password = "
},
{
"path": "ad/GOAD-Light/files/dc02/sysvol_scripts/secret.ps1",
"chars": 869,
"preview": "# cypher script\n# $domain=\"sevenkingdoms.local\"\n# $EncryptionKeyBytes = New-Object Byte[] 32\n# [Security.Cryptography.RN"
},
{
"path": "ad/GOAD-Light/files/srv02/all/arya.txt",
"chars": 411,
"preview": "Subject: Quick Departure\n\nHey Arya,\n\nI hope this message finds you well. Something urgent has come up, and I have to lea"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/Default.aspx",
"chars": 614,
"preview": "<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"Default.aspx.cs\" Inherits=\"WebApp.Default\" %>\r\n\r\n<!DOCTYPE ht"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/Web.config",
"chars": 1197,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--\r\n For more information on how to configure your ASP.NET application, plea"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/Microsoft.CSharp.Core.targets",
"chars": 6816,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/Microsoft.Managed.Core.targets",
"chars": 7515,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/Microsoft.VisualBasic.Core.targets",
"chars": 6234,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/VBCSCompiler.exe.config",
"chars": 8097,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/csc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/csc.rsp",
"chars": 1494,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/csi.exe.config",
"chars": 8476,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/csi.rsp",
"chars": 277,
"preview": "/r:System\r\n/r:System.Core\r\n/r:Microsoft.CSharp\r\n/r:System.ValueTuple.dll\r\n/u:System\r\n/u:System.IO\r\n/u:System.Collection"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/vbc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/bin/roslyn/vbc.rsp",
"chars": 1632,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/index.html",
"chars": 149,
"preview": "<html>\n <head>\n </head>\n <body>\n <p>Please follow <a href=\"/Default.aspx\">this link</a> to upload your f"
},
{
"path": "ad/GOAD-Light/files/srv02/wwwroot/upload/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "ad/GOAD-Light/providers/aws/inventory",
"chars": 737,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/providers/aws/linux.tf",
"chars": 295,
"preview": "# \"lx01\" = {\n# name = \"lx01\"\n# linux_sku = \"22_04-lts-gen2\"\n# linux_version = \"latest\""
},
{
"path": "ad/GOAD-Light/providers/aws/windows.tf",
"chars": 883,
"preview": "\"dc01\" = {\n name = \"dc01\"\n domain = \"sevenkingdoms.local\"\n windows_sku = \"2019-Datac"
},
{
"path": "ad/GOAD-Light/providers/azure/inventory",
"chars": 737,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/providers/azure/windows.tf",
"chars": 1061,
"preview": "\"dc01\" = {\n name = \"dc01\"\n publisher = \"MicrosoftWindowsServer\"\n offer = \"Windows"
},
{
"path": "ad/GOAD-Light/providers/ludus/config.yml",
"chars": 645,
"preview": "ludus:\n - vm_name: \"{{ range_id }}-GOAD-DC01\"\n hostname: \"{{ range_id }}-DC01\"\n template: win2019-server-x64-temp"
},
{
"path": "ad/GOAD-Light/providers/ludus/inventory",
"chars": 606,
"preview": "[default]\n; ------------------------------------------------\n; sevenkingdoms.local\n; -----------------------------------"
},
{
"path": "ad/GOAD-Light/providers/proxmox/inventory",
"chars": 516,
"preview": "[default]\n; ------------------------------------------------\n; sevenkingdoms.local\n; -----------------------------------"
},
{
"path": "ad/GOAD-Light/providers/proxmox/windows.tf",
"chars": 1001,
"preview": "\"dc01\" = {\n name = \"DC01\"\n desc = \"DC01 - windows server 2019 - {{ip_range}}.10\"\n cores "
},
{
"path": "ad/GOAD-Light/providers/virtualbox/Vagrantfile",
"chars": 599,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Light-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/wind"
},
{
"path": "ad/GOAD-Light/providers/virtualbox/inventory",
"chars": 554,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/providers/vmware/Vagrantfile",
"chars": 598,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Light-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/wind"
},
{
"path": "ad/GOAD-Light/providers/vmware/inventory",
"chars": 554,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/providers/vmware_esxi/Vagrantfile",
"chars": 598,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Light-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/wind"
},
{
"path": "ad/GOAD-Light/providers/vmware_esxi/inventory",
"chars": 554,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Light/scripts/archive/acl.ps1",
"chars": 6610,
"preview": "# https://github.com/davidprowe/BadBlood/blob/master/AD_OU_SetACL/Full%20Control%20Permissions.ps1\nImport-Module ActiveD"
},
{
"path": "ad/GOAD-Light/scripts/archive/anonymous_ldap.ps1",
"chars": 445,
"preview": "$anonymousId = New-Object System.Security.Principal.NTAccount \"NT AUTHORITY\\ANONYMOUS LOGON\"\n$secInheritanceAll = [Syste"
},
{
"path": "ad/GOAD-Light/scripts/archive/kerberoasting.ps1",
"chars": 82,
"preview": "Set-ADUser -Identity \"jon.snow\" -ServicePrincipalNames @{Add='HTTP/thewallserver'}"
},
{
"path": "ad/GOAD-Light/scripts/archive/rbcd.ps1",
"chars": 6,
"preview": "# TODO"
},
{
"path": "ad/GOAD-Light/scripts/archive/unconstrained_delegation.ps1",
"chars": 85,
"preview": "Get-ADComputer -Identity \"bravoos\" | Set-ADAccountControl -TrustedForDelegation $true"
},
{
"path": "ad/GOAD-Light/scripts/asrep_roasting.ps1",
"chars": 88,
"preview": "Get-ADUser -Identity \"brandon.stark\" | Set-ADAccountControl -DoesNotRequirePreAuth:$true"
},
{
"path": "ad/GOAD-Light/scripts/constrained_delegation_kerb_only.ps1",
"chars": 500,
"preview": "# https://www.thehacker.recipes/ad/movement/kerberos/delegations/constrained#without-protocol-transition\nSet-ADComputer "
},
{
"path": "ad/GOAD-Light/scripts/constrained_delegation_use_any.ps1",
"chars": 428,
"preview": "# https://www.thehacker.recipes/ad/movement/kerberos/delegations/constrained#with-protocol-transition\nSet-ADUser -Identi"
},
{
"path": "ad/GOAD-Light/scripts/gpo_abuse.ps1",
"chars": 1857,
"preview": "Install-WindowsFeature -Name GPMC\r\n$gpo_exist = Get-GPO -Name \"StarkWallpaper\" -erroraction ignore\r\n\r\nif ($gpo_exist) {\r"
},
{
"path": "ad/GOAD-Light/scripts/ntlm_relay.ps1",
"chars": 852,
"preview": "$task = '/c powershell New-PSDrive -Name \"Public\" -PSProvider \"FileSystem\" -Root \"\\\\Meren\\Private\"'\n$repeat = (New-TimeS"
},
{
"path": "ad/GOAD-Light/scripts/rdp_scheduler.ps1",
"chars": 885,
"preview": "$task = '/c powershell c:\\setup\\bot_rdp.ps1'\n$repeat = (New-TimeSpan -Minutes 1)\n$taskName = \"connect_bot\"\n$user = \"nort"
},
{
"path": "ad/GOAD-Light/scripts/responder.ps1",
"chars": 846,
"preview": "$task = '/c powershell New-PSDrive -Name \"Public\" -PSProvider \"FileSystem\" -Root \"\\\\Bravos\\private\"'\n$repeat = (New-Time"
},
{
"path": "ad/GOAD-Mini/README.md",
"chars": 89,
"preview": "# MINIGOAD\n\nMinimal lab with only sevenkingdoms.local domain and kingslanding DC, no more"
},
{
"path": "ad/GOAD-Mini/data/config.json",
"chars": 10721,
"preview": "{\n\"lab\" : {\n \"hosts\" : {\n \"dc01\" : {\n \"hostname\" : \"kingslanding\",\n \"type\" : \"dc\",\n "
},
{
"path": "ad/GOAD-Mini/data/inventory",
"chars": 2189,
"preview": "[all:vars]\n; domain_name : folder inside ad/\ndomain_name=GOAD-Mini\n; administrator user\nadmin_user=administrator\n\nforce_"
},
{
"path": "ad/GOAD-Mini/data/inventory_disable_vagrant",
"chars": 763,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Mini/providers/aws/inventory",
"chars": 375,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Mini/providers/aws/linux.tf",
"chars": 295,
"preview": "# \"lx01\" = {\n# name = \"lx01\"\n# linux_sku = \"22_04-lts-gen2\"\n# linux_version = \"latest\""
},
{
"path": "ad/GOAD-Mini/providers/aws/windows.tf",
"chars": 289,
"preview": "\"dc01\" = {\n name = \"dc01\"\n domain = \"sevenkingdoms.local\"\n windows_sku = \"2019-Datac"
},
{
"path": "ad/GOAD-Mini/providers/azure/inventory",
"chars": 375,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Mini/providers/azure/windows.tf",
"chars": 353,
"preview": "\"dc01\" = {\n name = \"dc01\"\n publisher = \"MicrosoftWindowsServer\"\n offer = \"Windows"
},
{
"path": "ad/GOAD-Mini/providers/ludus/config.yml",
"chars": 219,
"preview": "ludus:\n - vm_name: \"{{ range_id }}-GOAD-DC01\"\n hostname: \"{{ range_id }}-DC01\"\n template: win2019-server-x64-temp"
},
{
"path": "ad/GOAD-Mini/providers/ludus/inventory",
"chars": 346,
"preview": "[default]\n; ------------------------------------------------\n; sevenkingdoms.local\n; -----------------------------------"
},
{
"path": "ad/GOAD-Mini/providers/proxmox/inventory",
"chars": 256,
"preview": "[default]\n; ------------------------------------------------\n; sevenkingdoms.local\n; -----------------------------------"
},
{
"path": "ad/GOAD-Mini/providers/proxmox/windows.tf",
"chars": 332,
"preview": "\"dc01\" = {\n name = \"DC01\"\n desc = \"DC01 - windows server 2019 - {{ip_range}}.10\"\n cores "
},
{
"path": "ad/GOAD-Mini/providers/virtualbox/Vagrantfile",
"chars": 205,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Mini-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windo"
},
{
"path": "ad/GOAD-Mini/providers/virtualbox/inventory",
"chars": 294,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Mini/providers/vmware/Vagrantfile",
"chars": 205,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Mini-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windo"
},
{
"path": "ad/GOAD-Mini/providers/vmware/inventory",
"chars": 294,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/GOAD-Mini/providers/vmware_esxi/Vagrantfile",
"chars": 205,
"preview": "boxes = [\n # windows server 2019\n { :name => \"GOAD-Mini-DC01\", :ip => \"{{ip_range}}.10\", :box => \"StefanScherer/windo"
},
{
"path": "ad/GOAD-Mini/providers/vmware_esxi/inventory",
"chars": 294,
"preview": "[default]\n; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS\n; servers will break.\n; ------------"
},
{
"path": "ad/NHA/README.md",
"chars": 1530,
"preview": "# NINJA HACKER ACADEMY\n\n<div align=\"center\">\n<img src=\"./files/wwwroot/Content/logo.jpeg\" width=\"300px\"/>\n</div>\n\n- NINJ"
},
{
"path": "ad/NHA/data/config.json",
"chars": 23950,
"preview": "{\n\"lab\" : {\n \"hosts\" : {\n \"dc01\" : {\n \"hostname\" : \"dc-vil\",\n \"type\" : \"dc\",\n "
},
{
"path": "ad/NHA/data/inventory",
"chars": 2106,
"preview": "[all:vars]\n; domain_name : folder inside ad/\ndomain_name=NHA\n; administrator user\nadmin_user=administrator\n\n;force_dns_s"
},
{
"path": "ad/NHA/data/inventory_disable_vagrant",
"chars": 1095,
"preview": "[default]\ndc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=administrator@ninja.hack ansible_"
},
{
"path": "ad/NHA/files/bot.ps1",
"chars": 282,
"preview": "$pass=ConvertTo-SecureString 'Il0ve!R4men_<3' -AsPlainText -Force;\n$creds=New-Object System.Management.Automation.PSCred"
},
{
"path": "ad/NHA/files/flags/dc_academy.txt",
"chars": 43,
"preview": "NHA{WellD0ne_Sense1!_nowroot_secOnd_Domain}"
},
{
"path": "ad/NHA/files/flags/dc_final.txt",
"chars": 35,
"preview": "NHA{CongraTul@T1ions_Young_HoKage!}"
},
{
"path": "ad/NHA/files/flags/share.txt",
"chars": 27,
"preview": "NHA{Nice_DElegat1on_Dude!!}"
},
{
"path": "ad/NHA/files/flags/sql_high.txt",
"chars": 26,
"preview": "NHA{OwwwYouTouchMyPatato!}"
},
{
"path": "ad/NHA/files/flags/sql_low.txt",
"chars": 26,
"preview": "NHA{MSSQL_Inject1on_FTW;)}"
},
{
"path": "ad/NHA/files/flags/web.txt",
"chars": 31,
"preview": "NHA{Computer_ContainerOOwnage!}"
},
{
"path": "ad/NHA/files/wwwroot/Content/Site.css",
"chars": 535,
"preview": "body {\r\n padding-top: 50px;\r\n padding-bottom: 20px;\r\n}\r\n\r\n/* Set padding to keep content from hitting the edges *"
},
{
"path": "ad/NHA/files/wwwroot/Content/bootstrap-theme.css",
"chars": 25682,
"preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://"
},
{
"path": "ad/NHA/files/wwwroot/Content/bootstrap.css",
"chars": 145933,
"preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://"
},
{
"path": "ad/NHA/files/wwwroot/Global.asax",
"chars": 97,
"preview": "<%@ Application Codebehind=\"Global.asax.cs\" Inherits=\"adrutro.MvcApplication\" Language=\"C#\" %>\r\n"
},
{
"path": "ad/NHA/files/wwwroot/Models/AcademyModel.edmx.diagram",
"chars": 618,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<edmx:Edmx Version=\"3.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2009/11/ed"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/bootstrap.js",
"chars": 75484,
"preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT licen"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/jquery-3.4.1.js",
"chars": 280364,
"preview": "/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * C"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/jquery-3.4.1.slim.js",
"chars": 227022,
"preview": "/*!\n * jQuery JavaScript Library v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-aja"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/jquery.validate.js",
"chars": 48695,
"preview": "/*!\r\n * jQuery Validation Plugin v1.17.0\r\n *\r\n * https://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2017 Jörn Zaefferer"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/jquery.validate.unobtrusive.js",
"chars": 19366,
"preview": "// Unobtrusive validation support library for jQuery and jQuery Validate\n// Copyright (c) .NET Foundation. All rights re"
},
{
"path": "ad/NHA/files/wwwroot/Scripts/modernizr-2.8.3.js",
"chars": 51351,
"preview": "/*!\n * Modernizr v2.8.3\n * www.modernizr.com\n *\n * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\n * Available under "
},
{
"path": "ad/NHA/files/wwwroot/Views/Home/About.cshtml",
"chars": 197,
"preview": "@{\r\n ViewBag.Title = \"About\";\r\n}\r\n<h2>@ViewBag.Title.</h2>\r\n\r\n<p>This is the website of the Ninja Academy. Use the s"
},
{
"path": "ad/NHA/files/wwwroot/Views/Home/Contact.cshtml",
"chars": 616,
"preview": "@{\r\n ViewBag.Title = \"Contact\";\r\n}\r\n<h2>@ViewBag.Title.</h2>\r\n<h3>@ViewBag.Message</h3>\r\n\r\n<address>\r\n Ninja Acad"
},
{
"path": "ad/NHA/files/wwwroot/Views/Home/Index.cshtml",
"chars": 1032,
"preview": "@{\r\n ViewBag.Title = \"Home Page\";\r\n}\r\n\r\n<div class=\"jumbotron\">\r\n <h1>Academy.Ninja.Lan</h1>\r\n <p class=\"lead\""
},
{
"path": "ad/NHA/files/wwwroot/Views/Shared/Error.cshtml",
"chars": 275,
"preview": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta name=\"viewport\" content=\"width=device-width\" />\r\n <title>Error</title>\r\n<"
},
{
"path": "ad/NHA/files/wwwroot/Views/Shared/_Layout.cshtml",
"chars": 1724,
"preview": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\" />\r\n <meta name=\"viewport\" content=\"width=device-width, i"
},
{
"path": "ad/NHA/files/wwwroot/Views/Students/Create.cshtml",
"chars": 2254,
"preview": "@model adrutro.Models.Student\r\n\r\n@{\r\n ViewBag.Title = \"Create\";\r\n}\r\n\r\n<h2>Create</h2>\r\n\r\n\r\n@using (Html.BeginForm())"
},
{
"path": "ad/NHA/files/wwwroot/Views/Students/Delete.cshtml",
"chars": 1027,
"preview": "@model adrutro.Models.Student\r\n\r\n@{\r\n ViewBag.Title = \"Delete\";\r\n}\r\n\r\n<h2>Delete</h2>\r\n\r\n<h3>Are you sure you want t"
},
{
"path": "ad/NHA/files/wwwroot/Views/Students/Details.cshtml",
"chars": 767,
"preview": "@model adrutro.Models.Student\r\n\r\n@{\r\n ViewBag.Title = \"Details\";\r\n}\r\n\r\n<h2>Details</h2>\r\n\r\n<div>\r\n <h4>Student</h"
},
{
"path": "ad/NHA/files/wwwroot/Views/Students/Edit.cshtml",
"chars": 1893,
"preview": "@model adrutro.Models.Student\r\n\r\n@{\r\n ViewBag.Title = \"Edit\";\r\n}\r\n\r\n<h2>Edit</h2>\r\n\r\n\r\n@using (Html.BeginForm())\r\n{\r"
},
{
"path": "ad/NHA/files/wwwroot/Views/Students/Index.cshtml",
"chars": 1499,
"preview": "@model IEnumerable<adrutro.Models.Student>\r\n\r\n@{\r\n ViewBag.Title = \"Students\";\r\n}\r\n\r\n<h2>Students</h2>\r\n\r\n<p>\r\n <"
},
{
"path": "ad/NHA/files/wwwroot/Views/Web.config",
"chars": 1926,
"preview": "<?xml version=\"1.0\"?>\r\n\r\n<configuration>\r\n <configSections>\r\n <sectionGroup name=\"system.web.webPages.razor\" type=\""
},
{
"path": "ad/NHA/files/wwwroot/Views/_ViewStart.cshtml",
"chars": 55,
"preview": "@{\r\n Layout = \"~/Views/Shared/_Layout.cshtml\";\r\n}\r\n"
},
{
"path": "ad/NHA/files/wwwroot/Web.config",
"chars": 4444,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--\r\n For more information on how to configure your ASP.NET application, plea"
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/Microsoft.CSharp.Core.targets",
"chars": 6816,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/Microsoft.Managed.Core.targets",
"chars": 7515,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/Microsoft.VisualBasic.Core.targets",
"chars": 6234,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache"
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/VBCSCompiler.exe.config",
"chars": 8097,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/csc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/csc.rsp",
"chars": 1494,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/csi.exe.config",
"chars": 8476,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/csi.rsp",
"chars": 277,
"preview": "/r:System\r\n/r:System.Core\r\n/r:Microsoft.CSharp\r\n/r:System.ValueTuple.dll\r\n/u:System\r\n/u:System.IO\r\n/u:System.Collection"
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/vbc.exe.config",
"chars": 7880,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache "
},
{
"path": "ad/NHA/files/wwwroot/bin/roslyn/vbc.rsp",
"chars": 1632,
"preview": "# Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in "
},
{
"path": "ad/NHA/providers/aws/inventory",
"chars": 672,
"preview": "[default]\ndc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCT-654"
},
{
"path": "ad/NHA/providers/aws/windows.tf",
"chars": 1565,
"preview": "# t2.medium = 2cpu / 4GB\n# t2.large = 2cpu / 8GB\n# t2.xlarge = 4cpu / 16GB\n\"dc01\" = {\n name = \"dc01\"\n d"
},
{
"path": "ad/NHA/providers/azure/inventory",
"chars": 672,
"preview": "[default]\ndc01 ansible_host={{ip_range}}.10 dns_domain=dc01 dict_key=dc01 ansible_user=ansible ansible_password=8dCT-654"
},
{
"path": "ad/NHA/providers/azure/windows.tf",
"chars": 1656,
"preview": "\"dc01\" = {\n name = \"dc01\"\n publisher = \"MicrosoftWindowsServer\"\n offer = \"Windows"
}
]
// ... and 604 more files (download for full content)
About this extraction
This page contains the full source code of the Orange-Cyberdefense/GOAD GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 804 files (2.9 MB), approximately 804.4k tokens, and a symbol index with 653 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.