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

29.10.2024
19
0
BIT
111
Доброго времени суток 🖐
Пишу Remote Control для Windows, и нужно открыть cmd и выполнять в нём команды
Но нужно не один раз открыть и закрыть, а именно открыть cmd и выполнять всё в нём,
Как в metasploit-framework, но на просторах интернета ничего не нашёл.
Поэтому прошу пользователей Codeby.net помочь мне с этой проблемой.
Ссылочкой на ресурсы, или помощью в комментариях.
Буду благодарен за любую помощь!
 
Решение
Доброго времени суток 🖐
Пишу Remote Control для Windows, и нужно открыть cmd и выполнять в нём команды
Но нужно не один раз открыть и закрыть, а именно открыть cmd и выполнять всё в нём,
Как в metasploit-framework, но на просторах интернета ничего не нашёл.
Поэтому прошу пользователей Codeby.net помочь мне с этой проблемой.
Ссылочкой на ресурсы, или помощью в комментариях.
Буду благодарен за любую помощь!
Просто выполнение команд заворачиваешь в while

1731304507232.png


Python:
import subprocess

def main():
    while True:
        command = input("Введите команду (или 'exit' для выхода): ")
        
        if command.lower() ==...

Exited3n

Red Team
10.05.2022
740
259
BIT
703
Доброго времени суток 🖐
Пишу Remote Control для Windows, и нужно открыть cmd и выполнять в нём команды
Но нужно не один раз открыть и закрыть, а именно открыть cmd и выполнять всё в нём,
Как в metasploit-framework, но на просторах интернета ничего не нашёл.
Поэтому прошу пользователей Codeby.net помочь мне с этой проблемой.
Ссылочкой на ресурсы, или помощью в комментариях.
Буду благодарен за любую помощь!
Просто выполнение команд заворачиваешь в while

1731304507232.png


Python:
import subprocess

def main():
    while True:
        command = input("Введите команду (или 'exit' для выхода): ")
        
        if command.lower() == 'exit':
            print("Выход из программы.")
            break
        
        try:
            result = subprocess.run(command, shell=True, capture_output=True, text=True)

            print("Результат выполнения команды:")
            print(result.stdout)
            if result.stderr:
                print("Ошибки:")
                print(result.stderr)
        except Exception as e:
            print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    main()


Так же для бота делал в ТГ

1731304409361.png


Python:
from aiogram import Router
from aiogram.fsm.state import StatesGroup, State
from aiogram.types import Message
from aiogram.filters.command import Command
from aiogram.fsm.context import FSMContext
import logging
import subprocess

router: Router = Router()


class Shell(StatesGroup):
    ShellOn = State()


@router.message(Command("shell"))
async def shell_state(message: Message, state: FSMContext):
    try:
        await state.set_state(Shell.ShellOn)
        await message.answer('<b>Shell mode ON</b>\nSend <code>exit</code> for exit')
    except Exception as e:
        logging.error(e)


@router.message(Shell.ShellOn)
async def cmd_shell(message: Message, state: FSMContext):
    try:
        # subprocess.Popen('chcp 65001', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        await state.update_data(shell_cmd=message.text.strip())

        command = message.text.strip()
        process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = process.communicate()

        if stdout:
            output = stdout.decode('utf-8', errors='ignore')
            part_size = 3900
            message_parts = [output[i:i + part_size] for i in range(0, len(output), part_size)]
            for part in message_parts:
                await message.answer(f"{part}", parse_mode=None)

        if command.lower() == 'exit':
            await state.clear()
            await message.answer(f"Exiting from shell...\n<b>Shell mode OFF</b>")
        else:
            await state.set_state(Shell.ShellOn)
    except Exception as e:
        await message.answer(str(e))



Удачи!
 
Решение
29.10.2024
19
0
BIT
111
Просто выполнение команд заворачиваешь в while

Посмотреть вложение 77479

Python:
import subprocess

def main():
    while True:
        command = input("Введите команду (или 'exit' для выхода): ")
       
        if command.lower() == 'exit':
            print("Выход из программы.")
            break
       
        try:
            result = subprocess.run(command, shell=True, capture_output=True, text=True)

            print("Результат выполнения команды:")
            print(result.stdout)
            if result.stderr:
                print("Ошибки:")
                print(result.stderr)
        except Exception as e:
            print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    main()


Так же для бота делал в ТГ

Посмотреть вложение 77478

Python:
from aiogram import Router
from aiogram.fsm.state import StatesGroup, State
from aiogram.types import Message
from aiogram.filters.command import Command
from aiogram.fsm.context import FSMContext
import logging
import subprocess

router: Router = Router()


class Shell(StatesGroup):
    ShellOn = State()


@router.message(Command("shell"))
async def shell_state(message: Message, state: FSMContext):
    try:
        await state.set_state(Shell.ShellOn)
        await message.answer('<b>Shell mode ON</b>\nSend <code>exit</code> for exit')
    except Exception as e:
        logging.error(e)


@router.message(Shell.ShellOn)
async def cmd_shell(message: Message, state: FSMContext):
    try:
        # subprocess.Popen('chcp 65001', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        await state.update_data(shell_cmd=message.text.strip())

        command = message.text.strip()
        process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = process.communicate()

        if stdout:
            output = stdout.decode('utf-8', errors='ignore')
            part_size = 3900
            message_parts = [output[i:i + part_size] for i in range(0, len(output), part_size)]
            for part in message_parts:
                await message.answer(f"{part}", parse_mode=None)

        if command.lower() == 'exit':
            await state.clear()
            await message.answer(f"Exiting from shell...\n<b>Shell mode OFF</b>")
        else:
            await state.set_state(Shell.ShellOn)
    except Exception as e:
        await message.answer(str(e))



Удачи!
Спасибо Большое!!!
Это вот прям то что нужно!
 
29.10.2024
19
0
BIT
111
Просто выполнение команд заворачиваешь в while

Посмотреть вложение 77479

Python:
import subprocess

def main():
    while True:
        command = input("Введите команду (или 'exit' для выхода): ")
       
        if command.lower() == 'exit':
            print("Выход из программы.")
            break
       
        try:
            result = subprocess.run(command, shell=True, capture_output=True, text=True)

            print("Результат выполнения команды:")
            print(result.stdout)
            if result.stderr:
                print("Ошибки:")
                print(result.stderr)
        except Exception as e:
            print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    main()


Так же для бота делал в ТГ

Посмотреть вложение 77478

Python:
from aiogram import Router
from aiogram.fsm.state import StatesGroup, State
from aiogram.types import Message
from aiogram.filters.command import Command
from aiogram.fsm.context import FSMContext
import logging
import subprocess

router: Router = Router()


class Shell(StatesGroup):
    ShellOn = State()


@router.message(Command("shell"))
async def shell_state(message: Message, state: FSMContext):
    try:
        await state.set_state(Shell.ShellOn)
        await message.answer('<b>Shell mode ON</b>\nSend <code>exit</code> for exit')
    except Exception as e:
        logging.error(e)


@router.message(Shell.ShellOn)
async def cmd_shell(message: Message, state: FSMContext):
    try:
        # subprocess.Popen('chcp 65001', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        await state.update_data(shell_cmd=message.text.strip())

        command = message.text.strip()
        process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = process.communicate()

        if stdout:
            output = stdout.decode('utf-8', errors='ignore')
            part_size = 3900
            message_parts = [output[i:i + part_size] for i in range(0, len(output), part_size)]
            for part in message_parts:
                await message.answer(f"{part}", parse_mode=None)

        if command.lower() == 'exit':
            await state.clear()
            await message.answer(f"Exiting from shell...\n<b>Shell mode OFF</b>")
        else:
            await state.set_state(Shell.ShellOn)
    except Exception as e:
        await message.answer(str(e))



Удачи!
Ещё вопрос появился,
А как реализовать cd?
Чтобы директория не сбрасывалась, а оставалась которую мы ранее вписали?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!