My second requests script for a wargame
Just a few points of advice:


avoid using globals. The reason they are bad is that they allow functions to have hidden (as in non-obvious and undeclared) and thus hard to understand side effects. Also, this can lead to spaghetti code.
try to use str.format when you print out strings:

print(KEYWORD + ":" + exploit(HOST, credentials))


should be:

print('{}:{}'.format(KEYWORD, exploit(HOST, credentials)))

your docstrings are partially good. I'm saying partially because telling me things that I already know isn't helping. For example, :param host: or :param credentials:. I already know these are parameters to that function. You could at least specify the data structure they denote.
consider rewriting this: 

(line for line in response_lines if PATTERN.match(line))


like this:

(line 
for line in response_lines 
if PATTERN.match(line))


The reason I like writing it like this is that it allows you to see more easily that you've changed you're code (on a svn / git repo).