用户
搜索

该用户从未签到

i春秋-脚本小子

人族第一大成

Rank: 2

2

主题

12

帖子

121

魔法币
收听
0
粉丝
2
注册时间
2018-7-5
发表于 2020-10-29 16:10:53 35808
本帖最后由 Yaoヽ药药 于 2020-10-29 09:11 编辑

今天在作者群又看到一表哥喜得一百元大钞,我的内心很是不甘
于是我问村长 啥时候给我整点?


什么??? 老水文章??????
这委屈我受不了,于是乎 我便想写一篇现在这样的文章


首先我打开msf 与我本机建立一个会话
这里我第一次执行getpid

可以看到当前与msf建立会话的进程pid为21728
当我执行完【migrate 708】后 再执行getpid 可以看到当前与msf进行交互的进程pid为708 隐藏了当前的进程




这里migrate是怎么实现这么一个神奇的功能的?

这里我给大家介绍一个知识点,远程线程注入

简介:

在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程)。创建的线程一般为Windows API函数LoadLibrary,来加载一个动态链接库(DLL),从而达到在另一个进程中运行自己所希望运行的代码的目的。

远程线程注入 远程的意思 可以理解是跨进程调用函数 给另一个进程开辟一个新的线程
这里可以直接调用WriteProcessMemory函数往目标地址写入一串机器码,也就是shellcode 然后利用线程注入 让这段机器码运行起来
就可以实现隐藏自身进程,将自己的恶意代码植入其他进程中进行执行

首先这里使用msfVENOM生成一段c语言的shellcode,这里的shellcode是与msf建立会话的一段机器码



然后将以上生成好的shellcode复制进main函数中


shellcode复制进来后,然后呢?
当前是寻找目标进程 微信鸭~

先将微信窗口打开,然后利用精易编程助手获取当前微信主窗口的类名+标题



这里导入 【windows.h】这个类,然后调用FindWindowA获取微信的hwnd


FindWindowA有两个参数,第一个参数是classname 第二个参数是Windowsname 分别是类名 标题
HWND 为窗口句柄,是当前窗口的标识符 可以这么理解




获取到微信的hwnd后再OpenProcess 打开微信进程,但是这里调用OpenProcess需要目标进程的pid,所以这里要先获取pid

这里调用GetWindowThreadProcessId 利用hwnd获取进程pid
然后再OpenProcess打开目标进程 返回一个临时的id

GetWindowThreadProcessId有两个参数,第一个参数是hwnd 第二个参数是一个指针地址,用于获取pid




这里再调用VirtualAllocEx在目标进程中申请一块内存空间 返回内存空间的基地址,用于下面存放shellcode(机器码)

VirtualAllocEx参数介绍
hProcess 申请内存所在的进程句柄
lpAddress 保留页面的内存地址;一般用NULL自动分配
dwSize 欲分配的内存大小,字节单位;注意实际分 配的内存大小是页内存大小的整数倍
flAllocationType 写为MEM_COMMIT 具体可参考以下截图

flProtect 写为PAGE_EXECUTE_READWRITE 具体可参考以下截图




内存空间申请好后再利用WriteProcessMemory将shellcode写进基地址
WriteProcessMemory 参数一 进程句柄,参数二 内存地址,参数三 缓冲指针(写入的shellcode 变量地址),参数四 内存长度,参数五 实际长度



shellcode写入目标进程后 再利用我们这里最关键的一个函数,也就是此文章标题所提到的【远程线程注入】CreateRemoteThread
跨进程 创建一个新的线程

CreateRemoteThread

参数一 创建线程的目标进程id
参数二 句柄是否可以被继承,线程使用默认的安全属性NULL为不能
参数三 线程堆栈大小,如果为0,那么线程的堆栈大小和主线程使用的大小相同
参数四 线程的开始执行地址,指向一个新线程函数(过程)的指针
参数五 传递给子线程自定义参数,或是新申请到的地址空间,0为无限止
参数六 设置线程被创建后的状态,如果为0表示,创建后立即运行,如果为CREATE_SUSPENDED标志,表示线程被创建后处于挂志状态,直到使用ResumeThread函数显式地启动线程为止
参数七 指向一个双字节变量,用来接收函数返回的线程ID.线程ID在系统范围内是唯一的



这里差不多感染微信的代码就编写完了,然后msf再开启监听 然后再运行代码

可以看到,感染微信   msf 成功上线



然后这里的shellcode免杀大家还可以尝试一下混淆shellcode,比如加花指令 等等

不同的编译器 免杀的效果都不一样

这里再复制内存地址 然后用od附加一个微信看一下


远处传来诱人的芬芳,原来是表姐的幽香。
发表于 2020-10-30 11:28:44
药神,药神,药神
使用道具 举报 回复
使用道具 举报 回复
发表于 2020-10-30 21:20:38
药药yyds
末心网络安全团队 | Q群374327762 | QQ1044631097
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册