Как поднять свой pwn таск?

У меня есть задание на pwn. Мне необходимо либо скомпилировать его в exe или elf. Или поднять на сервере и порту так, что бы было возможно подключение по netcat

Вот исходный код:

import random
t=0

def generate_addition_subtraction():
    num1 = random.randint(10, 99)
    num2 = random.randint(10, 99)
    operator = random.choice(['+', '-'])

    if operator == '+':
        result = num1 + num2
    else:
        result = num1 - num2

    expression = f"{num1} {operator} {num2}"

    return expression


while t !=100:
    ex = generate_addition_subtraction()
    print(ex)
    if int(input("Ведите ответ:")) == int(eval(ex)):
        t=t+1
    print(t)

print("Вот твой флаг, гений арифметики: zel{m4tH_i5_mY_F4v0R1t3_l35SoN}")

Для компиляции в .exe b .elf я использовал pyinstaller.

При попытке работы с exe через pwntools происходит следующее: код для проверки:

from pwn import *

io = process("/pwn_1/pwn_1.exe")

s = io.recvline()
print(s)

Ошибка для exe

я использую python 3.10 , pycharm и windows11

При попытке проверки elf в linux происходит это:

код для проверки:

from pwn import *
io = process("./pwn1")

s = io.recvline()
var= eval(s)

io.send(var)

Ошибка:

**┌──(kali㉿kali)-[~/pwn1]
└─$ /bin/python3.12 /home/kali/pwn1/task.py
[+] Starting local process './pwn1': pid 138364
Traceback (most recent call last):
  File "/home/kali/pwn1/task.py", line 7, in <module>
    io.send(var)
  File "/usr/lib/python3/dist-packages/pwnlib/tubes/tube.py", line 790, in send
    data = packing._need_bytes(data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pwnlib/util/packing.py", line 1020, in _need_bytes
    worst = s and max(map(ord, s)) or 0
                      ^^^^^^^^^^^
TypeError: 'int' object is not iterable
[*] Stopped process './pwn1' (pid 138364)**

Использую vscode, python 3.10, kali linux

Затем я попробовал поднять на localhost.

import socket
import random

host = "127.0.0.1"
port = 10005

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))

t=0
def generate_addition_subtraction():
    num1 = random.randint(10, 99)
    num2 = random.randint(10, 99)
    operator = random.choice(['+', '-'])

    if operator == '+':
        result = num1 + num2
    else:
        result = num1 - num2

    expression = f"{num1} {operator} {num2}"

    return expression


while True:
    while t != 100:
        ex = generate_addition_subtraction()
        print(ex)
        if int(input("Ведите ответ:")) == int(eval(ex)):
            t = t + 1
        print(t)

    print("Вот твой флаг, гений арифметики: zel{m4tH_i5_mY_F4v0R1t3_l35SoN}")
**┌──(kali㉿kali)-[~/pwn1]
└─$ /bin/python3.12 /home/kali/Desktop/qqq.py
Traceback (most recent call last):
  File "/home/kali/Desktop/qqq.py", line 8, in <module>
    s.connect((host, port))
ConnectionRefusedError: [Errno 111] Connection refused**

Так же пробовал вот такой вариант:

import socket
import random


sock = socket.socket()
sock.bind(('', 4444))
sock.listen(1)
conn, addr = sock.accept()


t=0
def generate_addition_subtraction():
    num1 = random.randint(10, 99)
    num2 = random.randint(10, 99)
    operator = random.choice(['+', '-'])

    if operator == '+':
        result = num1 + num2
    else:
        result = num1 - num2

    expression = f"{num1} {operator} {num2}"

    return expression


while True:
    while t != 100:
        ex = generate_addition_subtraction()
        print(ex)
        if int(input("Ведите ответ:")) == int(eval(ex)):
            t = t + 1
        print(t)

    print("Вот твой флаг, гений арифметики: zel{m4tH_i5_mY_F4v0R1t3_l35SoN}")

Начинает работать но при попытке подключения: nc 127.0.0.1 4444 Никакие данные не отображаются.

Буду очень благодарен любой помощи


Ответы (0 шт):