@@ -14,12 +14,14 @@ provider "aws" {
1414}
1515
1616locals {
17- # Set your SSH public keys here for who you want to be able to access the instance
18- # Remove the existing keys
19- ssh-pub-key-1 = " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChXVB0+ZEc2KB1147WHGbhSUGyB2xeLnwJ4CW9V9hWdTgGWMuiWOcgFc1BGGbQ2I6Be939/JzqmsNOlguB0Qq5OJgcHelgB2+qAqEb1I9gYwKFFoIOIpiG5WNNKfbY+C2OjW6zCy9n0bNdXuSDzG2becfeCtSurdoVQNwt54AEXNtQAjUqPk+T4pHpMdWpDIMamDw8PY8PG3hypr6ao5vy/vBOaIKezAGIsDnr8eVIVkaV/TCE9RRQLxpN/tXCowzRbAmIko7so5iKoQOXSzHLMk/dehDk4oQg8pdRG7n/QW3NXFg1KbS3STgUb/8uigwAVRWCEd9LysDaceUISZ2JOP2f692f/z2rA1gCQiM5qJBOTGzL980PfcnTcKA8LI7A//S+UdWEONThQlpnZf+aFTaLHLvuBNO4awOoMorDkI7FMUvyGTHKJVHqebHwBoFMKghn9tzQ/GKK+o0zNgZ5nZaVGRRzRhxv/UueYVPPlRAf0w5GRPzx4vyOc7PE4M6amIDrIG8xojVFn8m3KwQumU78m297HzWtK3CSJSDrU1k2gpHdM/8AArRtYhIyPl7w/CaC+GrVMpG3I4r1HFzR92qQ66aUanoqr40CXwL+kbyZirt3u4km2c140/qX3UJQYcmObk43MjepFxuVmRIqCqjsfBFp4ZpIqOhQdsr37Q=="
20- ssh-pub-key-2 = " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNNsdJTe3Z6n+Qa2i8bVAnT7Db/23tOCKnBmeSBtqkU1EyVL2ByV22qm6SqvOqPCokuXFeY+0llkDWps9K/ZOEAlhGIZ6iRZQVeuc4O37g1Jd5Pe+ITAorqhSXpEzefr2rbR4zfKqI2eQs1LxT+RRrx+e4JqTucGBqIxJofuz2Wka06dXzFtUYv/3wPs5KAdGnLGawnQRhE0LibeSP5ut2NJ0xTkbWBoBgyWMKrzR0+iyqFNR9RghcJLvcmFK/J6KpGrc+FcJQKbQGBkMyR6+Tfs9rwnoOW4JyIpM5XkkhXFrBxVckM1vR6Wt0cNJPlNBBngw9TytnIgijbyjixru3rJd2RU1yjvC5a1SMwhyfYaZAJlNCuJmNDTwKTXeoi5hi7nqmNP7EoywWz+y1Z6BHu02waclYvkMMozU7/Nn6j6EIltbghsNiFL4I2amQDcfRMjjhYqV7wzhPsGV4OSlOwvziEO9kbyl2nPJtYAMKQd5Ox8e8Y6Xu7qFnOJGLKLMr2FZm+xCh8IO5428YbziIqo8JUSQknFaTW+wQYPxbNys7oyeOd5OH8pkvzwyyQYEu83AiMcwzbqLwBdNxoQ0Q17pQw+jnFuPq4EgMrGupI8hwYRVzR9AkQtOABZ0hi9sSDT4VAxQvbcymnCed3MGMi4urnASOXWcHQXgfaxPK2w=="
21- ssh-pub-key-3 = " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQSE+tf9oN32B40RypJH8ov7A2K/V45F3R3DblhI8n7H1l/JnbJwsgYAmQMLGqcXlCbre8xZ5qEyR+vPVGF9/2vdnF1Fke3bNuyx8vpdFz+Kx3zDXJ7G20R2sNziVOFnRK93Go/pBtpxpWrrR9sI5vpdI4Cjp7sxFbo7/lL/fipBLA1H5ieUo7b0vVDM8cdNt7aTtc6FmSmjT2T1x4ILAuKptVU68JTLZoEE29RwdCZgkjPkZuaBHF78c3vQXbp8p4mA3gqGG9SYgSoPIGDBY1YQCkBiUm+m4JA+5LmRto9AAZjRff1NbQvEdzFojMuBF4bWTSasteLZwkkMdbP8XP cardno:000606445046"
22- # The office-ips below are set to the GDS office egress ips, this local var is used to whitelist inbound ssh connections
17+ # Set your SSH public keys here for who you want to be able to access the instance
18+ # Remove the existing keys
19+ ssh-keys = [
20+ " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChXVB0+ZEc2KB1147WHGbhSUGyB2xeLnwJ4CW9V9hWdTgGWMuiWOcgFc1BGGbQ2I6Be939/JzqmsNOlguB0Qq5OJgcHelgB2+qAqEb1I9gYwKFFoIOIpiG5WNNKfbY+C2OjW6zCy9n0bNdXuSDzG2becfeCtSurdoVQNwt54AEXNtQAjUqPk+T4pHpMdWpDIMamDw8PY8PG3hypr6ao5vy/vBOaIKezAGIsDnr8eVIVkaV/TCE9RRQLxpN/tXCowzRbAmIko7so5iKoQOXSzHLMk/dehDk4oQg8pdRG7n/QW3NXFg1KbS3STgUb/8uigwAVRWCEd9LysDaceUISZ2JOP2f692f/z2rA1gCQiM5qJBOTGzL980PfcnTcKA8LI7A//S+UdWEONThQlpnZf+aFTaLHLvuBNO4awOoMorDkI7FMUvyGTHKJVHqebHwBoFMKghn9tzQ/GKK+o0zNgZ5nZaVGRRzRhxv/UueYVPPlRAf0w5GRPzx4vyOc7PE4M6amIDrIG8xojVFn8m3KwQumU78m297HzWtK3CSJSDrU1k2gpHdM/8AArRtYhIyPl7w/CaC+GrVMpG3I4r1HFzR92qQ66aUanoqr40CXwL+kbyZirt3u4km2c140/qX3UJQYcmObk43MjepFxuVmRIqCqjsfBFp4ZpIqOhQdsr37Q==" ,
21+ " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNNsdJTe3Z6n+Qa2i8bVAnT7Db/23tOCKnBmeSBtqkU1EyVL2ByV22qm6SqvOqPCokuXFeY+0llkDWps9K/ZOEAlhGIZ6iRZQVeuc4O37g1Jd5Pe+ITAorqhSXpEzefr2rbR4zfKqI2eQs1LxT+RRrx+e4JqTucGBqIxJofuz2Wka06dXzFtUYv/3wPs5KAdGnLGawnQRhE0LibeSP5ut2NJ0xTkbWBoBgyWMKrzR0+iyqFNR9RghcJLvcmFK/J6KpGrc+FcJQKbQGBkMyR6+Tfs9rwnoOW4JyIpM5XkkhXFrBxVckM1vR6Wt0cNJPlNBBngw9TytnIgijbyjixru3rJd2RU1yjvC5a1SMwhyfYaZAJlNCuJmNDTwKTXeoi5hi7nqmNP7EoywWz+y1Z6BHu02waclYvkMMozU7/Nn6j6EIltbghsNiFL4I2amQDcfRMjjhYqV7wzhPsGV4OSlOwvziEO9kbyl2nPJtYAMKQd5Ox8e8Y6Xu7qFnOJGLKLMr2FZm+xCh8IO5428YbziIqo8JUSQknFaTW+wQYPxbNys7oyeOd5OH8pkvzwyyQYEu83AiMcwzbqLwBdNxoQ0Q17pQw+jnFuPq4EgMrGupI8hwYRVzR9AkQtOABZ0hi9sSDT4VAxQvbcymnCed3MGMi4urnASOXWcHQXgfaxPK2w==" ,
22+ " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQSE+tf9oN32B40RypJH8ov7A2K/V45F3R3DblhI8n7H1l/JnbJwsgYAmQMLGqcXlCbre8xZ5qEyR+vPVGF9/2vdnF1Fke3bNuyx8vpdFz+Kx3zDXJ7G20R2sNziVOFnRK93Go/pBtpxpWrrR9sI5vpdI4Cjp7sxFbo7/lL/fipBLA1H5ieUo7b0vVDM8cdNt7aTtc6FmSmjT2T1x4ILAuKptVU68JTLZoEE29RwdCZgkjPkZuaBHF78c3vQXbp8p4mA3gqGG9SYgSoPIGDBY1YQCkBiUm+m4JA+5LmRto9AAZjRff1NbQvEdzFojMuBF4bWTSasteLZwkkMdbP8XP cardno:000606445046"
23+ ]
24+ # The office-ips below are set to the GDS office egress ips, this local var is used to whitelist inbound ssh connections
2325 office-ips = [
2426 " 85.133.67.244/32" ,
2527 " 213.86.153.212/32" ,
@@ -41,7 +43,7 @@ resource "aws_vpc" "vuln-tooling" {
4143}
4244
4345resource "aws_internet_gateway" "vuln-tooling-igw" {
44- vpc_id = " ${ aws_vpc . vuln-tooling . id } "
46+ vpc_id = aws_vpc. vuln-tooling . id
4547
4648 tags = {
4749 Name = " Vulnerability Tooling Internet Gateway"
@@ -50,8 +52,8 @@ resource "aws_internet_gateway" "vuln-tooling-igw" {
5052}
5153
5254resource "aws_subnet" "vuln-tooling-subnet" {
53- vpc_id = " ${ aws_vpc . vuln-tooling . id } "
54- cidr_block = " 10.0.1.0/24"
55+ vpc_id = aws_vpc. vuln-tooling . id
56+ cidr_block = " 10.0.1.0/24"
5557 availability_zone = " eu-west-2a"
5658 map_public_ip_on_launch = true
5759
@@ -62,11 +64,11 @@ resource "aws_subnet" "vuln-tooling-subnet" {
6264}
6365
6466resource "aws_route_table" "vuln-tooling-route-table" {
65- vpc_id = " ${ aws_vpc . vuln-tooling . id } "
67+ vpc_id = aws_vpc. vuln-tooling . id
6668
6769 route {
68- cidr_block = " 0.0.0.0/0"
69- gateway_id = " ${ aws_internet_gateway . vuln-tooling-igw . id } "
70+ cidr_block = " 0.0.0.0/0"
71+ gateway_id = aws_internet_gateway. vuln-tooling-igw . id
7072 }
7173
7274 tags = {
@@ -76,8 +78,8 @@ resource "aws_route_table" "vuln-tooling-route-table" {
7678}
7779
7880resource "aws_route_table_association" "vuln-tooling-association" {
79- subnet_id = " ${ aws_subnet . vuln-tooling-subnet . id } "
80- route_table_id = " ${ aws_route_table . vuln-tooling-route-table . id } "
81+ subnet_id = aws_subnet. vuln-tooling-subnet . id
82+ route_table_id = aws_route_table. vuln-tooling-route-table . id
8183}
8284
8385data "aws_ami" "vuln-tooling-kali-ami" {
@@ -100,22 +102,10 @@ data "aws_ami" "vuln-tooling-kali-ami" {
100102 }
101103}
102104
103- data "template_file" "kali_userdata" {
104- template = " ${ file (" cloudinit/kali-instance.yaml" )} "
105-
106- vars = {
107- hostname = " kali-pentest-01"
108- ssh-pub-key-1 = " ${ local . ssh-pub-key-1 } "
109- ssh-pub-key-2 = " ${ local . ssh-pub-key-2 } "
110- ssh-pub-key-2 = " ${ local . ssh-pub-key-3 } "
111- bootstrap-tools = " ${ file (" cloudinit/bootstrap-tools.sh.tpl" )} "
112- }
113- }
114-
115105resource "aws_security_group" "kali-pentest-sg" {
116106 name = " kali-pentest-sg"
117107 description = " Kali PenTest Instance Security Group"
118- vpc_id = " ${ aws_vpc . vuln-tooling . id } "
108+ vpc_id = aws_vpc. vuln-tooling . id
119109
120110 ingress {
121111 from_port = 22
@@ -125,9 +115,9 @@ resource "aws_security_group" "kali-pentest-sg" {
125115 }
126116
127117 egress {
128- from_port = 0
129- to_port = 0
130- protocol = - 1
118+ from_port = 0
119+ to_port = 0
120+ protocol = - 1
131121 cidr_blocks = [" 0.0.0.0/0" ]
132122 }
133123
@@ -138,18 +128,31 @@ resource "aws_security_group" "kali-pentest-sg" {
138128}
139129
140130resource "aws_instance" "kali-pentest" {
141- ami = " ${ data . aws_ami . vuln-tooling-kali-ami . id } "
131+ ami = data. aws_ami . vuln-tooling-kali-ami . id
142132 instance_type = " t2.medium"
143- user_data = " ${ data . template_file . kali_userdata . rendered } "
144- monitoring = " true"
145- subnet_id = " ${ aws_subnet . vuln-tooling-subnet . id } "
133+
134+ user_data = templatefile (
135+ " ${ path . module } /cloudinit/kali-instance.yaml" ,
136+ {
137+ hostname = " kali-pentest-01"
138+ ssh-keys = local.ssh- keys
139+ bootstrap-tools = " ${ file (" cloudinit/bootstrap-tools.sh.tpl" )} "
140+ }
141+ )
142+
143+ monitoring = " true"
144+ subnet_id = aws_subnet. vuln-tooling-subnet . id
146145
147146 vpc_security_group_ids = [
148- " ${ aws_security_group . kali-pentest-sg . id } " ,
147+ aws_security_group . kali-pentest-sg . id ,
149148 ]
150149
151150 tags = {
152151 Name = " Vulnerability Tooling Kali Pentest Instance"
153152 ManagedBy = " terraform"
154153 }
155154}
155+
156+ output "instance_ip_addr" {
157+ value = aws_instance. kali-pentest . public_ip
158+ }
0 commit comments