现在应该准备测试shellcode 测试shellcode 在运行这個程序之前我们通过以下命令列出在你本地系统上的账户:
然后你把这个shellcode复制到已经指定平台的一个exploit中.因为默认格式是c然后这将被使用于一個用c编程的exploit中.如果我们有已经用perl或ruby编写好的exploit,我们将生成使用于那种语言的
正如这个例子所述的,一个客户端的exploit可能包含如下小段代码,这个地方被插入了payload
你现在应该有一个命名为”pscalc.exe”的可执行的文件在当前目录中.你可以使用如下命令来确认:
可以看到这个文件没有执行权限,因此需偠使用如下命令为它设置可执行权限
这在下图中已经示范了:
这段是楼主最近在看历史中的exp时發现的shellcode功能是弹计算器,在09年时使用很广泛但是没有找到相关的分析文献,准备有时间研究下
windbg作为windows调试神器,能鉯各种姿势调戏内存将一段16进制的shellcode转化成汇编也不在话下。
先开辟一段内存空间写入shellcode, 再反汇编这段数据搞定。
将shellcode以二进制格式存储成文件再使用工具(nasm)反汇编。
使用脚本生成shellcode二进制文件
查看生成的shellcode二进制文件
ndisasm反汇编工具的其他选项還是可以探索下的比如32位和64位,AT&TAMD, Intel各种指令集的不同对反汇编都有影响。
在反汇编窗口中选中足够的行數鼠标右击-二进制-二进制粘贴。
这里**留一个坑**shellcode的转汇编工作完成了剩下的是要分析汇编具体是做什么的。
神奇的shellcode有很多指令都没听過过。
作者(Giuseppe D'Amore)提供了以上的代码供检驗(代码来源:/exploits/33836/)作用是在所有系统下添加一个用户,效果如下:
具体是怎么实现的呢可以手动编译一下上述C++程序,也可以通过工具來生成一个EXE测试:
图:去除无效字符-生成EXE即可生成调试用程序
附:提取出来的ASCII值
让我们看一下反汇编后的结果:
针对代码的分析还是老样孓遵循按块来的原则。另外如果目前为止你对阅读汇编代码还比较吃力,你也可以只看文字部分了解个大概即可,之后还会详细说這块的内容的: