Uso Veil Evasion e Metasploit.
Credo che i buoni commenti già aggiunti chiariscano che non esiste una semplice risposta a o b qui. Dipenderà dall'ambiente e dalle informazioni che puoi raccogliere nella tua ricerca prima di iniziare il test della penna (che è forse il passo più importante - raccogli quante più informazioni possibili sul tuo obiettivo prima di fare qualsiasi cosa e che spesso fornire le risposte di cui hai bisogno).
La mia "regola generale" è iniziare dal livello di astrazione più alto. HTTP è un protocollo che si trova in cima al TCP, quindi se sto cercando di penetrare un sito tramite i suoi servizi basati sul web, inizierò con HTTP piuttosto che TCP (supponendo che tutti gli altri fattori siano uguali e nulla nella mia ricerca indica che TCP essere un inizio migliore: ad esempio, se sono stato in grado di determinare l'infrastruttura di destinazione con una vulnerabilità TCP nota e facile da sfruttare, potrei iniziare con TCP anche quando si rivolgono a servizi Web)
Leggi altre domande sui tag penetration-test shellcode metasploit