CN112346792B - 一种基于Linux系统的端口复用方法 - Google Patents

一种基于Linux系统的端口复用方法 Download PDF

Info

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
Application number
CN202010528422.1A
Other languages
English (en)
Other versions
CN112346792A (zh
Inventor
吴建亮
胡鹏
叶翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Jeeseen Network Technologies Co Ltd
Original Assignee
Guangzhou Jeeseen Network Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Jeeseen Network Technologies Co Ltd filed Critical Guangzhou Jeeseen Network Technologies Co Ltd
Priority to CN202010528422.1A priority Critical patent/CN112346792B/zh
Publication of CN112346792A publication Critical patent/CN112346792A/zh
Application granted granted Critical
Publication of CN112346792B publication Critical patent/CN112346792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation 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系统的端口复用方法。
背景技术
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函数,这里帖上相关代码:
Figure GDA0003158279100000031
Figure GDA0003158279100000041
这里区分32位和64位系统,关键指令rdmsrl和asm("sidt%0":"=m"(idtr));通过系统特殊指令可以读取MSR寄存器的数据,找到系统调用表。
(2)对步骤(1)中sys_read的每个数据进行检测是否符合特定的二进制数据,如果符合,找到fd所属的socket;
具体是,客户端通过rsa公钥加密数据发送到Linux服务器,sys_read函数检测到数据后,用rsa解密,数据格式如下:
名称 标志 长度 rsa加密数据
大小 8 2 -
说明 --- —— 私有协议数据
私有协议数据:
Figure GDA0003158279100000042
Figure GDA0003158279100000051
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。
CN202010528422.1A 2020-06-11 2020-06-11 一种基于Linux系统的端口复用方法 Active CN112346792B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114301619B (zh) * 2021-11-16 2024-01-30 北京威努特技术有限公司 一种无硬件管理口工控防火墙及其模拟管理口实现方法

Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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通信的端口复用系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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