Securing Your Digital Fortress

Professional penetration tester and software developer with dual expertise in offensive security and application development. I build secure systems and find weaknesses before the bad actors do.

Get In Touch

Services

Network Penetration

Comprehensive assessment of your network infrastructure to identify vulnerabilities in firewalls, routers, switches, and other network devices.

Web Application Testing

Thorough testing of web applications for vulnerabilities like SQL injection, XSS, CSRF, and other OWASP top 10 security risks.

Social Engineering

Assessment of human-centered security vulnerabilities through phishing simulations, pretexting, and other social engineering techniques.

Mobile App Security

In-depth analysis of mobile applications for security flaws, data leakage, inadequate encryption, and insecure communication.

Secure Web Development

Building modern, responsive web applications with security as a core principle throughout the development lifecycle.

Custom Security Tools

Development of bespoke security automation tools, scanners, and dashboards tailored to your organization's specific needs.

API Development

Creating secure, well-documented, and performant APIs with proper authentication, authorization, and data validation.

DevSecOps Integration

Implementation of security-focused CI/CD pipelines and automation to ensure security is built into every stage of development.

Interactive Terminal

Type commands in the terminal below. Try 'help' to see available commands.

security-terminal

> Welcome to CyberProbe Security Terminal

> Type 'help' for available commands

root@cyberprobe:~#

Recent Projects

Banking System Audit

Comprehensive security assessment of a major financial institution's online banking platform.

View Case Study

E-commerce Security

Identified and patched critical vulnerabilities in a high-traffic e-commerce platform.

View Case Study

IoT Device Vulnerability

Discovered zero-day vulnerability in a popular smart home security system.

View Case Study

Secure Authentication System

Developed a multi-factor authentication system with biometric integration for enterprise clients.

View Project

Threat Intelligence Dashboard

Built a real-time dashboard for monitoring and analyzing security threats across network infrastructure.

View Project

Secure Messaging App

Designed and implemented an end-to-end encrypted messaging application with self-destructing messages.

View Project

Technical Expertise

Security Skills

Network Penetration Testing 95%
Web Application Security 90%
Social Engineering 85%
IoT Security 85%

Development Skills

Full-Stack Development 90%
JavaScript/TypeScript 95%
Python/Django 90%
React/Node.js 85%
Mobile App Development 80%
DevSecOps 85%

Code Samples

port_scanner.py
#!/usr/bin/env python3
import socket
import sys
import threading
from datetime import datetime

# Clear the screen
print("-" * 50)
print("Port Scanner - Advanced Version")
print("-" * 50)

# Define the target
target = "localhost"  # Change this to your target

# Define a function to scan ports
def scan_port(port):
    try:
        # Create a socket object
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # Set timeout for connection attempt
        socket.setdefaulttimeout(1)
        # Attempt to connect to the port
        result = s.connect_ex((target, port))
        # If connection successful
        if result == 0:
            print(f"Port {port}: Open")
            try:
                service = socket.getservbyport(port)
                print(f"  Service: {service}")
            except:
                print("  Service: Unknown")
        s.close()
    except:
        pass

# Record the start time
t1 = datetime.now()

# Create a list to hold threads
threads = []

# Scan ports 1-1024 using threads
for port in range(1, 1025):
    thread = threading.Thread(target=scan_port, args=(port,))
    threads.append(thread)
    thread.start()

# Wait for all threads to complete
for thread in threads:
    thread.join()

# Record the end time
t2 = datetime.now()

# Calculate and display the duration
print("-" * 50)
print(f"Scan completed in: {t2 - t1}")
print("-" * 50)
xss_detector.js
/**
 * XSS Payload Detection Tool
 * Scans input for common XSS attack patterns
 */

class XSSDetector {
  constructor() {
    this.patterns = [
      /)<[^<]*)*<\/script>/gi,
      /javascript\s*:/gi,
      /onerror\s*=/gi,
      /onload\s*=/gi,
      /onclick\s*=/gi,
      /onmouseover\s*=/gi,
      /eval\s*\(/gi,
      /expression\s*\(/gi,
      /document\.cookie/gi,
      /document\.location/gi,
      /alert\s*\(/gi,
      /prompt\s*\(/gi,
      /confirm\s*\(/gi,
      /iframe/gi,
      /data:text\/html/gi,
      /base64/gi
    ];

    this.riskLevels = {
      HIGH: 'High Risk',
      MEDIUM: 'Medium Risk',
      LOW: 'Low Risk',
      SAFE: 'No Detected Risk'
    };
  }

  scan(input) {
    if (!input) return { risk: this.riskLevels.SAFE, matches: [] };

    const matches = [];
    let highestRisk = this.riskLevels.SAFE;

    // Check each pattern
    this.patterns.forEach((pattern, index) => {
      if (pattern.test(input)) {
        let risk;

        // Determine risk level based on pattern type
        if (index < 5) {
          risk = this.riskLevels.HIGH;
        } else if (index < 10) {
          risk = this.riskLevels.MEDIUM;
        } else {
          risk = this.riskLevels.LOW;
        }

        matches.push({
          pattern: pattern.toString(),
          risk
        });

        // Update highest risk level
        if (risk === this.riskLevels.HIGH && highestRisk !== this.riskLevels.HIGH) {
          highestRisk = this.riskLevels.HIGH;
        } else if (risk === this.riskLevels.MEDIUM &&
                  highestRisk !== this.riskLevels.HIGH &&
                  highestRisk !== this.riskLevels.MEDIUM) {
          highestRisk = this.riskLevels.MEDIUM;
        } else if (risk === this.riskLevels.LOW && highestRisk === this.riskLevels.SAFE) {
          highestRisk = this.riskLevels.LOW;
        }
      }
    });

    return {
      risk: highestRisk,
      matches
    };
  }

  sanitize(input) {
    if (!input) return '';

    // Basic sanitization (in real-world, use a proper library)
    return input
      .replace(//g, '>')
      .replace(/"/g, '"')
      .replace(/'/g, ''')
      .replace(/\//g, '/');
  }
}

// Demo usage
const detector = new XSSDetector();
const sample = '';
console.log('Scanning:', sample);
const result = detector.scan(sample);
console.log('Result:', result);
console.log('Sanitized:', detector.sanitize(sample));
encryption_tool.js
/**
 * End-to-End Encryption Demo Tool
 * Uses Web Crypto API for client-side encryption
 */

class SecureMessenger {
  constructor() {
    this.keyPair = null;
    this.publicKey = null;
    this.privateKey = null;
  }

  // Generate RSA key pair
  async generateKeyPair() {
    try {
      this.keyPair = await window.crypto.subtle.generateKey(
        {
          name: "RSA-OAEP",
          modulusLength: 2048,
          publicExponent: new Uint8Array([1, 0, 1]),
          hash: "SHA-256",
        },
        true,
        ["encrypt", "decrypt"]
      );

      this.publicKey = this.keyPair.publicKey;
      this.privateKey = this.keyPair.privateKey;

      // Export public key for sharing
      const exportedPublicKey = await window.crypto.subtle.exportKey(
        "spki",
        this.publicKey
      );

      // Convert to base64 for easier sharing
      const exportedPublicKeyBase64 = btoa(
        String.fromCharCode(...new Uint8Array(exportedPublicKey))
      );

      console.log("Key pair generated successfully!");
      console.log("Public Key (share this):", exportedPublicKeyBase64.slice(0, 64) + "...");

      return exportedPublicKeyBase64;
    } catch (err) {
      console.error("Error generating key pair:", err);
      return null;
    }
  }

  // Encrypt a message with recipient's public key
  async encryptMessage(message, recipientPublicKeyBase64) {
    try {
      // Convert base64 public key back to ArrayBuffer
      const binaryString = atob(recipientPublicKeyBase64);
      const bytes = new Uint8Array(binaryString.length);
      for (let i = 0; i < binaryString.length; i++) {
        bytes[i] = binaryString.charCodeAt(i);
      }

      // Import the recipient's public key
      const recipientPublicKey = await window.crypto.subtle.importKey(
        "spki",
        bytes.buffer,
        {
          name: "RSA-OAEP",
          hash: "SHA-256",
        },
        false,
        ["encrypt"]
      );

      // Encode the message
      const encoder = new TextEncoder();
      const encodedMessage = encoder.encode(message);

      // Encrypt the message
      const encryptedData = await window.crypto.subtle.encrypt(
        {
          name: "RSA-OAEP"
        },
        recipientPublicKey,
        encodedMessage
      );

      // Convert encrypted data to base64 for transmission
      const encryptedDataBase64 = btoa(
        String.fromCharCode(...new Uint8Array(encryptedData))
      );

      console.log("Message encrypted successfully!");
      return encryptedDataBase64;
    } catch (err) {
      console.error("Error encrypting message:", err);
      return null;
    }
  }

  // Decrypt a message with your private key
  async decryptMessage(encryptedMessageBase64) {
    try {
      if (!this.privateKey) {
        throw new Error("Private key not available. Generate a key pair first.");
      }

      // Convert base64 encrypted message back to ArrayBuffer
      const binaryString = atob(encryptedMessageBase64);
      const bytes = new Uint8Array(binaryString.length);
      for (let i = 0; i < binaryString.length; i++) {
        bytes[i] = binaryString.charCodeAt(i);
      }

      // Decrypt the message
      const decryptedData = await window.crypto.subtle.decrypt(
        {
          name: "RSA-OAEP"
        },
        this.privateKey,
        bytes.buffer
      );

      // Decode the decrypted data to text
      const decoder = new TextDecoder();
      const decryptedMessage = decoder.decode(decryptedData);

      console.log("Message decrypted successfully!");
      return decryptedMessage;
    } catch (err) {
      console.error("Error decrypting message:", err);
      return null;
    }
  }
}

// Demo usage
async function demo() {
  console.log("Initializing Secure Messenger...");
  const alice = new SecureMessenger();
  const bob = new SecureMessenger();

  console.log("Generating Alice's keys...");
  const alicePublicKey = await alice.generateKeyPair();

  console.log("Generating Bob's keys...");
  const bobPublicKey = await bob.generateKeyPair();

  const message = "This is a top secret message that only Bob should be able to read!";
  console.log("Alice wants to send:", message);

  console.log("Alice encrypting message with Bob's public key...");
  const encryptedMessage = await alice.encryptMessage(message, bobPublicKey);

  console.log("Encrypted message:", encryptedMessage.slice(0, 64) + "...");

  console.log("Bob decrypting message with his private key...");
  const decryptedMessage = await bob.decryptMessage(encryptedMessage);

  console.log("Bob received:", decryptedMessage);
}
Console Output

Get In Touch

Let's Work Together

Interested in enhancing your organization's security posture? Whether you need a comprehensive security assessment or specialized penetration testing services, I'm here to help secure your digital assets.

Based in Silicon Valley, but available for remote and on-site engagements worldwide.