Pull to refresh
149
Andreй aka@CodeDroidX

дистиллируем технотекст в общаге ночью

78
Subscribers
Send message

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Level of difficultyHard
Reading time29 min
Reach and readers119K

Бывало ли у вас такое, что вы подключились к общественной сети или мобильному интернету, но он себя странно ведёт. Надпись «Подключено, без доступа к интернету» отсутствует, устройство думает, что всё нормально. Вы открываете браузер и видите «Пройдите проверку личности в сети нашего кафе» или в случае с мобильным интернетом «Пополнить баланс можно тут, тут и тут».

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

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →

Как за одну неделю захватить контроллер домена, или Пивотинг за 300

Reading time4 min
Reach and readers13K

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

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

Итак, начнем с истории о том, как за одну неделю удалось захватить контроллер домена ИТ-инфраструктуры промышленного предприятия.

Читать далее

Демографический бум или как программисты плодятся

Level of difficultyEasy
Reading time5 min
Reach and readers71K

Вы спросите, какое отношение демография, имеет к тематике ИТ. На первый взгляд? Никакого. Но это на первый взгляд. Давайте обо всем по порядку.

Сначала была история.

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

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

Дело хорошее, не все гуглу миром править. Да вот беда. Те спецы, что институты готовили, ежели попроворнее, кнопку купить билет и за океан, ну или не важно, главное из России того. А те что слабину на учебе дали, оказалось доучивать требуется. Бизнесмены расстраивались, но доучивали. Но вместо благодарности, прохвосты, начали бегать из конторы в контору и ценники на себя заворачивать.

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

Тем временем хайп словили и прохвосты. Начали экспертов себе подобных за деньги готовить. Мол хочешь зп 100к. Отдай на 80к и мы научим. Чему там научат не ведомо, но вот желающих таких "спецов" нанять не прибавилось.

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

Читать далее

Как синтаксический сахар может сыграть с вами злую шутку

Level of difficultyEasy
Reading time3 min
Reach and readers32K

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

Читать далее

Signal Integrity of DDR4

Level of difficultyHard
Reading time15 min
Reach and readers33K

Доброго времени суток! Наверное, вы все знакомы с компьютерной оперативной памятью DDRx (где x - поколение). Я бы хотел вам рассказать о ней с точки зрения SI (Signal Integrity - целостность сигналов) и принципов трассировки этого интерфейса.

Читая документацию на различные микросхемы CPU, FPGAs, DSPs, ASICs можно увидеть много различных рекомендаций, так называемых «Rules of Thumb», по трассировке DDR3/4 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Но в ней редко можно встретить информацию почему именно так это необходимо делать. В этой статье я попытаюсь вам объяснить различные способы улучшения SI с точки зрения схемотехники и топологии.

Читать далее

Как начать работать с IPv6 там, где его нет (часть 2)

Level of difficultyMedium
Reading time8 min
Reach and readers17K

В настоящее время основным подходом к внедрению IPv6 является dual-stack, когда устройство одновременно настроено на функционирование обоих IP-протоколов. Это и понятно, ведь основная часть интернета работает на версии IPv4. Механизм 6to4 позволяет подключить ваше устройство IPv4 к брокеру, создав туннель в IPv6.

В первой части цикла статей показана настройка облачного маршрутизатора на routeros. В текущем материале продолжим раскручивать полученное решение, а затем перенесём соединение с брокером на Linux. Но сначала отдельно поговорим о сетевой безопасности подключаемого к IPv6 оборудования. Для понимания происходящих процессов рекомендуется ознакомиться с предыдущей статьёй, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →

Истории из жизни вредоносов: прячемся в автозагрузку ОС Windows

Level of difficultyMedium
Reading time6 min
Reach and readers35K

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

Читать далее

P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети

Level of difficultyMedium
Reading time32 min
Reach and readers28K

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

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

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

Разнообразные сервисы работают на серверах, т. е. имеют некую ноду, которая имеет белый адрес в интернете (находится не за NAT). Все пользователи же подключаются к этому единому серверу. В таком случае проблема «невидимости» пользователей отпадает. Однако чисто серверное взаимодействие ограничивает скорость участников, так ещё и не отказоустойчиво. Если сервер упадёт, то все клиенты отправятся за ним (считаем, что это одноклеточный сервис не на всяких там kubernetes).

Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.
Читать дальше →

Сокрытые драгоценности Python

Reading time5 min
Reach and readers30K

Особенности Python,  о которых я даже не подозревал

Автор оригинала: Чарудатта Манваткар

В последнее время у меня появилось новое хобби – чтение документации Python просто для удовольствия! Когда вы читаете на досуге, то, как правило, замечаете интересные «лакомые кусочки», которые пропустили бы в противном случае. Итак, вот перечень «кусочков», которые заставили меня сказать:

О! Вы можете сделать это на Python?

Читать далее

Bash Auto Completion в Linux

Level of difficultyEasy
Reading time5 min
Reach and readers30K

Пользователи взаимодействуют с Linux при помощи многочисленных команд, вводимых в командной строке. Учитывая разнообразие этих команд и их параметров, не так просто запомнить все наизусть.

Однако в Linux предусмотрена удобная функция автодополнения для Bash. Этот инструмент, с которым знакомятся на начальных этапах изучения Linux, значительно ускоряет и упрощает процесс ввода команд. Он автоматически дополняет имена файлов, каталогов или опции команд, когда вы вводите их в командной строке.

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

Читать далее

ШвабрОпс – новое направление в IT-индустрии

Reading time2 min
Reach and readers29K

Л - Добрый день, дорогие зрители, сегодня мы продолжаем нашу серию репортажей «Стартаперы Кварцевой Лощины». С вами снова я, независимый журналист, Лайер Бала-Больё, и сегодня наш гость - талантливый селфмейд, добившийся всего сам, 19-летний сын известного миллиардера, стартапер Жу̒лико Бары̒гги младший.

Жулико уже выпустил два сверхполезных и сверхнужных приложения, это всем известный SriiPee для заказа пиццы прямо с унитаза и HeyGey – апп для поиска скоплений бородатых мужчин в клетчатых рубашках, любящих фруктовые коктейли и самокаты. Последнее приложение даже автоматически предустанавливается в каждый новый грушефон.

Жулико, вы только что были спикером на проходящем в Сан-Дьябло Блаблатоне и упомянули такую интересную вещь, как ШвабрОпс - можете рассказать нашим зрителям, что это такое и с чем его едят.

Ж – Привет, Лайер, привет всем. Да, на Блаблатоне я рассказывал про ШвабрОпс – это новое перспективное направление в IT. Дело было так. Я маялс…т.е. интенсивно работал в офисе и обратил внимание, что какой-то очкастый толстый задрот ходит туда-сюда из кабинета в кабинет. Я спросил секретаршу – кто это такой? Она ответила – это наш ДевОпс.

Л – Ага.

Ж – А я, если честно, даже не знаю, кто это такой. Но мне тут же в голову пришла идея. А что, если он возьмет в руки швабру и будет протирать пол, пока ходит туда-сюда.

Л – Угу.

Ж – Ну и все, собственно. Я подумал-подумал и решил – а зачем нам уборщица?! Пусть этот дев…как его там…в общем – пусть он еще и пол протирает параллельно. Это же какая экономия получается!  

Читать далее

Golang глазами PHP-программиста

Level of difficultyEasy
Reading time5 min
Reach and readers17K

Как-то появилась причина попробовать пописать на Go. На тот момент я знал, что это язык от Google, язык молодой, язык компилируемый, вроде как активноразвивающийся и с зарплатами выше средних. Неплохой набор.

В первой попавшейся статье узнаем, что Go к тому же легкий в изучении. Интересно, сколько PHP-программистов стало PHP-программистами, потому что PHP легкий в изучении? И действительно, за пару вечеров можно уже неплохо ориентироваться в языке.

Итак, ищем какой-нибудь golang roadmap, небольшое количество времени, и вот он, helloworld на Golang. Теперь надо его запустить. Сама установка Go - быстрая и простая, занимает пару минут(скачать, нажать далее несколько раз), так что смотрим пример.

Читать далее

Assembler для Windows в Visual Studio

Reading time12 min
Reach and readers51K

В этой статье я покажу как написать приложение для windows на ассемблере. В качестве IDE будет привычная многим Visual Studio 2019 со своими привычными плюшками - подсветка кода, отладка и привычный просмотр локальных переменных и регистров. Собирать приложение будет MASM, а значит, у нас будут и масмовские плюшки. Это будет полноценное оконное приложение с меню, иконкой, отрисовкой, выводом текста и обработкой мыши с клавиатурой.

Читать далее

За деньги — нет

Level of difficultyEasy
Reading time3 min
Reach and readers26K

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

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

Читать далее

Сжать и не пожалеть: как работает сжатие без потерь

Level of difficultyMedium
Reading time4 min
Reach and readers6.1K

Более 9 миллиардов гигабайт информации ежедневно путешествуют по интернету, заставляя постоянно искать все новые и новые методы упаковки данных. Самые эффективные решения используют подходы, которые позволяют достичь большей плотности за счет "потерь" информации в процессе сжатия. В то же время очень мало внимания уделяется сжатию без потерь. Почему? Ответ прост - методы сжатия без потерь уже невероятно эффективны. С их помощью работает буквально всё, от формата PNG до утилиты PKZip. И это все благодаря студенту, что захотел пропустить экзамен.

Читать далее

Пробиваем дыры в NAT

Level of difficultyHard
Reading time14 min
Reach and readers45K

NAT - механизм, создающий множество проблем для P2P коммуникации, в силу того, что нередко адрес пира может не иметь доступного из любой точки мира, "белого" адреса. Существует ряд способов обхода NAT, но их документация, равно как и данные об их надежности, достоинствах и недостатках оставляет желать лучшего, а потому мы рассмотрим наиболее простой, и в то же время надежный метод - "hole punching".

Читать далее

Конкурентность — это не параллелизм

Level of difficultyEasy
Reading time11 min
Reach and readers25K

Это полное изложение замечательного доклада Роба Пайка "Concurrency is Not Parallelism". Иллюстрации и диаграммы воссозданы, исходный код взят дословно со слайдов, за исключением комментариев, которые в некоторых местах были расширены.

Читать далее

Event Loop в деталях

Level of difficultyMedium
Reading time7 min
Reach and readers149K

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

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()

Парадокс Гранди. Как современные школьники повторяют ошибку Лейбница и Эйлера

Reading time4 min
Reach and readers97K

Было у отца два сына. И оставил он им наследство — камень драгоценный. А чтобы никого не обидеть, поставил он перед сыновьями условие: нельзя тот камень ни пилить, ни продавать. Можно только по очереди владеть им. И повелось так — каждый год камень переходил от одного брата к другому. Потом камнем по очереди владели их потомки, потом потомки их потомков… И длилось так вечно.

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

Задача Гранди формулируется очень просто: какой результат мы получим, если будем до бесконечности складывать 1 и -1?

Читать далее

Ожидания в вакансии QA Engineer: Знакомство с JSON, REST и Типами запросов

Level of difficultyEasy
Reading time8 min
Reach and readers17K

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

Читать далее

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity