diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb b/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb
index b0eff5f2e..4f3ae8baa 100644
--- a/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb
+++ b/modules/generators/challenges/misc/programming/echo_string/secgen_local/low.rb
@@ -1,3 +1,8 @@
+# #####################
+# Programming Challenge
+# Echo string - Repeat a string and repeat back to the script
+# #####################
+
require 'securerandom'
require 'timeout'
diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb b/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb
new file mode 100644
index 000000000..21d85b251
--- /dev/null
+++ b/modules/generators/challenges/misc/programming/echo_string/secgen_local/medium.rb
@@ -0,0 +1,37 @@
+# #####################
+# Programming Challenge
+# Echo string - Medium: Reverse a string and repeat it back to the script
+# #####################
+
+require 'securerandom'
+require 'timeout'
+
+$stdout.sync = true # Disable stdout caching (for challenges that can be run over the network)
+puts 'Prepare yourself. You need to work quickly for this challenge.'
+
+sleep 2
+puts 'Echo the string back to me, in reverse, before the script times out. Try writing a script of your own to make it easier!'
+sleep 2
+puts 'Get ready, here we go...'
+sleep 2
+# Generate random string
+string = [SecureRandom.base64(rand(20..40)), SecureRandom.hex(rand(20..40))].sample
+
+puts string
+STDOUT.flush
+
+begin
+ Timeout.timeout 5 do
+ response = gets.chomp
+ if response == string.reverse
+ puts File.read('flag')
+ else
+ puts 'Incorrect answer!'
+ exit
+ end
+ end
+rescue Timeout::Error
+ puts 'Too slow!'
+ exit
+end
+
diff --git a/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml b/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml
index e05422655..860fcfb1f 100644
--- a/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml
+++ b/modules/generators/challenges/misc/programming/echo_string/secgen_metadata.xml
@@ -18,9 +18,9 @@
difficulty
- low
-
-
+
+ medium
+