Projects STRLCPY aardwolf Commits 2acd0411
🤬
  • ■ ■ ■ ■
    aardwolf/_version.py
    1 1   
    2  -__version__ = "0.1.0"
     2 +__version__ = "0.1.1"
    3 3  __banner__ = \
    4 4  """
    5 5  # aardwolf %s
    skipped 2 lines
  • ■ ■ ■ ■ ■
    aardwolf/commons/target.py
    skipped 95 lines
    96 96   proxies = unitarget.proxies,
    97 97   protocol = unitarget.protocol,
    98 98   dns = unitarget.dns,
     99 + dialect = dialect,
    99 100   )
    100 101  
    101 102   return target
    skipped 37 lines
  • ■ ■ ■ ■ ■ ■
    aardwolf/examples/scanners/__main__.py
    skipped 5 lines
    6 6  from aardwolf.commons.iosettings import RDPIOSettings
    7 7  from asysocks.unicomm.common.scanner.targetgen import UniTargetGen
    8 8  from asysocks.unicomm.common.scanner.scanner import UniScanner
    9  -from aiosmb import logger
     9 +from aardwolf import logger
    10 10   
    11 11  from aardwolf.examples.scanners.rdplogin import RDPLoginScanner
    12 12  from aardwolf.examples.scanners.rdpscaps import RDPCapabilitiesScanner
    skipped 32 lines
    45 45   print('No targets defined!')
    46 46   return
    47 47  
    48  - logger.setLevel(logging.CRITICAL)
     48 + logger.setLevel(logging.DEBUG)
    49 49   
    50 50   iosettings = RDPIOSettings()
    51 51   iosettings.channels = []
    skipped 27 lines
  • ■ ■ ■ ■ ■ ■
    aardwolf/vncconnection.py
    skipped 27 lines
    28 28  from aardwolf.commons.iosettings import RDPIOSettings
    29 29  from asyauth.common.credentials import UniCredential
    30 30  from asyauth.common.constants import asyauthSecret
     31 +from asysocks.unicomm.client import UniClient
     32 +from asysocks.unicomm.common.connection import UniConnection
     33 +from asysocks.unicomm.common.packetizers import StreamPacketizer
    31 34   
    32 35  from PIL import Image
    33 36  try:
    skipped 22 lines
    56 59   self.credentials = credentials
    57 60   self.authapi = None
    58 61   self.iosettings = iosettings
     62 + self.__connection:UniConnection = None
    59 63   self.shared_flag = False
    60 64   self.client_version = '003.008'
    61 65   self.server_version = None
    skipped 110 lines
    172 176   async def terminate(self):
    173 177   try:
    174 178   if self.__writer is not None:
    175  - self.__writer.close()
     179 + await self.__writer.close()
    176 180   if self.__refresh_screen_task is not None:
    177 181   self.__refresh_screen_task.cancel()
    178 182   if self.__reader_loop_task is not None:
    skipped 23 lines
    202 206   Performs the entire connection sequence
    203 207   """
    204 208   try:
    205  - # starting lower-layer transports
    206  - logger.debug('Selecting network')
    207  - remote_socket, err = await NetworkSelector.select(self.target)
    208  - if err is not None:
    209  - raise err
    210  - 
    211  - logger.debug('Connecting sockets')
    212  - _, err = await remote_socket.connect()
    213  - if err is not None:
    214  - raise err
    215  -
    216  - logger.debug('Wrapping sockets to streamer')
    217  - self.__reader, self.__writer = await TCPStream.from_tcpsocket(remote_socket)
     209 + packetizer = StreamPacketizer()
     210 + client = UniClient(self.target, packetizer)
     211 + self.__connection = await client.connect()
     212 + asyncio.create_task(self.__connection.stream())
     213 + self.__reader = self.__connection.packetizer
     214 + self.__writer = self.__connection
    218 215   
    219 216   logger.debug('Performing banner exchange')
    220 217   _, err = await self.__banner_exchange()
    skipped 56 lines
    277 274   logger.debug('Server version: %s' % self.server_version)
    278 275   version_reply = b'RFB %s\n' % self.client_version.encode()
    279 276   logger.debug('Version reply: %s' % version_reply)
    280  - self.__writer.write(version_reply)
     277 + await self.__writer.write(version_reply)
    281 278   return True, None
    282 279   except Exception as e:
    283 280   return None, e
    skipped 34 lines
    318 315  
    319 316   elif self.__selected_security_type == 2:
    320 317   logger.debug('Selecting default VNC auth type')
    321  - self.__writer.write(bytes([self.__selected_security_type]))
     318 + await self.__writer.write(bytes([self.__selected_security_type]))
    322 319   challenge = await self.__reader.readexactly(16)
    323 320   
    324 321   # no username used here, but we support RDP as well
    skipped 14 lines
    339 336   newkey+= bytes([btgt])
    340 337   ctx = DES(newkey, mode = MODE_ECB, IV = None)
    341 338   response = ctx.encrypt(challenge)
    342  - self.__writer.write(response)
     339 + await self.__writer.write(response)
    343 340   
    344 341   else:
    345 342   raise Exception('Unsupported security type selected!')
    skipped 15 lines
    361 358   async def __client_init(self):
    362 359   try:
    363 360   # sending client init
    364  - self.__writer.write(bytes([int(self.shared_flag)]))
     361 + await self.__writer.write(bytes([int(self.shared_flag)]))
    365 362   # reading server_init
    366 363   framebuffer_width = await self.__reader.readexactly(2)
    367 364   self.width = int.from_bytes(framebuffer_width, byteorder = 'big', signed = False)
    skipped 66 lines
    434 431   async def send_key_char(self, char, is_pressed):
    435 432   try:
    436 433   msg = pack("!BBxxI", 4, int(is_pressed), char)
    437  - self.__writer.write(msg)
     434 + await self.__writer.write(msg)
    438 435   return True, None
    439 436   except Exception as e:
    440 437   traceback.print_exc()
    skipped 27 lines
    468 465   if buttoncode == 5: buttonmask |= 16
    469 466  
    470 467   msg = pack("!BBHH", 5, buttonmask, xPos, yPos)
    471  - self.__writer.write(msg)
     468 + await self.__writer.write(msg)
    472 469   return True, None
    473 470   except Exception as e:
    474 471   traceback.print_exc()
    skipped 112 lines
    587 584   txtdata = indata.data.encode('latin-1')
    588 585   msg = pack("!BxxxI", 6, len(txtdata))
    589 586   msg += txtdata
    590  - self.__writer.write(msg)
     587 + await self.__writer.write(msg)
    591 588   except Exception as e:
    592 589   traceback.print_exc()
    593 590   continue
    skipped 57 lines
    651 648   
    652 649   async def __reader_loop(self):
    653 650   try:
     651 + ctr = 0
    654 652   while True:
    655 653   msgtype = await self.__reader.readexactly(1)
    656 654   msgtype = ord(msgtype)
    skipped 129 lines
    786 784   for encoding in list_of_encodings:
    787 785   enc_encodings += encoding.to_bytes(4, byteorder = 'big', signed = True)
    788 786   sendbuff = pack("!BxH", 2, len(list_of_encodings)) + enc_encodings
    789  - self.__writer.write(sendbuff)
     787 + await self.__writer.write(sendbuff)
    790 788   return True, None
    791 789   except Exception as e:
    792 790   return None, e
    skipped 3 lines
    796 794   """Sends a setpixelformat message to the server, letting the server know our preferred image data encodings"""
    797 795   
    798 796   pixformat = pack("!BBBBHHHBBBxxx", bpp, depth, bigendian, truecolor, redmax, greenmax, bluemax, redshift, greenshift, blueshift)
    799  - self.__writer.write(b'\x00\x00\x00\x00' + pixformat)
     797 + await self.__writer.write(b'\x00\x00\x00\x00' + pixformat)
    800 798   # rember these settings
    801 799   self.bpp, self.depth, self.bigendian, self.truecolor = bpp, depth, bigendian, truecolor
    802 800   self.redmax, self.greenmax, self.bluemax = redmax, greenmax, bluemax
    skipped 9 lines
    812 810   if height is None:
    813 811   height = self.height - y
    814 812   
    815  - self.__writer.write(pack("!BBHHHH", 3, incremental, x, y, width, height))
     813 + await self.__writer.write(pack("!BBHHHH", 3, incremental, x, y, width, height))
    816 814   
    817 815  async def amain():
    818 816   try:
    skipped 4 lines
    823 821   iosettings = RDPIOSettings()
    824 822   iosettings.video_out_format = VIDEO_FORMAT.RAW
    825 823  
    826  - url = 'vnc+plain://alma:[email protected]:5900'
     824 + url = 'vnc+plain-password://alma:[email protected]:5900'
    827 825   url = RDPConnectionFactory.from_url(url)
    828 826   connection = url.get_connection(iosettings)
    829 827   
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    setup.py
    skipped 51 lines
    52 52   
    53 53   
    54 54   install_requires=[
    55  - 'unicrypto>=0.0.4',
    56  - 'asyauth>=0.0.1',
    57  - 'asysocks>=0.1.7',
    58  - 'minikerberos>=0.2.20',
     55 + 'unicrypto>=0.0.9',
     56 + 'asyauth>=0.0.2',
     57 + 'asysocks>=0.2.1',
     58 + 'minikerberos>=0.3.1',
    59 59   'tqdm',
    60 60   'colorama',
    61 61   'asn1crypto',
    62 62   'asn1tools',
    63 63   'pyperclip>=1.8.2',
    64  - 'arc4>=0.0.4', #faster than cryptodome
     64 + 'arc4>=0.3.0', #faster than cryptodome
    65 65   'Pillow>=9.0.0',
    66 66   ],
    67 67  
    skipped 12 lines
Please wait...
Page is in error, reload to recover