Post

Footprinting - Cheat Sheet

Putting together a handy cheat sheet from the Footprinting module

Footprinting - Cheat Sheet

Domain Information

CommandDescription
curl -s https://crt.sh/\?q\=<Target-Domain>\&output\=json | jq .Certificate transparency (Includes subdomains that use the same certificate)
for i in $(cat ip-addresses.txt);do shodan host $i;doneScan an IP list using Shodan.
dig any <Target_Domain>DNS Records

FTP

CommandDescription
ftp <IP>Connect to FTP
openssl s_client -connect <IP>:<Port> -starttls ftpConnect to FTP using an encrypted connection
ftp> statusShows the current status of tftp, including the current transfer mode (ascii or binary), connection status, time-out value, and so on.
ftp> get <File_Name>Download a file from the server to the client
ftp> put <File_Name>Upload a file From the client to the FTP server
ftp> DELE Delete a file
ftp> MKD Create a Directory
ftp> RMD Remove a Directory
ftp> wget -m --no-passive ftp://<Username>:<Password>@<IP>Download all available files

SMB

CommandDescription
smbclient //<IP/FQDM>/<Share>Connect to a specific share
smbclient -N -L //<IP/FQDN>List shares using Anonymous Login
smb> get <File_Name>Download a File
impacket-samrdump <IP>Brute forcing User RIDs → Enumerate Users
smbmap -H <IP>Enumerate Shares
crackmapexec smb <IP> --shares -u '' -p '' Enumerate Shares using null session authentication
enum4linux-ng.py <IP/FQDN> -ASMB enumeration using enum4linux
rpcclient -U '' <IP/FQDN>Interacting with the target using RPC

RPCCLEINT Functions to execute

CommandDescription
srvinfoserver information
enumdomainsenumerate all domains that are deployed on the network
querydominfoProvides domain, server, and user information of deployed domains
netsharegetinfo <share>Provide information about specific share
enumdomusersEnumerate all domain users
queryuser <RID>Provide information about specific user
querygroup <RID>Provide information about a specific group

Source: RPCCLIENT

NFS

CommandDescription
showmount -e <IP/FQDN> Show available Shares
sudo mount -t nfs <IP/FQDN>:/<FileShare> ./target-nfs -o nolockMount the specific NFS share
umount ./target-NFSUnmount The specific NFS Share

DNS

CommandDescription
dig ns <Domain.tld> @<Nameserver>NS Query to the specified nameserver
dig any <Domain.tld> @<Nameserver>Any Query to the specified nameserver
dig CH TXT version.bind @<Nameserver>Version Query to the specified nameserver
dig axfr @<Nameserver>AXFR Query (Zone transfer) from a specified nameserver
dnsenum --dnsserver <Nameserver> --enum -p 0 -s 0 -o found_subdomains.txt -f ~/subdomains.list <Domain.tld>Subdomain brute forcing
  • An AXFR request retrieves a complete copy of a zone’s DNS records from an authoritative server.
  • The CHAOS class (shortened as CH) is one of the original DNS classes, introduced alongside the more common IN (Internet) class. While the IN class is used for almost all modern DNS lookups (A, AAAA, CNAME, etc.), the CHAOS class serves a special diagnostic/debugging purpose (version.bind, hostname.bind, authors.bind).

SMTP

CommandDescription
telnet <IP/FQDM> <Port>Connect to the SMTP Server
smtp> HELO <Hostname>Login the Computer Name. → Start the session
smtp> AUTH PLAIN <\0USERNAME\0PASWORD>Authenticate the client. The creds should be encrypted in base64
smtp> MAIL FROM: <krakenn@gmail.com>Sender Mail
smtp> RECPT TO: <victim@gmail.com> NOTIFY=success,failureRecepient Mail + notification on success or failure (We can remove it)
smtp> DATAStart Email content transmission
smtp> RSTThe client cancels the ongoing transmission while maintaining the connection with the server.
smtp> VRFY krakennChecks if a mailbox exists. (Can be used for users enumeration)
mstp> NOOPSends a harmless command to the server to keep the session alive.
smtp> QUITClose the connection.

SMTP Command example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┌──(krakenn㉿Phoenix)-[~]
└─$ telnet 10.129.21.32 25
Trying 10.129.21.32...
Connected to 10.129.21.32.
Escape character is '^]'.
HELO phoenix.local 
220 InFreight ESMTP v2.11
250 mail1
MAIL FROM: <krakenn@gmail.com>
250 2.1.0 Ok
RCPT TO: <Victim@gmail.com> NOTIFY=success,failure
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
FROM: <spoofedmail@gmail.com>
TO: <victim@gmail.com>
Subject: Password reset      
Date: Mon, 07 July 2025 16:48:00 +0100
Hello, you need to change your password
Click here to change it.
.
250 2.0.0 Ok: queued as 344B4125F
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

You can check status codes HERE

IMAP/POP3

IMAP

CommandDescription
curl -k 'imaps://<IP/FQDN>' --user <Username>:<Password>Login to THE IMAPS service using cURL
openssl s_client -connect <FQDN/IP>:imapsConnect to IMAPS service over SSL
IMAP> A1 LOGIN <Username> <Password>Login using creds
IMAP> A1 LIST "" *List all directories
IMAP> A1 CREATE "<Mailbox_Name>"Create a Mailbox
IMAP> A1 DELETE "<Mailbox_Name>"Delete a Mailbox
IMAP> A1 RENAME "<Mailbox_Name>" "<New_Mailbox_Name>"Rename a mailbox or a folder
IMAP> A1 LSUB "" *List mailboxes that the user is subscribed to
IMAP> A1 SELECT <Mailbox>Select a mailbox to access the messages it contains
IMAP> A1 UNSELECT <Mailbox>Exit the mailbox
IMAP> A1 FETCH <ID> allRetrieve message data from the mailbox
IMAP> A1 LOGOUT Closes the connection with the IMAP server

More CMDs HERE

POP3

CommandDescription
openssl s_client -connect <FQDN/IP>:pop3sConnect to IMAPS service over SSL
POP3> USER <Username>Identify the user using the username
POP3> PASS <Password>AUthenticate then user using creds provided
POP3> STATRequest the total count of saved emails on the server.
POP3> LISTRequest from the server the number and size of all emails.
POP3> RETR <ID>Retrieve the requested email by ID
POP3> QUITClose the connection

SNMP

CommandDescription
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt <IP @>Brute-force the names of the community strings.
snmpwalk -v2c -c <community string> <IP> Query the OIDs with their information.
braa <community string>@<IP>:.1.3.6.*Bruteforcing SNMP service OIDs.

MySQL

CommandDescription
mysql -u <Username> -p<Passowrd> -h <IP>Login to MySQL Server.
MySQL> SHOW DATABASES;Show all DBs
MySQL> user <DB_Name>Select a DB
MySQL> SHOW COLUMNS FROM <Table_Name>Show all columns from a specified table
MySQL> SELECT * FROM <Table_Name>Show all data of a table

MSSQL

CommandDescription
impacket-mssqlclient <Username>@<IP> -windows-authLog in to the MSSQL server using Windows authentication.
MSSQL> SELECT NAME FROM SYS.DATABASESList existent DBs
MSQL> USE <Database_Name>Select a DB

ORACLE TNS

CommandDescription
./odat.py all -s <FQDN/IP>Perform a variety of scans to gather information about the Oracle database services and its components.
sqlplus <user>/<pass>@<FQDN/IP>/<db>Log in to the Oracle database.
./odat.py utlfile -s <FQDN/IP> -d <db> -U <user> -P <pass> --sysdba --putFile C:\\insert\\path file.txt ./file.txtUpload a file with Oracle RDBMS.

IPMI

CommandDescription
msf6 auxiliary(scanner/ipmi/ipmi_version)IPMI version detection
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes)Dump IPMI hashes.

Linux Remote Management Protocol

CommandDescription
./ssh-audit.py <IP/FQDN>Remote security audit against the target SSH service.
ssh <user>@<IP/FQDN>Log in to the SSH server using the SSH client.
ssh <user>@<IP/FQDN> -o PreferredAuthentications=passwordEnforce password-based authentication.

Windows Remote Management

CommandDescription
rdp-sec-check.pl <FQDN/IP>Check the security settings of the RDP service.
xfreerdp /u:<user> /p:"<password>" /v:<FQDN/IP>Log in to the RDP server from Linux.
evil-winrm -i <FQDN/IP> -u <user> -p <password>Log in to the WinRM server.
impaket-wmiexec <user>:"<password>"@<FQDN/IP> "<system command>"Execute command using the WMI service.

Mission complete

alt text

This post is licensed under CC BY 4.0 by the author.