Example #1
0
    def test_logout(self):
        """Tests if the SSH bait can Logout from the SSH capability"""

        options = {'enabled': 'True', 'port': 0, 'protocol_specific_data': {'max_attempts': 3},
                   'users': {'test': 'test'}}

        cap = honeypot_ssh.SSH(options, self.work_dir, self.key)

        srv = StreamServer(('0.0.0.0', 0), cap.handle_session)
        srv.start()

        bait_info = {
            'timing': 'regular',
            'username': '******',
            'password': '******',
            'port': srv.server_port,
            'server': '127.0.0.1'
        }


        BaitSession.client_id = 'f51171df-c8f6-4af4-86c0-f4e163cf69e8'
        current_bee = client_ssh.Ssh(bait_info)
        current_bee.connect_login()
        current_bee.logout()
        srv.stop()
Example #2
0
    def test_command_list(self):

        options = {'enabled': 'True', 'port': 0, 'protocol_specific_data': {'max_attempts': 3},
                   'users': {'test': 'test'}}
        cap = honeypot_ssh.SSH(options, self.work_dir, self.key)

        srv = StreamServer(('0.0.0.0', 0), cap.handle_session)
        srv.start()

        bait_info = {
            'timing': 'regular',
            'username': '******',
            'password': '******',
            'port': srv.server_port,
            'server': '127.0.0.1',
            'honeypot_id': '1234'
        }


        BaitSession.client_id = 'f51171df-c8f6-4af4-86c0-f4e163cf69e8'
        current_bee = client_ssh.Ssh(bait_info)
        current_bee.connect_login()

        resp = current_bee.ls()
        self.assertTrue('var' in resp)
Example #3
0
    def test_command_cat(self):

        sessions = {}
        options = {
            'enabled': 'True',
            'port': 0,
            'protocol_specific_data': {
                'max_attempts': 3
            },
            'users': {
                'test': 'test'
            }
        }

        cap = honeypot_ssh.SSH(sessions, options, self.work_dir, self.key)

        srv = StreamServer(('0.0.0.0', 0), cap.handle_session)
        srv.start()

        bee_info = {
            'timing': 'regular',
            'username': '******',
            'password': '******',
            'port': srv.server_port,
            'server': '127.0.0.1'
        }
        beesessions = {}

        BaitSession.client_id = 'f51171df-c8f6-4af4-86c0-f4e163cf69e8'
        current_bee = client_ssh.ssh(beesessions, bee_info)
        current_bee.connect_login()

        # TODO: What is this? html here?
        resp = current_bee.cat('/var/www/index.html')
        self.assertTrue('</html>' in resp)
Example #4
0
    def test_validate_senses(self):
        sessions = {}

        options = {
            'enabled': 'True',
            'port': 0,
            'protocol_specific_data': {
                'max_attempts': 3
            },
            'users': {
                'test': 'test'
            }
        }
        cap = honeypot_ssh.SSH(sessions, options, self.work_dir, self.key)

        srv = StreamServer(('0.0.0.0', 0), cap.handle_session)
        srv.start()

        bee_info = {
            'timing': 'regular',
            'username': '******',
            'password': '******',
            'port': srv.server_port,
            'server': '127.0.0.1'
        }
        beesessions = {}

        BaitSession.client_id = 'f51171df-c8f6-4af4-86c0-f4e163cf69e8'
        current_bait = client_ssh.ssh(beesessions, bee_info)
        for s in current_bait.senses:
            sense = getattr(current_bait, s)
            self.assertTrue(callable(sense))
Example #5
0
    def test_basic_login(self):
        options = {'port': 0, 'users': {'test': 'test'}}
        sut = ssh.SSH(options, self.work_dir, self.key)
        server = StreamServer(('127.0.0.1', 0), sut.handle_session)
        server.start()

        client = SSHClient()
        client.set_missing_host_key_policy(AutoAddPolicy())
        with self.assertRaises(AuthenticationException):
            client.connect('127.0.0.1', server.server_port, 'someuser',
                           'somepassword')

        server.stop()
Example #6
0
    def test_command_cd(self):

        sessions = {}
        options = {
            'enabled': 'True',
            'port': 0,
            'protocol_specific_data': {
                'max_attempts': 3
            },
            'users': {
                'test': 'test'
            }
        }

        cap = honeypot_ssh.SSH(sessions, options, self.work_dir, self.key)

        srv = StreamServer(('0.0.0.0', 0), cap.handle_session)
        srv.start()

        bee_info = {
            'timing': 'regular',
            'username': '******',
            'password': '******',
            'port': srv.server_port,
            'server': '127.0.0.1'
        }
        beesessions = {}

        BaitSession.client_id = 'f51171df-c8f6-4af4-86c0-f4e163cf69e8'
        current_bee = client_ssh.ssh(beesessions, bee_info)
        current_bee.connect_login()

        # Command: cd
        self.assertEquals('/', current_bee.state['working_dir'])
        current_bee.cd('/var')
        self.assertEquals('/var', current_bee.state['working_dir'])