Assignment #6: Create 3 polymorphic versions of shellcodes from Shell-Storm
In this assignment, the objective was to create three polymorphic versions of the following shellcode samples:
The purpose of this objective is to leverage alternate instructions which essentially does the same thing in order to beat AV Signatures, for example:
The first sample, shellcode-862 downloads a file from a hardcoded ip address using wget and then changes the downloaded file permissions to executable.
The output shown below shows the original version and the polymorphic version.
The next sample, shellcode-111was built to run execve("/bin/sh")
as shown earlier the output portrayed below includes the original and polymorphic versions:
The last sample, shellcode-849 is designed to create a tcp bind shell on port 31337
and the output of its original form and its polymorphic version is highlighted below:
This blog post has been created for completing the requirements of the SecurityTube Linux Assembly Expert certification:
http://securitytube-training.com/online-courses/securitytube-linux-assembly-expert/
Student ID: PA-7730
All source files can be found on GitHub at https://github.com/br0ns0n/SLAE32
- https://web.archive.org/web/20191002184848/http://shell-storm.org/shellcode/files/shellcode-862.php
- https://web.archive.org/web/20190305152644/http://shell-storm.org/shellcode/files/shellcode-811.php
- https://web.archive.org/web/20190618054900/http://shell-storm.org/shellcode/files/shellcode-849.php
The purpose of this objective is to leverage alternate instructions which essentially does the same thing in order to beat AV Signatures, for example:
- xor eax,eax
- lea ebx,[0]
- loop $
- mov edx,0
- and esi,0
- sub edi,edi
- push 0
- pop ebp
The first sample, shellcode-862 downloads a file from a hardcoded ip address using wget and then changes the downloaded file permissions to executable.
The output shown below shows the original version and the polymorphic version.
Original Version
|
Polymorphic Version
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
as shown earlier the output portrayed below includes the original and polymorphic versions:
Original Version
|
Polymorphic Version
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
The last sample, shellcode-849 is designed to create a tcp bind shell on port 31337
and the output of its original form and its polymorphic version is highlighted below:
Original Version
|
Polymorphic Version
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
This blog post has been created for completing the requirements of the SecurityTube Linux Assembly Expert certification:
http://securitytube-training.com/online-courses/securitytube-linux-assembly-expert/
Student ID: PA-7730
All source files can be found on GitHub at https://github.com/br0ns0n/SLAE32
Comments
Post a Comment