Начать стоит с изучения архитектуры, потом ОС. Как можно написать эксплойт который будет работать внутри системы, не зная слабых сторон системы и ее самой? Установить Kali и запустив скрип в терминале не сделает тебя хакером, так же как и написания эксплойта по гайдам. Ты должен понимать, под, что ты пишешь и зачем, что именно эксплуатировать. Беря гайд из интернета, ты встрянешь на первой же нестандартной ситуации (либо просто отличной от гайда).
Если конкретно по языкам, но тк автор ставит вопрос - на каких писать, а не как, то я бы направил его учить CS. Как правило тут отсекаются 95%.
С/CPP/Ruby/Python/ASM/PHP/etc. Даже на HTML можно делать разные вещи. Тут скорее сектор разделения уровней программ. Учи матчасть, там сам поймешь, что нужно и как учить.
PS под каждую технологию и ситуацию, свой инструмент