sshmitm.tutorial.tutorials.ssh_exec package

Tutorial: SSH Command Execution Interception.

class sshmitm.tutorial.tutorials.ssh_exec.SSHExecTutorial

Bases: Tutorial

category: ClassVar[str] = 'Command Execution'
description: ClassVar[str] = 'Learn how SSH-MITM intercepts commands executed non-interactively via ssh.'
docs: ClassVar[dict[str, str]] = {'Logfile Inc. Assessment': 'https://docs.ssh-mitm.at/get_started/scenario.html', 'Terminal Sessions': 'https://docs.ssh-mitm.at/audit_guide/sessions.html'}
id: ClassVar[str] = '04-ssh-exec'
lab_service_labels: ClassVar[dict[str, str]] = {'mock_port': 'web01.logfileinc.internal'}
proxy_target

alias of Web01

requires: ClassVar[list[Requirement]] = [<sshmitm.tutorial._requirements.RandomPassword object>, <sshmitm.tutorial._requirements.RandomChoice object>]
scenario

alias of LogfileIncScenario

steps: list[Step] = [Step(id='intro', title='What you will learn', content='', condition=<sshmitm.tutorial._conditions.TRUE object>, victim_action=None, command=None, copyable=[], hint_waiting='', hint_done='Introduction read. ✓'), Step(id='start-sshmitm', title='Start SSH-MITM', content='', condition=<sshmitm.tutorial._conditions.PortOpen object>, victim_action=None, command='ssh-mitm server --remote-host {proxy_target_address} --remote-port {mock_port} --listen-port {sshmitm_port}', copyable=[], hint_waiting='Waiting for SSH-MITM to start on port {sshmitm_port}…', hint_done='SSH-MITM is running on port {sshmitm_port}. ✓'), Step(id='intercept', title='Find the executed command', content='', condition=<sshmitm.tutorial._conditions.UserInput object>, victim_action=<sshmitm.tutorial._client_actions.SSHExecAction object>, command=None, copyable=[], hint_waiting='A developer is running a command through SSH-MITM. Check the terminal and enter the command above.', hint_done='Correct! You intercepted the command execution. ✓')]
tags: ClassVar[list[str]] = ['SSH Exec', 'CI/CD']
title: ClassVar[str] = 'SSH Command Execution Interception'
victim

alias of MaxMorgan