Sí, el malware existe en todo tipo de idiomas. Sin embargo, a menudo, algunos de los fragmentos más críticos de muchas explotaciones se escriben no en C o C ++, sino directamente en código de máquina, y se ensamblan cuidadosamente con la mano. Este puede ser el único que desea obtener el tamaño y la alineación correctos para lo que estás tratando de hacer.
La distancia del "metal" es una cuestión de abstracciones y suposiciones.
Escribir en código de máquina no utiliza abstracciones y no crea suposiciones.
Escribir en ensamblaje proporciona cierto nivel de abstracción, pero ahora estás tratando con las suposiciones hechas por el ensamblador. Por lo tanto, es posible que el código no esté alineado como usted desea, pero las instrucciones serán predecibles.
Escribir en C agrega otra capa de abstracción, pero ahora estás limitado al tipo de código de ensamblaje que producirá el compilador de C.
Escribir en C ++ agrega bastante abstracción, especialmente con respecto a la administración de memoria y las llamadas de función. Ahora su código puede ser reorganizado un poco, y puede obtener más código en su binario que el que realmente escribió. Dependiendo de su objetivo, esto no suele ser un problema, pero muchos programas (el kernel de Linux, pero también otros) evitan C ++ porque no quieren ninguna impredecibilidad.
Escribir en Python cambia las cosas bastante significativamente. Ahora ni siquiera está produciendo código de máquina, está produciendo instrucciones para un intérprete. La forma en que se ejecuta el código depende de la versión y la compilación del intérprete instalado, y sus suposiciones deben ajustarse en consecuencia. Solo se puede usar donde está instalado un intérprete de python, y solo en contextos donde se puede invocar a python.
Usted utiliza la herramienta para el trabajo. Muchas vulnerabilidades involucran incluso el código Bash, que es mucho menos capaz que Python, pero es simple y está disponible. Si realmente sabes lo que estás haciendo, entonces esta no es una pregunta que merezca la pena reflexionar; utiliza la herramienta que obtiene el resultado que está buscando.