Приятелят ви представяне под чужда самоличност
Приятелят ви представяне под чужда самоличност
Представете си ситуацията. Програмата ви не работи както корен, но трябва администраторската парола (как да го получи - виж статията ми в нахлуване на порфирни). Имате ли priviligii, че имате нужда, а сега си мислите, какво да правя с тях? Отговорът е под чужда самоличност.
Нека да погледнем определението за представяне под чужда самоличност в MSDN:
- Представяне под чужда самоличност - е възможността да се използва друг информация за безопасност нишка от този, който е на разположение за процеса, който е собственик на нишката.
Има много видове чужда самоличност, например, DDE, наречена тръба, RPC-фалшива самоличност и така нататък. Обикновено се използва чужда самоличност, когато сървърът се нуждае от време, за да действа като клиент. Но ние се използва този метод, за да дадем на нашите права търговски администратор и да се създаде процес, който има тези права.
Използвайте сценарий чужда самоличност може да изглежда така: вашият вирус е пуснат под администраторски права и да зададете троянски да получат администраторски права. След това, когато работи при нормална употреба, тя изпълнява чужда самоличност и работи така, сякаш е създадена от администратор.
На първо място, ние искаме да знаем дали вашият процес е стартиран като корен или не (безсмислено администратор разходи под чужда самоличност, ако вече сте те са :)). Този малък фрагмент от кода може да ви помогне.
.Въплъщаване използвате конец.
Да предположим, че имате потребителско име "администратор да" с парола "шибаняк". На първо място, ние трябва да се логнете този потребител. За да направите това, ние използваме функцията LogonUser, която се изнася от advpi32.dll. Нека да разгледаме най-прототипа:
В phToken стигнем дръжки жетони, които ние ще трябва в бъдеще. старт Service сесия е нула, т.е. подразбиране. Въведете началото на сесията ще LOGON32_LOGON_INTERACTIVE, парола и потребителско име са очевидни. Домейн е равно на нула. Сега нека да разгледаме кода.
Ако всичко мине добре, но сега имаме знак под чужда самоличност. Сега ние ще използваме ImpersonateLoggedOnUser функция, която най-накрая обяви търговската ни като impersonitsirovanny. Функцията приема само един аргумент - жетона.
Сега нашата търговия работи като корен. Ние можем да правим каквото си искаме, а след това, когато сме готови с това и искам да си възвърне обратно стария закон, просто RevertToSelf извикване на функция.
.Създаване на нов процес в контекста на сигурността на impersonitsirovannom.
На първо място, ние трябва да влезете в системата, както и в предишния случай. Просто използвайте същия код като в раздела - потребителят вход към системата -. Ние ще използваме функцията CreateProcessAsUser, което се изнася от advapi32.dll. Тази функция е почти същата като на CreateProcess, но това отнема повече от един аргумент - Токер.
Тази програмка ще започне една раковина, която ще се проведе в контекста на сигурността на администратор.
Както можете да видите, на фалшива самоличност - това е много мощно нещо. Единственият слабото звено - е парола. Но ако се намери добър начин да се получи пароли (например, троянски коне), а след това ще бъде най-добрия си приятел :).