zoukankan      html  css  js  c++  java
  • 简单线程注入的实现

    最近在搞线程注入,其实这个流程也蛮简单的。一些书上写的线程注入,都是使用 call [ebx + XXXX]的形式来解决重定位。这样的 话,invoke伪指令就不能直接使用了。就像用伪指令调用messagebox,本来就是 invoke MessageBox,NULL,addr szCaption,addr szTitle,MB_OK,远程注入的话,代码就要变动,写 成如下形式:   还挺麻烦的。我通过参考网络上的一些资料,通过线程注入记事本、计算器,或者别的知道了窗口类的软件进程。在他们的基础上,线程注入,然后注入的代码编写成其他我需要体现的。例如,悄悄下载一些东西并且运行,删除一些文件等,这个是个人爱好了。 下面是主要的注入记事本进程后运行的代码:   这段代码是插在记事本运行的,所以它自己要装载API所需要的dll。比如URLDownloadToFile,是urlmon.dll里面的,所以,要用LoadLibrary装载。   00403008H 这个地址,是urlmon.dll的内存地址,在同一个exe文件的空间,内存地址是没有改变,所以00403008H压栈,然后 call LoadLibrary调用,这样我们就可以使用这个API下载文件了。ShellExecute是在shell32.dll里面,在远程线程 调用,自然也要。   其中00403013H是shell32.dll的内存地址。全部都装载完毕,API就可以正常调用。   使用了伪指令的方式注入。 怎 么寻找到记事本的ID?Windows提供了FindWindow,只要知道记事本的窗口类,就可以GetWindowThreadProcessId找 到了。知道记事本的窗口类很简单,只要下载一些查看窗口类名的工具就可以了,然后你可以随便注入一个知道窗口类的程序进程空间。   找 到之后,调用GetWindowThreadProcessId可以从窗口类句柄找到PID。接着,OpenProcess找到句柄,其中,要以“允许创 建远程线程”,“允许使用进程的地址空间”,“ PROCESS_VM_WRITE”的权限打开。因为我们就是要对记事本的空间进行写的操作,权限务必要 足够。如果记事本没有内存空间给我们存放代码,那么也枉然,然后要释放和分配内存空间,VirtualFreeEx与VirtualAllocEx就可以 做到,其中VirtualAllocEx返回的句柄保存在寄存器eax中,mov hWnd,eax传送到hWnd做为操作的句柄,用 WriteProcessMemory开始写它的内存空间,CreateRemoteThread创建指定的线程目标进程句柄,也就是我们最后的注入代 码。 下面是完整代码:   其实这段:   可以将它转换成机器码,这样就不需要子程序了。直接“szShellcode db ............”,在写入空间地址的时候,直接Wirte进去。 测试方法: 打开一个记事本后运行程序,就注入,然后运行你的写字版。 BUG描述: 同样一个编译好的程序,在这个时候运行,测试成功。写字版正常打开,过会就不知道为什么,记事本出现错误。郁闷了我,知道为什么的请支个招。 刚刚看了一个牛人的代码,Copy了一部分并做了注释,把它放到我的代码中,就可以注入explorer.exe进程了,恭喜一下:   只 是做了一点注释,将一个DOS下PE文件的标识 MZ 加到寄存器edi。对于sizeof的用法,好像是在内存中的字节变量的大小,然后将编译好的程序 的内存尺寸SizeOfImage保存在eax。mov ShellSize, eax,将SizeOfImage存到了ShellSize。 修改过后的注入explorer.exe完整代码,Windows XP SP2下测试通过:
  • 相关阅读:
    严重: Parse error in application web.xml file at jndi:/localhost/ipws/WEBINF/web.xml java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml
    Failed to install .apk on device 'emulator5554': timeout解决方法
    java.lang.NoClassDefFoundError:org.jsoup.Jsoup
    Conversion to Dalvik format failed: Unable to execute dex:解决方法
    apache Digest: generating secret for digest authentication ...
    Description Resource Path Location Type Project has no default.properties file! Edit the project properties to set one.
    android service随机自启动
    MVC3 安装部署
    EF 4.3 CodeBased 数据迁移演练
    SQL Server 2008开启sa账户
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327759.html
Copyright © 2011-2022 走看看