Author Topic: Programmazione VS Reti  (Read 16399 times)

alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
on: December 19, 2011, 01:02:06 PM
Per diventare un buon pen tester (non fino a livello professionale, ma quasi :)), secondo voi cosa è più importante?

- le reti

- programmazione (che linguaggi?)

Non mi riferisco al web pen testing, ma alla sicurezza di pc e network.




berghem

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
    • http://lorenzistefano.com
Reply #1 on: December 19, 2011, 01:55:23 PM
Probabilmente entrambi.... Non puoi pensare che un software sia sicuro (o una macchina) se il contesto fa acqua da tutte le parti...
Saper programmare, è fondamentale, primo o poi il tuo programma te lo scrivi....
Il linguaggio, dopo anni di seghe mentali e di discussioni sui vari forum del tipo meglio questo o quel linguaggio, ti dico, in linea di massima, va bene qualsiasi linguaggio, l'importante che l'output rispetti le tue esigenze....


alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #2 on: December 19, 2011, 04:32:50 PM
Ok. Io so sia il C++, sia il Python, entrambi fino alle classi. Io penso di approfondire il Python.

Per imparare a creare shellcode e buffer overflow, mi serve anche l'assembly, giusto?




SYSTEM_OVERIDE

  • Guest
Reply #3 on: December 19, 2011, 07:47:42 PM
Ok. Io so sia il C++, sia il Python, entrambi fino alle classi. Io penso di approfondire il Python.

Per imparare a creare shellcode e buffer overflow, mi serve anche l'assembly, giusto?



Esattamente .
Comunque la programmazione è alla base di tutto ...



alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #4 on: December 20, 2011, 02:30:55 PM
Ok. Ora approfondisco il Python e poi ci darò dentro con l'assembly 8086. Le reti le lascio perdere



vincenzo

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Reply #5 on: December 20, 2011, 06:23:18 PM
Investire sul C++ è quasi sempre cosa buona e giusta. Dipende certo dall'utilità. Se ti interessa approfondire l'architettura di un sistema operativo e la sua gestione, dico che dovresti conoscere almeno: Assembly, C, Python e Bash (per quanto riguarda Linux). E insisto sul linguaggio C al posto del C++ per la programmazione di sistema. Il linguaggio C ti avverto, sembra piccolo e snello, ma contiene una serie di imperfezioni che lo rendono sia molto versatile che molto "error prone", ma di fatto è la lingua franca dei sistemi operativi e dei protocolli TCP/IP. Se ti interessa conoscere l'exploiting a basso livello (nel senso che il livello è vicino al linguaggio macchina) ti suggerisco un titolo: http://goo.gl/CAuKv e, se non hai difficoltà con l'inglese, anche: http://goo.gl/a8gjI.
« Last Edit: December 20, 2011, 06:31:49 PM by vincenzo »

You cannot teach a man anything. You can only help him discover it within himself.




alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #6 on: December 21, 2011, 05:59:42 PM
Quindi vado avanti con le classi e il resto del Python o mi metto da 0 a imparare il C?
Sia chiaro che non devo diventare programmatore/pen tester per professione, però vorrei imparare molto :)
Quasi quasi sono spinto al C...

Che ne dici? C -> Assembly -> imparo bene varie tecniche di pen test



vincenzo

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Reply #7 on: December 21, 2011, 07:54:05 PM
Con C e Assembly capisci come funzionano i sistemi operativi e i programmi. In particolare saprai cosa succede quando si esegue un programma. Questo non ha quasi nulla a che fare con il pentesting. Vedi il passaggio C->Assembly come distaccato da ...-> imparo tecniche di pentesting. Puoi fare entrambi i passaggi indipendentemente e contemporaneamente. Devi sapere che si puo' essere degli ottimi pentester senza saper programmare: bisogna soprattutto conoscere i programmi a disposizione e saperli usare. Backbox è l'ambiente più adatto per imparare, per il semplice fatto che contiene i tools più utilizzati. Già capire come si usa il Metasploit Framework, per esempio, sarebbe un ottimo traguardo. Ti consiglio, prima di imparare tecniche di pentesting, di conoscere bene i comandi da terminale (e più in generale lo scripting Bash). Per quanto riguarda Python e C, lo stesso, puoi impararli anche contemporaneamente. Se non hai tempo per imparare il C ti consiglio di continuare con Python. Le classi del C++ sono utili per fare programmi di grandi dimensioni, ma sono concetti importanti più per chi fa il programmatore di professione e in certi ambienti. Il C++ è un linguaggio molto complicato. Se vuoi conoscerlo è solo per cultura personale o per scrivere qualche bel programma opensource che lo richieda.
« Last Edit: December 21, 2011, 08:04:34 PM by vincenzo »

You cannot teach a man anything. You can only help him discover it within himself.




alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #8 on: December 21, 2011, 08:58:37 PM
Ok grazie, mi hai chiarito molto le idee! Io di tempi da dedicare al pc, purtroppo, ne ho poco, quindi penso di imparare a usare i tool e (magari) andati avanti col python. Per quanto riguarda la shell conosco abbastanza comandi.

Ultima cosa: che tool mi consigli di imparare a usare (per primi), e c è qualche guida/documentazione ufficiale?
(Io per metasploit ho letto un po della guida ufficiale in inglese e ho guardato molti video su youtube)



vincenzo

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Reply #9 on: December 21, 2011, 09:55:05 PM
Prego, guarda qui: http://sectools.org/
I tools della lista che stanno anche su Backbox vale la pena di imparare a usarli. All'inizio ti consiglio di mettere su una rete locale, magari virtuale, oppure installa solo un sistema operativo su virtualbox per esempio. Per iniziare fai pratica con nmap (scanner) e wireshark (sniffer), e nel frattempo cerca di capire come sono fatti i protocolli tcp/ip. Poi passa ad altri tools più specifici.

PS: per le guide occorre che leggi il più possibile e spesso dovrai farlo in inglese. Nei siti relativi a ogni tools trovi le documentazioni ufficiali.
      Un best-seller sull'hacking, che ti illustra alcune delle tecniche più utilizzate è questo: http://goo.gl/d6Y1Q
« Last Edit: December 22, 2011, 01:06:25 AM by vincenzo »

You cannot teach a man anything. You can only help him discover it within himself.




alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #10 on: December 22, 2011, 10:30:05 PM
Grazie mille :)



alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #11 on: December 24, 2011, 12:12:58 AM
Ultima cosa poi non rompo più (:)): per imparare ad usare bene wireshark ho bisogno di imparare bene le reti? Che manuale mi conviene studiare a proposito? E che manuale esiste per wireshark? Grazie



vincenzo

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Reply #12 on: December 24, 2011, 03:32:07 PM
Ciao, vedi qui:
http://www.wireshark.org/download/docs/user-guide-a4.pdf
http://www.wireshark.org/docs/
ripeto, di solito trovi le guide ufficiali o link utili nei siti relativi a ogni programma. ;)

Ci sono tanti libri sui protocolli tcp/ip, personalmente quello che conosco sulle reti è per via dei libri di Stevens sulla programmazione Unix, non saprei che guida gratuita consigliarti sul web a parte il secondo volume di Daniele Giacomini che credo valga la pena leggere: http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/a248.htm#almltitle2008
« Last Edit: December 24, 2011, 04:29:19 PM by vincenzo »

You cannot teach a man anything. You can only help him discover it within himself.




alessandro

  • Newbie
  • *
  • Posts: 14
    • View Profile
Reply #13 on: December 24, 2011, 06:50:35 PM
Ok! Il protocollo tcp/ip devo conoscerlo in modo approfondito o mi basta sapere qualche nozione di base?



vincenzo

  • Full Member
  • ***
  • Posts: 103
    • View Profile
Reply #14 on: December 24, 2011, 07:39:22 PM
Ti basta conoscere nozioni di base.

You cannot teach a man anything. You can only help him discover it within himself.