Shellcode

shellcode简介

shellcode是一段用于利用软件漏洞而执行的代码,也可以认为是一段填充数据,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
下面这张图就是shellcode工作流程,从功能上看,shellcode在整个漏洞利用过程中发挥主要作用就是对计算机端的控制。
Shellcode_第1张图片
shellcode可以按照攻击者执行的位置分为本地shellcode和远程shellcode.
本地shellcode:本地运行的shellcode经常用于利用软件漏洞提升权限。比如在Linux下由普通权限提升至root权限。
远程shellcode:利用软件漏洞获得特定的shellcode,再经由C或Python编写远程攻击程序,进而取得对方电脑的root权限。
Shellcode是漏洞利用的必备要素,也是漏洞分析的重要环节,我们可以通过对shellcode进行定位来辅助回溯原理并确定漏洞特征,通过对shellcode功能的分析,我们还可以确定漏洞样本的危害程度的及其目的,并优肯追踪攻击来源,这对apt供给分析中的溯源工作非常有利。

Shellcode在漏洞样本中的存在形式一般为一段可以自主运行的汇编倒霉,他不依赖任何编译环境,也不能像在IDE中直接编写代码哪有调用API函数名称来实现更能,他通过主动查到dll基址并动态获取api地址的方式来实现api调用,然后根据实功能调用想用的api函数来完成其自身

你可能感兴趣的:(逆向)