Priveleged exception при выполнении reverse_tcp shellcode

Discussion in 'Песочница' started by forsaken, 12 Sep 2017.

  1. forsaken

    forsaken New Member

    Joined:
    7 Sep 2017
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте! Есть тестовая программа с уязвимостью buffer overflow, которую я запустил в Immunity debugger. С помощью msfvenom сгенерировал windows/meterpreter/reverse_tcp шеллкод. Вставил шеллкод в передаваемый в программу буфер, перезаписал адрес возврата на начало шеллкода. В дебаггере я вижу как идет выполнение моего шеллкода, но когда дело доходит до инструкции IN или OUT, дебаггер падает. Загуглив, я узнал что данные инструкции выполняются в kernel mode (ring0), а дебаггер работает в ring3 mode. Эксплуатация вне дебагера так же не дает успеха. DEP отключен, если пробую вместо reverse_tcp другой шеллкод, например messagebox_shellcode, который просто показывает окно с текстом, то все работает нормально. Подскажите пожалуйста, в чем может быть дело? Если сгенерировать этот же шеллкод в виде exe и запустить, то meterpreter сессия удачно открывается. DEP, фаервол, антивирус отключены.
     
    #1 forsaken, 12 Sep 2017
    Last edited: 12 Sep 2017
  2. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Что неудивительно, поскольку из юзермода к портам обращаться нельзя под Windows NT.

    Если эти инструкции из шеллкода, то вам просто нужно выбрать другой, юзермодовый шеллкод.
    Сделайте пошаговую отладку этого EXEшника, и сравните с предыдущим вариантом.