当前位置: 首页 > news >正文

简述企业建设网站的必要性网络广告设计公司

简述企业建设网站的必要性,网络广告设计公司,湘潭商城网站建设定制,南昌百度快速排名优化P3nro5e 2015/07/10 10:580x00 Mona 2 前言 准备Mona 2是一种非常有用的插件#xff0c;它由Corelan Team开发。起初是为Immunity Debugger写的#xff0c;现在它适用于WinDbg调试器。你将需要为WinDbg x86 和 WinDbg x64安装一些工具#xff1a;安装Python 2.7 (从这…P3nro5e · 2015/07/10 10:580x00 Mona 2 前言 准备Mona 2是一种非常有用的插件它由Corelan Team开发。起初是为Immunity Debugger写的现在它适用于WinDbg调试器。你将需要为WinDbg x86 和 WinDbg x64安装一些工具安装Python 2.7 (从这里可下载到) 。x86 和 x64版本的工具分别安装在不同的目录里如c:\python27(32) 和c:\python27。从这里下载正确的zip包请下载pykd-0.2.0.29-python-2.7.zip这个压缩包接着提取并运行vcredist_x86.exe 和 vcredist_x64.exe。从这里下载两个exe程序x86版和x64版接着执行它们。从这里下载windbglib.py和mona.py并将它们放置到WinDbg.exe所在的目录中。配置符号搜索路径如下通过 File→Symbol File Path输入SRV*C:\windbgsymbols*http://msdl.microsoft.com/download/symbols 复制代码3.保存工作区(File→Save Workspace).在WinDbg下运行mona.py用WinDbg运行mona.py的范例:1.使用如下命令加载pykd插件.load pykd.pyd 复制代码2.运行mona使用命令如下!py mona 复制代码更新mona 输入如下!py mona update 复制代码0x01 配置工作目录在mona的工作目录里mona的多数函数将数据转储到已创建的文件中。我们可以具体指定某个工作目录这取决于使用的格式说明符%p (process name) 和 %i (process id)指定的进程名和id。例如输入workingfolder C:\mona_files\%p_%i 复制代码排除模块你可以用如下操作排除指定模块:!mona config -set excluded_modules module1.dll,module2.dll !mona config -add excluded_modules module3.dll,module4.dll 复制代码作者你也可以设定作者:!mona config -set author Kiuhnm 复制代码当产生与metasploit兼容的输出内容时可以使用该信息。重点如果WinDbg和mona都没有出错那么请试试以管理员身份运行WinDbg。0x02 Mona的手册你可以在这里找到更多关于Mona的信息。范例该范例引用自Mona的手册. 现在来说明如下代码中我们控制的ECX的值MOV EAX, [ECX] CALL [EAX58h] 复制代码我们想要使用那段代码以jmp到我们的shellcode(即我们注入到进程中的代码)它的地址位于ESP4因此我们需要调用如上调用的一些指令如“ADD ESP, 4 | RET“。上面的代码有许多间接的操作(ECX p1) → p2 p258h → p3 → “ADD ESP,4 | RET” 复制代码首先我们需要找到p3:!py mona config -set workingfolder c:\logs !py mona stackpivot -distance 4,4 复制代码如上使用的命令可以让你在stackpivots内的指定偏移范围在mix~max之间找到等价于ADD ESP, X | RET代码的指针通过选项-distance min,max来指定偏移范围。已发现指针/地址会被写入到c:\logs\stackpivot.txt。现在我们已经有我们的p3指针许多p3指针了我们还需找到p1:!py mona find -type file -s c:\logs\stackpivot.txt -x * -offset 58 -level 2 -offsetlevel 2 复制代码下面来了解那些选项的含义使用“-x *”选项意味着你要 “accept addresses in pages with any access level” (正如另一个范例所示, 用 “-x X”选项说明我们仅在可执行页中定位).“-level 2”具体指定要间接操作的指令层级它告知mona找出“a pointer (p1) to a pointer (p2)to a pointer (p3)”。 前两个选项 (-type 和 -s)指定ps必须是指针它被列出在文件“c:\logs\stackpivot.txt“里。使用“-offsetlevel 2” 和 “-offset 58”选项告知mona用偏移58h来进行增值操作时第二个指针(p2)必须指向第三个指针(p3)。如果这个范例并不能让你对其内容有较好的理解请你不要担心。这个范例仅向你展示了WinDbg中利用Mona插件可以实现的一些功能。当然我也承认这个命令的语法不是非常易懂。范例使用findwild命令可以让你找到带有特殊形式的指令链。 细想如下范例!mona findwild -s push r32 # * # pop eax # inc eax # * # retn 复制代码选项”-s”指定链的形态:用 ‘#‘将指令分隔开r32 为任意32位寄存器为任意指令序列可选参数为:-depth nr: maximum length of the chain-b address: base address for the search-t address: top address for the search-all: returns also chains which contain “bad” instructions, i.e. instructions that might break the chain (jumps, calls, etc…)ROP链Mona可以找到ROP gadgets并利用它们构造ROP链但是我将不在这部分讲解这方面的相关内容因为这里我假设你并不知道ROP链的含义及关于ROP的概念。正如我曾说过的如果这篇文章讲述的内容让你难以理解那么请不要担心。尽管学习该系列的下一部分文章吧。0x03 结构化异常处理SEH异常处理器以一种单链表的形式存在它和每个线程有关。一般说来链表的节点被分配在栈上。某一位于TEB (Thread Environment Block)的起始位置的指针指向链表头因此当代码想要添加一个新的异常处理器时某一新节点会被添加到链表头并且在TEB里的指针所指向的位置会被改变进而指向新节点。每个节点固有_EXCEPTION_REGISTRATION_RECORD类型并且会存储处理器的地址及链表下个节点的一个指针。奇怪的是链表上一节点的“next pointer”不是null但是它等价于0xffffffff。确切的定义如下0:000 dt _EXCEPTION_REGISTRATION_RECORD ntdll!_EXCEPTION_REGISTRATION_RECORD0x000 Next : Ptr32 _EXCEPTION_REGISTRATION_RECORD0x004 Handler : Ptr32 _EXCEPTION_DISPOSITION 复制代码TEB可被段选择子fs访问始于 fs:[0], 因此通常可看到代码如下mov eax, dword ptr fs:[00000000h] ; retrieve the head push eax ; save the old head lea eax, [ebp-10h] mov dword ptr fs:[00000000h], eax ; set the new head . . . mov ecx, dword ptr [ebp-10h] ; get the old head (NEXT field of the current head) mov dword ptr fs:[00000000h], ecx ; restore the old head 复制代码编译器通常会注册单个全局句柄它能意识到被程序执行过的区域这依赖于某一全局变量并且当它被调用时会有根据地作出行为。因为每个线程都有一个不同的TEB因此操作系统会确保段被fs选择fs总会引用准确的TEB即当前线程之一。 通过读取与TEB的Self区域相符的 fs:[18h]得到TEB的地址。列出TEB的信息如下0:000 !teb TEB at 7efdd000ExceptionList: 003ef804 -----------------------StackBase: 003f0000StackLimit: 003ed000SubSystemTib: 00000000FiberData: 00001e00ArbitraryUserPointer: 00000000Self: 7efdd000EnvironmentPointer: 00000000ClientId: 00001644 . 00000914RpcHandle: 00000000Tls Storage: 7efdd02cPEB Address: 7efde000LastErrorValue: 2LastStatusValue: c0000034Count Owned Locks: 0HardErrorMode: 0 复制代码现在我们可以证实fs引用TEB0:000 dg fsP Si Gr Pr Lo Sel Base Limit Type l ze an es ng Flags ---- -------- -------- ---------- - -- -- -- -- -------- 0053 7efdd000 00000fff Data RW Ac 3 Bg By P Nl 000004f3 复制代码正如我们在之前讲述过的 fs:18h含有TEB的地址:0:000 ? poi(fs:[18]) Evaluate expression: 2130563072 7efdd000 复制代码记住poi会对某一指针进行解引用操作并且使用‘?’来对某一表达式进行求值操作。 我们看看ExceptionList 指向的结构体名0:000 dt nt!_NT_TIB ExceptionList ntdll!_NT_TIB0x000 ExceptionList : Ptr32 _EXCEPTION_REGISTRATION_RECORD 复制代码正如我们已经说过的那样这意味着每个节点会是_EXCEPTION_REGISTRATION_RECORD的某一实例。使用!slist命令展示出整个链表的信息0:000 !slist $teb _EXCEPTION_REGISTRATION_RECORD SLIST HEADER:0x000 Alignment : 3f0000003ef8040x000 Next : 3ef8040x004 Depth : 00x006 Sequence : 3fSLIST CONTENTS: 003ef8040x000 Next : 0x003ef850 _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x6d5da0d5 _EXCEPTION_DISPOSITION MSVCR120!_except_handler40 003ef8500x000 Next : 0x003ef89c _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x00271709 _EXCEPTION_DISPOSITION 0 003ef89c0x000 Next : 0xffffffff _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x77e21985 _EXCEPTION_DISPOSITION ntdll!_except_handler40 ffffffff0x000 Next : ???? 0x004 Handler : ???? Cant read memory at ffffffff, error 0 复制代码记住$teb表示的是TEB的地址.以下使用了一种更简洁的方法来展示异常处理链的信息0:000 !exchain 003ef804: MSVCR120!_except_handler40 (6d5da0d5)CRT scope 0, func: MSVCR120!doexit116 (6d613b3b) 003ef850: exploitme31709 (00271709) 003ef89c: ntdll!_except_handler40 (77e21985)CRT scope 0, filter: ntdll!__RtlUserThreadStart2e (77e21c78)func: ntdll!__RtlUserThreadStart63 (77e238cb) We can also examine the exception handler chain manually: 0:000 dt 003ef804 _EXCEPTION_REGISTRATION_RECORD MSVCR120!_EXCEPTION_REGISTRATION_RECORD0x000 Next : 0x003ef850 _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x6d5da0d5 _EXCEPTION_DISPOSITION MSVCR120!_except_handler40 0:000 dt 0x003ef850 _EXCEPTION_REGISTRATION_RECORD MSVCR120!_EXCEPTION_REGISTRATION_RECORD0x000 Next : 0x003ef89c _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x00271709 _EXCEPTION_DISPOSITION 0 0:000 dt 0x003ef89c _EXCEPTION_REGISTRATION_RECORD MSVCR120!_EXCEPTION_REGISTRATION_RECORD0x000 Next : 0xffffffff _EXCEPTION_REGISTRATION_RECORD0x004 Handler : 0x77e21985 _EXCEPTION_DISPOSITION ntdll!_except_handler40 复制代码
http://www.pierceye.com/news/750509/

相关文章:

  • 网站开发安全模块方案网站运营方案怎么写?
  • 章丘网站制作手机网站 微信平台
  • 自定义功能的网站做坏事网站
  • 做农村电子商务的网站有哪些wordpress批量修改引用网址
  • 简述建立网站的步骤内蒙古建设监理协会网站
  • 网站上传格式工信部 网站备案查询
  • 网站开发怎么让别人看到网站设计主流尺寸
  • 都匀经济开发区建设局网站华宇网站建设
  • 南谯区住房和城乡建设局网站大连百度推广优化
  • 东莞设计网站公司被邀请做刷客会不会碰到钓鱼网站
  • 阿里云服务器多个网站南充网络推广
  • 电子商务网站建设规划设计任务书wordpress 有道云笔记
  • 广州市地铁站地图潍坊网站建设方案
  • 买一个网站服务器多少钱企业 怎么建交互网站
  • 国产网站开发工具公司福建新闻最新消息
  • 云主机和云虚拟主机优化教程网站推广排名
  • 佛山网站建设开发二维码生成器永久免费版下载
  • 衡水网站建设衡水网站建设网站建设南宁
  • 汽车网站推广策划方案wordpress又拍云cdn伪静态
  • 用dw建立网站网站设计师要学什么
  • 网站模块建设中二级医院做网站
  • 求大神帮忙做网站云网站后台
  • 保护稀有动物网站建设策划书凡科建站多少钱
  • 怎么通过做网站来赚钱坪山网站建设方案
  • 网站架构设计师工作内容传媒在线网站模板
  • 重庆哪里有做网站的公司互联网公司网站建设ppt
  • 海南的网站建设公司wordpress最新版中午
  • 网站推广需要域名迁移iis7建设网站
  • 网站建设实践报告小结网页版传奇服务端
  • 安顺住房和城乡建设部网站做网站用什么开发工具