CN112165469A - 一种检测变形的shell的方法 - Google Patents
一种检测变形的shell的方法 Download PDFInfo
- Publication number
- CN112165469A CN112165469A CN202010982873.2A CN202010982873A CN112165469A CN 112165469 A CN112165469 A CN 112165469A CN 202010982873 A CN202010982873 A CN 202010982873A CN 112165469 A CN112165469 A CN 112165469A
- Authority
- CN
- China
- Prior art keywords
- parent process
- shell
- file
- parent
- information
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种检测变形的shell的方法,涉及互联网安全的技术领域,解决了现有技术中的检测方法不能准确地对变形的shell进行检测的问题。该检测变形的shell的方法,通过考察被执行命令的父进程,如果多个不同的命令有相同的父进程,且该父进程具备交互性的输入输出属性,则认为该父进程是shell进程,如果该父进程执行的不是系统自带的shell程序,则该父进程是变形的shell进程。本发明解决了反弹shell检测的前置问题,即什么是shell,使得反弹shell检测方法不仅对正常的shell有效,也对变形的shell有效。
Description
技术领域
本发明涉及互联网安全的技术领域,特别是指一种检测变形的shell的方法。
背景技术
反弹shell是一种常用的黑客入侵手段,黑客通过反弹shell使得被入侵主机主动连接入侵主机,并构建一个命令交互通道,通过这个命令交互通道,黑客可以像一个正常登录的用户一样执行交互命令,操作和控制被入侵主机。
当前已经有一些检测方法被用于防御反弹shell,如“一种检测和防范反弹shell的方法和系统-201710540141.6;107423622B”、“一种反弹shell进程的检测方法、装置和设备-201810224623.5”、“一种基于行为检测的反弹shell的检测方法-201810336200.2”、“反弹shell网络连接的信息查找方法及装置-201910245773.9”、“docker容器内反弹shell的检测方法和系统-201911110480.6”等。
这些检测方法都基于一个假设,即黑客使用的是被入侵主机自带的原始shell程序,如bash。如果黑客使用变形的shell程序,甚至只是将shell程序换个名字,如将bash倒序改名为hsab,则以上检测方法均会失效,因为此时以上检测方法并不会将hsab视为shell程序,自然也就不会进一步去检测hsab是不是被用作了反弹shell。
发明内容
本发明提供了一种检测变形的shell的方法,为了解决现有技术中的检测方法不能准确地对变形的shell进行检测的问题。
为了解决上述技术问题,本发明的采用如下技术方案:
一种检测变形的shell的方法,具体包括如下步骤:
步骤101,获取被执行命令的父进程信息,并保存父进程的信息;
步骤102,与之前保存的其他命令的父进程信息进行比较,判断是否相同;如果与其他命令的父进程信息相同,则进入下一步;
如果与其他命令的父进程信息不同,不能判断父进程是否shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤103,检查父进程是否打开0号和1号文件描述符;所述0号文件描述符表示接收用户输入的命令,所述1号文件描述符表示输出命令执行的结果;如果是,进入下一步;
如果父进程没有同时打开0号和1号文件描述符,说明父进程不是shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤104,检查父进程的0号和1号文件描述符打开的是否是普通文件;如果0号或1号文件描述符打开的不是普通文件,进入下一步;
如果0号或1号文件描述符打开的是普通文件,则难以交互地多次接收输入命令和输出执行结果,说明父进程不是shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤105,认定父进程是shell进程,检查父进程执行的是否是系统自带的shell程序;如果执行的是系统自带的shell程序,返回到步骤101,继续获取新的被执行命令的父进程信息;
如果父进程执行的不是系统自带的shell程序,进入下一步;
步骤106,认定父进程是变形的shell进程。
优选地,步骤2中,设置一个阈值,判断与其他命令的父进程是否相同时,同时判断相同的命令数目是否达到阈值。
优选地,步骤104中,如果0号或1号文件描述符打开的是普通文件,进一步判断打开的是否为shell脚本文件,如果是,返回步骤101,如果不是进入步骤105。
本发明的有益效果为:本发明提供了一种检测变形的shell的方法,通过考察被执行命令的父进程,如果多个不同的命令有相同的父进程,且该父进程具备交互性的输入输出属性,则认为该父进程是shell进程,如果该父进程执行的不是系统自带的shell程序,则该父进程是变形的shell进程。本发明解决了反弹shell检测的前置问题,即什么是shell,使得反弹shell检测方法不仅对正常的shell有效,也对变形的shell有效。
附图说明
图1是本发明提供的检测变形的shell方法的流程示意图;
图2是本发明提供的检测变形的shell的实施例1;
图3是本发明提供的检测变形的shell的实施例2。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
参照附图1、2、3,本发明实施例提供了一种检测变形的shell的方法,其具体流程包括如下步骤:
步骤101,获取被执行命令的父进程信息,并保存父进程的信息,用于后继比较。
步骤102,与之前保存的其他命令的父进程信息进行比较。
如果与其他命令的父进程信息不同,不能判断父进程是否shell进程,回到步骤101,继续获取和比较新的被执行命令的父进程信息。
步骤103,检查父进程是否打开0号和1号文件描述符。shell进程将使用0号文件描述符接收用户输入的命令,用1号文件描述符输出命令执行的结果。
如果父进程没有同时打开0号和1号文件描述符,说明父进程不是shell进程,回到步骤101,继续获取和比较新的被执行命令的父进程信息。
步骤104,检查父进程的0号和1号文件描述符打开的是否是普通文件。
如果0号或1号文件描述符打开的是普通文件,则难以交互地多次接收输入命令和输出执行结果,说明父进程不是shell进程,回到步骤101,继续获取和比较新的被执行命令的父进程信息。
步骤105,此时可认为父进程是shell进程,检查父进程执行的是否是系统自带的shell程序。
步骤106,父进程执行的不是系统自带的shell程序,父进程是变形的shell进程。
实施例1和2演示了如何实现上述的流程,关键之处是排除sh/DIR/shellscript(如sh/tmp/test.sh)和直接执行/DIR/shellscript(如/tmp/test.sh)的情况,避免将这两种情况误判为shell。实施例1适用于检测改名的shell。实施例2是对实施例1的增强,避免黑客上传修改过的变形shell,绕过实施例1的检测。
实施例1
如图2所示,具体步骤为:
步骤201,获取被执行命令的父进程信息,并保存此信息。
步骤202,检查父进程是否执行的是系统自带的shell程序。如果执行的是系统自带的shell程序,则可直接检查是否被用作反弹shell。
步骤203,比较父进程信息是否与其他命令的父进程信息相同。为了增加可靠性,这里设置一个阈值,如3,则父进程相同的命令数目要达到3,才认为父进程可能是shell进程。
步骤204,检查父进程是否有0号和1号文件描述符。如果没有,说明父进程没有输入输出属性,显然不是shell进程。
步骤205,检查父进程是否打开了普通文件。如果没有,说明0号和1号文件描述符是做输入输出用的。且排除了sh/tmp/test.sh和/tmp/test.sh这样的情况。
走到步骤206说明是父进程是变形的shell进程,在步骤207中检查是否被用作反弹shell。
实施例2
如图3所示,与实施例1的区别主要有以下几点:
步骤304,检查父进程有0号和1号文件描述符,且都不是普通文件。
步骤305,检查是否有打开普通文件。如果没有打开普通文件,则父进程是shell进程。
步骤306,检查打开的普通文件是否为shell脚本文件。如果是脚本文件,则认为是sh/tmp/test.sh和/tmp/test.sh这样的情况。如果不是则父进程是shell进程。
在本说明书的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
当然,本发明还可以有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可以根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明的权利要求的保护范围。
Claims (3)
1.一种检测变形的shell的方法,其特征在于,具体包括如下步骤:
步骤101,获取被执行命令的父进程信息,并保存父进程的信息;
步骤102,与之前保存的其他命令的父进程信息进行比较,判断是否相同;如果与其他命令的父进程信息相同,则进入下一步;
如果与其他命令的父进程信息不同,不能判断父进程是否shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤103,检查父进程是否打开0号和1号文件描述符;所述0号文件描述符表示接收用户输入的命令,所述1号文件描述符表示输出命令执行的结果;如果是,进入下一步;
如果父进程没有同时打开0号和1号文件描述符,说明父进程不是shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤104,检查父进程的0号和1号文件描述符打开的是否是普通文件;如果0号或1号文件描述符打开的不是普通文件,进入下一步;
如果0号或1号文件描述符打开的是普通文件,则难以交互地多次接收输入命令和输出执行结果,说明父进程不是shell进程,返回到步骤101,继续获取新的被执行命令的父进程信息;
步骤105,认定父进程是shell进程,检查父进程执行的是否是系统自带的shell程序;如果执行的是系统自带的shell程序,返回到步骤101,继续获取新的被执行命令的父进程信息;
如果父进程执行的不是系统自带的shell程序,进入下一步;
步骤106,认定父进程是变形的shell进程。
2.根据权利要求1所述的检测变形的shell的方法,其特征在于,步骤2中,设置一个阈值,判断与其他命令的父进程是否相同时,同时判断相同的命令数目是否达到阈值。
3.根据权利要求1所述的检测变形的shell的方法,其特征在于,步骤104中,如果0号或1号文件描述符打开的是普通文件,进一步判断打开的是否为shell脚本文件,如果是,返回步骤101,如果不是进入步骤105。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982873.2A CN112165469B (zh) | 2020-09-18 | 2020-09-18 | 一种检测变形的shell的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010982873.2A CN112165469B (zh) | 2020-09-18 | 2020-09-18 | 一种检测变形的shell的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112165469A true CN112165469A (zh) | 2021-01-01 |
CN112165469B CN112165469B (zh) | 2023-04-18 |
Family
ID=73859137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010982873.2A Active CN112165469B (zh) | 2020-09-18 | 2020-09-18 | 一种检测变形的shell的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112165469B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515743A (zh) * | 2021-03-23 | 2021-10-19 | 杭州安恒信息技术股份有限公司 | 反弹shell进程调用链的识别方法、装置和电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105207831A (zh) * | 2014-06-12 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 操作事件的检测方法和装置 |
CN106815524A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 恶意脚本文件的检测方法及装置 |
CN109347698A (zh) * | 2018-10-25 | 2019-02-15 | 北京凝思科技有限公司 | 一种Linux系统下用户终端操作命令及回显信息监控方法 |
WO2019093059A1 (ja) * | 2017-11-10 | 2019-05-16 | 国立研究開発法人産業技術総合研究所 | 脅威分析装置、脅威分析方法、及び脅威分析プログラム |
CN110138727A (zh) * | 2019-03-28 | 2019-08-16 | 江苏通付盾信息安全技术有限公司 | 反弹shell网络连接的信息查找方法及装置 |
CN110287696A (zh) * | 2018-03-19 | 2019-09-27 | 华为技术有限公司 | 一种反弹shell进程的检测方法、装置和设备 |
CN111049781A (zh) * | 2018-10-12 | 2020-04-21 | 北京奇虎科技有限公司 | 一种反弹式网络攻击的检测方法、装置、设备及存储介质 |
-
2020
- 2020-09-18 CN CN202010982873.2A patent/CN112165469B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105207831A (zh) * | 2014-06-12 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 操作事件的检测方法和装置 |
CN106815524A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 恶意脚本文件的检测方法及装置 |
WO2019093059A1 (ja) * | 2017-11-10 | 2019-05-16 | 国立研究開発法人産業技術総合研究所 | 脅威分析装置、脅威分析方法、及び脅威分析プログラム |
CN110287696A (zh) * | 2018-03-19 | 2019-09-27 | 华为技术有限公司 | 一种反弹shell进程的检测方法、装置和设备 |
CN111049781A (zh) * | 2018-10-12 | 2020-04-21 | 北京奇虎科技有限公司 | 一种反弹式网络攻击的检测方法、装置、设备及存储介质 |
CN109347698A (zh) * | 2018-10-25 | 2019-02-15 | 北京凝思科技有限公司 | 一种Linux系统下用户终端操作命令及回显信息监控方法 |
CN110138727A (zh) * | 2019-03-28 | 2019-08-16 | 江苏通付盾信息安全技术有限公司 | 反弹shell网络连接的信息查找方法及装置 |
Non-Patent Citations (1)
Title |
---|
ZHANGHAOYIL: "自动化反弹shell防御技术", 《HTTPS://WWW.FREEBUF.COM/ARTICLES/SYSTEM/187584.HTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515743A (zh) * | 2021-03-23 | 2021-10-19 | 杭州安恒信息技术股份有限公司 | 反弹shell进程调用链的识别方法、装置和电子装置 |
CN113515743B (zh) * | 2021-03-23 | 2024-03-19 | 杭州安恒信息技术股份有限公司 | 反弹shell进程调用链的识别方法、装置和电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112165469B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110266669B (zh) | 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 | |
CN110233849B (zh) | 网络安全态势分析的方法及系统 | |
CN109753800B (zh) | 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统 | |
JP5087661B2 (ja) | 正常プロセスに偽装挿入された悪性コード検出装置、システム及びその方法 | |
KR101743269B1 (ko) | 행위 정보 분석 및 사용자 행위 패턴 모델링을 통한 이상행위 탐지 방법과 그를 위한 장치 | |
US20150256552A1 (en) | Imalicious code detection apparatus and method | |
CN101751530B (zh) | 检测漏洞攻击行为的方法及设备 | |
CN109922065B (zh) | 恶意网站快速识别方法 | |
CN111353082B (zh) | 良率分析的方法、装置和计算机可读存储介质 | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
CN105653171A (zh) | 基于指纹识别的终端控制方法、终端控制装置及终端 | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
CN111931179A (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
CN111641588A (zh) | 网页模拟输入检测方法、装置、计算机设备及存储介质 | |
CN109214178A (zh) | App应用恶意行为检测方法及装置 | |
CN112149124A (zh) | 一种基于异构信息网络的安卓恶意程序检测的方法和系统 | |
CN112165469B (zh) | 一种检测变形的shell的方法 | |
CN110808995B (zh) | 安全防护方法和装置 | |
EP2728472B1 (en) | User terminal, reliability management server, and method and program for preventing unauthorized remote operation | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN114372519A (zh) | 模型训练方法、api请求过滤方法、装置和存储介质 | |
CN113378161A (zh) | 一种安全检测方法、装置、设备及存储介质 | |
CN111104670B (zh) | 一种apt攻击的识别和防护方法 | |
US9323987B2 (en) | Apparatus and method for detecting forgery/falsification of homepage | |
CN113839963B (zh) | 基于人工智能与大数据的网络安全漏洞智能检测方法 |
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 |