diff --git a/tests/test.py b/tests/test.py index bbd91bb..77b6d35 100644 --- a/tests/test.py +++ b/tests/test.py @@ -57,7 +57,119 @@ class TestModules(unittest.TestCase): response.connection.close() print(response.json()) - def test_email_attachment(self): + def test_email_attachment_basic(self): + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(bytes(f.read(), 'utf8')), + 'utf8')}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_unpack(self): + raise NotImplementedError("NOT IMPLEMENTED") + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(bytes(f.read(), 'utf8')), + 'utf8')}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware(self): + raise NotImplementedError("NOT IMPLEMENTED") + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(bytes(f.read(), 'utf8')), + 'utf8')}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_password_in_body(self): + raise NotImplementedError("NOT IMPLEMENTED") + test_email = helper_create_email({"body":"""The password is infected + + Best, + "some random malware researcher who thinks he is slick." """}) + + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(test_email)}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_password_in_body_sentance(self): + raise NotImplementedError("NOT IMPLEMENTED") + test_email = helper_create_email({"body":"""The password is infected. + + Best, + "some random malware researcher who thinks he is slick." """}) + + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(test_email)}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_password_in_html_body(self): + raise NotImplementedError("NOT IMPLEMENTED") + # TODO Encrypt baseline attachment with "i like pineapples!!!" + # TODO Figure out how to set HTML body + test_email = helper_create_email({"body":"""The password is found in this email. + It is "i like pineapples!!!". + + Best, + "some random malware researcher who thinks he is slick." """}) + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_password_in_subject(self): + raise NotImplementedError("NOT IMPLEMENTED") + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(bytes(f.read(), 'utf8')), + 'utf8')}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_passphraise_in_quotes(self): + raise NotImplementedError("NOT IMPLEMENTED") + # TODO Encrypt baseline attachment with "i like pineapples!!!" + test_email = helper_create_email({"body":"""The password is found in this email. + It is "i like pineapples!!!". + + Best, + "some random malware researcher who thinks he is slick." """}) + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(test_email)}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_as_malware_passphraise_in_brackets(self): + raise NotImplementedError("NOT IMPLEMENTED") + # TODO Encrypt baseline attachment with "i like pineapples!!!" + test_email = helper_create_email({"body":"""The password is found in this email. + It is [i like pineapples!!!]. + + Best, + "some random malware researcher who thinks he is slick." """}) + + with open("tests/test_attachment.eml", "r") as f: + data = json.dumps({"module":"email_import", + "data":str(base64.b64encode(test_email)}).encode('utf8') + response = requests.post(self.url + "query", data=data) + response.connection.close() + print(response.json()) + + def test_email_attachment_unpack_and_as_malware(self): + raise NotImplementedError("NOT IMPLEMENTED") with open("tests/test_attachment.eml", "r") as f: data = json.dumps({"module":"email_import", "data":str(base64.b64encode(bytes(f.read(), 'utf8')), @@ -79,5 +191,22 @@ class TestModules(unittest.TestCase): assert(response) response.connection.close() + + +def helper_create_email(**conf): + raise NotImplementedError("NOT IMPLEMENTED") + attachment_name = conf.get("attachment_name", None) + subject = conf.get("subject", "Hello friend this is a test email") + subject = conf.get("subject", "Hello friend this is a test email") + received = conf.get("Received", ["""Received: via dmail-2008.19 for +INBOX;\n\tTue, 3 Feb 2009 19:29:12 -0600 (CST)""","""Received: from abc.luxsci.com ([10.10.10.10])\n\tby xyz.luxsci.com (8.13.7/8.13.7) with\n\tESMTP id n141TCa7022588\n\tfor ;\n\tTue, 3 Feb 2009 19:29:12 -0600""", """Received: from [192.168.0.3] (verizon.net [44.44.44.44])\n\t(user=test@sender.com mech=PLAIN bits=2)\n\tby abc.luxsci.com (8.13.7/8.13.7) with\n\tESMTP id n141SAfo021855\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA\n\tbits=256 verify=NOT) for ;\n\tTue, 3 Feb 2009 19:28:10 -0600"""]) + return_path = conf.get("Return-Path", "Return-Path: evil_spoofer@example.com") + + + + + + + + if __name__ == '__main__': unittest.main() diff --git a/tests/test_no_attach.eml b/tests/test_no_attach.eml index 50ef255..584ff86 100644 --- a/tests/test_no_attach.eml +++ b/tests/test_no_attach.eml @@ -21,7 +21,7 @@ MIME-Version: 1.0 To: "Testy Testerson" Cc: "Second Person" , "Other Friend" , "Last One" Subject: Example Message -Content-Type: multipart/alternative; boundary=e89a8f3baa71eda1b3053f7a2c28 +Content-Type: multipart/alternative; boundary="e89a8f3baa71eda1b3053f7a2c28" MIME-Version: 1.0 --e89a8f3baa71eda1b3053f7a2c28