Google Summer of Code — Phase #1

Aman Gupta
5 min readJun 27, 2020

--

This year I got selected into the GSoC program with OWASP Nettacker. Special thanks to my mentors Ali Razmjoo and Sam Stepanyan from OWASP for guiding me through the whole process and providing me invaluable resources at times of need and for being so supportive.

What is GSoC?

Google Summer of Code is a mentorship program which takes place every year in Summer. To get selected in GSoC one has to Contribute. The whole motive of the program is to get potential students involved in open source software development. Every summer 15,000+ students apply from 109 countries to 686 open source organizations. Only 1900(approx) students get selected.

So in simple words if someone wants to get selected in GSoC, then the only work needs to be done is CONTRIBUTE to OPEN SOURCE.

There are some benefits of completing GSoC:

  1. The recognition: GSoC is recognized worldwide, so when applying for jobs you’ll get an advantage. However, GSoC students are more preferred by Startups than well-established organizations because, in startups like GSoC, you have to learn new skills and technologies very fast and become good at it.
  2. The network: Connecting with the Mentors and lot other people will definitely help you and can provide recommendation when needed.
  3. The Stipend: They pay well.
  4. The Exposure: When working on the project with experienced developers, you get to learn a lot and get the industry’s exposure.
  5. Chance to Mentor: You can also be a mentor the next time.

and many more …

What is Nettacker?

https://raw.githubusercontent.com/zdresearch/OWASP-Nettacker/master/web/static/img/owasp.png

OWASP Nettacker is an Automated Penetration Testing and Information Gathering Tool. The project is created to automate information gathering, vulnerability scanning, and eventually generating a report for networks, including services, bugs, vulnerabilities, misconfigurations, and other information. This software will utilize TCP SYN, ACK, ICMP, and many other protocols to detect and bypass Firewall/IDS/IPS devices. By leveraging a unique method in OWASP Nettacker for discovering protected services and devices such as SCADA. It would make a competitive edge compared to other scanner making it one of the bests.

Why do I like Nettacker?

The Nettacker works both on Python 2 & 3, it is easy to use and faster because of multi-threading and supports multi-language. Very Few open-source tools do the completed automation from network to web application. The OWASP-Nettacker here will be very helpful to the users as the project will be portable and the internal networks can be scanned using a USB hard drive without the hassle of installation. It currently supports 60+ modules:

I was just searching for some automation tools which can help me do information gathering and basic Vulnerabilities. I came across this great tool — OWASP-Nettacker. Then I started exploring this tool. I used it in doing bug bounties and it helped me in some of my targets I tested.

I thought why not to improve this tool. So I started exploring its source code and as it is written in python, so it was a fun and challenging part for me to understand the codebase. I found some bugs in the source code and open some issues.

I came to know that OWASP Nettacker is in GSoC 2020, So as I was contributing to it, I started to talk with the mentors, and this way I started my awesome GSoC journey with OWASP.

The use of 60+ modules at a time makes Nettacker unique. It helps me in doing port scanning fast. Here are some of my favorite modules — shodan_scan, port_scan, dir_scan, citrix_cve_2019_19781_vuln, some brute-forcing modules like http_basic_auth_brute.

Nettacker also supports Web UI/API interface where you don’t have to use the command-line interface.

A great Wiki is being present where you can find everything about the usage of the tool!!

My work includes adding new vulnerability modules, writing py tests for them, and fixing some existing bugs.

Links to my work:

  1. Integrated Shodan Search Engine
  2. Created New Wordlist Library
  3. Integrated Wayback Machine
  4. New tests directory for all pytests
  5. Using the Repeater Module
  6. Waf Detection
  7. Host Header Injection

Links to Issues solved:

  1. Add SSL Support for API/WebUI Issue#133
  2. Long Targets Calculating Issue#154
  3. Wizard Issue#295
  4. Wizard Compatibility Issue#301
  5. Improving CMS detection Issue#98,#236
  6. http_basic_auth_brute fix

Benefits of Using Nettacker:

Suppose you want to query something in Shodan Database. You have to query in the search engine of shodan and see the results manually.

For example, you query: hostname:uber.com port:25

But if Nettacker is used, in that case you will save a lot of time. In just one command you will get the desired results.

Golden Tip: Imagine if the results are very large and you want to apply some filters. It could be a hectic task in shodan GUI but this can be easily done using Nettacker by exporting the file to CSV. By using CSV file you can filter to see only port 25 or IP 12X.XXX.XXX.XXX.

Nettacker has many benefits, This was one of the many.

Things I learned during the Project:

  1. This is my first time where I am working with an OWASP and contributing to the Nettacker. Understanding the whole codebase was challenging and also a fun part.
  2. Writing Clean code is very important when working with big organizations like OWASP. It helps other developers to understand the code fast. Learned some ways to keep the code clean.
  3. Using flake8 and black for improving code quality.

At last, I would like to thank my mentors Ali Razmjoo and Sam Stepanyan again for helping me improving the tool. I learned a lot under their guidance in the past one month working with the Nettacker.

Future Plans

The schedule is going as expected. I will mainly focus on adding more vulnerability modules to the Nettacker and writing pytests. The tool requires some code clean which I will do daily.

Thanks for reading the Phase#1 of my project.

--

--