Как стать автором
Обновить
2
0
Смирнов Сергей @smirnov_sergey

разработчик

Отправить сообщение

Эксплуатируем переполнение буфера в простом TCP-сервере

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров2.6K

Привет всем бинарщикам и людям, которые хотят попрактиковаться с эксплуатацией уязвимости переполнения буфера. Мы для своего киберполигона придумываем различные сценарии атак и насыщаем его различными мисконфигурациями и многочисленным уязвимым ПО для тренировок «синих» и «красных». И рассматриваемое ПО в данной статье, как раз одно из таких. В этой статье мы разберем весь процесс от идентификации уязвимости до получения обратной оболочки со скомпрометированного хоста.

Специально для этого примера я скомпилировал уязвимый TCP‑сервер, который принимает подключения через порт 3301 (Цикада?).

Читать далее
Всего голосов 16: ↑16.5 и ↓-0.5+17
Комментарии5

Развлечение на выходные: собираем Android для Raspberry Pi из исходного кода

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров8.8K

Привет, Хабр! В этой статье я хочу поделиться пошаговой инструкцией по компиляции Android Open Source Project для Raspberry Pi. Эта статья поможет разобраться в первых шагах разработки ОС на базе Android Open Source Project.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии4

Nginx + Node.js: делаем идентификацию и аутентификацию

Время на прочтение4 мин
Количество просмотров11K

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии14

HackTheBox endgame. Прохождение лаборатории RPG. Пентест Active Directory

Время на прочтение20 мин
Количество просмотров8.2K


Привет, с вами Ральф! В данной статье разберем прохождение не просто машины, а целой мини-лаборатории с площадки HackTheBox.


Как сказано в описании, лаборатория RPG предназначена для проверки навыков на всех стадиях атак в небольшой среде Active Directory. Цель состоит в том, чтобы скомпрометировать доступный хост, повысить привилегии и, в конечном итоге, скомпрометировать весь домен, собрав при этом 6 флагов.


Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)


Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу. Там вы найдете много материала, софта, курсов и отчетов по APT группировкам.


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


Посмотреть разборы других лабораторий:
1) Professional Offensive Operations
2) XEN
3) Hades

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python

Время на прочтение3 мин
Количество просмотров184K

В этой статье я постараюсь понятно рассказать о парсинге данных и его нюансах.



image

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

Перейдем к этапам парсинга.

  • Поиск данных
  • Извлечение информации
  • Сохранение данных

И так, рассмотрим первый этап парсинга — Поиск данных.


Так как нужно парсить что-то полезное и интересное давайте попробуем спарсить информацию с сайта work.ua.
Для начала работы, установим 3 библиотеки Python.

pip install beautifulsoup4

Без цифры 4 вы ставите старый BS3, который работает только под Python(2.х).

pip install requests
pip install pandas


Теперь с помощью этих трех библиотек Python, можно проанализировать нашу веб-страницу.

Второй этап парсинга — Извлечение информации.


Попробуем получить структуру html-кода нашего сайта.
Давайте подключим наши новые библиотеки.

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

И сделаем наш первый get-запрос.

URL_TEMPLATE = "https://www.work.ua/ru/jobs-odesa/?page=2"
r = requests.get(URL_TEMPLATE)
print(r.status_code)

Статус 200 состояния HTTP — означает, что мы получили положительный ответ от сервера. Прекрасно, теперь получим код странички.

print(r.text)

Получилось очень много, правда? Давайте попробуем получить названия вакансий на этой страничке. Для этого посмотрим в каком элементе html-кода хранится эта информация.

<h2 class="add-bottom-sm"><a href="/ru/jobs/3682040/" title="Комірник, вакансия от 5 ноября 2019">Комірник</a></h2>


У нас есть тег h2 с классом «add-bottom-sm», внутри которого содержится тег a. Отлично, теперь получим title элемента a.
Читать дальше →
Всего голосов 13: ↑1 и ↓12-11
Комментарии31

Опыт написания асинхронного поллинга сетевых устройств

Время на прочтение6 мин
Количество просмотров5.5K


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

Читать про идеи, итерации и грабли
Всего голосов 18: ↑17 и ↓1+16
Комментарии10

100500-ая автоматика полива для растений. Часть 2: Сенсоры и электроника

Время на прочтение15 мин
Количество просмотров9.5K


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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии13

Решение частых алгоритмических вопросов на JavaScript

Время на прочтение4 мин
Количество просмотров27K

Вы когда-нибудь пытались разработать алгоритм решения задачи на техническом собеседовании? В этом коротком уроке мы разберём три главных вопроса о проектировании алгоритмов, начиная с метода грубой силы (шаг за шагом, но не обязательно эффективно) и переходя к более оптимизированному, элегантному решению.


image

Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии18

15 базовых советов по Git для эффективной работы каждый день

Время на прочтение5 мин
Количество просмотров60K

Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


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


Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии63

Computer Vision. Подсчет клиентопотока

Время на прочтение2 мин
Количество просмотров1.6K


Стояла задача проанализировать и подсчитать поток клиентов в офисе. Для похожих задач существует множество решений, как с использованием сверточных нейронных сетей (Convolution Neural Network, CNN), таких как YOLO (You Only Look Once), SSD (Single Shot Detection), R-CNN и т.д. Но так как входными данными были видео фрагменты различного разрешения и формата, в зависимости от модели регистраторов и выставленных настроек, было принято решение попробовать метод Background Subtraction. Так же хотелось попробовать данный алгоритм, потому что до этого не сталкивался с ним и было интересно на что он способен.



Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Парсинг фотографий с сайта cian.ru с помощью Selenium

Время на прочтение3 мин
Количество просмотров18K

Здравствуйте дорогие хабровчане, в этом небольшом примере я хочу показать как можно распарсить страницу, данные на которую подгружаются с помощью javascript виджетов. Более того, даже если страницу в этом примере просто сохранить, то всё равно не получится спарсить из неё все нужные фотографии из-за этих виджетов. В данном случае я использую для примера сайт cian.ru, у которого есть свой api, который я использовать не буду, вместо этого я буду использовать Selenium. Я не работаю в cian.ru, просто использую этот сайт для примера. Код в парсере простой и расчитан на начинающих.

Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии14

Rx головного мозга

Время на прочтение13 мин
Количество просмотров11K

О том, как удобно писать на Rx, какие операторы и сущности в нём есть, как делать запросы в сеть и работать с многопоточностью, не писал разве что ленивый. Кто-то рассказывает, что можно «обмазаться» Rx-ом на всех уровнях архитектуры и приложение станет реактивным, а разработка — в разы быстрее. Но как только слова доходят до дела, то встаёт множество вопросов, как подружить Rx со спецификой UI и системными API и зачем нужен Rx, кроме как для многопоточности. В этой статье я хотел бы рассказать о нашем видении разработки в реактивном стиле и на реальных примерах показать, как он упрощает жизнь.

Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии19

Визуализируем данные Node JS приложения с помощью Prometheus + Grafana

Время на прочтение5 мин
Количество просмотров21K

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


Большая часть статьи никак не ориентированна именно на Node JS разработчиков и может быть полезна вне зависимости от языка программирования.


Ссылка на Github репозиторий с кодом к статье — https://github.com/pavlovdog/grafana-prometheus-node-js-example


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Настоящее суммирование интернет-каналов — OpenMPTCPRouter

Время на прочтение7 мин
Количество просмотров91K


Можно ли объединить несколько интернет-каналов в один? Вокруг этой темы куча заблуждений и мифов, даже сетевые инженеры с опытом часто не знают о том, что это возможно. В большинстве случаев, объединением каналов ошибочно называют балансировку на уровне NAT или failover. Но настоящее суммирование позволяет пустить одно единственное TCP-подключение одновременно по всем интернет-каналам, например видеотрансляцию так, чтобы при обрыве любого из интернет-каналов вещание не прерывалось.

Существуют дорогие коммерческие решения для видеотрансляций, но такие устройства стоят много килобаксов. В статье описывается настройка бесплатного, открытого пакета OpenMPTCPRouter, разбираются популярные мифы о суммировании каналов.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии24

Летаем по модулям: Навигация в многомодульном приложении с Jetpack

Время на прочтение5 мин
Количество просмотров5.7K


Почти каждый растущий проект рано или поздно начинает смотреть в сторону многомодульной архитектуры. Разработчики не хотят ждать пока пересобирается полностью весь проект, когда была изменена только одна фича. Многомодульность помогает изолировать фичи приложения друг от друга, тем самым сокращая время сборки. Но такое изолирование накладывает некоторые ограничения на область видимости компонентов. Когда мы используем навигацию из Jetpack в проекте с одним модулем, граф навигации доступен из любого пакета приложения, мы всегда можем явно указать какой action NavController должен выполнить, а также есть доступ к глобальному хосту, если в проекте есть вложенные фрагменты. Но когда модулей становится много, то возникают вопросы: где строить граф навигации, как получать к нему доступ и как не запутаться в зависимостях модулей. Обо всем этом поговорим под катом.

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

Устанавливаем Kali Linux с графическим интерфейсом на виртуальный сервер

Время на прочтение4 мин
Количество просмотров19K


TL;DR в статье описывается установка Kali Linux с графической средой на виртуальный сервер с ISO-образа по VNC. Такой системой можно пользоваться как полноценным десктопом.

Большинство хостеров предоставляют только консольный доступ к виртуальным серверам и ограниченный выбор образов операционных систем. Но что, если вы хотите установить собственную ОС со своего диска, например что-то экзотическое вроде Kali Linux? У нас вы можете подключить собственный ISO-образ и установить с него любую операционную систему, которая поддерживается гипервизором.

С момента установки- управление сервером происходит по VNC в графическом окружении, точно так же, как на десктопной виртуальной машине вроде VirtualBox или Vmwarе. Пользоваться таким сервером можно прямо в браузере без установки дополнительных программ.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии16

Все, что вы хотели знать об обратном маятнике

Время на прочтение5 мин
Количество просмотров36K
Статья служит шпаргалкой для тех, кто хочет сделать свой обратный маятник. Здесь описаны проблемы, из-за которых я все переделывал несколько раз, приведен краткий обзор теории, необходимый для понимания, как стабилизировать систему.
Всего голосов 70: ↑70 и ↓0+70
Комментарии23

Современная Android разработка на Kotlin. Часть 2

Время на прочтение24 мин
Количество просмотров66K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Modern Android development with Kotlin (Part 2)" автора Mladen Rakonjac.

Примечание. Данная статья является переводом циклов статей от Mladen Rakonjac, дата статьи: 23.09.2017. GitHub. Начав читать первую часть от SemperPeritus обнаружил, что остальные части почему-то не были переведены. Поэтому и предлагаю вашему вниманию вторую часть. Статья получилась объёмной.

image

«Очень сложно найти один проект, который охватывал бы всё новое в разработке под Android в Android Studio 3.0, поэтому я решил написать его.»
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

Асинхронное программирование (полный курс)

Время на прочтение2 мин
Количество просмотров98K

Методы асинхронного программирования


Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.

Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии17

Тренинг Cisco 200-125 CCNA v3.0. День 12. Углубленное изучение VLAN

Время на прочтение10 мин
Количество просмотров10K
Сегодняшний урок мы посвятим продвинутому изучению VLAN. Прежде чем начать, напомню еще раз, чтобы вы не забывали делиться этими видео с друзьями и ставить лайки на нашем канале YouTube и в группе на Facebook. Сегодня мы изучим три темы: Native VLAN, VTP (VLAN Trunk Protocol) и функцию VTP Pruning. Сначала вспомним, что представляет собой транкинг, и затронем темы из двух последних видеоуроков.



Итак, транк – это соединение, которое мы используем для связи одного свитча с другим свитчем. VLAN – это технология, которая применима только в отношении свитчей, однако любое устройство, говорящее на языке инкапсуляции и связанное со свитчем по протоколу .1Q, понимает всё, что касается VLAN. Компьютеры ничего не знают об этой технологии.
Всего голосов 18: ↑17 и ↓1+16
Комментарии0
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Кострома, Костромская обл., Россия
Дата рождения
Зарегистрирован
Активность