<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Почему не хватает привелегий для setreuid?</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html</link>
    <description>написал небольшой кодик асм:&lt;br&gt;section .text&lt;br&gt;global _start&lt;br&gt;_start:&lt;br&gt;xor eax, eax&lt;br&gt;mov al, 0x71&lt;br&gt;xor ebx, ebx&lt;br&gt;xor ecx, ecx&lt;br&gt;xor esi, esi&lt;br&gt;xor edi, edi&lt;br&gt;syscall&lt;br&gt;mov al, 0x3c&lt;br&gt;syscall&lt;br&gt;который дропает ошибку: &lt;br&gt; $sudo nasm -static -f elf64 exit.asm &amp;&amp; sudo ld exit.o -o exit &amp;&amp; sudo ./exit; strace ./exit&lt;br&gt;&#091;sudo&#093; пароль для belmondo: &lt;br&gt;execve(&quot;./exit&quot;, &#091;&quot;./exit&quot;&#093;, &#091;/* 61 vars */&#093;) = 0&lt;br&gt;setreuid(0, 0)                          = -1 EPERM (Operation not permitted)&lt;br&gt;strace: &#091; Process PID=7703 runs in x32 mode. &#093;&lt;br&gt;syscall_18446744072635809596(0, 0, 0, 0, 0, 0) = -1 (errno 38)&lt;br&gt;--- SIGSEGV &#123;si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffffffffffda&#125; ---&lt;br&gt;+++ killed by SIGSEGV (core dumped) +++&lt;br&gt;Ошибка сегментирования (сделан дамп памяти)&lt;br&gt;Но код с такой же сутью на плюсах ее не дропает:&lt;br&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br&gt;#include &amp;lt;iostream&amp;gt;&lt;br&gt;using namespace std;&lt;br&gt;&lt;br&gt;int main() &#123;&lt;br&gt;    cout &amp;lt;&amp;lt; setreuid(0,0) &amp;lt;&amp;lt; endl;&lt;br&gt;    return 0;&lt;br&gt;&#125;&lt;br&gt;$ g++ -o check check.cpp &amp;&amp; sudo ./check&lt;br&gt;0&lt;br&gt;В чем может быть проблема?&lt;br&gt;</description>

<item>
    <title>Почему не хватает привелегий для setreuid? (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#6</link>
    <pubDate>Sat, 30 Sep 2017 03:04:53 GMT</pubDate>
    <description>&amp;gt; Когда теперь? Причем теперь? Я про стостояние после &#091;mov al, 0x71&#093; &lt;br&gt;&amp;gt; У тя было написано: &quot;Ты подправил только al...&quot; &lt;br&gt;&lt;br&gt;Хорошо, я расскажу медленно. О mov al,0x3c перед syscall с SIGSEGV. Он подправил только al, не учитывая, что в rax не 0, как было сразу после xor, а -1 после предыдущего syscall с залётом.&lt;br&gt;</description>
</item>

<item>
    <title>Почему не хватает привелегий для setreuid? (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#5</link>
    <pubDate>Thu, 28 Sep 2017 22:52:25 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Читал - знакомых букав не встретил?&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ты подправил только &#091;b&#093;al&#091;/b&#093; и сделал следующий syscall к функции &amp;#8470;18446744072635809596 &lt;br&gt;&amp;gt;&amp;gt; До этого было &quot;xor eax, eax&quot;, так шта AH = 0x00 &lt;br&gt;&amp;gt; Щаз. Там теперь 0xFF от кода возврата = -1.&lt;br&gt;&lt;br&gt;Когда теперь? Причем теперь? Я про стостояние после &#091;mov al, 0x71&#093;&lt;br&gt;У тя было написано: &quot;Ты подправил только al...&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;xor eax, eax&lt;br&gt;mov al, 0x71&lt;br&gt;&lt;br&gt;это одножуйственно с (кроме дрочения запиську и дерганья стека и флагов)&lt;br&gt;&lt;br&gt;xor eax, eax&lt;br&gt;mov al, 0x71&lt;br&gt;mov ah,0x00&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Почему не хватает привелегий для setreuid? (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#4</link>
    <pubDate>Thu, 28 Sep 2017 16:48:12 GMT</pubDate>
    <description>&amp;gt; Читал - знакомых букав не встретил?&lt;br&gt;&amp;gt;&amp;gt; Ты подправил только &#091;b&#093;al&#091;/b&#093; и сделал следующий syscall к функции &amp;#8470;18446744072635809596 &lt;br&gt;&amp;gt; До этого было &quot;xor eax, eax&quot;, так шта AH = 0x00 &lt;br&gt;&lt;br&gt;Щаз. Там теперь 0xFF от кода возврата = -1.&lt;br&gt;</description>
</item>

<item>
    <title>Почему не хватает привелегий для setreuid? (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#3</link>
    <pubDate>Fri, 22 Sep 2017 01:32:59 GMT</pubDate>
    <description>Читал - знакомых букав не встретил? &lt;br&gt;&lt;br&gt;&amp;gt; Ты подправил только &#091;b&#093;al&#091;/b&#093; и сделал следующий syscall к функции &amp;#8470;18446744072635809596 &lt;br&gt;&lt;br&gt;До этого было &quot;xor eax, eax&quot;, так шта AH = 0x00&lt;br&gt;&lt;br&gt;&amp;gt; из 32-разрядного ABI. О*евшее ядро послало тебя курить дамп.&lt;br&gt;&lt;br&gt;Process PID=7703 runs in x32 mode. &lt;br&gt;&lt;br&gt;Изучай про Long Mode и в нём Compatibility Mode&lt;br&gt;&lt;br&gt;https://www.codeproject.com/Articles/45788/The-Real-Protected-Long-mode-assembly-tutorial-for&lt;br&gt;</description>
</item>

<item>
    <title>Почему не хватает привелегий для setreuid? (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#2</link>
    <pubDate>Wed, 20 Sep 2017 01:47:29 GMT</pubDate>
    <description>&amp;gt; +++ killed by SIGSEGV (core dumped) +++ &lt;br&gt;&amp;gt; Ошибка сегментирования (сделан дамп памяти) &lt;br&gt;&amp;gt; Но код с такой же сутью на плюсах ее не дропает: &lt;br&gt;&lt;br&gt;Ты тут два вопроса задал. Про привилегии вопрос странный - обычному юзеру не положено ставить setreuid=0.&lt;br&gt;&lt;br&gt;Про SIGSEGV - залёт по EPERM прислал тебе в ответку &#091;b&#093;rax = -1&#091;/b&#093;.&lt;br&gt;&lt;br&gt;Ты подправил только &#091;b&#093;al&#091;/b&#093; и сделал следующий syscall к функции &amp;#8470;18446744072635809596 из 32-разрядного ABI. О*евшее ядро послало тебя курить дамп.&lt;br&gt;&lt;br&gt;&quot;Код с такой же сутью на плюсах&quot; не ленится заполнять все регистры, потому и не слетает.&lt;br&gt;А так даже вернёт код ошибки:&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;section .text&lt;br&gt;global _start&lt;br&gt;_start:&lt;br&gt;    xor eax, eax&lt;br&gt;    mov al, 0x71&lt;br&gt;    xor ebx, ebx&lt;br&gt;    xor ecx, ecx&lt;br&gt;    xor esi, esi&lt;br&gt;    xor edi, edi&lt;br&gt;    syscall&lt;br&gt;    xchg eax, edi&lt;br&gt;    mov al, 0x3c&lt;br&gt;    syscall&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;$ strace ./exit&lt;br&gt;execve(&quot;./exit&quot;, &#091;&quot;./exit&quot;&#093;, &#091;/* 53 vars */&#093;) = 0&lt;br&gt;setreuid(0, 0)                          = -1 EPERM (Operation not permitted)&lt;br&gt;_exit(4294967295)                       </description>
</item>

<item>
    <title>Почему не хватает привелегий для setreuid? (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10180.html#1</link>
    <pubDate>Mon, 18 Sep 2017 01:08:08 GMT</pubDate>
    <description>&amp;gt; В чем может быть проблема?&lt;br&gt;&lt;br&gt;от юзера пустил.&lt;br&gt;&amp;gt; ...; strace ./exit&lt;br&gt;&lt;br&gt;.&lt;br&gt;&amp;gt; Но код с такой же сутью на плюсах ее не дропает:&lt;br&gt;&lt;br&gt;ессесенно &lt;br&gt;&lt;br&gt;&amp;gt; sudo ./check&lt;br&gt;&lt;br&gt;.&lt;br&gt;&#091;code&#093;&lt;br&gt;$ su -c &apos;strace ./exit&apos; &lt;br&gt;Пароль: &lt;br&gt;execve(&quot;./srs&quot;, &#091;&quot;./srs&quot;&#093;, &#091;/* 49 vars */&#093;) = 0&lt;br&gt;setreuid(0, 0)                          = 0&lt;br&gt;_exit(0)                                = ?&lt;br&gt;+++ exited with 0 +++&lt;br&gt;&lt;br&gt;&#091;/code&#093;&lt;br&gt;</description>
</item>

</channel>
</rss>
