Пример #1
0
bool mimikatz::doCommandeKernel(std::wstring &commande)
{
	if(!commande.empty())
	{
		if(openKernel())
		{
			DWORD dwReturn;
			if(WriteFile(Kmimikatz, commande.c_str(), (commande.size() + 1) * sizeof(wchar_t), &dwReturn, NULL))
			{
				DWORD dwBuff = 0x40000;
				DWORD dwRead = 0;
				BYTE * buffer = new BYTE[dwBuff];
				RtlZeroMemory(buffer, dwBuff);
				if(ReadFile(Kmimikatz, buffer, dwBuff, &dwRead, NULL))
				{
					wcout << reinterpret_cast<wchar_t *>(buffer) << endl;
				}
				else wcout << L"ReadFile : " << mod_system::getWinError() << endl;

				delete[] buffer;
			}
			else wcout << L"WriteFile : " << mod_system::getWinError() << endl;
		}
		else wcout << L"Unable to communicate with the driver mimikatz";
	}
	else
	{
		wcout << L"Empty command (forced close) received" << endl;
		closeKernel();
	}

	return true;
}
Пример #2
0
bool mimikatz::doCommandeKernel(std::wstring &commande)
{
    if(!commande.empty())
    {
        if(openKernel())
        {
            DWORD dwReturn;
            /*
            (*outputStream) << L"DEBUG WriteFile " << endl <<
            	L"\tToWrite : " << (commande.size() + 1) * sizeof(wchar_t) << endl;
            */
            if(WriteFile(Kmimikatz, commande.c_str(), (commande.size() + 1) * sizeof(wchar_t), &dwReturn, NULL))
            {
                /*(*outputStream) << L"\tWriten  : " << dwReturn << endl << endl;*/

                DWORD dwBuff = 0x40000;
                DWORD dwRead = 0;
                BYTE * buffer = new BYTE[dwBuff];
                RtlZeroMemory(buffer, dwBuff);

                /*(*outputStream) << L"DEBUG ReadFile " << endl <<
                	L"\tBuffSize : " << dwBuff << endl;*/

                if(ReadFile(Kmimikatz, buffer, dwBuff, &dwRead, NULL))
                {
                    /*(*outputStream) <<
                    	L"\tReaded   : " << dwRead << endl <<
                    	endl;
                    */
                    wcout /*<< L"BUFF : " << endl*/
                            << reinterpret_cast<wchar_t *>(buffer) << endl;
                }
                else (*outputStream) << L"ReadFile : " << mod_system::getWinError() << endl;

                delete[] buffer;
            }
            else (*outputStream) << L"WriteFile : " << mod_system::getWinError() << endl;
        }
        else (*outputStream) << L"Impossible de communiquer avec le pilote mimikatz";
    }
    else
    {
        (*outputStream) << L"Commande vide (fermeture forcée) reçue" << endl;
        closeKernel();
    }

    return true;
}