diff --git a/gophish-main.tf b/gophish-main.tf new file mode 100644 index 00000000..7cea4666 --- /dev/null +++ b/gophish-main.tf @@ -0,0 +1,112 @@ +provider "aws" { + region = "eu-central-1" +} + +// details of the aws instance +resource "aws_instance" "example" { + ami = "ami-40d5672f" + instance_type = "t2.micro" + vpc_security_group_ids = ["${aws_security_group.instance.id}"] + key_name = "${aws_key_pair.auth.id}" + + tags { + Name = "phishing-machine" + } + + user_data = < config.json + sudo ./gophish + + +HEREDOC + +} + +// details of security groups +resource "aws_security_group" "instance" { + name = "phishing-machine" + description = "Phishing Campaign 2018 - Managed by Terraform" + ingress { + from_port = 3333 + to_port = 3333 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + from_port = 8080 + to_port = 8080 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + from_port = 443 + to_port = 443 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +resource "aws_key_pair" "auth" { + key_name = "${var.key_name}" + public_key = "${file(var.public_key_path)}" +} + +variable "public_key_path" { + description = "Enter the path to the SSH Public Key to add to AWS." + default = "~/.ssh/id_rsa.pub" +} + +variable "key_name" { + default = "example" // insert your keypair name here + description = "Desired name of AWS key pair" +} + + +// outputs ip when running "terraform apply" +output "public_ip" { + value = "${aws_instance.example.public_ip}" +}