
Hacker's PHP
Xakep, номер #043, стр. 043-046-1
Никита Кислицин aka Nikitos (nikitoz@fromru.com)
PHP. Чудесный язык, неправда ли? Но, как в любом другом случае, он может быть применен и на благо общества, и на благо злоумышленника. Помимо взлома сайтов при помощи бажных PHP-скриптов, остается актуальным и использование при помощи интерпретатора PHP мощностей удаленного сервера, который, сам понимаешь, не на диалапе висит.
Ниже пойдет речь об использовании этих самых мощностей на твое собственное, хакерское усмотрение, а именно: накрутка голосований, выкачивание файлов с удаленного сервера, сканирование портов, флуд e-mail, рассылка спама и т.п.
Разумеется, для проведения экспериментов тебе потребуется хостинг с поддержкой PHP и возможностью соединения локальных сокетов с удаленными. Все это можно либо купить по cc (почитай УК! =)), либо достать на халяву у буржуев (в рунете я достойных предложений пока не встречал, если, конечно, не считать таковым rusonix.ru =)). Начнем с самого простого, а именно - сканирования портов.
Сканим порты
Я более чем уверен, что большинству наших читателей хоть раз приходилось сканировать порты. Хотя бы в поисках Back Orifice'а по адресу 127.0.0.1 ;) (по умолчанию он открывает 31337-й порт). А задумывался ли ты, как этот самый портсканер работает? Верно, в большинстве случаев просто тупой коннект на порт. Есть коннект - порт открыт, нет - закрыт.
Аналогичным образом будет работать и наш с тобой сканер портов:
<?
if(isset($submit))
{
$bufer="Открытые порты на $host:\n<br>\n"; //Создаем строку, куда будут дописываться порты
$port=split(" ", $ports); //режем $ports в массив по пробелам
$cc=count($port);
$cc--;
for($i=0; $i<=$cc; $i++) //цикл через весь массив
{
$connect=fsockopen("$host", $port[$i]); //попытка коннекта
if($connect) //Если коннект удался, дописываем в $bufer номер порта
{
$bufer.="$port[$i]\n<br>\n";
}
}
echo "$bufer";
} else {
echo "<form action=port.php>Host: <input type=text name=host><br>Ports: <input type=text name=ports><br><br>
<input type=submit name=submit></form>";
}
?>
Как видишь, у скрипта две входные переменные: хост и порты. Порты загонятся в поле формы через пробел; если тебе это кажется неудобным, можно их хранить в текстовом файле (см. ниже информацию по используемым в скриптах php-функциям).
Mail flood
Тема весьма актуальная. Особенно учитывая то несметное количество уродцев, которое бороздит Инет с единственной целью: облить все и вся калийными массами, низвергающимися с кончиков их бледных пальцев. Меры противодействия? Подсунуть "фотографию" mashenka.jpg.exe, поглумиться через javascript, в конце концов - просто убить мыло. Но засерать мыльник со своего компа, пользуя специальный софт, - неэффективно, медленно и, в общем-то, небезопасно. Куда круче все делать с сервака - через широкий канал с офигенной скоростью, для чего был написан следующий скрипт:
<?
$nn=10;
$nn--;
if(!isset($i))
{ $i=1; }
if($i<=31337)
{
$b=$i;
$b+=$nn;
while($i<=$b)
{
mail("lame@lamo.ru", "Удостоверение $i", "<H1><center><b>У Д О С Т О В Е Р Е Н И Е № $i </b></h1></center><br><br>\r\nВыдано Иннокентию Васильевичу в том, что он является наитупейшим придурком во всем российском Интернете.", "From: LohoKiller $i");

















































































































