HG658 V2 modemde telnet nasıl açılır?

OrnitorenkPepsi

Megapat
Katılım
21 Ekim 2015
Mesajlar
443
Çözümler
6
Daha fazla  
Cinsiyet
Erkek
Selamlar, modemi 2016'dan beri kullanmaktayım ve Superonline kullanırken verilmişti ve başka ısp geçtim fakat şimdi bir şekilde modeme super admin Access tarzı bağlanıp modem hız ayarlarını değiştirmek istiyorum fakat tek sorunum modeme bağlanma gibi yetkiler verilmemiş, root Access ile bile bulunmuyor. Bir video gördüm ve onu denedim fakat videodaki script sorunlu çıktı ve çalışmadı. Modemin Backup'ını alıp "downloadconfigfile. Conf" dosyasını değiştirip tekrar yükleyerek aktif hale getiriyor fakat bir türlü decrypt edemedim ve tüm interneti dolaştım fakat hala çözemedim.

Windows'ta decrypt edebileceğim bir uygulama tarzı bir şey var mıdır? Bi' script denedim fakat 9-11 arası kısımdaki Crypto.* kısmı hata verdi.

[CODE lang="python" title="Denediğim python scripti" highlight="9-11"]#! /usr/bin/env python

# hg658c.wordpress.com
# Version 3

import sys
import os
from binascii import hexlify, unhexlify
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Util import number


RSA_D = "2345ADB2C06E54D7373E2A233A50150A" \
"4044E417FBF76FB1AC8A444E72A345AA" \
"14B7C349A4824C96DF9ECF7D8CC50425" \
"32930DBD40D86FDCD892398702E3EA51" \
"41C90F10494BB91440E89B104626CCCB" \
"E45A5133362359732954BD63FCA58929" \
"E3D890014FDF83847E6B19F0D9E1117E" \
"9706984EAA57E114934B273366C4DBD1"

RSA_N = "C206CF93A9E6EE1CE17984DD54422AC4" \
"561A4EEB969D1BA81432626D6409FA03" \
"3B3738F8BBA046ACEF3BAC35094B70AF" \
"231D9DC43C1D68EDBEBE983E267B72FD" \
"3C2A7614D60FA7457B92B6A45C49F307" \
"EA23DE51E7E0C36D6440FC4F62C44CCB" \
"4169914E43DBFDAE536F002B2D670CE0" \
"A2A11FD1AF4C484C1A6FED9C228199A3"

RSA_E = "010001"

SIG_TEMPLATE = "0001FFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" \
"003021300906052B0E03021A05000420"

AES128CBC_KEY = "48EE9D8621739F26C215C49071e2438A"
AES128CBC_IV = "A68FBBCA44BB1F5364A530608BCDEAAB"

XML_VERSION_STRING = b'<?xml version="1.0" ?>'

def print_usage():
print("Usage : " + sys.argv[0] + " {encrypt | decrypt} input_file output_file")
sys.exit(1)

def load_config(config_file):
if os.path.isfile(config_file):
cf = open(config_file, "rb")
config = cf.read()
cf.close()
else:
print("Config file not found..exiting")
sys.exit(1)
return config

def save_to_file(dest_file, data):
wfile = open(dest_file,"wb")
wfile.write(data)
wfile.close()

def get_sha256_hash_from_sig(sig):
sig_int = int(hexlify(sig),16)
rsa_n = int(RSA_N,16)
dec_sig_as_int = pow(sig_int, 0x10001, rsa_n );
decrypted_sig = number.long_to_bytes(dec_sig_as_int, 128)
target_sha256 = hexlify(decrypted_sig)[-64:]
return target_sha256

def calc_actual_sha256_hash(enc_config_body):
sha256 = SHA256.new()
sha256.update(enc_config_body)
actual_sha256_sig = sha256.hexdigest()
actual_sha256_sig = str.encode(actual_sha256_sig)
return actual_sha256_sig

def decrypt_body(enc_config_body):
iv = unhexlify(AES128CBC_IV)
key= unhexlify(AES128CBC_KEY)
cipher = AES.new(key, AES.MODE_CBC, iv)
decrypted_data = cipher.decrypt(enc_config_body)
# Strip block padding
decrypted_data=decrypted_data.rstrip(b'\0')
return decrypted_data


def decrypt_config(input_file, output_file):
enc_config=load_config(input_file)
sig = enc_config[:0x80]
enc_config_body=enc_config[0x80:]

print("verifying signature...")
target_sha256_hash = get_sha256_hash_from_sig(sig)
actual_sha256_hash = calc_actual_sha256_hash(enc_config_body)

if (actual_sha256_hash == target_sha256_hash):
print("Signature ok...")
else:
print("Signature not ok...exiting")
sys.exit(1)

print("Decrypting...")
decrypted_data = decrypt_body(enc_config_body)

check_config(decrypted_data)

print("Saving decrypted config to " + output_file + "...")
save_to_file(output_file, decrypted_data)

def check_config(new_config_file):
head = new_config_file[0:len(XML_VERSION_STRING)]
if head != XML_VERSION_STRING:
print("Not a valid config file...exiting")
sys.exit(1)

def encrypt_config(input_file, output_file):
new_config_file=load_config(input_file)

check_config(new_config_file)

padding_amount = len(new_config_file) % 32
print("" + str(padding_amount) + " bytes padding needed")
print("Adding padding...")
new_config_file=new_config_file + b'\0'*(32-padding_amount)

print("Encrypting config...")
iv = unhexlify(AES128CBC_IV)
key= unhexlify(AES128CBC_KEY)
aes = AES.new(key, AES.MODE_CBC, iv)
enc_new_config = aes.encrypt(new_config_file)

print("Calculating SHA256 hash...")
h = SHA256.new()
h.update(enc_new_config)
actual_sha256_sig = h.hexdigest()

sig = SIG_TEMPLATE+actual_sha256_sig;

print("Encrypting Signature...")
sig_int = int(sig,16)
rsa_d = int(RSA_D,16)
rsa_n = int(RSA_N,16)
enc_sig_int = pow(sig_int, rsa_d, rsa_n);

encrypted_sig = number.long_to_bytes(enc_sig_int, 128)
enc_config = encrypted_sig + enc_new_config

print("Saving encrypted config to " + output_file + "...")
save_to_file(output_file, enc_config)

def main():

if len(sys.argv) < 4:
print_usage()

input_file = sys.argv[2]
output_file = sys.argv[3]
command = sys.argv[1]

if (command == "encrypt"):
encrypt_config(input_file, output_file)
elif (command == "decrypt"):
decrypt_config(input_file, output_file)
else:
print_usage()



if __name__ == "__main__":
main()[/CODE]
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı