环境描述

近期公司服务器mssql密码频繁被改,导致各种业务系统无法连接,报错。昨天来公司,发现4台数据库3台密码都变了。今天尝试着去查查是否能找到问题根源。

步骤

  1. 4台服务器3台连不上,只有64还活着

  2. 开启SqlServer Profiler工具监控sql执行日志,着重关注Audit Login Change Password事件。可以看到Microl(不是Micro) office程序 执行了修改密码的指令。

  3. 接着往上找,发现其第一步是执行了@a这个存储过程,总共4个。

  4. 通过工具解析其内容。

  5. 通过sql执行exe,然后再用将自己进程kill的方式退出,基本可以判定这个应用不正常。

  6. 走到这步可以得出结论,服务器中毒了。本来想搜一下psa.exe,但是一般病毒名字都会用随机字符处理,感觉搜了也没用,就没有搜。

  7. 既然中毒了就装一个杀毒软件杀杀毒试试。

  8. 首先是查到2个病毒,杀了。(忘记截图了)以为就好了。

  9. 然后在12点42看到一个关于SQLAGENT阻止进程创建的日志,意识到事情还没结束。

  10. SQLAGENT是什么?看这里。简单来说就是一个任务调度器。运行存储在sql server中的任务的工具。这些任务包括数据备份等。

  11. 然后就有个疑问,他要运行什么任务?查一下。

    select * from msdb.dbo.sysjobs;
    
    

  12. 这些job的创建时间是早上10点21分45秒。第一步里面,密码的变更时间也是10点21分45秒,绝对有关系。再看一下之前profiler中抓到的sql日志。

  13. 这些任务都出来了。

  14. 没招了,上网搜索pdoor.exe碰碰运气。运气不错,一下就出来了。链接

  15. 更专业详细的内容可以看文章介绍。病毒的查杀方案在上面文章中也有。

  16. 感慨一下,如果他不来改我们数据库的密码,貌似我们也发现不了。换个角度,为什么他要来改?因为他不晓得我们的密码。为什么不晓得我们密码也能在我们的sql中执行脚本?因为我们的数据库是弱密码。为什么不给改回去,这样我们就发现不了了?【这是一个问题。】

结论

不要弱密码,不要弱密码,不要弱密码

专杀链接

下载,全盘扫描。

  • 64位系统下载链接:

http://edr.sangfor.com.cn/tool/SfabAntiBot_X64.7z

  • 32位系统下载链接:

http://edr.sangfor.com.cn/tool/SfabAntiBot_X86.7z

记一次公司mssql server密码频繁被改的事件的更多相关文章

  1. [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)

    前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...

  2. MSSQL Server数据库的四种连接方法和sql连接字符串

    MSSQL Server数据库的四种连接方法和sql连接字符串 分类: [ 03 ] C#(131) [ 07 ] SQL Server(68) [ 01 ] .NET(189) 今天用SQL Ser ...

  3. Linux环境下通过ODBC访问MSSql Server

    为了解决Linux系统连接MSSql Server的问题,微软为Linux系统提供了连接MSSql Server的ODBC官方驱动.通过官方驱动,Linux程序可以方便地对MSSql Server进行 ...

  4. Docker 安装运行MSSQL Server

    1.镜像主页 https://hub.docker.com/_/microsoft-mssql-server 2.拉取2017最新版 docker pull mcr.microsoft.com/mss ...

  5. SQL Server密码管理的六个危险判断

    当管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全.但实际上并非如此.在这里,我们列出了一些对于SQL Server密码来说非常危险的判断. 当管理SQL Server内在 ...

  6. MS-SQL Server字符串处理函数大全

    MS-SQL Server字符串处理函数大全   select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.Index ...

  7. mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法

    mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql se ...

  8. SQL Server密码爆破工具SQLdict

    SQL Server密码爆破工具SQLdict SQL Server是Windows系统常用的数据库服务器.它广泛采用用户名和密码方式,进行身份认证.Kali Linux提供一款专用的数据库密码爆破工 ...

  9. TADOConnection.Close - connection still active on MS-SQL server

    I have several Delphi programs (XE3), that use a TADOConnection to connect to a MS-SQL Server. I rec ...

随机推荐

  1. Public-Key Cryptosystems Based on Composite Degree Residuosity Classes

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. 论文未全部翻译 Abstract. 本文研究了一个新的计算问题,即合数剩余阶问题(Com ...

  2. Java 实例 - 获取本机ip地址及主机名

    package guyu.day0824; import java.net.InetAddress; /** * @Author: Fred * @Date: 2020/8/24 09:39 */ p ...

  3. Java动态代理(二)——jdk动态代理

    一.什么是动态代理?代理类在程序运行时创建的代理方式被成为动态代理.动态代理的代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的.相比于静态代理, 动态代理的 ...

  4. muduo源码解析1-timestamp类

    timestamp class timestamp:public mymuduo::copyable, public boost::equality_comparable<timestamp&g ...

  5. Python错误,pip安装包或更新时因超时而报错误

    报错原因 想要使用pip,结果出下以下警告: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高 ...

  6. 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先先给大家看一下最终实现的效果: ...

  7. amd、cmd、CommonJS以及ES6模块化

    AMD.CMD.CommonJs.ES6的对比 他们都是用于在模块化定义中使用的,AMD.CMD.CommonJs是ES5中提供的模块化编程的方案,import/export是ES6中定义新增的 什么 ...

  8. iOS打电话功能的简单实现

    小功能简介 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话-方法3 创建一个UIWebView来加载URL,拨完后能自动回到原应用 if (_we ...

  9. 一文吃透redis持久化,妈妈再也不担心我面试过不了!

    持久化介绍 redis 提供了两种方式方式进行数据的持久化(将数据存储到硬盘中):第一种称为快照(snapshotting)RDB,它将某一时刻的所有数据都写入硬盘,所以快照是一次全量备份,并且存储的 ...

  10. C++类重载函数的function和bind使用

    在没有C++11的std::function和std::bind之前,我们使用函数指针的方式是五花八门,结构很繁琐难懂.C++11中提供了std::function和std::bind统一了可调用对象 ...