File: test_osshell.py

package info (click to toggle)
pocsuite3 2.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,996 kB
  • sloc: python: 16,816; asm: 911; java: 66; makefile: 30
file content (89 lines) | stat: -rw-r--r-- 3,220 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import unittest
import os
from pocsuite3.api import OSShellcodes
from pocsuite3.lib.core.data import paths
from pocsuite3.lib.core.enums import SHELLCODE_CONNECTION, OS, OS_ARCH


class TestCase(unittest.TestCase):
    def setUp(self):
        self.connect_back_ip = '127.0.0.1'
        self.bad_chars = ["\x00", "\x0a", "\x0d", "\x3b"]

        self.shellpath = os.path.join(paths.POCSUITE_TMP_PATH, "payload.jar")

    def tearDown(self):
        if os.path.exists(self.shellpath):
            os.unlink(self.shellpath)

    def test_win_x86_bind(self):
        os_target = OS.WINDOWS
        os_target_arch = OS_ARCH.X86
        dll_funcs = ["pcap_findalldevs", "pcap_close", "pcap_compile", "pcap_datalink",
                     "pcap_datalink_val_to_description",
                     "pcap_dump", "pcap_dump_close", "pcap_dump_open", "pcap_file", "pcap_freecode", "pcap_geterr",
                     "pcap_getevent", "pcap_lib_version", "pcap_lookupdev", "pcap_lookupnet", "pcap_loop",
                     "pcap_open_live",
                     "pcap_open_offline", "pcap_setfilter", "pcap_snapshot", "pcap_stats"]

        s = OSShellcodes(os_target, os_target_arch, self.connect_back_ip, 6666, self.bad_chars)
        connection_type = SHELLCODE_CONNECTION.BIND
        filename = 'osshell_x86_bind'
        filepath = os.path.join(paths.POCSUITE_TMP_PATH, filename) + '.exe'
        shellcode = s.create_shellcode(
            connection_type,
            encode='',
            make_exe=1,
            debug=0,
            # dll_inj_funcs=dll_funcs,
            filename=filename,
            # use_precompiled=False
        )

        self.assertTrue(os.path.exists(filepath))
        os.unlink(filepath)

    def test_win_x86_reverse(self):
        os_target = OS.WINDOWS
        os_target_arch = OS_ARCH.X86
        dll_funcs = ["pcap_findalldevs", "pcap_close", "pcap_compile", "pcap_datalink",
                     "pcap_datalink_val_to_description",
                     "pcap_dump", "pcap_dump_close", "pcap_dump_open", "pcap_file", "pcap_freecode", "pcap_geterr",
                     "pcap_getevent", "pcap_lib_version", "pcap_lookupdev", "pcap_lookupnet", "pcap_loop",
                     "pcap_open_live",
                     "pcap_open_offline", "pcap_setfilter", "pcap_snapshot", "pcap_stats"]

        s = OSShellcodes(os_target, os_target_arch, self.connect_back_ip, 6666, self.bad_chars)
        connection_type = SHELLCODE_CONNECTION.REVERSE
        filename = 'osshell_x86_reverse'
        filepath = os.path.join(paths.POCSUITE_TMP_PATH, filename) + '.exe'
        shellcode = s.create_shellcode(
            connection_type,
            encode='',
            make_exe=1,
            debug=0,
            # dll_inj_funcs=dll_funcs,
            filename=filename,
            # use_precompiled=False
        )

        self.assertTrue(os.path.exists(filepath))
        os.unlink(filepath)

    def test_win_x64_bind(self):
        pass

    def test_win_x64_reverse(self):
        pass

    def test_linux_x86_bind(self):
        pass

    def test_linux_x86_reverse(self):
        pass

    def test_linux_x64_bind(self):
        pass

    def test_linux_x64_reverse(self):
        pass