Security Professionals - ipfw add deny all from eindgebruikers to any

Ethical Hacker

27-03-2012, 08:11 door Anoniem, 15 reacties
Hallo Iedereen,

Ik heb grote interesse om me een beetje te verdiepen in het security wereldje.
Maar het loopt een beetje stroef, men eerste probleem is het programmeren.
Momenteel ben ik bezig met Python daarvoor met c++, elke keer begin ik te twijfelen en ga ik zoeken op internet.
Kom ik verschillende programmeer talen tegen (perl, assambly,..) telkens met mensen die zeggen dat dit of dat beter is.
Nu was mijn vraag aan jullie wat ik het best zou leren? (eerste programmeer taal).
Ik zou het graag willen gebruiken om exploits, reverse engineering, ethical hacker toestanden te gebruiken.

Als tweede zit ik ook beetje vast waar te starten met het pen testing.
Heb hier server draaien met virtuele machines erop en probeer vanalles met Backtrack te doen maar echt veel komt er niet uit.
Het lijkt allemaal redelijk goed beveiligd volgens mij.. weet er iemand een e-book of website waar ik echt een goede basis kan opdoen om van start te gaan.

Zou iemand mij een beetje op weg kunnen helpen?

Alvast bedankt!
Reacties (15)
27-03-2012, 09:49 door Anoniem
Verschillende cursussen zijn beschikbaar op www.certifiedsecure.com. Ook filpmjes op youtube of hackertube geven veel informatie. Een cursus doen werkt vaak het beste (ethical hacking).

Zelf exploits ontwikkelen is niet zo eenvoudig. Kennis van SQL is wel erg handig om bijvoorbeeld een SQL-injectie uit te voeren. Verdiepen in html en java kan ook geen kwaat.
27-03-2012, 10:15 door RickDeckardt
grote interesse ... beetje verdiepen. Wat wil je nu? ... beetje stroef. Alle begin is moeilijk.

Programmeren wil je leren en niet zo zeer een programmeertaal.
Je leert programmeren door een structuur te maken voor een programma. Uiteindelijk doel is om de computer dat te laten doen wat je wilt dat het doet.
Begin simpel met een "hello world", leer dan hoe je datastructuren kan maken (linked lists, arrays, etc), daarna hoe je met files/directories kan werken, netwerken, databases, GUI komt pas veel later.
Protip: Pak er een goed lesboek bij.

Pentesting is weer een heel ander spel, een puzzel zelfs. Check de cursussen die SANS aanbied. Prijzig maar waar voor je geld https://www.sans.org/security-training/network-penetration-testing-ethical-hacking-937-mid
27-03-2012, 10:55 door Anoniem
Alvast bedankt voor de reacties, ik heb geen enkel probleem om een programmeer taal onder de knie te krijgen en ben al aardig op weg maar ik weet gewoon niet welke de beste taal is om te leren.. python ligt me eigenlijk beter dan c++ maar ik denk gewoon dat ik met c++ meer ben dan de python of is dit niet zo?

Voor het pen testing.. het is gewoon moeilijk om als beginner hierin te starten er zijn zoveel dingen om te doen!
Ik zal eens zoeken naar een cursus om te volgen voor het pen testen!
Bedankt voor de link RickDeckardt!
27-03-2012, 11:10 door Vergeten
Ga C leren, dan leer je pas een taal.

Maar ja persoonlijk zou ik C++ eerder kiezen dan Python aangezien C++ sowieso op alle Windows versies werkt. Python moet je eerst installeren (zover ik weet kan nu anders zijn).
Wat ik beetje leer van de "virus" markt is dat veel op C++ of C# wordt geschreven. C# heeft .NET nodig en C++ niet.

Dus ja wil je grotere markt zou ik voor C++ gaan.

Ik hou het zelf lekker gewoon bij websites, PHP enz haha.
27-03-2012, 11:19 door tegenlicht
De beveiligingsfuncties zijn er echt in vele soorten en maten.

Het beste is natuurlijk als je heel goed bent in programmeren, zo goed dat je er een aantal beheerst en alle zwakke plekken kent. polymorfisme en bufferoverflow zeggen je alles. Je bent zeer goed in Netwerken, de protocollen ken je goed en mede ook de zwakke plekken, Je kent cisco IOS, maar je weet ook hoe je een TCP/IP stack zelf programmeert. analystisch bent zowel op het gebied van techniek als op het psychologisch vak, Denk aan Social engineering, maar vergeet ook niet lockpicking. logisch kunt nadenken. Heel veel verstand van hardware, Je weet wat een watchdog in een uController is, Het ombouwen van een Playstation 3 kent geen geheimen voor je. Meerdere Besturingssystemen beheers op het niveau dat je alle services van Microsoft kent. Termen als MBR en Starvation, Threading, noem maar op, kun je ieder fijlloos uitleggen. O ja, Databases. Zeer belangrijk. Advanced SQL. Werking van virussen begrijpen. Hackers begrijpen. Als je dit allemaal beheerst, dan ben je er..
..
..
..
..
bijna. Want dan ben je heel goed in techniek en kun je heel snel iets met security doen, maar Bedrijfsprocessen begrijpen, directies overtuigen, schrijven van rapportages? Das andere koek.

Een persoon die heel goed is in de eerste lijst is heel zeldzaam maar ze zijn er wel. Vaak zijn dit door en door gedreven mensen met vele jaren ervaring. Dit zijn mensen die 1tjes en 0tjes in hun DNA hebben naast de bekende A, T, G en C nucleotiden.

Iemand die op zowel het technisch vak zeer onderlegd alsmede op bedrijfskundig niveau. Die ken ik niet. Volgens mij zijn ze op één hand te tellen. dit is precies de reden waarom je vele soorten en maten hebt van security. Wat je eigenlijk zou moeten vermelden is het volgende:
- Wat beheers je allemaal in welke mate en hoeveel ervaring heb je daarin.
- Wat vind je leuk. en niet zeggen, security, maar preciezer. wil je softwareware op risicos testen? websites? social engineering? reverse engineering? mensen voorlichten? raportages schrijven? Wat wil je precies.

Het kan zijn dat je op deze tweede vraag geen zinnig antwoord kunt geven. In dat geval moet je vooral doorgaan met het leren van de programmeertalen, boeken lezen, een baan zoeken die aansluit en ondertussen zodanig verdiepen in het beveiligingsvraagstuk dat je deze tweede vraag kunt beantwoorden.

succes
27-03-2012, 12:00 door Anoniem
Mooie post Tegenlicht.. maar als ik dit allemaal lees sta ik toch even stil! Er is nog heel veel dat ik moet leren! :-)
Op dit moment heb ik redelijk goede kennis van taal: html en op gebied computer: tcp/ip, cisco, windows servers, netwerken, exchange, vps, gewoon netwerk technicus eigenlijk.
Wat ik eigenlijk graag zou willen doen is het reverse engineering deel om zo te begrijpen hoe het testen van software werkt.
zoals je zelf zegt een playstation 3 ombouwen lijkt me perfect die is door te reverse engineeren en dan te herschrijven toch?
sql injections enz dat ligt me niet zo..
Als dit een beetje lukt heb ik nog wel interesse om later dan het pen testen er wat bij te nemen.

Dus het beste is gewoon te beginnen met het programmeren in c++ en het leren reverse engineeren?
27-03-2012, 12:43 door Anoniem
Om meer over exploits te leren kan ik deze site echt aanraden:

http://www.corelan.be:8800/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/
27-03-2012, 14:29 door regenpijp
Dan nu een beetje spam voor pentesting courses:

Offensive Security (als je al redelijk wat weet): http://www.offensive-security.com/information-security-training/penetration-testing-with-backtrack/
eLearnSecurity (heeft zowel een beginners als professional course): http://www.elearnsecurity.com/

Even over programmeren: exploits schrijven (ik neem aan dat je 0days bedoelt) kost jaren om dat echt onder de knie te krijgen. Ik zit zelf ook te twijfelen tussen een aantal programmeertalen, maar even alles op een rijtje wat standaard is: BASIC, is vooral voor beginners
C, C++: Een van de industriele standaarden voor programmeerwerk, niet aan te raden voor beginners, hier zijn Windows, Unix, Linux e oa. gedeeltelijk in geschreven.
Java: Ook een industriële standaard, niet aan te raden voor beginners,
Assembly: niet aan beginnen kost dacht ik 15 regels code om alleen "hello world!" op het scherm te krijgen, maar voor OS kernels wordt 't wel weer veel gebruikt omdat het snel is.
Python: Universele, redelijk makkelijke programmeertaal, kan door beginners als professionals worden gebruikt.
Perl: Ongeveer 't zelfde als python, natuurlijk wel met een hele andere opzet.
PHP: programmeertaal voor webpagina's

Exploits worden dacht ik vaak in Python geschreven.

Conclusie: begin gestructureerd en bij de basis, niet gelijk exploits willen kunnen schrijven, begin eerst met web applicatie beveiliging en leer ondertussen wat Linux commandline.

Hee, kijk nou het 'moederbedrijf' achter security.nl heeft heel wat challenges waar je redelijk veel kunt leren certifiedsecure.com :P

Nu moet ik zeggen, dat ik zelf ook geen expert ben, dus het kan ook zo zijn dat ik sommige dingen verkeerd heb begrepen. :)
28-03-2012, 10:48 door tegenlicht
Door Anoniem: Mooie post Tegenlicht.. maar als ik dit allemaal lees sta ik toch even stil! Er is nog heel veel dat ik moet leren! :-)
Op dit moment heb ik redelijk goede kennis van taal: html en op gebied computer: tcp/ip, cisco, windows servers, netwerken, exchange, vps, gewoon netwerk technicus eigenlijk.
Wat ik eigenlijk graag zou willen doen is het reverse engineering deel om zo te begrijpen hoe het testen van software werkt.
zoals je zelf zegt een playstation 3 ombouwen lijkt me perfect die is door te reverse engineeren en dan te herschrijven toch?
sql injections enz dat ligt me niet zo..
Als dit een beetje lukt heb ik nog wel interesse om later dan het pen testen er wat bij te nemen.

Dus het beste is gewoon te beginnen met het programmeren in c++ en het leren reverse engineeren?

Mooi, nu begrijp ik het allemaal wat beter je bent een netwerkman. Met jouw achtergrond kun je heel snel richting de network security. Met wat opleidingen, boeken en certificaten ben je er binnen twee jaar denk ik. Maar dat is niet waar je naar toe wil. Je wilt richting de software security.

Reverse engineering is heel interessant en leuk, maar ik weet in Nederland maar weinig bedrijven die daar iets mee kunnen. Kapersky heeft zulke mensen nodig om virussen te reverse engineeren. Maar dat is even verderop. En je moet echt heel goed zijn wil je ergens aangenomen worden. Vergeet niet dat een Playstation reverse engineeren heel wat anders is dan een virus op microsoft. Waar het op neer komt is dat je echt heel goed moet worden om er iets mee te kunnen. Ik zou zeggen. Maak hiervan je lange termijn ambitie en begin met iets concreets. Met concreet bedoel ik iets waarmee je aangenomen wordt bij een bedrijf of als zelfstandige zelf iets kunt doen.Want de ervaring in het veld is dat gene waarvan je het meest leert.

Ik wil je droom niet afschieten dus ga ik alsnog mijn visie met je delen hoe je daar alsnog komt. Als je reverse wilt engineeren, moet je EERST weten hoe je engineert. Dus software bouwen. Neem een taal Zoals c of c++, want daar leer je direct met het OS communiceren. Veel oefenen. Zoek een bedrijf waar je dat kunt doen. Kies een OS uit en probeer het goed te begrijpen. En dan heb ik het niet over hoe je het installeert, maar begrijp de services, hoe het met zaken als prioriteiten omgaat, hoe het OS is geschreven. Kies een OS en concentreer je daarop. Leer over de werking van drivers, systeemprocessen. Probeer zelf een driver te schrijven. Er zijn genoeg boeken. Een echte aanrader is het boek Operating Systems van William Stalling. Tanenbaum heeft ook enkele mooie teksten geschreven. Oja, waarom niet metteen een opleiding. Tanenbaum de goerroe op het gebied van Operating Systems geeft gewoon les aan de VU dacht ik. Of de opleiding digtaal rechercheur op MBO niveau. Op HBO heb je ook wel wat. Pas alleen op voor de 5.000 euro opleidingen van twee weken. Soms zijn ze heel goed maar daar haal jij geen voldoening uit.

Op korte termijn zou ik gaan voor Network+, security+ van Comptia. Nog wat termen waarmee je aan de slag kunt gaan:

EC-Council
Certified Ethical Hacker (CEH)
Licensed Penetration Tester (LPT)
Computer Hacking Forensic Investigator (CHFI)
EC-Council Network Security Administrator (ENSA)
Certified Information Security Officer (CISO)
EC-Council Certified Security Analyst (ECSA)
Certified Network Defense Architect (CNDA)
EC-Council Certified Secure Programmer (ECSP)
Certified Secure Application Developer (CSAD)
Exin
checkpoint
cwnp
CCNA
CCNP
lpi

Hoop dat je er wat aan hebt.

gr. Tegenlicht
28-03-2012, 10:57 door Duck-man
Ga eerst eens gewoon programmeren. Maakt niet echt uit waar in van mijn part in basic (bestaat dat nog?). Je moet eerst leren denken als een programmeur. Ga dan programma's van anderen ontleden, kijken hoe zij dingen gedaan hebben, en dan aanpassen.

Hacker word je niet zomaar. Elke hacker is programmeur. Kan je niet programmeren eerst dat leren. Je moet lol hebben in het programmeren. Leer je dit in een weekje? vergeet het maar. De meeste hackers zijn als kind begonnen (ja in basic).
28-03-2012, 17:10 door Anoniem
Nogmaals bedankt iedereen voor de bovenstaande posts hebben me echt wel geholpen!
Ik heb reeds beslist om verder te gaan in c++ momenteel ben ik bezig met zelfstudie en nu september begin ik met school.
Zoals je zelf zegt zijn er niet al te veel jobs voor reverse engineers, dus ga ik me meer focussen op software schrijven security en dan later de stap proberen zetten naar reverse engineering. Tussendoor zal ik dan ook proberen de EC council te doen en geraak ik wel ergens in de security wereld binnen en zal ik dan stap voor stap bijscholen en men interesse volgen!

Bedankt iedereen voor de help volle posts!
28-03-2012, 19:31 door Overcome
Door Anoniem: Nogmaals bedankt iedereen voor de bovenstaande posts hebben me echt wel geholpen!
Ik heb reeds beslist om verder te gaan in c++ momenteel ben ik bezig met zelfstudie en nu september begin ik met school.
Zoals je zelf zegt zijn er niet al te veel jobs voor reverse engineers, dus ga ik me meer focussen op software schrijven security en dan later de stap proberen zetten naar reverse engineering. Tussendoor zal ik dan ook proberen de EC council te doen en geraak ik wel ergens in de security wereld binnen en zal ik dan stap voor stap bijscholen en men interesse volgen!

Wat voor boek gebruik je voor je C++ zelfstudie? De reden waarom ik dit vraag is omdat er enorm veel webpagina's zijn met tutorials waarin slechte programmeereigenschappen bijna tot kunst wordt verheven. Als je wilt leren programmeren, dan kan ik je van harte het boek "Programming. Principles and practice using C++" (van de ontwerper van C++, Bjarne Stroustrup) aanbevelen. Als je geldgebrek hebt, dan is het boek illegaal als PDF te downloaden van Internet, maar dat heb je niet van mij. Dat boek leert je niet zozeer C++. Het leert je programmeren, met toevallig C++ als programmeertaal om dat doel te bereiken. Het boek is in het Engels, maar als je in de security wereld werkzaam wilt zijn moet dan geen barriere voor je betekenen (en anders houd je www.mijnwoordenboek.nl paraat). Voordelen van dit boek voor jou:

(1) Het lezen en kunnen voltooien van het boek vereist geen enkele programmeerervaring.
(2) Het boek is opgezet als zelfstudie materiaal, dus je hebt geen leraar nodig (en anders bieden C++ fora uitkomst).
(3) Het boek bevat veel oefenopgaven, zodat je veel kunt oefenen. Oefenen is een vereiste om verder te komen.
(4) Je kunt voorlopig lekker dooroefenen, want het boek beslaat ruim 1200 pagina's.

Ik kan me voorstellen dat je twijfelt. Sterker nog, ik doe niet anders en ik draai inmiddels ook al wat jaren mee in deze tak van sport. Het nadeel van die twijfel is dat je iets verliest dat je niet wilt verliezen: FOCUS. Ik heb vele malen een begin gemaakt met het studeren voor een examen. Maar steeds werd ik afgeleid, want ik zat met mijn neus alweer in een ander beveiligingsonderwerp. Daardoor heb ik jarenlang geen examens gedaan, waardoor ik nu minder ver ben in mijn vakgebied dan ik zou willen. Ik zeg niet dat het zo erg is bij jou :-), maar probeer vol te houden, probeer je doel voor ogen te blijven houden en besef je dat alle professionals die ik ken er op een gegeven moment even geen zin meer in hadden of twijfelden aan de door hun ingeslagen weg. Te weinig tijd, te saai, andere prioriteiten, te moeilijk, te weinig progressie in dat boek, teveel andere mensen die er veel meer vanaf weten dan jij, te veel commentaar van naasten etc etc. Vergeet al die dingen. Houd focus. Je merkt vanzelf wanneer het heilige vuur voor een onderwerp verdwijnt. Dan is het tijd om keuzes te maken. Laat je echter niet voortijdig het veld uit slaan.

Nog 1 laatste tip: neem niet teveel hooi op je vork door je met van alles bezig te houden. Dat deed ik ook, maar werkt niet. Goede programmeurs hebben niet eens de tijd om overal en nergens mee bezig te zijn. Dat is namelijk het nadeel van programmeren: als je niet genoeg oefent en weken achter elkaar niet programmeert, dan zakt alles weer weg, net zoals natuurlijke talen die je niet frequent spreekt. Kortom: houd focus en houd plezier in wat je doet. Dan blijft het heilige vuur vanzelf branden.

Succes!
28-03-2012, 20:55 door tegenlicht
Om OverCome nog aan te vullen. "The C++ programming language" van bjarne straustrub vond ik ook zeer handig boek. Het gaat echt heel diep. een van de opdrachten is geloof ik een parser schrijven.

Andere boeken die echt eyeopeners zijn voor als je klaar bent ;-)
How to think like a computer scientist. Open source boek en gratis http://www.greenteapress.com/thinkcpp/
C++ Unix system calls. Ook gratis en legaal http://www.cs.cf.ac.uk/Dave/C/
C++ A dialog..., ook gratis en legaal http://www.steveheller.com/cppad/cppad.htm

Volgens mij heb je genoeg advies opgedaan en kun je nu zo verder?

Tegenlicht
31-03-2012, 21:09 door Anoniem
Ook ik wil iedereen in deze topic erg bedanken voor de gegeven informatie! Ik zit namelijk met precies hetzelfde probleem als de topic-starter, al ben ik misschien nog iets jonger dan de TS.
09-04-2012, 21:44 door Anoniem
Gewoon naar school gaan en een beetje doorzetten.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.