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 TouchComprehensive assessment of your network infrastructure to identify vulnerabilities in firewalls, routers, switches, and other network devices.
Thorough testing of web applications for vulnerabilities like SQL injection, XSS, CSRF, and other OWASP top 10 security risks.
Assessment of human-centered security vulnerabilities through phishing simulations, pretexting, and other social engineering techniques.
In-depth analysis of mobile applications for security flaws, data leakage, inadequate encryption, and insecure communication.
Building modern, responsive web applications with security as a core principle throughout the development lifecycle.
Development of bespoke security automation tools, scanners, and dashboards tailored to your organization's specific needs.
Creating secure, well-documented, and performant APIs with proper authentication, authorization, and data validation.
Implementation of security-focused CI/CD pipelines and automation to ensure security is built into every stage of development.
Type commands in the terminal below. Try 'help' to see available commands.
> Welcome to CyberProbe Security Terminal
> Type 'help' for available commands
#!/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 Payload Detection Tool
* Scans input for common XSS attack patterns
*/
class XSSDetector {
constructor() {
this.patterns = [
/
';
console.log('Scanning:', sample);
const result = detector.scan(sample);
console.log('Result:', result);
console.log('Sanitized:', detector.sanitize(sample));
/**
* 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);
}
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.