首页 网络安全 安全运维 查看内容

超实用的脚本——检查oracle数据库是否存在潜伏的比特币勒索病毒

2019-1-14 09:31 |来自: 互联网 2491 0

摘要: 概述 分享一个工作中经常用的一个实用脚本,主要用来检查oracle数据库是否存在潜伏的比特币勒索病毒,之所以用perl,是因为perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的 ...
关键词:脚本 perl 语法 操作系统 检查 内容 oracle 中经 正则

概述

分享一个工作中经常用的一个实用脚本,主要用来检查oracle数据库是否存在潜伏的比特币勒索病毒,之所以用perl,是因为perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活。下面分享下脚本内容:


checkBitAttack.pl

#!/usr/bin/perl
# 1. Get Attack Objects
my @attackObjects = `sqlplus -sL / as sysdba <<"EOF"
SET LINES 100 PAGES 10 HEAD ON FEEDBACK OFF AUTOT OFF TI OFF TIMI OFF
COL OWNER FOR A20
COL OBJECT_NAME FOR A40
COL OBJECT_TYPE FOR A10
SELECT OWNER
 , "||OBJECT_NAME||" OBJECT_NAME
 ,OBJECT_TYPE
 ,TO_CHAR(CREATED, YYYY-MM-DD HH24:MI:SS) CREATED
 FROM DBA_OBJECTS
 WHERE OBJECT_NAME LIKE DBMS_CORE_INTERNA%
 OR OBJECT_NAME LIKE DBMS_SYSTEM_INTERNA%
 OR OBJECT_NAME LIKE DBMS_SUPPORT_INTERNA%;
EXIT
EOF
`;
my @attackObjectsCMD = `sqlplus -sL / as sysdba <<"EOF"
SET LINES 100 PAGES 10 HEAD OFF FEEDBACK OFF AUTOT OFF TI OFF TIMI OFF
SELECT  DROP ||OBJECT_TYPE|| "||OWNER||"."||OBJECT_NAME||"; OBJECT_NAME
 FROM DBA_OBJECTS
 WHERE OBJECT_NAME LIKE DBMS_CORE_INTERNA%
 OR OBJECT_NAME LIKE DBMS_SYSTEM_INTERNA%
 OR OBJECT_NAME LIKE DBMS_SUPPORT_INTERNA%;
EXIT
EOF
`;
# 2. Get Attack Job
my @attackJob = `sqlplus -sL / as sysdba <<"EOF"
SET LINES 100 PAGES 10 HEAD ON FEEDBACK OFF AUTOT OFF TI OFF TIMI OFF
SET LINE 120
COL LOG_USER FOR A20
COL WHAT FOR A60
SELECT JOB, LOG_USER, WHAT
 FROM DBA_JOBS
 WHERE WHAT LIKE DBMS_STANDARD_FUN9% ;
EXIT
EOF
`;
# 2. Get Attack Job
my @attackJobCMD = `sqlplus -sL / as sysdba <<"EOF"
SET LINES 100 PAGES 10 HEAD OFF FEEDBACK OFF AUTOT OFF TI OFF TIMI OFF
SELECT  -- Logon with ||LOG_USER||CHR(10)|| EXEC DBMS_JOB.BROKEN (||JOB||, TRUE)||CHR(10)|| EXEC DBMS_JOB.REMOVE(||JOB||) STMT
 FROM DBA_JOBS
 WHERE WHAT LIKE DBMS_STANDARD_FUN9% ;
EXIT
EOF
`;
# 3. Get Attack ORACHK
my @attackORACHK = `sqlplus -sL / as sysdba <<"EOF"
SET LINES 100 PAGES 10 HEAD ON FEEDBACK OFF AUTOT OFF TI OFF TIMI OFF
COL OWNER FOR A20
COL OBJECT_NAME FOR A40
COL OBJECT_TYPE FOR A10
SELECT OWNER,"||OBJECT_NAME||" OBJECT_NAME,OBJECT_TYPE,CREATED
 FROM DBA_OBJECTS
 WHERE OBJECT_NAME LIKE ORACHK%;
EXIT
EOF
`;
# 4. Show Result
if(defined $attackObjects[2] or defined $attackJob[2])
{
 print "\n[Attacked] Your Database bas been Attacked !\n";
 # Show Objects
 print "\n1. DB Objects May Have Problems\n";
 print "-- =====================================================================\n";
 if(defined $attackObjects[2])
 {
 print "@attackObjects\nSolutions:@attackObjectsCMD\n";
 print "*** Operations above please do with professional engineer !!!\n";
 }
 else
 {
 print " No Abnormal Objects Found\n";
 }
 # Show Jobs
 print "\n2. DB Job May Have Problems\n";
 print "-- =====================================================================\n";
 if(defined $attackJob[2])
 {
 print "@attackJob\nSolutions:@attackJobCMD\n";
 print "*** Operations above please do with professional engineer !!!\n";
 }
 else
 {
 print " No Abnormal Job Found\n";
 }
 # Show ORACHK
 print "\n3. Table ORACHK may bave Problems\n";
 print "-- =====================================================================\n";
 if(defined $attackORACHK[2])
 {
 print "@attackORACHK\n";
 }
 else
 {
 print " No Abnormal ORACHK Table Found\n";
 }
}
else
{
 print "\n[ Safe] Your Database has not been Attacked !\n";
}
print "\n****************************************************\n";
print "\nContact me:\n";
print " Mobile: 18825144300\n";
print " Email : [email protected]\n";
print "\n************ Copyright @ HWB ******************\n";

执行脚本要求

1、建议oracle操作系统用户执行

2、确认操作系统有perl环境(一般主流的linux平台都提供perl)

3、授权脚本后执行

执行结果如下所示:


整体操作不难,大家有空也可以自己检查下,毕竟安全第一。

后面会分享更多DBA方面的内容,感兴趣的朋友可以关注下!!

本文出处: https://www.toutiao.com/a6644500092327821832/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部