An Answer and a questions... Pentesting and Security

Hacking is a grey area subject to start in to a lot of people, mainly because with no knowledge the subject can land you in very hot water.

So to practice you must have a "Lab" which is a secure environment to test your tools with. Virtual box or VMware do perfectly for these and I shall link a good setup guide below, I did explain this in a post months ago, but it can take a long time to explain.

Next part is books, Books are superb sources of knowledge, and they are portable, I prefer hardbacks but I use e-books due to the portability, my nexus doesn't weigh as much as 1 book, so yeah. Anyways I shall share a few book names with you, I have only read the Hacking for Dummies and I am moving onto Art of Exploitation next.

Hacking for Dummies

Hacking - The Art of Exploitation, 2nd Edition

The Basics of Hacking and Penetration Testing

Metasploit - The Penetration Testers Guide

Backtrack 5 Wireless Penetration Testing Guide

CEH Hacker All in One Guide

 

Also it is advised you have at least a basic network knowledge, I would personally say an advanced knowledge base if you plan to have a professional pentester career. I have personally only read the Networking All in One book for Dummies, I love the dummies books as there is a bit of comedy inside them and its a more laid back series with good explanations.

Now here comes my question.

For security it is normally advised that you have a programming language and I am kind of stuck between what to learn 1st, Seems more like Python at the current moment, what other language is viable? C, C#, C++, SQL?

I also understand it would be better to have stuff like java and HTML for web based attacks, I know hackers normally work in one area, maybe wireless attacks, Firewalls IPS and IDS (Which is where I plan to specialize) So please offer your opinions!

Thanks in advance!!

Disclaimer - If you perform hacking in anyway and it goes wrong nobody on this site will be held responsible, The knowledge is given for Ethical Hacking of your own network or networks given permission via both the IT Admins and Security team and the Managers.

Hacking; I hate that term. You are talking about cracking, and/or network security, not hacking.

 

C#

@Brennanriddell More so Network security not cracking unless your cracking passwords for legitimate reasons... and thanks anarekist

um... why would you use c#? if you are talking about infosec sort of "hacking".... a lot of what you are going to be doing is buffer overflow exploits, which is very low level. you need to know op-code (asm converted to hex instructions basically)... as well as how C programs work (because most of your exploits will be though overruns in things like cstring's strcpy function).


if you want a sandbox environment to do stuff... look into hack.me

 

also, please try to avoid using terms like "hacking" when talking about pen testing and what not. im tired of people thinking im a criminal or have ill-intent when i tell them im a hardware hacker.

thank ztrain i shall look into them, what would you suggest to python? and to all that read this post, its all for security purposes, just because people have the power to damage a system, doesnt mean they will, as we like to promote ethical hackers here :) also title has been changed to help people see what i mean :)

Scale of vurnerabilities:

1. 90% of vulnerabilities: Human factor: required language: social engineering or marketing as a form of social engineering, no language knowledge required (e.g. convince people to use Windows or another security flawed system, the Indian and Nigerian phone scammers have been successful at using the combination of Windows & a not-giving-a-fuck-about-computers user to penetrated thousands of systems, the Russian and Chinese botnets are legendary, and all of that without the Indians, Nigerians, Russians or Chinese perpetrators even knowing what a programming language is, the NSA, Microsoft, Google, IBM, etc.. all have free access 24/7 to any Windows system in the world that is connected to the internet or to a computer connected to the internet, ...), to any old scripting language (even bash is sufficient) to make human vectored payloads (e.g. keyloggers on USB sticks, etc...), or to simple scripting languages (python, lua, whatever) to make microcontroller based penetration payload vector devices or even make simple scripts on a PC that can do certain tasks, (the modern favorite are "gaming" mice that hold their own microcontroller and memory, if someone buys such a mouse online, and that person works for or with a target, intercept that mouse, reprogram it with a Pico programmer,... NEVER connect a microcontroller equipped device to your PC unless you've programmed it yourself and know every bit of data in the memory!), or like exploit vulnerabilities of for instance sssd-based LDAP tokens in a company badge or a USB stick or an RF-enabled item.

2. 9.9 % of vulnerabilities: Commercial bad programming: required language: whatever it is written in, depending on your target, might be C++, C, Objective C, java, etc... and some good analysis tools to look for vulnerabilities in the code, e.g. the flawed RNGs of Android devices that run gapps or AOSP.

3. 0.1% of vulnerabilities: Hardcore hacks to penetrate the toughest systems and make it hard to patch the security flaws: low level to hardware level programming languages,even assembler or other machine languages, to corrupt BIOSes, make GPU cards into penetration vectors or payload delivery systems, etc... think corporate espionage through switches and routers, alarm systems, the flawed RNGs of Intel CPUs, etc...

Whenever i hear the term hacker i think of taking stuff apart and seeing how it works and trying to make it better or re purpose it, i must be old.