Microsoft Edge

Тема в разделе "WASM.WIN32", создана пользователем Ivanushka23, 27 янв 2019.

  1. Ivanushka23

    Ivanushka23 New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2018
    Сообщения:
    6
    Народ кто сталкивался , каким образом запустить edge чтобы задать имя десткопа( свое ).

    edge запускаеться microsoft-edge:http://www.google.com что соответсвенно передаеться explorer.exe который уже создает процесс ....

    Есть ли возможность запустить edge на прямую заполнив PROCESS_INFORMATION

    Хукнул Експлорер, при запуске эджа молчит, остальные обычные ехе запускаються.

    Список функции подвергнутых хуку.
    kernel32.dll|BOOL CreateProcessA(LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);|FailureIfNullRet
    kernel32.dll|BOOL CreateProcessW(LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);|FailureIfNullRet

    Advapi32.dll|BOOL CreateProcessAsUserA(HANDLE hToken,LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);|FailureIfNullRet
    Advapi32.dll|BOOL CreateProcessAsUserW(HANDLE hToken,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);|FailureIfNullRet

    Advapi32.dll|BOOL CreateProcessWithLogonW(LPCWSTR lpUsername,LPCWSTR lpDomain,LPCWSTR lpPassword,DWORD dwLogonFlags,LPCWSTR lpApplicationName,LPWSTR lpCommandLine,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCWSTR lpCurrentDirectory,LPSTARTUPINFOW lpStartupInfo,LPPROCESS_INFORMATION lpProcessInfo);|FailureIfNullRet

    shell32.dll|HINSTANCE ShellExecuteA( HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd)|FailureIfUnsignedRet<33
    shell32.dll|BOOL ShellExecuteExA( LPSHELLEXECUTEINFO lpExecInfo)|Out|FailureIfNullRet
    shell32.dll|BOOL ShellExecuteExW( LPSHELLEXECUTEINFO lpExecInfo)|Out|FailureIfNullRet
    shell32.dll|HINSTANCE ShellExecuteW( HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)|FailureIfUnsignedRet<33
    Kernel32.dll|UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow);|FailureIfUnsignedRet<32
     
  2. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    597
    хукай
    ntdll!NtCreateProcessEx (<no parameter info>)
    ntdll!NtCreateProcess (<no parameter info>)
    не ошибешься
     
  3. Ivanushka23

    Ivanushka23 New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2018
    Сообщения:
    6
    ))) Прикол в том что тоже тишина по ним, там все хитрее получаеться.
    explorer каким то образом отдает сообщение , ApplicationFrameHost.exe тот в свою очередь просто запускает поток. Что в потоке пока разбираюсь
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    2.111
    это вероятно связано с тем, что эдж запускается в песочнице, заинжектить в него код например тож не так просто, если мне память не изменяет...
     
  5. Ivanushka23

    Ivanushka23 New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2018
    Сообщения:
    6
    Ну инжектить в себя он не дает, задача хотябы изменить PROCESS_INFORMATION
     
  6. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    522
    createprocessinternalw ?

    Давно нужно этот LPAC как то снимать. Пока лень разбираться, но думаю что это можно зделоть.
     
  7. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    597
    хз чтоты там пилишь и как, но память выделяется и записывается, с адм правами, так не смотрел и треды создаются. а типичная организация сендбоксов есть в сорцах тогоже фф и хрома.
     
    Последнее редактирование: 28 янв 2019
  8. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    467
    эдге - это не хром с фф. совсем.
    1. это uwp приложение и стартует оно как все поняли не на прямую. в юм его стартуют обычно через ком (там под капотом много всего помимо запуска - разбор xml пакаджа итд итп).
    2. Сэндбоксы - это значит все в лоу + митигейшены (запрет на выделение исполняемой памяти итд) + понимание брокеров (это для всех uwp приложений). Короче это встроенный механизм, а не колхоз от хрома с фф с говнохуками итд (хотя они тоже митигейшоны используют, но для процессов где рендер, чтобы сплоиты не отработали)

    для ТС
    UWP (все - эдге и все из стора) стартует по факту уже служба DCOMLaunch. Создается джоб на каждый uwp апп и туда суются все процессы.

    Старт из сторонних апп uwp приложений осуществляется через ком, который черел лпц уже дернет службу.
     
  9. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    597
    вы мне вот что скажите: без уак элевации я могу хостпроцесс эджа открыть на rw memory && set contextthread?
     
  10. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    467
    sn0w, смотря что ты подразумеваешь хост процессом (брокер? microsoftedge.exe? службу? диспетчер uwp процессов?(который слипает апп если им не пользуются) ). но не зависимо от твоего ответа - я скажу да, можно. оно лоу, ты будешь выше. короче увк не нужен. другой момент, что скорее всего засплайсить ты ничего не сможешь если делать в тупую - увидель процесс, открыл, записал, запустил - уже будет выставлены митигейшоны и память на трамплины ты не выделишь/кодосекцию не поменяешь. хотя может тебе это и не надо.
     
  11. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    597
    это вопрос изысканий, я сейчас, к сожалению, занят другими проблемами, хоть и данная тема и интересна. а вот видел мою тему в win32 про call call[]?
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    2.111
    я уже давно не видел эдж в глаза, но думал, что они уже давно от юдаблюпи отказались... тем более, что он скоро перейдет на движок хрома... поэтому и предположил про сендбокс, сорян...
     
  13. Ivanushka23

    Ivanushka23 New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2018
    Сообщения:
    6
    Как считаешь, передать PROCESS_INFORMATION каким то способом можно на запуск?
     
  14. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    467
    Ivanushka23, думаю можно... по крайне мере я понимаю с чего начать ресеч, чтобы быстро (относительно) это проверить.
    тебе надо не полениться и подтянуть символы и пореверсить всех участников цепочки и понять на каком шаге встроиться.
    explorer.exe -> COM (через rpcrt4.dll) дальше смотреть интерфейсы -> потом DCOMLaunch
    Ну это навскидку, дальше уже конкретика и надо смотреть - у меня нету на это времени =)
     
  15. ant0xa

    ant0xa New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    27
    Смотрел год назад примерно. На сколько актуально сейчас - не знаю. В explorer.exe всегда есть handle с полными правами на egde.exe или как его там. В edge.exe есть хэндел с полными правами на edgeCP.exe. это вкладочки вроде если не забыл. Т.е. handle можно найти, замапить в процесс секцию и создать поток. Отключить некоторые mitigation policy тоже можно было вроде.
     
  16. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    467
    ant0xa, можно было снять со своего потока митигейшен на выделение исполняемой памяти. сейчас нет.
    edgeCP.exe - выставляет теперь на старте жесткие ограничения, дропнуть из юм нельзя, только из км сбросить в епроцесс (хз мониторит ли патчгард).

    хэндлы не нужны - ты и сам можешь открыть эти процессы, тебе никто не запрещает. просто когда ты их откроешь там уже ничего не сделать. за год-полтора многое поменялось. в мс бодро пилят.
     
  17. Rel

    Rel Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    2.111
    но это происходит, если explorer.exe является родителем edge.exe, я правильно понимаю?
     
  18. ant0xa

    ant0xa New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    27
    superakira, т.е.

    DWORD64 mPolicy=2; // Low part - 3 strict handle checks
    // Low part - PROCESS_MITIGATION_POLICY (2 - ProcessDynamicCodePolicy)
    // High part - PROCESS_MITIGATION_DYNAMIC_CODE_POLICY (set all bits to 0)
    NTSTATUS St =NtSetInformationProcess(hProcess,(PROCESS_INFORMATION_CLASS)0x34,&mPolicy,8);
    уже не работает ?

    Rel, нет explorer.exe не родитель, но хэндел этого процесса открытый со всеми правами там есть.
     
  19. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    467
    ant0xa, нет. уже давно.
     
  20. ant0xa

    ant0xa New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    27
    superakira, и секция не мапится ?