в сервисе nas4free click -> CIFS/SMB внизу экрана в поле Дополнительные параметры введите
ntlm аутентификация = да
Наконец-то я решил эту проблему.
Системная функция библиотеки C ()не выполняется, если стек не выровнен по 16 -байтам.
В моем случае я забыл выровнять стек по границе 16 -байт, поэтому system("/bin/sh");
выполнялся неправильно и, следовательно, не запускал оболочку.
На самом деле, в x86 -64, System V ABI требует, чтобы стек был выровнен по 16 -байтам перед выполнением ассемблерной инструкции CALL. В противном случае результат непредсказуем. Таким образом, это относится не только к системной функции (), но и к любой функции.
Поскольку мой стек был смещен на 8 байт, добавление дополнительного RET в цепочку ROP приводит к правильному выравниванию стека.
Теперь у меня все работает.