• Начинающий хакер, спасибо что зашёл к нам! Для полного удобства рекомендуем Вам сразу же зарегистрироваться. Помните, необходимо придумать сложный пароль к своему логину, в котором будут присутствовать цифры, а так же символы. После регистрации вы сможете пользоваться чатом. Так же не забудьте активировать аккаунт через письмо, высланное вам на почту ! Администрация заботится о каждом из Вас...
  • Для просмотра разделов из категории Private Informations & Programms необходимо купить

Массовая проверка вебшелов на валидность

  • Автор темы Автор темы NURLAN
  • Дата начала Дата начала
  • Просмотры Просмотры 152
Статус
В этой теме нельзя размещать новые ответы.

NURLAN

Elite Premium

NURLAN

Elite Premium
Регистрация
24 Май 2017
Сообщения
3
Реакции
111
Баллы
3
Telegram
@nurlan7700
Этап 1.

Поскольку количество шелов было не шуточным и половина была мертвая, на первом этапе нужно было их просто прочекать на http код - 200 ок.
Который говорит о том, что по данному урлу есть какая-то страница. Для реализации задачи был выбран обычный bash, php конечно гораздо универсальнее, но писать на нем дольше и на хостинге всеравно запустить не получиться, время работы скрипта почти везде ограничено. Вот листинг готового скрипта:

Код:
#!/usr/local/bin/bash

links="/root/links.txt" # Файл со всеми имеющимися линками.
result="/root/valid.txt" # Файл с линками, где имеется какая-то страница (200 ок).


if [ -r "$links" ]; then
if [ -w "$result" ]; then
for address in $(cat $links); do
if (wget -t 1 -T 5 --spider $address &>/dev/null); then
echo $address; # Показываем линки со страницей
echo $address >> $result;
fi
done
else
echo Cannot open $result for writing or file does not exist.
fi
else
echo Cannot open $links for reading or file does not exist.
fi

"wget -t 1 -T 5" говорит о том, что пробывать соединиться с адресом мы будем 1 раз и установим таймаут 5 секунд. В противном случае проверка может затянуться на несколько суток. Если хотите видеть на консоле подробный отчет, а не готовые линки удалите "&>/dev/nul".

После примерно 5 часов проверки, скрипт закончил работу, и получился файл с половиной всех имеющихся вебшелов до этого. Поглядев ссылки руками, стало понятно, что мусора там очень много. Например вместо шела страница с посланием - "а не ох*ел ли ты нас ломать?" Чекать полученные ссылки руками, было абсурдно. Поэтому я перешел ко второму этапу.

Этап 2.

У нас есть список ссылок, где имеется какая-то страница, теперь же нужно определить, шел там стоит или какая-то ерунда. Поскольку 99% всех вебшелов были от rst, было решено, скачивать страницу и делать grep по нужной инфе, в данном случае r57shell. Вот листинг:

Код:
#!/usr/local/bin/bash

links="/root/valid.txt" # Файл со всеми имеющимися линками.
result="/root/result.txt" # Файл с линками, где стоит вебшелл.

keyword="r57shell" # Keyword

if [ -r "$links" ]; then
if [ -w "$result" ]; then
for address in $(cat $links); do
if ( (wget -T 5 -t 1 $address -O - | grep -m 1 $keyword) &>/dev/null); then
echo $address; # Shows good links
echo $address >> $result;
fi
done
else
echo Cannot open $result for writing or file does not exist.
fi
else
echo Cannot open $links for reading or file does not exist.

fi

Как видите это тот же скрипт, только wget скачивает файл, а дальше делается grep на предмет r57shell. После еще 4 часов проверки, мы получили на выходе только готовые и валидные вебшелы. Вуаля.

Разумеется, можно написать целую программу, которая сама будет проверять права, проставлять ифрейм и даже показывать примерный расклад, по популярности ресурса, но как говориться, всему свое время, место и конечно же своя цена. Главное помните, большинство задач, можно поручить делать машине, особенно связанных с рутинной работой.

Справочная информация:

1) Для работы скрипта, в системе должен быть установлен bash. Если в линуксе он стоит обычно по дефотлу, то во bsd его надо поставить, вот так: whereis bash, cd /urs/ports/.., make && make install
2) Путь до bash у вас может быть другим, узнать где он стоит можно так - locate bash.
3) Перед запуском скрипта, нужно создать файл куда будет записан результат, сделать это можно командой touch file и поправить путь в скрипте.
3) Перед запуском скрипта, нужно сделать chmod 755 на него и запускать из этой же директории вот так "./script"
4) Не советую запускать с обычного сервера, лучше если это будет антиабуз или хостинг с ssh.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу