(Selected) Academic Projects
I am unable to share the repositories for these assignments and projects due to Northeastern University's policies. However, I will provide descriptions of notable assignments and projects.
Network Security
Skills: Python, Linux (iptables), Nmap, Zmap, OpenVAS, cryptography.
VULNERABILITY SCANNING AND EXPLOITATION
- Conducted network scanning using OpenVAS, discovering Sambacry, Heartbleed, Shellshock, along with 11 other CVEs.
- Exploited a critical Shellshock vulnerability on a server to perform remote code execution on a webpage.
- Simulated credential theft through Heartbleed memory leaks to gain unauthorized access.
FIREWALL RULES
- Configured stateful IPv4/IPv6 firewall policies using iptables, implementing NAT, packet forwarding, and explicit ACCEPT/DROP policies under a default-deny model.
- Validated network segmentation using Nmap and wget.
Systems Security
Skills: Burp Suite, Python, C, Metasploit, Ghidra, Linux, GDB, cryptography.
MEMORY CORRUPTION EXPLOITATION
- Exploited a network socket buffer vulnerability, spawning a privileged shell via a ROP and return-to-libc chain.
- Bypassed ASLR, NX, and Stack Canaries by leveraging static memory analysis in Ghidra and strategic address brute-forcing.
BUFFER OVERFLOW EXPLOITATION
- Exploited stack-based buffer overflow on 2 distinct binaries to perform arbitrary code execution via a NOP sled.
- Engineering custom shellcode using Metasploit to spawn a privileged shell.
- Conducted static address analysis and memory offset calculations using GDB.
WEB APP SIDE CHANNEL ATTACKS
- Executed a Resource Exhaustion DoS by identifying and abusing a catastrophic backtracking regex vulnerability.
- Utilized algorithmic complexity side channel attack to leak a password and successfully steal the credentials of another user.
WEB APP DENIAL-OF-SERVICE ATTACKS
- Engineered HTTP smuggling attacks using Burp Suite to exploit header discrepancies between front-end proxies and back-end servers.
- Successfully performed a HTTP Method Override Cache Poisoned DoS by forcing the proxy server to cache an origin server error, making the site inaccessible.
LINUX BINARY ATTACKS
- Exploited anti-patterns and insecure code (manipulating environment variables, abusing race conditions, command injection, etc) to performed arbitrary code execution across 5 Linux programs.
Network Fundamentals
Skills: Python, network protocols (TCP/IP, UDP, HTTP(S), BGP, DNS, TLS/SSL), socket programming.
CONTENT DELIVERY NETWORK
- Designed and programmed DNS and replica HTTP cloud servers for a content delivery network.
- Reduced latency and optimized response times by integrating disk and memory caching and IP geolocation.
WEB CRAWLER
- Developed a web crawler capable of traversing and indexing tens of thousands of pages.
- Implemented secure communication through HTTPS by wrapping a TCP socket in TLS.
VIRTUAL BGP ROUTER
- Engineered a functional BGP router capable of managing routing data, including path propagation and route announcements.
- Developed a Forwarding Information Base with route aggregation and compression.
FTP CLIENT
- Developed an FTP client from the socket level that supports: directory listing, making directories, file deletion, directory deletion, copying files to and from the FTP server, and moving files to and from the FTP server.
Computer Systems
Skills: Linux, x86 Assembly, C, Bash, FUSE, Git, multithreading.
UNIX FILE SYSTEM
- A FUSE filesystem driver that can mount a disk image as a filesystem.
UNIX SHELL
- Collaboratively developed a functional Unix shell that uses a tokenizer to parse CLI inputs from the user.
- Implemented redirection, sequencing, piping, and grouping expressions along with several built-in commands.
Object-Oriented Design
Skills: Java (Swing, JUnit), OOP, SOLID.
STOCK PORTFOLIO APP
- Architected a Java application using the Model-View-Controller pattern for independent testing.
- Implemented OOP and SOLID best practices to create scalable and modular code.
- Developed and designed a user-friendly GUI using Java Swing.
- Verified behavior for every interaction with 635 JUnit tests.