процесс загрузки системы
Введение
xss.pro RFB Bruter – это система распределенного перебора паролей для VNC прямо из дома через связку TOR+VPN на ферме виртуальных машин с поддержкой бэкапов, нотификации на смартфон через приложение «pushed» и масок фильтрации. В качестве источника адресов используется обработанный лог masscan (хотя можно добавлять адреса и порты «руками»), а в качестве VPN используется приложение «SoftEther VPN» и их замечательный сервис бесплатных VPN — «VPN Gate», который поможет нам не платить за VPN. Помимо этого прекрасного сервиса «SoftEther VPN» имеет ряд других важных особенностей — работа через socks (TOR), а также поддержку ICMP (ping). Подробнее об этом ниже.
Как и любая другая распределенная система, xss.pro RFB Bruter состоит из «менеджера» и «рабочих процессов». «Рабочие процессы», в свою очередь, делятся на «чекеры» и «воркеры»: первые проверяют списки ip:port на баннер VNC (а также удаляют ненужные и пропускают недоступные), вторые же — перебирают пароли, а заправляет всем этим делом «менеджер». «Рабочие процессы» и «менеджер» общаются между собой через отдельный intranet-адаптер, прямой доступ во внешний мир имеет только «менеджер» (для отправки оповещений), остальные видят мир только через связку TOR+VPN.
Обращаю внимание, что это система именно для «домашнего» использования: трафик между менеджером и рабочими процессами никак не шифруется.
Изначально система работала без VPN, напрямую через TOR (Whonix Gateway), но это накладывало ряд ограничений: Whonix «перегревался» от количества соединений и требовал регулярных ребутов, а помимо этого — часто отваливалось соединение с хостом, на котором идет перебор (TOR старается менять адреса в цепочках, через это конечный узел не всегда доступен). С VPN все работает гораздо стабильнее и быстрее: время, требуемое на пересортировку списка адресов для брута увеличилось в десятки раз, т.е. за один проход перебирается большее количество комбинаций. Кроме того, TOR не дает возможности проверить доступность сети, в отличие от VPN, который прекрасно работает с ICMP пакетами.
Системные требования
Не смотря на то, что все сильно зависит от размеров фермы, общие правила просты: как можно больше ОЗУ и SSD-накопитель (лучше NVMe, если есть такая возможность). На моем стареньком тестовом стенде с Core i7-4790 и 32 Гб ОЗУ хостится 50 VM: Менеджер (1024 Мб), TOR (512 Мб), Воркеры (24x512 Мб) и Чекеры (24x512 Мб). Загрузка выглядит вот так:
Подготовка VM
Для начала переносим папку «shared» в любое удобное место на SSD. Сам я использую VirtualBox, так что далее речь пойдет про него. В качестве ОС была выбрана Windows 7 Compact Edition, каких-либо проблем с ней не наблюдается. Устанавливаем ОС, дополнения VirtualBox и добавляем постоянную общую папку с полным доступом указав путь до ,«shared» в моем случае монтируется она на букву Z. Переходим в настройки дисплея и на вкладке «Удаленный доступ» ставим галочку «Включить сервер». Далее клонируем образ (имя лучше выбрать вида «VM01») и приступаем к настройке «рабочих процессов».
Нам понадобится один сетевой адаптер для внутренней сети с именем, скажем, «xss-brute». В настройках «Удаленного доступа» указываем порт 1001 и запускаем ОС. Устанавливаем на нее «SoftEther VPN», меняем IP на, скажем, 172.16.0.1 а имя компьютера на «VM01». В автозагрузку добавляем ярлык (именно ярлык, чтобы изменим один файл меняли параметры всех VM) на файл z:\utils\init\vpn.cmd. Также в автозагрузку необходимо добавить ярлык z:\utils\xss.checker.lnk или z:\utils\xss.worker.lnk в зависимости от типа машины. Выключаем ОС и делаем снимок системы, именуем его «Snapshot 1» и делаем клон под названием «VM02». Меняем в настройках «Удаленного доступа» порт на 1002, запускаем ОС и меняем адрес на 172.16.0.2, а имя ПК — на «VM02». Повторяем процесс необходимое количество раз, не забывая в конце снять снимок и назвать его «Snapshot 1». Обращаю внимание, что сам я использую разные VM для разных типов «рабочих процессов». Сделано это по простой причине — распределение нагрузки сети. Для «воркеров» я использую VPN, установленные на взломанных ранее ПК, для «чекеров» же — бесплатные VPN с «VPN Gate». Как показала практика, при использовании одновременно обоих типов «рабочих процессов» либо быстро обнаруживают аномальную нагрузку сети удаляют VPN, либо нужно снижать количество подключений. Если у вас купленный дедик или только бесплатные VPN — вы можете смело использовать одну VM для обеих задач, поигравшись предварительно с настройками.
Далее настоим TOR. Клонируем самую первую нашу VM, именуем ее «TOR». В настройках «Удаленного доступа» указываем порт 1111, а в настройках Сети нам понадобится два адаптера: первый — NAT, второй же — наша внутренняя сеть «xss-brute». Запускаем ОС, меняем имя ПК на «TOR», а адрес второго адаптера на 172.16.0.111. Копируем папку z:\utils\tor в корень диска C и кидаем в автозагрузку и, на всякий случай, на рабочий стол ярлык файла c:\tor\tor.cmd. Выключаем, делаем снимок «Snapshot 1».
Снова возвращаемся к первой ОС, теперь ее можно не клонировать. В настройках «Удаленного доступа» указываем порт 2222. Если нужны нотификации «pushed» - также указываем два адаптера, как у «TOR»; если не нужны — оставляем только внутреннюю сеть «xss-brute». После запуска копируем на рабочий стол ярлык z:\utils\xss.mgr.lnk, а в ностройках сетевого адаптера внутренней сети указываем адрес 172.16.0.222.
Кладем куда-нибудь недалеко, скажем, на рабочий стол ярлык для shared\utils\vbox_restart.bat.
Теперь, когда все VM готовы к работе, самое время настроить mRemoteNG. Добавляем коннекты для каждой VM, указывая в качестве IP — адрес ПК где установлен VirtualBox, а в качестве порта — порт из параметров «Удаленного доступа» и RDP в качестве протокола.
Когда все готово можно приступить к настройке системы.
Настройка системы
Большинство настроек производятся в конфиг-файлах в формате JSON, многие настройки можно изменить лишь там, т.е. не меняются «на лету».
Manager
В разделе «server» нас интересуют 3 параметра:
server: interface — на каком интерфейсе слушать порты. Лучше указать интерфейс внутренней сети (в нашем случае - 172.16.0.0), но также можно указать 0.0.0.0, чтобы порты смотрели и во внешний мир.
server: worker: port – на каком порту будут ожидаться «воркеры»
server: checker: port – на каком порту будут ожидаться «чекеры»
массив items заполнится сам.
Раздел «notify» нужен лишь при использовании приложения «pushed». Параметры notify: pushed: app_key, notify: pushed: app_secret и notify: pushed: app_alias нужно взять из аккаунта pushed.io, параметр notify: pushed: interval указывает как часто (в секундах) можно отправлять уведомления.
Параметр notify: found указывает уведомлять ли о новых подобранных паролях. Т.е. по сути включает/отключает нотификацию.
пример нотификаций
В разделе «db» указываются полные пути к базам worker.db и checker.db, а также задают параметры
db: clear_flags_on_exit – очищать флаги ошибок при выходе. За этот флаг отвечает пункт меню «Clear unsupported RFB flags on unload» из «DB Maintance». Нередко бывают случаи, что сегодня стоит аутентификация RealVNC, а завтра что-то поменяли и появился поддерживаемый тип аутентификации. Если не очищать флаги - «плохие» VNC при следующем запуске просто не будут читаться из базы, так что пункт меню «Rescan unsupported RFBs» их не учитывает.
db: rebuild_checkers_on_exit – перемешать и сжать таблицу с адресами на проверку при выходе. За этот флаг отвечает пункт меню «Rebuild Checkers on unload» из «DB Maintance». Сам я предпочитаю делать ребилд и сжатие в ручном режиме данным скриптом
SQL:
BEGIN TRANSACTION;
DROP TABLE IF EXISTS new_list;
CREATE TABLE new_list(id INTEGER NOT NULL UNIQUE,ip TEXT NOT NULL,port INTEGER NOT NULL,UNIQUE(ip,port),PRIMARY KEY(id AUTOINCREMENT));
INSERT INTO new_list(ip,port) SELECT ip,port FROM list ORDER BY RANDOM();
DROP TABLE list;
ALTER TABLE new_list RENAME TO list;
COMMIT;
VACUUM;
Раздел «checker» содержит параметры для работы «чекеров».
checker: path – путь к папке, куда скидываются файлы обработанного лога masscan
checker: max_items — размер кэша записей «чекера». Оптимально указывать из расчета количество_чекеров*количество_соединений*2, можно больше. Нарпример у меня это 24*400, но указано 20000, вместо 19200.
checker: read_from_last_id – читать ли базу с начала или с позации checker: last_id. Задается пунктом меню «Start checking from last ID». У меня отключено, т.к. повторный проход по старым записям через время дает неплохой результат.
Раздел «backup» отвечает за резервное копирование
backup: path — куда копировать.
backup: compress — число от 0 до 9, где 0 — вообще без сжатия, 9 — максимальное. Ввиду особенностей базы данных ставить выше 5 смысла не вижу: скорость упадет сильно, а прироста в сжатии практически не будет.
backup: copies — количество копий. По достижению максимума удалит старейший архив.
backup: scheduler: interval — интервал в секундах, как часто копироваться.
backup: scheduler: on_load — копировать при загрузке. Задается пунктом меню «Backup on load».
backup: scheduler: on_unload — копировать при выгрузке. Задается пунктом меню «Backup on unload».
Раздел «logging» понятен итак — какие сообщения выводить в логе. Задаются в меню «Logging».
Пункт «settings» задает путь до файла параметров окна — расположения окон, выбранные вкладки, элементы.
Пункт «hello_stat» отвечает за прием статистике «рабочих процессов» при запуске: скажем, перезапускаете вы manager и вместо 0 найденных будет статистика от «работяг».
Worker и Checker имеют практически идентичные конфиги. Разберем сначала общие параметры:
manager – адрес менеджера, номера портов должны совпадать с конфигом manager.
tasks — количество соединений, подбирается индивидуально.
threads_per_core — количество потоков на процессор. И «чекер» и «воркер» работают на IOCP, так что указывать 1000 потоков не стоит. Оптимальным является цифра 2.
timeout — время на обработку подключения.
settings — параметры положения и размеров окна.
connection_check: enabled — отвечает за включение/отключение проверки наличия связи. Если проверка включена и интернета нет — задачи обрабываться не будут.
connection_check: timeout — время ожидания отклика.
connection_check: address — адрес, к которому будем пытаться подключиться для проверки связи.
connection_check: reconnect: enabled — включает/отключает переподключение в случае обрыва связи.
connection_check: reconnect: connection — имя сетевого адаптера VPN.
connection_check: reconnect: timeout — время ожидания отклика.
Внимательный читатель немедленно спросит - «а причем тут вообще ICMP, если ты проверяешь связь через попытку подключиться, а не отправляя пинги?» и я ему тут же отвечу. Дело в том, что когда TOR уже отвалился, а VPN еще нет — пинг выдает ошибки типа «заданная сеть недоступна» и «общий сбой». При этом функция connect() может висеть очень долго, а таски при этом отрабатывают мгновенно — сети ведь и правда нет. Поэтому поток PingThread() висит и ждет, пока функция IcmpSendEcho2() не вернет ERROR_NETWORK_UNREACHABLE или IP_GENERAL_FAILURE — как только это случится работа приостанавливается. Если включен режим connection_check: reconnect: enabled — не дожидаясь таймаутов переподключает VPN, если нет — просто ждет, пока все переподключится само, приостановив работу.
Параметр «retry_count» для «чекера» задает количество попыток переподключиться.
VPN
В качестве примера используется публичный VPN от «VPN Gate», в случае использования своего VPN – просто создайте соединение в программе и экспортируйте соединение, заменив им нужный файл. Итак, идем на сайт vpngate.net (заблокирован в РФ) и ищем свежий адрес. Сам я использую адреса из подсети 219.100.37.* — их много и они надежны. Можно выбирать по рейтингу, но мне больше нравится по ширине канала. Итак, адрес выбран — открываем файл, скажем, shared\utils\init\01_05.vpn, и меняем значение параметра «string Hostname» на свой адрес.
Забыл упомянуть. В указанном выше конфиге уже прописан адрес TOR-прокси, на это тоже стоит обратить внимание. Если будете заменять на свой не-паблик VPN - можно заменить только адрес, логин и пароль оставив файл в качестве шаблона.
TOR
Здесь все совсем просто. В моей стране TOR блокируется, поэтому ему необходимы мосты. Также необходима возможность их быстро и беспроблемно менять (это еще одна причина, почему отошел от Whonix Gateway). Итак, идем в shared\utils\init\bridges.txt и вписываем актуальные мосты. Совершенно не важно как вы их получите — telegram, email, сайт torproject или tor_relay_scanner, главное указать тип моста. Если мосты вам не нужны — просто укажите UseBridges 0 или вовсе удалите строчку с импортом данного файла из torcc.
Приступаем к работе
Итак, когда все настроено — предлагаю начать. Запускаем файл vbox_restart.bat, открываем в mRemoteNG соединение с «tor» и ждем пока он прогрузится и на 100% подключится к сети. Время от времени автозагрузка не срабатывает (скорее всего не может прочесть файл bridges.txt и нужно запустить тор руками — именно для этого в скрипте задержка). Когда TOR запущен — жмем в скрипте enter и ждем, пока загрузятся остальные ОС. Подключаемся к «manager» и запускаем его. Работа с программами элементарна и (надеюсь) интуитивно понятна. Про «воркер» и «чекер» рассказывать особо нечего, выглядят они примерно так и практически никаких настроек у них нет.
Единственное, что здесь можно настроить — режим «поверх всех окон» (включается в системном меню) и положение окна (вплоть до свернутого в трей).
С «менеджером» дело обстоят поинтереснее.
Перемещаться по вкладкам можно как с помощью мыши так и хот-кеями: ctrl+tab – следующая вкладка, ctrl+1-4 – перейти на вкладку от 1 до 4.
При нажатии правой кнопкой мыши на корневом элементе контекстное меню с возможностью отобразить/скрыть оффлайн и остановить/запустить «работяг».
Нажатие ctrl+a также включает или отключает режим «Отображать все».
Для очистки результатов можно выбрать запись и нажать del. Или же можно нажать del без выделения и тогда удалятся все записи.
И «Воркерам» и «Чекерам» можно задавать имена, достаточно просто нажать второй раз по уже выбранному элементу и ввести имя (в моем случае – имя VM).
В данной вкладке работают те же правила, что и на вкладке «Workers» – удалять можно клавишей del.
Пройдемся по панели инструментов вкладки «Results». Первая кнопка отвечает за добавление свежего адреса в список на брут (если такого адреса еще нет, конечно). Если адрес уже сбручен, но нас спалили и поменяли пароль — нам предложат начать с того места, где был найден первый пароль. Зачем это надо? Бывает так, что до хоста не дозвониться по несколько дней и когда он появляется в сети выясняется, что пароль — только на просмотр, поэтому логично продолжить искать с того места, где остановились в прошлый раз. Следующие две кнопки помечают хост как «интересный» и как «заблокированный» (довольно частое явление, когда на экране не кошелек с криптой, а логон-скрин). Четвертая кнопка просто удаяет элемент из списка, пятая продолжает сканирование (если доступ — только на просмотр), шестая добавляет в список фильтрации (см. ниже), последняя — просто очищает весь лог.
Для очистки лога достаточно нажать ctrl+x либо вызвав контекстное меню и нажав «Сlear».
Как вы можете видеть, у всех «рабочих процессов» есть значки со статусами из ICQ. Зелененький — в работе, красненький — оффлайн, зелененький с красным крестиком — отвалился интернет, зелененький с листочком — нет заданий (возможно, так же нет сети — просто еще не успел по таймауту перезапустить соединение, либо только появился интернет/пришел онлайн).
Работает все это добро по принципу «карусели»: идем по кругу, как только дошли до конца - «воркеры» сортируются по времени последнего обращения (старики — вперед), «чекеры» же просто гуляют по кругу. Если в процессе работы «чекер» нашел новый адрес — он сразу отдается «воркеру». Если в процессе работы чекеру подкинули файлов .masscan – их содержимое первое будет скормлено «чекерам».
Чуть не забыл, когда «чекеры» проверяют свежие пары ip:port — возле процентов будет стоять звездочка (*). Это нужно лишь для того, чтобы дождаться завершения сканирования свежих адресов и не выключать программу раньше завершения, чтобы лишний раз не пересортировывать базу «чекера». Также стоит отметить, что есть некая инерция — звездочка пропадает сразу, как достигнута граница базы, но кэш по прежнему в процессе сканирования, так что как минимум 20000 записей (в моем случае) еще предстоит проверить.
Когда находится очередной не-отфильтрованный десктоп на вкладке «Results» открывается доступ к кнопке «Ignore desktop», про нее стоит рассказать подробнее.
Вообще, настройка фильтров - вопрос интимный и каждый сам составляет свои правила. То, что не нужно мне — нужно кому-то еще, иначе зачем это в таких количествах
{hex} — отсеивает срань вроде
2499F83, 24CAA81, 2E48843, 2F66A01, 30E5C81, 35CCAC1, 3630B01, 3693941, 3838F02, 3905901, 3A78802, 3ABFB41, 3C3DB81, 4046F41, 40B6841, 4238C43, 4629C81, 462A981, 4683B81, 4860D41, 490ED41, 4C97C03, 4CC68C1, 4F2A881, 500294, 500431, 50BDF81 и тысяч других. За этими прекрасными названиями скрывается HMI, который лично мне не нужен.
{ip} — IP адрес, как правило 192.168.*.*, реже — адрес самого сервера или другие диапазоны локальных сетей. Стандартными вбюверами увидеть что скрывается за этими адресами увидеть не получается, по тому — просто скипаю.
{lettercase} — десктопы вида «44.107 ThanhNienMusic», т.е. с разным регистром в написании. Стандартные VNC-сервера под Windows используют либо только прописные буквы, либо только строчные. Иначе это либо *nix (mac?), либо HMI – я скипаю.
Меня интересуют только windows-машины, поэтому я использую также маски */*, *:*, *#* и *@*.
Кстати, после истории с папкой «Пенсия» и кодовыми словами к кошельку с кучей крипты на нем (полученные в виде взятки) в этой папке на макбуке у одного представителя правопорядка — невольно задумываешься и не-виндовые машины прощупывать.
Хосты с пустым десктопом игнорируются по умолчанию.
Более интересный пример. Есть целая грядка машин, которые мне не интересны, в частности
user-wks2 ( 192.168.10.12 ) - service mode
order-wks1 ( 192.168.10.12 ) - service mode
user-wks2 ( 192.168.10.12 ) - service mode
user-wks1 ( 192.168.10.11 ) - service mode
order-wks1 ( 192.168.10.12 ) - service mode
user-wks2 ( 192.168.10.12 ) - service mode
user-wks1 ( 192.168.10.11 ) - service mode
Я редко встречаю машины с одним именем, как правило это какой-то шаблон. Но есть также и забавное исключение: десктоп «lenovo-pc». Это очень странный ПК без пароля, который висит на примерно 10 адресах и рандомных портах (каждый день появляются новые записи — на данный момент их больше тысячи) Вот неполный список:
118.40.40.109:11111 lenovo-pc
118.40.40.123:100 lenovo-pc
118.40.40.168:10 lenovo-pc
118.40.40.192:10250 lenovo-pc
183.105.12.119:123 lenovo-pc
183.105.12.177:5954 lenovo-pc
183.105.12.185:28015 lenovo-pc
183.105.12.202:1994 lenovo-pc
218.149.81.38:4433 lenovo-pc
118.40.40.123:100 lenovo-pc
118.40.40.168:10 lenovo-pc
118.40.40.192:10250 lenovo-pc
183.105.12.119:123 lenovo-pc
183.105.12.177:5954 lenovo-pc
183.105.12.185:28015 lenovo-pc
183.105.12.202:1994 lenovo-pc
218.149.81.38:4433 lenovo-pc
В любом случае стоит просматривать список «good_ignored» на предмет интересных находок.
Не раз натыкался на мнение, что «псевдо-серверы с пустыми паролями не нужны» и даже опции игнора пустых паролей в брутерах видел. Скажу вам по своему опыту длиною в 6 лет — попадаются очень интересные экземпляры. Регулярно вижу, что хост с пустым паролем и индексом в несколько сотен тысяч доступен без пароля — т.е. я его условно месяц перебирал, а он или переустанавливал что-то или настройки сбросил и стал доступен без пароля. Т.е. я вижу в реестре или конфиге, что пароль есть (и он не словарный), но функция авторизации отключена по какой-то причине.
Более того, не далее чем в декабре 2022го у гражданина Anthony «Ant» Renicks (cornucopias) мною было утянуто несколько битков и NFT еще на столько же в ADA, как раз из за доступа без пароля. Да, это скорее исключение, но игнорировать хосты с пустыми паролями — глупо, гораздо эффективнее — фильтровать по имени десктопа.
Помимо «официального» метода добавления масок фильтрации есть и альтернативный — руками в таблицу. Сам я для этого использую «DB Browser for SQLite». Просто в базе worker.db в таблицу «ignore» добавляем новую маску/редактируем старую. Крайне не рекомендую лезть руками в «работающую» базу, лучше сначала завершить работу «менеджера», если вдруг почему-то такая необходимость возникла. Когда изменения внесены — на помощь нам приходит меню «DB Maintance» и подменю «Worker». Здесь мы можем, например, в разделе «Rebuild» пересортировать по алфавиту список фильтров («Rebuild Ignore masks»), а также другие таблицы. На самом деле в этом (помимо сортировки по алфавиту, лично мне так нагляднее) мало смысла: «менеджер» при завершении работы сам пересоберет все таблицы, если было внесено достаточное количество изменений (в коде зафиксировано значение 1000, т.е. 1000+ добавлений/удалений). А вот пункт меню «Rescan ignored list» в этом случае нам очень пригодится — он по-новой пройдется по списку «good» и применит свежие правила фильтрации, если будут найдены свежие отфильтрованные — они будут перемещены в таблицу «good_ignored» и обе таблицы будут пересобраны и база сжата.
Скажу пару слов про перезагрузку фермы. Очень важно завершать корректно «менеджер», т.к. он работает с базами данных и может что-то поломать. Если «менеджер» по каким-то причинам отвалился - «воркеры» продолжат гонять по кругу свои задания, а когда он всеже вернется — отдадут результаты (индексы паролей или список сбрученных машин). Если такое вдруг произошло — вероятно в лог посыплется куча сообщений, что адрес никому не присвоен — лучше на время отключить «Error log». Если необходимо перезапустить систему (например, отвалились VPN а запускать в ручную скрипт vpn.cmd на всех машинах — лень), «менеджер» закрывать не обязательно — можно просто поставить на паузу (кнопка «Stop» в контекстном меню корневого элемента на вкладках «Workers» и «Checkers»), дождаться остановки и запустить скрипт vbox_restart.bat. Только заметил, что где-то bat, а где-то – cmd. Но переделывать я, конечно же, ничего не буду
masscan
Подводя итоги расскажу немного про добычу доступов. Сам я пользуюсь массканом, установленном на взломанных машинах. У него есть один существенный недостаток — он слишком не регулярно сохраняет логи. Т.е. при внезапной остановке он просто не запоминает текущаю позицию (проработав пару недель). Чтобы этого избежать — необходимо немного модернизировать исходник и пересобрать masscan. К сожалению, по условиям конкурса, код с гитхаба я выкладывать не могу, по сему лишь расскажу чего я подправил. В файле main.c в функции main_scan в блоке объявления переменных между uint64_t range; и unsigned index; вставляем uint32_t updates; чтобы получилось так:
C:
uint64_t range;
uint32_t updates;
unsigned index;
C:
updates = 0;
while (!is_tx_done && masscan->output.is_status_updates) {
C:
if (masscan->output.is_status_updates)
status_print(&status, min_index, range, rate,
total_tcbs, total_synacks, total_syns,
0, masscan->output.is_status_ndjson);
C:
if (masscan->output.is_status_updates) {
status_print(&status, min_index, range, rate,
total_tcbs, total_synacks, total_syns,
0, masscan->output.is_status_ndjson);
updates++;
if (updates == 61) {
masscan->resume.index = min_index;
masscan_save_state(masscan);
updates = 0;
}
}
Отвлеклись. Масскан обязательно должен сохранять логи в режиме -oB, т.е. в формате binary! Когда лог масскана готов — кладем его в папку ms\done и запускаем скрипт read.bat. Далее, когда скрипт закончит работу, содержимое папки ms\masscan переносим в папку shared\masscan и ждем, пока файлы не исчезнут. Эти файлы читаются с конца и при завершении работы «обрезаются» до того места, где находится еще не прочитанный кусок. Если расширение файла поменялось на malformed – файл имеет неверную длину и, вероятно, неверный формат.
Для начинающих, у кого совсем нет адресов для брута, оптимальным будет следующий алгоритм действий. Берем любую интересную страну/город и сканируем ее на порты, скажем, 5900-5910. Далее результат скармливаем «чекерам». Когда весь указанный диапазон просканирован — открываем с помощью «DB Browser for SQLite» файл ms\total_db\total.sqbpro (предварительно заменив в нем мой путь X:\shared\worker.db на свой любым текстовым редактором) и, если это первый запуск, на вкладке «SQL» сразу переходим к третьему пункту, «3. total1 rebuld» - этот запрос выберет все ip, у которых есть VNC. Выгружаем таблицу «total» и сканируем с помощью masscan уже на все порты (-p1-65535), резутаты также скармливая «чекеру». После сканирования новых стран/городов начинаем начинаем с первой вкладки, «1. total2 rebuild» и выполняем все три запроса, только на этот раз экспортируем таблицу «total3», в которой будут лишь те адреса, что недавно появились — их также отправляем на сканирование всех портов.
За сим — все. Если вам, дорогие читатели, тема с VNC зайдет — запилю еще один тред с набором утилит для пост-эксплуатации.
Чмоки-чмоки
архив с бинарниками не залился, слишком большой. положил тут: https://www.sendspace.com/file/rqtsq7 (пароль - xss.pro)
Зеркала:
https://send.exploit.in/download/6f8493859743a471/#FLmt1g_GQGFHPTFOLhg9VQ
https://www.upload.ee/files/16129436/bin.zip.html
https://file.io/6FovY2sNHq3S
Вложения
Последнее редактирование модератором: