Skip to content

Instantly share code, notes, and snippets.

@ebubekirtrkr
Last active February 4, 2021 09:41
Show Gist options
  • Select an option

  • Save ebubekirtrkr/f6a18db94fcdadae6feff794e886a70a to your computer and use it in GitHub Desktop.

Select an option

Save ebubekirtrkr/f6a18db94fcdadae6feff794e886a70a to your computer and use it in GitHub Desktop.
Shellcode Checking Bash Script

İşlerimizi biraz kolaylaştımrak için şöyle bi script yazdım, s uzantılı dosyayı veriyoz bir de badchar kontrolü yapılacak bytei \xbb formatında veriyoz hallediyo, badchari vermezsek otomatik \x00 kontrol ediyor.

Çıktı olarak filename-raw, filename-elf üretiyor. -d verirseniz çıktıları siliy.

Örnek:

./runner.sh -f benimkucukshellcodeum.s

./runner.sh -f benimkucukshellcodeum.s -b '\x48'

./runner.sh -f benimkucukshellcodeum.s -b '\x48' -d

pwntools ve nasm kurulu olmalı

while getopts f:b:d flag
do
    case "${flag}" in
        f) filename=${OPTARG};;
        b) badchar=${OPTARG};;
        d) delete="yes";;
    esac
done
if [ -z "$badchar" ]
then
  badchar='\x00'
fi
name=$(echo "$filename" | cut -f 1 -d '.')
gcc -nostdlib -static $filename -o $name-elf;
objcopy --dump-section .text=$name-raw $name-elf;

printf  "Checking badchar in $name-raw\n"
python3 -c "bd=r'$badchar';print(f'isContains {bd} ?:',b'$badchar' in open('$name-raw','rb').read())"

printf  "\nHexdumping $name-raw\n"
python3 -c "from pwn import hexdump;print(hexdump(open('$name-raw','rb').read()))"

printf  "\nndisasm  -b 64 $name-raw\n"
ndisasm  -b 64 $name-raw

printf  "\nRunning shelcode $name-elf\n"
./$name-elf

if [ ! -z "$delete" ]
then
  rm $name-elf
  rm $name-raw
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment