Least Information Redundancy Algorithm of Printable Shellcode Encoding for X86

被引:0
作者
Zhou, Yuanding [1 ]
机构
[1] Chinese Acad Sci, Inst Software, Beijing, Peoples R China
来源
COMPUTER SECURITY. ESORICS 2023 INTERNATIONAL WORKSHOPS, CPS4CIP, PT II | 2024年 / 14399卷
关键词
Shellcode; Encoding; x86;
D O I
10.1007/978-3-031-54129-2_21
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Shellcode is a critical element in computer security that exploits vulnerabilities within software systems. Shellcode is written in machine code and often designed to be compact in size, evading detection by security software. Printable shellcode, specifically, comprises only printable ASCII characters (0x21-0x7E), including letters, numbers, and punctuation marks. The key advantage of printable shellcode lies in its ability to be embedded within data streams, which may undergo parsing or manipulation by applications that would otherwise filter or modify non-printable characters. The prevalent methods for generating printable shellcode involve encoding algorithms, such as the Riley Eller algorithm (integrated into Metasploit). However, previous research on printable shellcode has primarily focused on the availability and reduction of the encoded shellcode's size, without adequately considering the constraint imposed by the information entropy of the encoding algorithm within the context of printable shellcode. In this paper, we demonstrate the existence of minimal information redundancy in printable shellcode. Subsequently, we introduce Lycan, an implementation of a novel algorithm that surpasses previous encoding algorithms in terms of the size efficiency of the encoded shellcode. Lycan achieves the least theoretical information redundancy. Through experimentation, we observe that Lycan generates the most compact shellcode among existing tools when the shellcode's size exceeds a certain threshold.
引用
收藏
页码:361 / 376
页数:16
相关论文
共 15 条
[1]  
[Anonymous], Linux/x86-Reverse(127.0.0.1:53/UDP) Shell (/bin/sh) Shellcode
[2]  
[Anonymous], Linux/x86-INSERTION Encoder / Decoder execve(/bin/sh)
[3]  
[Anonymous], Linux/x86-execve(/bin/sh) Shellcode
[4]  
[Anonymous], Metasploit sub encoder
[5]  
[Anonymous], Linux/x86-OpenSSL Encrypt (aes256cbc) Files (test.txt) Shellcode
[6]  
[Anonymous], Linux/x86-chmod777 (/etc/passwd + /etc/shadow) + Add Root User (ALI/ALI) To /etc/passwd + Execute /bin/sh Shellcode
[7]  
Basu A, 2014, LECT NOTES COMPUT SC, V8880, P399, DOI 10.1007/978-3-319-13841-1_22
[8]  
Ding WB, 2014, PROCEEDINGS OF THE 2014 9TH INTERNATIONAL CONFERENCE ON MALICIOUS AND UNWANTED SOFTWARE: THE AMERICAS (MALWARE), P18, DOI 10.1109/MALWARE.2014.6999408
[9]  
Eller R., Bypassing MSB data filters for buffer over-flow exploits on intel platforms
[10]  
Géczi Z, 2018, Pollack Periodica, V13, P3, DOI [10.1556/606.2018.13.1.1, DOI 10.1556/606.2018.13.1.1]