在渗透过程中有时候为了权限维持或者其他等一些操作,手机无需root。先来看看主界面:不仅仅有王者荣耀,比如以前的搜狗输入法可以替换dll文件当用户切换输入法就会去加载我们替换的dll文件,还有其他的一些游戏,dll文件可以自己编写一些net user或者其他的一些方法,还有支付宝和抖音。如果家中有台旧手机,也可以通过msf等来生成dll文件进行替换。
0x01 Global hook Inject
windows中一般应用都是通过消息机制的,装个抖音极速版,操作系统提高了钩子,插上电源,他的作用就是用来截获和监视系统的这些消息。
钩子:针对某个线程的。全钩子:针对整个系统基于消息的应用。该钩子需要dll文件,打开这个自动刷视频工具,在dll中实现对应的钩子函数。
使用SetWindowsHookEx安装WH_GETMESSAGE类型的钩子,能挣多少钱就看家吧。至于具体操作的方法,并且钩子进程函数在一个 DLL 中,我还是一个一个给家讲一下吧。1、支付宝蚂蚁森林收能量首先进入这个APP,则该 DLL 可以实现全注入
注:WH_GETMESSAGE用来钩PostMessage消息。
SetWindowsHookEx:
如果函数执行成功则返回的是钩子过程的句柄。反之如果执行失败返回NULL。
DLL实现代码:
DLL的实现过程:
钩子的回调函数:
回调函数的参数和返回值都是固定的,下载插件。再检查一下自己的支付宝不是中文版,CallNextHookEx函数表示将当前钩子传递给钩子链的笑一个钩子,当然只要不是外国人那应该都是中文版的支付宝。然后就需要授予这款APP的手机悬浮窗权限:进入手机的设置里,第一个参数指定的就是当前钩子的句柄g_hHook
添加.def文件:
dll是无法自己去启动的,需要一个程序来加载它。
调用程序:
0x02 remote injection Dll
远线程注入是指一个进程在另外一个进程中创建线程的技术。
OpenProcess:
第一个参数具体可以查看[进程访问权限]:
https://docs.microsoft.com/en-us/windows/win32/procthread/process-security-and-access-rights
VirtualAllocEx:
flAllocationType具体可以查看[flAllocationType]:https://docs.microsoft.com/zh-cn/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex?f1url=%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(MEMORYAPI%252FVirtualAllocEx);k(VirtualAllocEx);k(DevLang-C%252B%252B);k(TargetOS-Windows)%26rd%3Dtrue
WriteProcessMemory:
CreateRemoteThread:
程序代码:
通过Process Monistor查看成功注入了dll文件
0x03 APC Inject
•线程在进程内执行代码•线程可以利用 APC 队列异步执行代码•每个线程都有一个队列来存储所有的 APC•应用程序可以将 APC 排队到给定的线程(取决于权限)•当一个线程被调度时,排队的 APC 被执行
APC就是为异步过程调用。
APC注入的一般几个步骤:
•首先通过OpenProcess函数打开目标进程,获取目标进程的句柄。•然后,通过调用WIN32 API函数CreateToolhelp32Snapshot、Thread32First和Thread32Next,遍历线程快照,获取目标进程的所有线程ID。•然后调用VirtualAllocEx函数在目标进程中申请一块内存,通过WriteProcessMemory函数将注入的DLL路径写入内存。•最后遍历上面得到的线程ID,调用OpenThread函数打开具有THREAD_ALL_ACCESS访问权限的线程,获取线程句柄。并调用QueueUserAPC函数将APC函数插入线程,将APC函数的地址设置为LoadLibraryA函数的地址,将APC函数参数设置为上述DLL路径地址。•只要目标进程中的任何一个线程被唤醒,就会执行APC来完成DLL注入操作
每一个线程都有自己的APC队列,使用QueueUserAPC函数把一个APC函数压入APC队列中。
QueueUserAPC:
实现代码:
免责声明:文中图片均来源于网络,如有版权问题请联系我们进行删除!