gpt4 book ai didi

linux - 向生成 shell 的 shellcode 添加参数

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:13 24 4
gpt4 key购买 nike

我有一些基本的 shellcode:

 BITS 32

jmp short callit ; jmp trick as explained above

doit:

pop esi ; esi now represents the location of our string
xor eax, eax ; make eax 0
mov byte [esi + 7], al ; terminate /bin/sh
lea ebx, [esi] ; get the adress of /bin/sh and put it in register ebx
mov long [esi + 8], ebx ; put the value of ebx (the address of /bin/sh) in AAAA ([esi +8])
mov long [esi + 12], eax ; put NULL in BBBB (remember xor eax, eax)
mov byte al, 0x0b ; Execution time! we use syscall 0x0b which represents execve
mov ebx, esi ; argument one... ratatata /bin/sh
lea ecx, [esi + 8] ; argument two... ratatata our pointer to /bin/sh
lea edx, [esi + 12] ; argument three... ratataa our pointer to NULL
int 0x80

callit:
call doit ; part of the jmp trick to get the location of db

db '/bin/sh#AAAABBBB'

但是假设我想添加一些命令作为 shell 的参数。因此,例如要制作一个新文件,我会做类似/bin/sh -c 'touch "filepath"但我对如何更改我的 shellcode 来执行此操作有点困惑。

谢谢,塞巴

最佳答案

这来自教程http://www.safemode.org/files/zillion/shellcode/doc/Writing_shellcode.html The execve example number III (2 > arguments, linux):

部分解释了您提出的问题

关于linux - 向生成 shell 的 shellcode 添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com