• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

ВАЖНО Miner Search - Поиск и уничтожение скрытых майнеров


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
215475650-25d31515-d52a-485b-b194-7db63e0e9962.png


Программа разработанная для поиска и уничтожения скрытых майнеров. Является вспомогательным инструментом для поиска подозрительных файлов, каталогов, процессов и тд. и НЕ является антивирусом.

Обнаруживает и приостанавливает вредоносные процессы. Запускает удаление заблокированных папок через список контроля доступа на вкладке безопасность. При нахождении каких либо подозрительных или вредоносных объектов требуется подтверждение на запуск автоматической очистки.

Основан на Miner Killer.
  • Улучшен процесс сканирования процессов;
  • Добавлено статическое сканирование каталогов;
  • Добавлена функция автоматической очистки от вредоносных каталогов;
  • Уничтожение вредоносных процессов (в том числе помеченные как критические)
  • Сканирование вредоносных ключей реестра и т.д...
Для запуска требуется NET Framework 4.5 и выше.

Ссылка на гитхаб (Можно ознакомиться с кодом программы):

Скачать бинарник можно здесь:

Автор:@Spectrum735
 
Последнее редактирование:

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Дата подписи файла должна-быть раньше истечения сертификата.
В принципе логично)
Я вроде как разобрался, в коде я указал "На время действия не смотри, а смотри кем этот сертификат выдан". Алгоритм считает большинство системных файлов валидными, но не все. Тот же autoruns показывает другую информацию.

Сделал тестовый сертификат, конечно же недействительный, как считает винда. Алгоритм также его считает недействительным, что верно, НО...
1678180631879.png


...почему файл приложения, рекомендованное для написания курсача, считается виндой действительным, алгоритмом проверки - нет?

1678180791000.png

1678181422293.png


Не могу понять в чём путаница. Прилагаю код:

Проверка лицензии файла:
        public static byte Verify(string filePath)
        {
            X509Certificate2 theCertificate;

            try
            {
                X509Certificate theSigner = X509Certificate.CreateFromSignedFile(filePath);
                theCertificate = new X509Certificate2(theSigner);
                X509Chain theCertificateChain = new X509Chain();

                theCertificateChain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
                theCertificateChain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
                theCertificateChain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 1, 0);
                theCertificateChain.ChainPolicy.VerificationFlags = X509VerificationFlags.IgnoreNotTimeValid;
             
                bool isValid = theCertificateChain.Build(theCertificate);
                if (isValid)
                {
                    return 0;
                }
                else if (!isValid)
                {
                    return 1;
                }
                else return 2;
            }
            catch
            {
                return 2;
            }
        }
 
Последнее редактирование:

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
if (isValid)
{
return 0;
}
else if (!isValid)
{
return 1;
}

Можно наверное так сделать:
if (isValid)
{
return 0;
}
return 1;

Т.к. isValid это bool и меет всего два значения (true и false).

По твоему вопросу, как понимаю у тебя оффлайн проверка подписей, можно сделать онлайн и вообще можно распечатать почему подпись не валиданая ?

Вот в сети ещё нашёл такой код:

C#:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

internal class Program
{
    private static void Main(string[] args)
    {
        string filePath = args[0];

        if (!File.Exists(filePath))
        {
            Console.WriteLine("File not found");
            return;
        }

        X509Certificate2 theCertificate;

        try
        {
            X509Certificate theSigner = X509Certificate.CreateFromSignedFile(filePath);
            theCertificate = new X509Certificate2(theSigner);
        }
        catch (Exception ex)
        {
            Console.WriteLine("No digital signature found: " + ex.Message);

            return;
        }

        bool chainIsValid = false;

        /*
         *
         * This section will check that the certificate is from a trusted authority IE
         * not self-signed.
         *
         */

        var theCertificateChain = new X509Chain();

        theCertificateChain.ChainPolicy.RevocationFlag = X509RevocationFlag.ExcludeRoot;

        /*
         *
         * Using .Online here means that the validation WILL CALL OUT TO THE INTERNET
         * to check the revocation status of the certificate. Change to .Offline if you
         * don't want that to happen.
         */

        theCertificateChain.ChainPolicy.RevocationMode = X509RevocationMode.Online;

        theCertificateChain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 1, 0);

        theCertificateChain.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;

        chainIsValid = theCertificateChain.Build(theCertificate);

        if (chainIsValid)
        {
            Console.WriteLine("Publisher Information : " + theCertificate.SubjectName.Name);
            Console.WriteLine("Valid From: " + theCertificate.GetEffectiveDateString());
            Console.WriteLine("Valid To: " + theCertificate.GetExpirationDateString());
            Console.WriteLine("Issued By: " + theCertificate.Issuer);
        }
        else
        {
            Console.WriteLine("Chain Not Valid (certificate is self-signed)");
        }
    }
}

Есть ещё такой способ проверки:
При помощи WinVerifyTrust function (wintrust.h).

Чем хорош, что в указанном примере можно найти причину, почему подпись не валидна.)
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Нашёл подробное описание про подпись в статье
Благодарю за наводку по WinAPI
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Чем хорош, что в указанном примере можно найти причину, почему подпись не валидна.)
Оказывается, алгоритм выборки SHA-1 не считается безопасным, коим был подписан тот самый файлик. Но так как файл имеет доп. подпись сервера штампа времени, то истечение срока сертификата не учитывается)
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Новая версия v1.3
  • Добавлена проверка цифровой подписи файлов
  • Добавлены дополнительные разделы сканирования реестра (разделы автозапуска, appinit_dlls)
  • Изменён метод ведения логов. Статистика сканирования параллельно записывается в файл в формате MinerSearch_ГГГГ_ММ_дд_мм_сс.log
  • Исправлены незначительные недоработки
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Версия v1.4

  • Переработан алгоритм проверки и удаления вредоносных каталогов / файлов
  • Добавлена проверка планировщика задач
  • Переработать алгоритм парсинга пути приложения в автозапуске из реестра
  • Добавлена проверка, действительно ли процесс приостановлен
  • Добавлена функция переименования вредоносных файлов процессов
  • Добавлен вызов справки --help
  • Переработана проверка цифровой подписи
  • Текст в логе теперь не дублируется
  • Исправлен баг, когда входная строка имела неверный формат
  • Добавлена проверка родительского процесса
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Версия v1.4.1

  • Подтверждение очистки файла hosts теперь в сохращенном варианте
  • Доработан класс WinTrust для проверки цифровой подписи файлов без внешних зависимостей (спасибо )
  • Добавлено полное восстановление прав на каталоги
  • Добавлены новые каталоги и процессы для сканирования
 

Spectrum735

Просветленный
Просветленный
Регистрация
21.02.2019
Сообщения
260
Репутация
141
Версия v1.4.2
  1. Добавлено определение загрузки ОС
  2. Добавлено удаление вредоносных путей из исключения Windows Defender
  3. Добавлено удаление вредоносных правил из брандмауэра Windows
  4. Удаление каталогов и восстановление прав на них выполняется отдельно
  5. Сканирование файла hosts теперь выполняется в конце
  6. Исправлен баг с пропуском дубликатов задач в планировщике задач
--------------------
github →
 

Вложения

  • MinerSearch_v1.4.2.0.zip
    170.3 КБ · Просмотры: 3
Верх Низ