Метка «proxy»

Понадобилось мне перехватывать вызовы GDS32.DLL. Решил написать прокси-dll.

Пишем исследовательский стенд

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

1.	program GetFuncsDll;
2.	  {$APPTYPE CONSOLE}
3.	  uses   Windows;
4.	  var
5.	    ImageBase: DWORD;                  //адрес образа dll
6.	    pNtHeaders: PImageNtHeaders;       // PE заголовок dll
7.	    IED: PImageExportDirectory;        // адрес таблицы экспорта
8.	    ExportAddr: TImageDataDirectory;   // таблица экспорта
9.	    I: DWORD;                          // переменная для цикла
10.	    NamesCursor: PDWORD;               // указатель на адрес имени функции
11.	    OrdinalCursor: PWORD;              // указатель на адрес номера функции
12.	    LIB_NAME:AnsiString;               // имя dll
13.	BEGIN
14.	  LIB_NAME:='MiniLib.dll';
15.	  loadlibraryA(PAnsiChar(LIB_NAME));
16.	  ImageBase := GetModuleHandleA(PAnsiChar(LIB_NAME));
17.	  pNtHeaders := Pointer(ImageBase + DWORD(PImageDosHeader(ImageBase)^._lfanew));
18.	  ExportAddr := pNtHeaders.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT];
19.	  IED := PImageExportDirectory(ImageBase+ExportAddr.VirtualAddress);
20.	  NamesCursor := Pointer(ImageBase + DWORD(IED^.AddressOfNames));
21.	  OrdinalCursor := Pointer(ImageBase + DWORD(IED^.AddressOfNameOrdinals));
22.	  For I:=0 to Integer(IED^.NumberOfNames-1) do begin
23.	    WriteLn(output,PAnsiChar(ImageBase + PDWORD(NamesCursor)^),'=',OrdinalCursor^ + IED^.Base);
24.	    Inc(NamesCursor);
25.	    Inc(OrdinalCursor);
26.	  end;
27.	Readln;
28.	end.
Листинг 1

Здесь трудностей вроде нет. Добираемся последовательно до таблицы экспорта (строка 19) указателей на массив имен(NamesCursor) и массива номеров(OrdinalCursor) и читаем функцию за функцией, имена и номера. Количество функций находится в поле NumberOfNames. Этот код был добыт на просторах интернета, потом доработан и упрощён.
Читать полностью »

Сегодня я хочу рассказать о том, как мы в своем проекте indexisto.com сделали дешевую китайскую подделку аналог инструмента Google Webmaster Marker. Напомню, что Marker это инструмент в кабинете Google Webmaster, который позволяет аннотировать ваши страницы Open Graph тегами. Для этого вы просто выделяете мышкой кусок текста на странице и указываете что это title, а это рейтинг. Ваша страница при этом грузиться в Iframe в кабинете вебмастера.

Доступ к контенту iFrame с другого домена

Теперь Google, встретив подобную страницу на вашем сайте, уже знает, что за контент на ней опубликован, и как его красиво распарсить в сущность (статью, товар, видео..)

Нам был нужен подобный функционал. Задача казалась несложной и исключительно клиентсайд. Однако на практике решение лежит на стыке клиентсайда и серверсайда («чистые» JS программисты могу ничего не знать про различные прокси серверы и очень долго подходить к снаряду). При этом я не нашел в интернетах статью которая описывала бы всю технологию от начала до конца. Также хочется сказать спасибо пользователю BeLove и нашим безопасникам за помощь.

Читать полностью »

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

Для их реализации мы исследовали и опробовали некоторое количество инструментов, среди которых были Apache JMeter и написанный нами на Python скрипт LogSniper, который выполнял реплей заранее подготовленных серверных логов с HTTP-запросами на цель.Читать полностью »

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

  • Squid + DG + каким то образом настраивать обновление списков, которые должны коррелировать со списком запрещенных ресурсов Минюстом
  • Решения для рабочих станций (NetPolice, iCensor и т.п.)
  • Различные «виндосерверные» решения, выступающие в роли шлюза

ни одно не показалось мне привлекательным. Имея маломощный сервер и 50 рабочих станций, нуждающихся в защите, хотелось бы использовать Unix-like решение. Очевидно, что без Squid не обойтись. Начались поиски решения удовлетворяющего установленные требования. В результате был найден интересный вариант от не безызвестной компании Entensys, выпускающей ПО под названием UserGate. Программное решение для контентной фильтрации называется UserGate WebFilter. Основываясь на опыте давно ушедших лет, тех лет, когда интернет траффик был дороже золота, и, когда прокси был просто необходим, UserGate не нравился ввиду своей глючности и ресурсоемкости (в контексте тех самых прошлых лет), однако, позабыв старые обиды, а также несмотря на то, что продукт проприетарный, было решено его опробовать.

Читать полностью »

в 7:10, , рубрики: i2p, proxy, метки: ,

image

Добрый день уважаемые читатели.

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

Представим, что существует добрый самаритянин за границей у которого постоянно включен i2p роутер и он готов нести радость людям создав нам proxy.antizapret.i2p

Читать полностью »

Impress: многоцелевой сервер приложений для Node.jsНе смотря на заметные успехи, Node.js все еще остается специализированной технологией, которой преимущественно закрывают узкие места в системах, написанных в другом стеке технологий. Причина такого положения кроется в том, что сама по себе нода не имеет многих библиотек, к которым мы привыкли на других языках и которые обеспечивают быструю разработку именно прикладного ПО. Например, для того, чтобы разделить в коде обработчики разных URL, отдавать статические файлы, организовывать сессии, запускать нескольких потоков, иметь доступа к БД, кешировать данные в памяти, разграничивать права пользователей, иметь логи и ротировать их, создавать сетевое API, рендерить шаблоны, настраивать URL-реврайтинг, обеспечивать быструю доставку событий с сервера на клиенты, для всего этого, и многих других задач, используются отдельные библиотеки (модули). Разные модули написаны разными разработчиками, сложно стыкуются, конфликтуют. В общем, мы решили, весь этот набор обязательного функционала, необходимого практически в каждом веб-приложении, объединить в один сервер приложений и повысить, таким образом, связанность кода, сделать ядро сервера приложений монолитным и более согласованным, чем решения, собранные из отдельных библиотек. Проект Impress уже анонсировался как прототип, а сейчас предоставляет весь необходимый арсенал для быстрой разработки приложений, что протестировано на десятке живых проектов. Impress значительно отличается от другой широко распространенной платформы так же, как импрессионизм отличается от экспрессионизма, то есть, производит целостное, хорошо продуманное эстетическое впечатление, в противоположность внезапному выбросу эмоций. Но мы, не вовлекаясь в критику чужого кода, перейдем к демонстрации конструктивных особенностей Impress.
Читать полностью »

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

На объекте примерно 80 машин, 80+-3 принтеров и 4 ксерокса. На объекте работают только бухгалтерия и юристы. Ну и как обычно полагается для обычной офисной работы (интернет, общая обменная папка, обмен мгновенными сообщениями).

С самого начало стояла старенькая машинка и умела она только раздавать интернет через CCcproxy и служила машинка ещё как обменная папка. На протяжение долго времени мне не давала покоя такая ситуация, были перепробованы и другие программные обеспечения для обеспечения интернета на рабочем месте (UserGate, Kerio Winroute) но лишний раз только убедился, что Windows Server это самое страшное, что может быть.

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

Обсуждение анонимности нужно начинать не со слов прокси/тор/впн, а с определения задачи: анонимно подключиться к чужому серверу по SSH это одно, анонимно поднять свой веб-сайт это другое, анонимно работать в инете это третье, etc. — и все эти задачи решаются по-разному. Эта статья о задаче «анонимно работать в интернете как пользователь».

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

Во-первых, нужно адекватно оценивать потенциального противника. Если вы хотите быть «анонимным», значит вы пытаетесь избежать возможности связывания вашей активности в интернете с вашим физическим расположением и/или настоящим именем. Обычные пользователи и так не имеют возможности вас отслеживать (технически, социальные методы когда по вашему нику на форуме легко гуглится ваш аккаунт в соц.сетях со всеми личными данными мы здесь не рассматриваем). Ваш провайдер/соседи могут иметь возможность прослушать большую часть вашего трафика, но, как правило, вы им не интересны (да, соседи могут украсть ваши пароли, но заниматься отслеживанием вашей активности или вашей деанонимизацией они не станут). Что же касается владельцев используемых вами ресурсов (веб-сайтов, прокси/vpn-серверов, etc.) то у них в распоряжении множество средств по отслеживаю вас (DNS-leaks, Flash/Java-плагины, баннерные сети, «отпечатки браузера», множество разных видов кук, etc.) плюс серьёзный коммерческий интерес к тому, чтобы надёжно вас отслеживать (для таргетирования рекламы, продажи данных, etc.). Ну а правительство и спец.службы могут получить доступ и к данным, которые на вас собирают веб-сайты, и к данным, которые собирают провайдеры. Таким образом получается, что те, кто имеют возможность и желание вас отслеживать — имеют доступ к большинству возможных каналов утечки.

Во-вторых, каналов утечки информации очень и очень много. И они очень разнообразны (от внезапно отключившегося VPN до получения реального IP через Flash/Java-плагины браузера или отправки серийника на свой сервер каким-нить приложением при попытке обновления). Более того, регулярно обнаруживаются (и создаются) новые. Поэтому попытка блокировать каждый из них в индивидуальном порядке, уникальными для каждого методами, просто не имеет смысла, всё-равно что-то где-то протечёт.

В-третьих, при «работе в интернете» используется не только браузер — большинство пользуются так же IM, торрентами, почтой, SSH, FTP, IRC… при этом часто информация передаваемая по этим каналам пересекается и позволяет их связать между собой (.torrent-файл скачанный с сайта под вашим аккаунтом грузится в torrent клиент, ссылка пришедшая в письме/IM/IRC открывается в браузере, etc.). Добавьте сюда то, что ваша ОС и приложения тоже регулярно лазят в инет по своим делам, передавая при этом кучу деанонимизирующей вас информации…

Из всего этого логически следует то, что пытаться добавить «немножко анонимности» путём использования браузера со встроенным Tor, или настройкой торрент-клиента на работу через SOCKS — нет смысла. Большинство вас не сможет отследить и без этих мер, а тех, кто имеет возможности и желание вас отследить эти меры не остановят (максимум — немного усложнят/замедлят их работу).
Читать полностью »

Методы анонимности в сети. Часть 2
Привет, читатели!

Сегодня мы продолжим разговор про анонимность в интернете.
Первая часть тут: "Методы анонимности в сети. Просто о сложном"

Вторая часть получилась чуть более сложной для новичков. Она будет состоять из двух разделов:

  • В первом разделе мы закончим разговор про централизованные решения для «анонимности»: VPN, SSH, SOCKSx.
  • Во втором — рассмотрим конкретные утечки деанонимизирующих данных.

Читать полностью »

Методы анонимности в сети. Просто о сложном
«Бывают наивны, как малые дети,
Те, кто верит в анонимность в интернете».
М. Сандомирский

Привет, читатели!

Эту статью меня заставили написать различные «обзоры» схем анонимности, появившиеся недавно в Интернете. Здесь я, упрощая многие технические моменты, расскажу о различных методах и способах обеспечения анонимности в Сети. Если тема найдет отклик, в следующих статьях цикла я перейду к более интересным техническим деталям.
Чтобы было проще, разделим анонимность в Интеренте на два направления:

  • «Социальная анонимность» — это то, что человек сам осознанно или неосознанно рассказывает о себе в Сети.
  • «Техническая анонимность» — когда утечка деанонимизирующих данных связана с используемыми техническими средствами и приложениями.

Мы сконцентрируемся именно на Технической анонимности.Читать полностью »