• XSS.stack #1 – первый литературный журнал от юзеров форума

C++ vs Python для пентестера

error 404

RAM
Пользователь
Регистрация
05.04.2024
Сообщения
121
Реакции
22
Привет форумчане!
Я с недавних пор начал изучать пентест. Мне еще далеко даже до того чтобы называть себя пентестером-новичком, но тем не менее
Сегодня я проснулся с навязчивой мыслью что не хочу расти скрипт-кидди хацкером, по этому задумал параллельно начать учить какой-нибудь один ЯП
И тут возникла дилемма: На одной чаше весов С++ , который позволит мне лучше понимать что вообще происходит под капотом у компа и у разного рода эксплойтов и прочей малвари
На другой же чаше весов находится Python, который я смогу быстрее понять и обуздать, и на котором я смогу писать всякого рода скрипты (возможно) полезные для меня как для пентестер
Какой язык на ваш взгляд будет более практичным?
 
С++ , который позволит мне лучше понимать что вообще происходит под капотом у компа

Вовсе нет. С++это язык высокого уровня, специально лезть под капот там не требуется почти никогда.

Python, который я смогу быстрее понять и обуздать

Тоже не факт.

я смогу писать всякого рода скрипты

Зацени, какие скрипты можно делать:
Код:
import ctypes

# Определяем функцию на ассемблере
assembly_code = """
    .globl add_numbers
    .type add_numbers, @function
add_numbers:
    movl %edi, %eax
    addl %esi, %eax
    ret
"""

# Компилируем ассемблерный код в библиотеку
lib = ctypes.CDLL(None)
lib.add_numbers.argtypes = [ctypes.c_int, ctypes.c_int]
lib.add_numbers.restype = ctypes.c_int
lib.add_numbers.from_buffer_copy(assembly_code.encode())

# Вызываем функцию
result = lib.add_numbers(5, 3)
print(result)  # Выведет 8

Какой язык на ваш взгляд будет более практичным?

Если не знаешь ничего - начни с любого. Почти наверняка одного языка тебе не хватит. Практично нарабатывать навыки в целом.
 
На одной чаше весов С++ , который позволит мне лучше понимать что вообще происходит под капотом у компа и у разного рода эксплойтов и прочей малвари
Не верно. С++ не откроет тебе капот даже до щелчка после которого надо поднять язычок фиксатора чтобы открыть капот полностью. Пентестеру не нужно уметь программировать в принципе, весь нужный софт уже написан, пентестеру нужен вкаченный на 146% софтскилл, ну и чуток разбираться в том как работают компьютерные сети - в смысле отличать TCP от UDP, что пинг это ICMP, что такое таблицы маршрутизации и нахрен вообще нужен шлюз.
 
Изучай С (не С++, не С#). потом понимаешь о чём я говорю
Не мог бы ты пожалуйста немного развернуть свою мысль?)
А то боюсь что я так и не смогу в конечном итоге не понять о чем ты говорил
 
Не верно. С++ не откроет тебе капот даже до щелчка после которого надо поднять язычок фиксатора чтобы открыть капот полностью. Пентестеру не нужно уметь программировать в принципе, весь нужный софт уже написан, пентестеру нужен вкаченный на 146% софтскилл, ну и чуток разбираться в том как работают компьютерные сети - в смысле отличать TCP от UDP, что пинг это ICMP, что такое таблицы маршрутизации и нахрен вообще нужен шлюз.
Вообще я хотел бы в перспективе стать кем-то большим чем просто пентестер. Я хотел бы стать кем-то близким по значению к слову "хакер" и смотреть на вещи шире (но этого в посте я конечно не указал) вот и обдумываю сейчас кодинг как один из вариантов.
Говорят что отдых это смена деятельности, по этому думаю что в моменте когда меня заебывало бы копаться в сети я мог бы идти и учиться писать код, чтобы быть более продуктивным
 
Вовсе нет. С++это язык высокого уровня, специально лезть под капот там не требуется почти никогда.
Но при этом как я понимаю он позволит понять больше чем питон (ну в смысле не сам язык позволит конечно, а я буду вынужден глубже вкопаться, чтобы научиться на нем кодить)
К тому же я смогу лучше понимать эксплоиты которые на нем написаны, что для меня как для пентестера будет жирным плюсом (наверное)
 
Вообще я хотел бы в перспективе стать кем-то большим чем просто пентестер. Я хотел бы стать кем-то близким по значению к слову "хакер" и смотреть на вещи шире (но этого в посте я конечно не указал) вот и обдумываю сейчас кодинг как один из вариантов.
Говорят что отдых это смена деятельности, по этому думаю что в моменте когда меня заебывало бы копаться в сети я мог бы идти и учиться писать код, чтобы быть более продуктивным
Питон принесет тебе счастье, плюсы сожрут твои нервы и время, это краткосрочная перспектива.
Если у тебя есть много времени и есть усидчивость - учи плюсы, награда рано или поздно будет достойной.
Если хочешь по кайфу писать код и не особо парится о своей квалификации и профпригодности - питон твой выбор.
А вообще оба они должны быть в твоем стеке. В каком порядке не особо важно.
 
I think that it depends what is your purpose. Personally, I prefer C++ to learn code more in deeper, because is more complex than python (compiling, object-oriented, syntax..) but, in other hand, if you want to create scripts quickly, possibly the best option is python (also contain a lot of libraries that give you a lot of work done)

In resume, I prefer C++ in order to learn how to work the logic of a code that, possibly, it helps you to know about the basics of a lot of languages :)
 
I think that it depends what is your purpose. Personally, I prefer C++ to learn code more in deeper, because is more complex than python (compiling, object-oriented, syntax..) but, in other hand, if you want to create scripts quickly, possibly the best option is python (also contain a lot of libraries that give you a lot of work done)

In resume, I prefer C++ in order to learn how to work the logic of a code that, possibly, it helps you to know about the basics of a lot of languages :)
If you know C or C++, you will understand other languages
 
Во первых я не совесем понял что ты имеешь ввиду говоря пентест? Пентест может быть и не обязательно вебом. Дальше я буду отвечать на твой вопрос взяв за аксиому то, что ты имел ввиду Web пентест.

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

Например на сайте реализовано получение файла по id. Напрмер GET /file/download?file_id=234 тут ты сразу можешь предположить что файл вероятнее всего хранится в уже существующей БД. И размер файла ограничен 50 мб (обычно столько можно хранить в бд как raw data). Делать получение файла из FS(File System) по идентификатору СЛОЖНЕЕ, ЧЕМ ХРАНИТЬ ЕГО В БД. Ну и сразу из этого вытекает, что проверять в этом запросе LFI/RFI бесполезно, проверить SQLI будет куда логичнее.

Пентестеру не нужно уметь программировать
Конечно, вы можете и не знать программирование, но так вы просто усложните себе рабочий процесс. С таким же успехом вы можете не использовать Burp Suite и пентестить используя DevTools. Тут стоит вопрос эффективности. Эффективнее уметь программировать.

весь нужный софт уже написан
Не весь. Софт написан под "общие" кейсы. Например в zaproxy есть автоматическая авторизация через html form. Но что вам делать если у вас на сайте используется авторизация через JWT? Загадка. Есть много моментов где общее решение не подходит, и если вы не можете автоматизировать его самостоятельно (не умеете в программирование) вы просто не проверите часть функционала, или убьете куда больше времени.

Что касается изначального вопроса что выбрать C++ или Python для WEB пентеста. Вы вольны выбирать любой иструмент, однако как я считаю эффективнее конечно будет выбрать Python, ибо он разработан специально для абстракций над железом и быстрого скриптинга. Под задачи веба самое то. Так же вам важно понять что вам нужно изучать именно ПРОГРАММИРОВАНИЕ, используя язык. А не ЯЗЫК ПРОГРАММИРОВАНИЯ. Язык программирования вторичен относительно программирования. Вы можете делать все тоже самое используя другой язык, например javascript. Тут впрос удобства и эффективности.

Удачи в ваших начинаниях.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх