Day 16 — “Cant CAPTCHA this Machine!”The learning objectives for day 16 were:
•Complex neural network structures
•How does a convolutional neural networks function?
•Using neural networks for optical character recognition
•Integrating neural networks into red team tooling
In this task we learned to build a custom brute force script that will make use of ML to solve the CAPTCHA and continue a brute force attack. we were provided with a script to perform the bruteforce and a trained CNN model.
Convolutional Neural Networks are incredible ML structures that have the ability to extract features that can be used to train a neural network. In the previous task, we used the garbage-in, garbage-out principle to explain the importance of our inputs having good features. This ensures that the output from the neural network is accurate. But what if we could actually have the neural network select the important features itself? This is where CNN comes into play!
In essence, CNNs are normal neural networks that simply have the feature-extraction process as part of the network itself. This time, we’re not just using maths but combining it with linear algebra. Again, we won’t dive too deep into the maths here to keep things simple.
We can divide our CNN into three main components:
Feature extraction
Fully connected layers
Classification
In order to crack CAPTCHAs, we will have to go through the following steps:
Gather CAPTCHAs so we can create labelled data
Label the CAPTCHAs to use in a supervised learning model
Train our CAPTCHA-cracking CNN
Verify and test our CAPTCHA-cracking CNN
Export and host the trained model so we can feed it CAPTCHAs to solve
Create and execute a brute force script that will receive the CAPTCHA, pass it on to be solved, and then run the brute force attack
Click here to see the walkthrough.