Week 3 – Enumeration and Cracking
Week 3 is done and it was the best yet! In this course, I have a feeling that every week will be better than the one before it. I studied for 10 hours after work and on the weekend and still managed to do a little painting!
In my original post, Investing a Year in Ethical Hacking, I detail my plan to invest 416 hours in 2017 to learn ethical hacking. Current progress: 30 / 416.
The end of the month is dangerously close. The year is almost 1/12th of the way over. Are you almost 1/12th of the way to your goal for the year?
Enumerating SMTP was…. a disappointment actually.
Keep reading and I’ll explain what I found along with how I cracked some passwords!
Week 2 – Scanning, Enumeration, and Back to Basics
The second week in my quest to become an ethical hacker is complete! With 11 hours of study time logged, this was a very productive week that touched a lot of different areas.
If you’re not sure why I’m posting this, take a look back at my original post, Investing a Year in Ethical Hacking where I detail my plan to invest 416 hours in 2017 to learn ethical hacking. Current progress: 20 / 416.
The hours are starting to add up and this is only week 2 of 52. I can’t wait to keep going and I hope you will join me!
As you know by now, I am a big fan of going SLOWLY through this content to really understand it. That is why I am still working on scanning here in week 2.
Some of the scans like the Null scan and Xmas scan don’t work against Windows systems. I tried scanning my Kali Linux system but since it is a locked-down OS for penetration testing, it doesn’t respond to anything. I don’t want to just skip this part and memorize the information without ever using it!
So I researched different Linux distributions and decided to download and build a CentOS 7 system since it is basically the same OS as Red Hat, only CentOS is free. After getting it installed, I got to run some scans against it and watch the magic happen. An interesting result I found is the difference in default ports that are open for Windows (firewall off) vs. Linux. Linux only has SSH open while Windows has ports for SMB and NetBIOS open.
I also ventured outside my isolated lab to do some careful testing on the real internet. HackThisSite.org is a wonderful resource which gives anybody a free pass to try basically anything as long as it is non-destructive. Keep reading to see what I found this week…
Becoming a Certified Ethical Hacker, Day 1
OK…I cheated. I started early on CEH by reading a little and skimming some videos, but my 416-hour goal stands.
Current progress: 0 of 416 hours.
What should I do first?
Every goal has to start with a plan right? I explained in my first post of this series that the goal is to Earn the Certified Ethical Hacker (CEH) certification. I also explained why I think it is important. In the second post of this series, I detailed the tools that I think will contribute to success in becoming a Certified Ethical Hacker. Now I have to get a strategy together to actually work through this material in some orderly way. Detours are fine but, without a plan, I’ll waste a lot of time just trying to decide what to do next.
This is my typical 5-step approach.
- Run through all the material quickly via video training to get a broad understanding of the entire scope of the course.
- Edit: I am going deep with the videos rather than moving quickly this time to get the maximum hands-on experience.
- Read a book cover-to-cover while taking notes and practicing in the lab.
- Detour and repeat as needed to get comfortable.
- Take practice tests and focus on memorization.
- Earn CEH! Take & pass the exam and become a Certified Ethical Hacker.
That’s it. Time to stop posting and get to work!
Follow my progress here, on Twitter @Dconsec, or on Facebook @Dconsec
Are you working on CEH with me? I would love to hear about it in the comments below.
The Tools You Need to Learn Ethical Hacking and Get CEH Certified
This is post number two in my quest to become a Certified Ethical Hacker.
In my last post, I talked about why I am Investing a Year in Ethical Hacking.
Now, I’m going to share the resources I plan to use over the next year.
My general recipe for all certifications is the following:
- Video Training
- Practice Test
- Practice Lab
- Other Websites
Keep reading and I’ll go into detail about each one.
There are a lot of security topics that are absolutely fascinating but patch management is not one of them. Even more horrific is patch management remediation. Deploying patches isn’t so bad but getting that last 10% out of your compliance efforts is just a never ending brutal slog through the mud.
I wrote a quick script to take a list of non-compliant computers and give some basic information about their health and status so action can be taken. Unfortunately, this script can’t make phone calls to find out why a computer is off or unplugged but it can at least get you started.
Computer List – To start, export a list of computers that need to be evaluated to ComputerList.txt and place in the same directory as the script.
Ping – The script will ping a computer and return a response. This tells you whether or not the computer is on and responding.
DNS – Next, the script will query DNS for the computer. This tells you if the computer is off temporarily or if it has been off long enough that the DNS record has been scavenged. Check your local DNS aging and scavenging settings to learn what this means in your environment. The default setting are around 2 weeks I think.
Active Directory – Finally, the script checks to see if the computer exists in Active Directory or if it has been deleted.
Output – All the results are written to a new line in ComputerTestResult.CSV file for easy use and filtering in Excel.
Here’s the script…
Find user accounts with weak passwords without getting ntds.dit, admin rights, account lockouts, or logging any events.
With basic domain access and PowerShell, this script uses a password spray technique to test one password at a time against all active user accounts in the domain.
More traditional brute force password guessing might try as many password combinations as possible against a single target user account. Password spraying takes a reverse approach by casting a net to catch as many accounts as possible.
Unfortunately, passwords can be pretty simple even with complexity requirements enabled. With complexity enabled, passwords are required to use of a mix or character types. Specifically, 3 of the 4 types of characters are required to meet complexity requirements. The 4 types of possible characters are UPPER CASE, lower case, numbers 0123456789, and special characters such as $%&#. Unfortunately, there is nothing stopping a user from using weak passwords that meet the complexity requirements such as Password1 or Summer2016.
With Azure AD, Microsoft is banning common or known-exposed passwords in its cloud deployments. I would really like to see the complexity policies in group policy updated to include this same functionality. Some people have customized their own password filter to prohibit certain passwords while others use 3rd party products to add this additional functionality. Here is an example of a 3rd party product from nFront Security that has solved this problem. I haven’t used it so I can’t make a recommendation but it certainly seems like a product that is worth exploring.
Weak passwords are such a massive exposure that this really needs to be built-in functionality. Until Microsoft’s password policies are improved, scripts like this can help administrators or penetration testers identify and notify users about their risky password choices.
On to the script…