Какой из этих языков сценариев более подходит для проверки пера?

Прежде всего, я хочу избежать пламенной войны на языках. Языки на выбор – это Perl, Python и Ruby. Я хочу упомянуть, что мне комфортно со всеми, но проблема в том, что я не могу сосредоточиться только на одном.

Если, например, я вижу классный модуль Perl, я должен попробовать его. Если я вижу хорошее приложение Python, я должен знать, как это сделано. Если я вижу Ruby DSL или какой-то рудиновый вуду, я некоторое время натягиваю Ruby.

Сейчас я работаю разработчиком Java, но планирую принять CEH в ближайшем будущем. Мой вопрос: для написания инструмента и развития эксплойта, какой язык вы считаете наиболее подходящим?

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

Еще одно: возможно, некоторые из вас спросят: «Зачем поселиться на одном языке?». Чтобы ответить на это: я хотел бы выбрать только один язык, чтобы попытаться овладеть им.

  • Разбор даты, которая может быть в нескольких форматах в python
  • Разница между утверждением и функцией
  • Ограничения Python по сравнению с Ruby: lambda's
  • Open Source ETL framework
  • Вызовите Ruby или Python API в C # .NET.
  • Использование JRuby / Jython для совместимости с Ruby / Python?
  • Можно ли исправить допустимый YAML с привязками / ссылками, отключенными с помощью Ruby или Python?
  • тесты: у python есть более быстрый способ перехода в сетевую папку?
  • 13 Solutions collect form web for “Какой из этих языков сценариев более подходит для проверки пера?”

    Вы, вероятно, хотите Ruby, потому что это родной язык для Metasploit, который является стандартной базой для тестирования проникновения с открытым исходным кодом. Ruby собирается дать вам:

    • База данных Metasploit , операционных кодов и файлов shellcode
    • Взаимодействие Ruby lorcon от Metasploit для сырой работы 802.11.
    • Привязки KARMA от Metasploit для перенаправления клиентов 802.11.
    • Libcurl и net / http для написания веб-инструментов.
    • EventMachine для веб-прокси и fuzzing-работы (или RFuzz, который расширяет известный веб-сервер Mongrel).
    • Метазм для генерации шелка .
    • Разрушение для разборки x86.
    • BinData для двоичного формата файла.

    Второе место здесь занимает Python. В Python имеется больше доступных pentesting библиотек, чем в Ruby (но недостаточно для компенсации Metasploit). Коммерческие инструменты также поддерживают Python – если вы являетесь клиентом Immunity CANVAS или CORE Impact, вам нужен Python. Python дает вам:

    • Скрученный для доступа к сети.
    • PaiMei для отслеживания программ и программируемой отладки.
    • CANVAS и поддержка воздействия.
    • Драйвер- библиотеки Dornseif для удаленной отладки.
    • Готовая интеграция с WinDbg для удаленной отладки ядра Windows (до сих пор нет хорошего ответа в Ruby для отладки ядра, поэтому я все же иногда использую Python).
    • Персик Фуззер и Салли для размытия.
    • SpikeProxy для тестирования проникновения в сеть (также, OWASP Pantera ).

    Неудивительно, что многие веб-работы используют инструменты Java. Де-факто стандартный инструмент для веб-пентентов – Burp Suite, который является Java-качели. В Ruby и Python есть варианты Java, которые вы можете использовать для доступа к таким инструментам. Кроме того, как Ruby, так и Python предлагают:

    • Прямая интеграция с libpcap для работы с сырым пакетом.
    • Связывание OpenSSL для криптографии.
    • Расширения IDA Pro.
    • Зрелые (или, по крайней мере, разумные) C-интерфейсы для интерфейса API.
    • WxWindows для работы с пользовательским интерфейсом и приличные сетевые стеки для веб-интерфейсов.

    Вы не собираетесь ошибаться ни в одном из языков, хотя для основной работы pentest Metasploit, вероятно, устраняет все преимущества Python, и в настоящее время для работы с реверсированием x86 превосходные интерфейсы отладки Python ограничивают все преимущества Ruby.

    Также: это 2008. Они не «языки сценариев». Это языки программирования. 😉

    [Отказ: я в первую очередь программист на Perl, который может раскрасить мое мнение. Тем не менее, я не особенно родовой, и я думаю по этому конкретному вопросу мой аргумент достаточно объективен.]

    Perl был разработан так, чтобы легко вписаться в ландшафт Unix, и поэтому он чувствует себя настолько чуждым людям с фоном в основном OO (в частности, в школе Java OOP). По этой причине, однако, он невероятно широко установлен на машинах с любым видом операционной системы Unixoid, и в нем написано множество служебных программ поставщика. По той же причине серверы, на которых не установлены ни Python, ни Ruby, по-прежнему, вероятно, будут иметь Perl, что еще раз заставляет задуматься. Поэтому, если ваша деятельность CEH включает в себя обширную деятельность в Unix, вам все равно придется иметь некоторое знакомство с Perl, и вы также можете сосредоточиться на ней.

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

    Что касается библиотек, я не знаю, как Ruby и Python сравниваются друг с другом – я знаю, что Perl их бил по разнице. Опять же, иногда (особенно, когда вы ищете библиотеки для общих нужд), единственным эффектом является то, что вы получаете заброшенные варианты. И если вы только хотите делать что-то в определенной области, которая хорошо покрывается библиотеками для Python или Ruby, масса других вещей на CPAN не обязательно является преимуществом. Тем не менее, в нишевых областях это важно, и вы никогда не знаете, какую непредвиденную потребность вы в конечном итоге имеете (ошибочно, по определению).

    Для однострочного использования в командной строке Python – это не стартер.

    Что касается среды интерактивного интерпретатора, Perl … uhm … ну, вы можете использовать отладчик, который не так уж хорош, или вы можете установить его из CPAN, но Perl не отправляет сам хороший.

    Поэтому я думаю, что у Perl есть очень небольшое преимущество для ваших нужд, в частности, но только просто. Если вы выберете Ruby, вы, вероятно, не будете намного хуже. Python может неудобно вас немного заметнее, но это тоже плохой выбор.

    Я могу сделать аргумент для всех трех 🙂

    Perl имеет все CPAN – дает вам огромное преимущество в быстром объединении функций. Он также обладает хорошей гибкой инфраструктурой тестирования, что означает, что вы можете подключать множество различных стилей тестирования (включая тесты на других языках) в той же структуре.

    Ruby – прекрасный язык для изучения – и не хватает некоторых из трещин в Perl 5. Если вы занимаетесь веб-тестированием, у него также есть библиотека watir – что полезно для trez (см. http://wtr.rubyforge.org/ )

    Python – хороший язык и (хотя это не относится к моим личным предпочтениям) некоторые люди находят способ, с помощью которого его структурирование легче справиться.

    Любой из них (и многие другие) будет отличным языком для изучения.

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

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

    Теперь, чтобы просто ответить на вопрос, я бы пошел с Perl, но я парень Linux, поэтому я могу быть немного предвзятым в этом.

    Если вы планируете использовать Metasploit для тестирования пера и разработки эксплойтов, я бы рекомендовал рубин, как упоминалось ранее. Metasploit написан на рубине, и любая разработка эксплойта / модуля, которую вы, возможно, захотите сделать, потребует рубина.

    Если вы будете использовать Immunity CANVAS для тестирования пера, то по тем же причинам я бы рекомендовал Python, поскольку CANVAS написан на python. Также выделяются пушистые рамки, такие как Персик и Сулли, написанные на Python.

    Я бы не рекомендовал Perl, поскольку вы найдете очень мало инструментов / скриптов / фреймворков, связанных с проверкой пера / fuzzing / exploits / … в Perl.

    Поскольку ваш вопрос – «написание инструментов и разработка эксплойтов», я бы порекомендовал Ruby, если вы выберете Metasploit или python, если вы выберете CANVAS.

    надеюсь, это поможет 🙂

    Говоря как CEH, сначала изучите материал CEH. Это предоставит вам различные инструменты и платформы, используемые для установки различных видов атак. После того, как вы хорошо поймете свою цель, изучите возможности уже имеющихся инструментов и платформ (ранее упомянутая инфраструктура metasploit очень тщательная и надежная). Как их можно расширить, чтобы удовлетворить ваши потребности? Как только вы это знаете, вы можете сравнить возможности языков.

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

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

    Если вы ищете язык сценариев, который будет хорошо работать с Java, вы можете посмотреть Groovy. Он обладает гибкостью и мощью Perl (замыкания, встроенные в регулярные выражения, ассоциативные массивы на каждом углу), но вы можете получить доступ к Java-коду из него, таким образом, у вас есть доступ к огромному числу библиотек и, в частности, к остальной системе, развиваться.

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

    Если вас интересует CEH, я бы посмотрел на Gray Hat Python . Это показывает некоторые вещи, которые довольно интересны и связаны.

    При этом любой язык должен быть в порядке.

    Ну, какие подвиги вы думаете? Если вы хотите написать что-то, что требует материала низкого уровня (ptrace, raw сокеты и т. Д.), Тогда вам нужно будет изучить C. Но и Perl, и Python можно использовать. Реальный вопрос: какой из них больше подходит вашему стилю?

    Что касается инструментария, Perl обладает хорошими способностями к обработке строк, ближе к системе, имеет хорошую поддержку, но IMHO очень запутан. Я предпочитаю Python: это чистый, простой в использовании, простой в освоении язык с хорошей поддержкой (полная ссылка на язык / lib, сторонние библиотеки и т. Д.). И это (строго ИМХО) круто.

    Я с tqbf. Я работал с Python и Ruby. В настоящее время я работаю с JRuby. Он обладает всеми возможностями Ruby с доступом к библиотекам Java, поэтому, если вам нужно что-то, что вам нужно, язык низкого уровня, который вы можете решить, вы можете сделать это с помощью языка высокого уровня. До сих пор мне не нужно было много использовать Java, поскольку Ruby имел возможность делать все, что мне нужно, в качестве тестера API.

    Мое личное предпочтение для сценариев – Python. Я нахожу синтаксис (чувствительный к пробелу), чтобы сделать вещи более читаемыми. Я не большой поклонник синтаксиса Ruby.

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

    Python, как правило, быстрее, но это меняется.

    Python - лучший язык программирования в мире.