CN112346792B - 一种基于Linux系统的端口复用方法 - Google Patents
一种基于Linux系统的端口复用方法 Download PDFInfo
- Publication number
- CN112346792B CN112346792B CN202010528422.1A CN202010528422A CN112346792B CN 112346792 B CN112346792 B CN 112346792B CN 202010528422 A CN202010528422 A CN 202010528422A CN 112346792 B CN112346792 B CN 112346792B
- Authority
- CN
- China
- Prior art keywords
- function
- socket
- kernel
- sys
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于Linux系统的端口复用方法,包括有以下步骤:(1)在Linux系统内核层hook sys_read函数找到system call table,备份当前sys_read函数地址,用新的函数替换掉sys_read函数;(2)对步骤(1)中sys_read的每个数据进行检测是否符合特定的二进制数据,如果符合,找到fd所属的socket;(3)启动内核线程,通过步骤(2)中的socket生成一个新的fd,利用sys_dup2复制fd到内核线程,最后启动bash进程。通过采用本发明方法,内核检测到数据时,复用端口的socket,达到通过常用端口访问Linux的目的,减少对外开放的端口,没用多余的端口,有效降低了被攻击的风险,同时能穿透防火墙,达到隐蔽访问系统的目的。
Description
技术领域
本发明涉及计算机访问控制领域技术,尤其是指一种基于Linux系统的端口复用方法。
背景技术
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的一大亮点。
目前,正常情况下,Linux系统下端口只能由一个进程绑定,其它服务需要开启必需更换其它端口,开放端口过多,增加被攻击的风险,而且一般防火墙只开放特定端口,其它端口禁止访问。因此,有必要研究一种方案以解决上述问题。
发明内容
有鉴于此,本发明针对现有技术存在之缺失,其主要目的是提供一种基于Linux系统的端口复用方法,其能有效解决现有之Linux系统下端口只能由一个进程绑定导致开放端口过多的问题。
为实现上述目的,本发明采用如下之技术方案:
一种基于Linux系统的端口复用方法,包括有以下步骤:
(1)在Linux系统内核层hook sys_read函数找到system call table,备份当前sys_read函数地址,用新的函数替换掉sys_read函数;
(2)对步骤(1)中sys_read的每个数据进行检测是否符合特定的二进制数据,如果符合,找到fd所属的socket;
(3)启动内核线程,通过步骤(2)中的socket生成一个新的fd,利用sys_dup2复制fd到内核线程,最后启动bash进程。
优选的,所述步骤(2)中sys_read函数通过后,交给sockfd_lookup函数,用于查找fd所在的socket,该函数由内核提供,接着调用kernel_thread启动内核线程,同时把socket传递给内核线程。
优选的,所述步骤(3)中内核线程启动后调用sock_map_fd函数生成新的fd,调用sys_read等待客户端发送shell访问密码,如果密码正确则继续调用sys_dup2复制fd到当前内核线程;最后调用call_usermodehelper函数启动用户态进程bash,利用子进程继承机制,由bash全面接管当前socket。
本发明与现有技术相比具有明显的优点和有益效果,具体而言,由上述技术方案可知:
通过采用本发明方法,内核检测到数据时,复用端口的socket,达到通过常用端口访问Linux的目的,减少对外开放的端口,没用多余的端口,有效降低了被攻击的风险,同时能穿透防火墙,达到隐蔽访问系统的目的。
附图说明
图1是本发明之较佳实施例的流程图。
具体实施方式
如图1所示,本发明揭示了一种基于Linux系统的端口复用方法,包括有以下步骤:
(1)在Linux系统内核层hook sys_read函数找到system call table,备份当前sys_read函数地址,用新的函数替换掉sys_read函数;
hook sys_read函数,这里帖上相关代码:
这里区分32位和64位系统,关键指令rdmsrl和asm("sidt%0":"=m"(idtr));通过系统特殊指令可以读取MSR寄存器的数据,找到系统调用表。
(2)对步骤(1)中sys_read的每个数据进行检测是否符合特定的二进制数据,如果符合,找到fd所属的socket;
具体是,客户端通过rsa公钥加密数据发送到Linux服务器,sys_read函数检测到数据后,用rsa解密,数据格式如下:
名称 | 标志 | 长度 | rsa加密数据 |
大小 | 8 | 2 | - |
说明 | --- | —— | 私有协议数据 |
私有协议数据:
sys_read函数通过后,交给sockfd_lookup函数,用于查找fd所在的socket,该函数由内核提供,接着调用kernel_thread启动内核线程,同时把socket传递给内核线程,调用如下:
kernel_thread((void*)kernel_workey,(void*)sock,CLONE_KERNEL)
(3)启动内核线程,通过步骤(2)中的socket生成一个新的fd,利用sys_dup2复制fd到内核线程,最后启动bash进程。具体是,内核线程启动后调用sock_map_fd函数生成新的fd,调用sys_read等待客户端发送shell访问密码,如果密码正确则继续调用sys_dup2复制fd到当前内核线程;最后调用call_usermodehelper函数启动用户态进程bash,利用子进程继承机制,由bash全面接管当前socket。
本发明的设计重点是:通过采用本发明方法,内核检测到数据时,复用端口的socket,达到通过常用端口访问Linux的目的,减少对外开放的端口,没用多余的端口,有效降低了被攻击的风险,同时能穿透防火墙,达到隐蔽访问系统的目的。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (3)
1.一种基于Linux系统的端口复用方法,其特征在于:包括有以下步骤:
(1)在Linux系统内核层hook sys_read函数找到system call table,备份当前sys_read函数地址,用新的函数替换掉sys_read函数;
(2)对步骤(1)中sys_read的每个数据进行检测是否符合特定的二进制数据,如果符合,找到fd所属的socket;
(3)启动内核线程,通过步骤(2)中的socket生成一个新的fd,利用sys_dup2复制fd到内核线程,最后启动bash进程。
2.如权利要求1所述的一种基于Linux系统的端口复用方法,其特征在于:所述步骤(2)中sys_read函数通过后,交给sockfd_lookup函数,用于查找fd所在的socket,该函数由内核提供,接着调用kernel_thread启动内核线程,同时把socket传递给内核线程。
3.如权利要求1所述的一种基于Linux系统的端口复用方法,其特征在于:所述步骤(3)中内核线程启动后调用sock_map_fd函数生成新的fd,调用sys_read等待客户端发送shell访问密码,如果密码正确则继续调用sys_dup2复制fd到当前内核线程;最后调用call_usermodehelper函数启动用户态进程bash,利用子进程继承机制,由bash全面接管当前socket。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010528422.1A CN112346792B (zh) | 2020-06-11 | 2020-06-11 | 一种基于Linux系统的端口复用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010528422.1A CN112346792B (zh) | 2020-06-11 | 2020-06-11 | 一种基于Linux系统的端口复用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112346792A CN112346792A (zh) | 2021-02-09 |
CN112346792B true CN112346792B (zh) | 2021-09-21 |
Family
ID=74358225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010528422.1A Active CN112346792B (zh) | 2020-06-11 | 2020-06-11 | 一种基于Linux系统的端口复用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112346792B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301619B (zh) * | 2021-11-16 | 2024-01-30 | 北京威努特技术有限公司 | 一种无硬件管理口工控防火墙及其模拟管理口实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN105956468A (zh) * | 2016-04-22 | 2016-09-21 | 中国科学院信息工程研究所 | 一种基于文件访问动态监控的Android恶意应用检测方法及系统 |
CN106506253A (zh) * | 2016-09-08 | 2017-03-15 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的在线客户端数量的统计系统及方法 |
CN108459915A (zh) * | 2018-01-31 | 2018-08-28 | 中电福富信息科技有限公司 | 一种适用于高并发场景的tcp通道管理系统及其方法 |
CN109460671A (zh) * | 2018-10-21 | 2019-03-12 | 北京亚鸿世纪科技发展有限公司 | 一种基于操作系统内核实现网页内容防篡改的方法 |
CN109726079A (zh) * | 2018-12-29 | 2019-05-07 | 深圳市科陆电子科技股份有限公司 | 一种usb设备热插拔监控方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685172B2 (en) * | 2007-04-27 | 2010-03-23 | International Business Machines Corporation | In-flight file descriptors checkpoint |
CN107122168A (zh) * | 2010-10-01 | 2017-09-01 | Z124 | 多操作系统 |
CN102981903B (zh) * | 2012-12-10 | 2016-03-30 | 北京奇虎科技有限公司 | 一种多核浏览器中进程复用的方法及其多核浏览器 |
CN105471838B (zh) * | 2015-11-10 | 2018-11-27 | 瑞斯康达科技发展股份有限公司 | 一种应用于l2tp中的数据处理方法及装置 |
CN110765057A (zh) * | 2018-07-25 | 2020-02-07 | 南京市嘉隆电气科技有限公司 | 一种基于spi通信的端口复用系统 |
-
2020
- 2020-06-11 CN CN202010528422.1A patent/CN112346792B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN105956468A (zh) * | 2016-04-22 | 2016-09-21 | 中国科学院信息工程研究所 | 一种基于文件访问动态监控的Android恶意应用检测方法及系统 |
CN106506253A (zh) * | 2016-09-08 | 2017-03-15 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的在线客户端数量的统计系统及方法 |
CN108459915A (zh) * | 2018-01-31 | 2018-08-28 | 中电福富信息科技有限公司 | 一种适用于高并发场景的tcp通道管理系统及其方法 |
CN109460671A (zh) * | 2018-10-21 | 2019-03-12 | 北京亚鸿世纪科技发展有限公司 | 一种基于操作系统内核实现网页内容防篡改的方法 |
CN109726079A (zh) * | 2018-12-29 | 2019-05-07 | 深圳市科陆电子科技股份有限公司 | 一种usb设备热插拔监控方法和系统 |
Non-Patent Citations (4)
Title |
---|
Linux端口复用;cnbird2008;《https://blog.csdn.net/cnbird2008/article/details/10625357/》;20130830;1-5 * |
linux系统下nginx高连接并发控制机制研究;聂得欣;《河南财政税务高等专科学校学报》;20170831;第31卷(第4期);91-93 * |
System Call Monitoring Using Authenticated System Calls;Mohan Rajagopalan 等;《IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING》;20060814;第3卷(第3期);216-229 * |
基于Linux的Socket网络编程的性能优化;王雷 等;《电子设计工程》;20090930;第17卷(第9期);101-103 * |
Also Published As
Publication number | Publication date |
---|---|
CN112346792A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6857193B2 (ja) | 仮想化環境においてネットワークトラフィックを解読するためのシステムおよび方法 | |
US10735329B2 (en) | Container communication method and system for parallel applications | |
US9465652B1 (en) | Hardware-based mechanisms for updating computer systems | |
CN107408180B (zh) | 应用程序接口调用的恶意启用的检测 | |
US9300640B2 (en) | Secure virtual machine | |
JP2001067135A (ja) | 電気通信システムにおける機能作動の違法使用の防止 | |
US7266690B2 (en) | Methods and systems for protecting information in paging operating systems | |
JP6698741B2 (ja) | コンピュータユニット、サーバ、コンピュータソフトウェア、及び方法 | |
US8458694B2 (en) | Hypervisor with cloning-awareness notifications | |
US8146150B2 (en) | Security management in multi-node, multi-processor platforms | |
US20150326549A1 (en) | Operating software in a virtual machine environment | |
JP2008204468A (ja) | アクセス制御システム | |
US7606833B2 (en) | System and method for using an RMI activation system daemon with non-JAVA applications | |
US8924700B1 (en) | Techniques for booting from an encrypted virtual hard disk | |
WO2007009328A1 (fr) | Système de machine virtuelle compatible avec une informatique sécurisée et méthode d’informatique sécurisée qui y est implémentée | |
US20130125115A1 (en) | Policy enforcement by hypervisor paravirtualized ring copying | |
EP3580681A1 (en) | Improved computing apparatus | |
JP2013535720A (ja) | ポート共有ハードウェアを介した記憶装置への帯域外アクセス | |
CN112346792B (zh) | 一种基于Linux系统的端口复用方法 | |
GB2403827A (en) | Kernel cryptographic module signature verification system and method | |
TW200809573A (en) | Prevention of executable code modification | |
US7406583B2 (en) | Autonomic computing utilizing a sequestered processing resource on a host CPU | |
JP2002533791A (ja) | アプリケーション・プログラムあるいはオペレーティング・システムのたの制限された運転環境を維持する方法およびシステム | |
WO2007022686A1 (fr) | Système et procédé d’isolement de système d’exploitation | |
JP4375980B2 (ja) | マルチタスク実行システム及びマルチタスク実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |