def setUp(self):
     super(SessionsTestCase, self).setUp()
     self.sessions = {
         i: {
             generateString(4): generateString(4)
         }
         for i in range(3)
     }
     self.mock_client.getActiveSessions.return_value = self.sessions
    def test_use_invalid_exploit(self):
        self._client.msfClient.modules.use.side_effect = MsfRpcError('')
        exploitName = generateString(6)

        self.assertNotIn(exploitName, self.exploits)
        with self.assertRaises(NameError):
            self._client.useExploit(exploitName)
    def test_get_an_invalid_payload_option(self, stub_payload):
        self.__initPayloadOptionsKeys(stub_payload)
        optionSelected = generateString(6)

        options = self._client.getPayloadOptions(optionSelected)

        self.assertEquals(len(options), 0)
    def test_get_an_invalid_exploit_option(self, stub_exploit):
        self.__initExploitOptionsKeys(stub_exploit)
        optionSelected = generateString(5)

        options = self._client.getExploitOptions(optionSelected)

        self.assertEquals(len(options), 0)
    def test_set_valid_payload_option(self, stub_payload):
        self.__initPayloadtOptions(stub_payload)
        self.assertEquals(stub_payload._options, self.payload_options)
        key = random.choice(self.payload_options.keys())

        self._client.setPayloadOptions(**{key: generateString(4)})

        self.assertNotEquals(stub_payload._options, self.payload_options)
    def test_use_invalid_payload(self, mock_client):
        self._client.msfClient.modules.use.side_effect = MsfRpcError('')
        payload = generateString(6)

        self.assertNotIn(payload, self.payloads)
        with self.assertRaises(NameError):
            self._client.useExploit(payload)
            mock_client.modules.use.assert_called_with('payload', payload)
    def test_set_valid_exploit_option(self, stub_exploit):
        self.__initExploitOptions(stub_exploit)
        self.assertEquals(stub_exploit._options, self.exploit_options)
        key = random.choice(self.exploit_options.keys())

        self._client.setExploitOptions(**{key: generateString(4)})

        self.assertNotEquals(stub_exploit._options, self.exploit_options)
示例#8
0
    def test_download_report(self):
        self.mock_client.listReportFormats.return_value = self.formats
        self.mock_client.listReports.return_value = self.reports
        reportIndex = random.randint(0, len(self.reports) - 1)
        formatIndex = random.randint(0, len(self.formats) - 1)
        path = generateString(5)

        self.runner.invoke(
            OpenvasCommands.reports, ['--download'], '\n'.join(
                (str(formatIndex), str(reportIndex), path)))

        self.mock_client.downloadReport.assert_called_with(
            reportIndex, formatIndex, path)
示例#9
0
    def test_list_tasks_with_a_task_done(self):
        tasks = [{
            'id': generateId(),
            'name': 'Scan of IP' + generateIP(),
            'progress': '-1',
            'status': generateString(5)
        } for _ in range(2)]
        resultExpected = '\n\n'.join([
            "{0}.\nScan ID: {1}\nScan progress: {2}".format(
                task['name'], task['id'], task['progress']) for task in tasks
        ]) + '\n\n'
        self.mock_client.listTasks.return_value = tasks

        result = self.runner.invoke(OpenvasCommands.tasks)

        self.assertEqual(resultExpected, result.output)
示例#10
0
    def test_list_tasks(self):
        tasks = [{
            'id': generateId(),
            'name': 'Scan of IP' + generateIP(),
            'progress': 'Running: {}%'.format(random.randrange(0, 100)),
            'status': generateString(5)
        } for _ in range(2)]
        resultExpected = '\n\n'.join([
            "{0}.\nScan ID: {1}\nScan progress: {2}".format(
                task['name'], task['id'], task['progress']) for task in tasks
        ]) + '\n\n'
        self.mock_client.listTasks.return_value = tasks

        result = self.runner.invoke(OpenvasCommands.tasks)

        self.assertEqual(resultExpected, result.output, result.exception
                         or result.exit_code)
示例#11
0
 def test_add_script(self):
     script = generateString(5)
     self.scanManager.addScript(script)
     self.assertIn(script, self.scanManager.scripts)
示例#12
0
 def test_add_script(self):
     script = generateString(5)
     result = self.runner.invoke(NmapCommands.add_script, [script])
     self.assertEqual(result.output, 'Script added: {}\n'.format(script))
示例#13
0
 def setUp(self):
     super(ScansTestCase, self).setUp()
     self.configs = {generateString(5): generateId() for _ in range(4)}
示例#14
0
 def setUp(self):
     super(ReportsTestCase, self).setUp()
     self.formats = [generateString(10) for _ in range(5)]
     self.reports = [generateString(10) for _ in range(5)]
示例#15
0
 def setUp(self, mock_client):
     super(ExploitsTestCase, self).setUp()
     self.exploits = [generateString(10) for _ in range(5)]
     self.exploit_options = {generateString(5): generateString(4) for _ in range(4)}
     self._client.msfClient = mock_client
     self._client.msfClient.modules.exploits = self.exploits
示例#16
0
 def setUp(self, mock_client):
     super(PayloadsTestCase, self).setUp()
     self.payloads = [generateString(10) for _ in range(4)]
     self.payload_options = {generateString(5): generateString(4) for _ in range(3)}
     self._client.msfClient = mock_client