我使用的是ubuntu 14.04,64位。我在学习贝类代码的写作。因此,为了生成一个shell,我编写了以下程序
segment .text
global _start:
_start:
jmp short GotoCall
shellcode:
pop esi
xor eax, eax
mov byte [esi + 7], al #here i get Error
lea ebx, [esi]
mov long [esi + 8], ebx
mov long [esi + 12], eax
mov byte
我一直在尝试创建一个简单的shell代码块,它允许我通过做一些简单的事情来修改一个字符串,比如更改一个字母,然后打印出来。
_start:
jmp short ender
starter:
xor ecx, ecx ;clear out registers
xor eax, eax
xor ebx, ebx
xor edx, edx
pop esi ;pop address of string into esi register
阅读乔恩·埃里克森( Jon )的“黑客:开发艺术”(TheArtofDevelopmentof发展性)一书,我试图近似于一个环境变量SHELLCODE的地址,以利用一个程序。
每次运行getenv("SHELLCODE");来获取位置时,结果都是完全不同的。
从我的壳中提取:
> for i in $(seq 10); do ./a.out SHELLCODE; done
SHELLCODE is at 0xff9ab3a3
SHELLCODE is at 0xffcdb3a3
SHELLCODE is at 0xffb9a3a3
SHELLCODE is at 0xf
我编写这个函数是为了找出一个基于的汇编指令的长度,它是关于破坏x86指令集的。
/* shellcode is a pointer to a buffer contains assembly instructions
size is the size of that buffer */
DWORD GetInstructionLength(BYTE* shellcode,SIZE_T size) {
LPVOID RWXBuff = nullptr; //buffer with read,write,execute perm
LPVOID RWBuff = nullptr
我有一个多项选择菜单。菜单中的菜单,然后我想让脚本做“任何事”,我告诉它后选择第二个选项。在本例中,我使用msfvenom来生成不同类型的shell。我的最后一个问题是,当我选择数字1时,它会跳转到右子菜单,但是我选择了数字2,而不是跳到"Web Shells“,它仍然会跳到第一个菜单。PS:如果我不使用基于的子菜单,这很好用
#!/bin/bash
clear ;
echo 'Choose a Shell type'
select shell in Binaries Web Scripting Shellcode
do
case $shell in
我正在尝试将这个脚本从python2转换为python3。
这句话我遇到了一个问题:
# need to code the input into the right format through string escape
shellcode = shellcode.decode("string_escape")
这个“should代码”被转换成下一行中的字节数组(或者应该是这样):
shellcode = bytearray(shellcode)
但是,我遇到了以下错误:
AttributeError: 'str' object has no attribut