
SharpHook è uno strumento offensivo di hooking API progettato per intercettare varie credenziali all'interno della chiamata API.
SharpHook è ispirato al progetto SharpRDPThief. Utilizza vari hook API per ottenere le credenziali desiderate.
In background sfrutta il progetto EasyHook. Una volta che il processo desiderato è attivo, SharpHook inietta automaticamente le sue dipendenze nel processo target e, quindi, invia le credenziali tramite il server IPC di EasyHook.
| Processo | Chiamata API | Descrizione | Stato |
|---|---|---|---|
| mstsc | CredUnPackAuthenticationBufferW | Si aggancia a mstsc e dovrebbe fornire nome utente, password e IP remoto | FATTO |
| runas | CreateProcessWithLogonW | Si aggancia a runas e dovrebbe fornire nome utente, password e nome del dominio | FATTO |
| powershell | CreateProcessWithLogonW | Si aggancia a powershell e dovrebbe restituire l'output dei comandi quando l'utente inserisce credenziali diverse. Ad esempio - Start-Process cmd -Credential X | FATTO |
| cmd | RtlInitUnicodeStringEx | Dovrebbe agganciarsi a cmd e filtrare parole chiave come: PsExec, password ecc.. | In corso - Cmd si blocca, non so perché |
| MobaXterm | CharUpperBuffA | Si aggancia a MobaXterm e dovrebbe fornire credenziali per accessi SSH e RDP | In corso - Problemi perché è un processo a 32 bit e Fody non funziona. Come soluzione alternativa, puoi compilare il progetto come x86 e funzionerà perfettamente |
| explorer (Prompt UAC) | CredUnPackAuthenticationBufferW | Si aggancia a explorer e dovrebbe fornire nome utente, password e nome del dominio dal prompt UAC | In corso - UAC dice accesso negato, probabilmente problemi di livelli di integrità |

Sentiti libero di contribuire, dato che ho alcuni problemi con alcuni processi. Puoi trovarmi su Twitter o aprire una Pull Request.