
SharpHook — это инструмент для перехвата API атакующего характера, предназначенный для перехвата различных учетных данных в вызовах API.
SharpHook вдохновлен проектом SharpRDPThief. Он использует различные API-хуки для получения нужных учетных данных.
В фоне используется проект EasyHook. Как только нужный процесс запущен, SharpHook автоматически внедряет свои зависимости в целевой процесс, а затем отправляет учетные данные через IPC-сервер EasyHook.
| Процесс | API-вызов | Описание | Статус |
|---|---|---|---|
| mstsc | CredUnPackAuthenticationBufferW | Этот хук внедряется в mstsc и должен выдавать имя пользователя, пароль и удаленный IP | ГОТОВО |
| runas | CreateProcessWithLogonW | Этот хук внедряется в runas и должен выдавать имя пользователя, пароль и имя домена | ГОТОВО |
| powershell | CreateProcessWithLogonW | Этот хук внедряется в powershell и должен выдавать результаты команд, когда пользователь вводит другие учетные данные. Например — Start-Process cmd -Credential X | ГОТОВО |
| cmd | RtlInitUnicodeStringEx | Этот хук внедряется в cmd и сможет фильтровать ключевые слова, такие как PsExec, password и т.д. | В процессе — вызывает падение cmd, непонятно почему |
| MobaXterm | CharUpperBuffA | Этот хук внедряется в MobaXterm и должен выдавать учетные данные для SSH и RDP-логинов | В процессе — проблемы из-за того, что это 32-битный процесс, и Fody не работает. В качестве обходного пути можно скомпилировать проект как x86 — тогда всё будет работать нормально |
| explorer (UAC Prompt) | CredUnPackAuthenticationBufferW | Этот хук внедряется в explorer и должен выдавать имя пользователя, пароль и имя домена из UAC-запроса | В процессе — UAC сообщает об отказе в доступе, вероятно, проблемы с уровнями целостности |

Пожалуйста, не стесняйтесь вносить свой вклад, так как у меня есть некоторые проблемы с некоторыми процессами. Вы можете найти меня в Twitter или открыть Pull Request.