前言
那什么,额不是最近国庆吗?因为疫情的缘故,我们都在家中,但发生了这么一件事,看到标题你应该知道是什么了,我被黑了!!!咳咳咳,不能说是被黑了,只能说是我下载了一个后门软件,对后门软件,比如说灰鸽子,流光这种,那边的黑客远程控制了我,我知道,这是最基础的软件了。但是我还是中了,最后,我的账号,密码都被盗取。很难受对吧,所以我写个这个文章。
如何防护这种后门,木马?
很容易,不去下载就好了。哎,你这不是废话吗?咳咳,最好的方法,360。360?你在说什么?360不是毒瘤吗?360云大脑知道吗?虽然这个东西经常抽风,说这个是木马,那个是病毒。但是不去理就好了。不然你可试试不装360会怎么样,首先,我们要知道360的重要性,不然你可以换成卡巴斯基。咳咳,进入正题
- 360只是第一种方法
- 第二种linux,比如说ubuntu,本文用CentOS系统演示
- 防火墙软件,比如说天网
- 还有最后一个方法,按我说的做
第一种方法:360,腾讯电脑管家,火绒,卡巴斯基等杀毒
360你不会装吗?笨蛋,自己找教程。
第二种方法:Linux下chkrootkit+RKHunter直接性防护
第二种方法开始。rootkit听说过吗?没有就百度去
1. 文件级别rootkit
文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最经常被替换的,因为当访问Linux时,无论是通过本地登录还是远程登录,/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻击者还是一样能通过root用户登录系统。攻击者通常在进入Linux系统后,会进行一系列的攻击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。
这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit入侵。检查件完整性的工具很多,常见的有Tripwire、 aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入侵。
2. 内核级别的rootkit
内核级rootkit是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序,也就是说,当用户要运行程序A时,被入侵者修改过的内核会假装执行A程序,而实际上却执行了程序B。
内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻击者不能获取root权限,就无法在内核中植入rootkit。
3. 主题
了解,安装,准备,使用chkrootkit
chkrootkit是一个Linux系统下查找并检测rootkit后门的工具,它的官方址: http://www.chkrootkit.org/。 chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装,不过这种安装方法也更加安全。下面简单介绍下chkrootkit的安装过程。
- 准备gcc编译环境
对于CentOS系统,需要安装gcc编译环境,执行下述三条命令:
yum -y install gcc
yum -y install gcc-c++
yum -y install make
# 安装gcc,g++,CMake
- 安装chkrootkit
为了安全起见,建议直接从官方网站下载chkrootkit源码,然后进行安装,操作如下:
tar zxvf chkrootkit.tar.gz
cd chkrootkit-*
make sense
# 注意,上面的编译命令为make sense
- 使用chkrootkit
安装完的chkrootkit程序位于/usr/local/chkrootkit目录下,执行如下命令即可显示chkrootkit的详细用法:
/usr/local/chkrootkit/chkrootkit -h #显示帮助信息
chkrootkit各个参数的含义如下所示。
命令 | 作用 |
---|---|
-h | 显示帮助信息 |
-v | 显示版本信息 |
-ddebug | ddebug模式,显示检测过程的相关指令程序 |
-q | 安静模式,只显示有问题的内容 |
-x | 高级模式,显示所有检测结果 |
-r | dir设置指定的目录为根目录 |
-p | dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录 |
-n | 跳过NFS连接的目录 |
chkrootkit的使用比较简单,直接执行chkrootkit命令即可自动开始检测系统。下面是某个系统的检测结果:
[root@server chkrootkit] # /usr/local/chkrootkit/chkrootkit
Checking ` ifconfig '... INFECTED
Checking ` ls '... INFECTED
Checking `login'... INFECTED
Checking ` netstat '... INFECTED
Checking ` ps '... INFECTED
Checking ` top '... INFECTED
Checking `sshd'... not infected
Checking `syslogd'... not tested
Checking ` tar '... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `telnetd'... not found
从输出可以看出,此系统的ifconfig、ls、login、netstat、ps和top命令已经被感染。针对被感染rootkit的系统,最安全而有效的方法就是备份数据重新安装系统
4. chkrootkit的缺点
chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始系统命令让chkrootkit对rootkit进行检测。这个过程可以通过下面的操作实现:
[root@server ~] # mkdir /usr/share/.commands
[root@server ~] # cp `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
[root@server ~] # /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/
[root@server share] # cd /usr/share/
[root@server share] # tar zcvf commands.tar.gz .commands
[root@server share] # rm -rf commands.tar.gz
上面这段操作是在/usr/share/下建立了一个.commands隐藏文件,然后将chkrootkit使用的系统命令进行备份到这个目录下。为了安全起见,可以将.commands目录压缩打包,然后下载到一个安全的地方进行备份,以后如果服务器遭受入侵,就可以将这个备份上传到服务器任意路径下,然后通过chkrootkit命令的"-p"参数指定这个路径进行检测即可。
rootkit后门检测工具RKHunter
RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:
- MD5校验测试,检测文件是否有改动
- 检测rootkit使用的二进制和系统工具文件
- 检测特洛伊木马程序的特征码
- 检测常用程序的文件属性是否异常
- 检测系统相关的测试
- 检测隐藏文件
- 检测可疑的核心模块LKM
- 检测系统已启动的监听端口
- 下面详细讲述下RKHunter的安装与使用。
下面详细讲述下RKHunter的安装与使用。
- 安装RKHunter
RKHunter的官方网页地址为:http://www.rootkit.nl/projects/rootkit_hunter.html 建议从这个网站下载RKHunter,这里下载的版本是rkhunter-1.4.0.tar.gz。RKHunter的安装非常简单,过程如下:
[root@server ~] # ls
rkhunter-1.4.0. tar .gz
[root@server ~] # pwd
/root
[root@server ~] # tar -zxvf rkhunter-1.4.0.tar.gz
[root@server ~] # cd rkhunter-1.4.0
[root@server rkhunter-1.4.0] # ./installer.sh --layout default --install
这里采用RKHunter的默认安装方式,rkhunter命令被安装到了/usr/local/bin目录下。
使用rkhunter指令
rkhunter命令的参数较多,但是使用非常简单,直接运行rkhunter即可显示此命令的用法。下面简单介绍下rkhunter常用的几个参数选项。
[root@server ~]#/usr/local/bin/rkhunter–help
Rkhunter常用参数以及含义如下所示:
参数 | 含义 |
---|---|
--c, --check | 必选参数,表示检测当前系统 |
--configfile |
使用特定的配置文件 |
--cronjob | 作为cron任务定期运行 |
--sk, --skip-keypress | 自动完成所有检测,跳过键盘输入 |
--summary | 显示检测结果的统计信息 |
--update | 检测更新内容 |
-v, --version | 显示版本信息 |
--versioncheck | 检测最新版本 |
下面是通过rkhunter对某个系统的检测示例:
[root@server rkhunter-1.4.0] # /usr/local/bin/rkhunter -c
[ Rootkit Hunter version 1.4.0 ]
# 下面是第一部分,先进行系统命令的检查,主要是检测系统的二进制文件,因为这些文件最容易被rootkit攻击。显示OK字样表示正常,显示Warning表示有异常,需要引起注意,而显示“Not found”字样,一般无需理会
Checking system commands...
Performing 'strings' command checks
Checking 'strings' command [ OK ]
Performing 'shared libraries' checks
Checking for preloading variables [ None found ]
Checking for preloaded libraries [ None found ]
Checking LD_LIBRARY_PATH variable [ Not found ]
Performing file properties checks
Checking for prerequisites [ Warning ]
/usr/local/bin/rkhunter [ OK ]
/sbin/chkconfig [ OK ]
....(略)....
[Press <ENTER> to continue ]
# 下面是第二部分,主要检测常见的rootkit程序,显示“Not found”表示系统未感染此rootkit
Checking for rootkits...
Performing check of known rootkit files and directories
55808 * - Variant A [ Not found ]
ADM Worm [ Not found ]
AjaKit Rootkit [ Not found ]
Adore Rootkit [ Not found ]
aPa Kit [ Not found ]
Apache Worm [ Not found ]
Ambient (ark) Rootkit [ Not found ]
Balaur Rootkit [ Not found ]
BeastKit Rootkit [ Not found ]
beX2 Rootkit [ Not found ]
BOBKit Rootkit [ Not found ]
....(略)....
[Press <ENTER> to continue ]
# 下面是第三部分,主要是一些特殊或附加的检测,例如对rootkit文件或目录检测、对恶意软件检测以及对指定的内核模块检测
Performing additional rootkit checks
Suckit Rookit additional checks [ OK ]
Checking for possible rootkit files and directories [ None found ]
Checking for possible rootkit strings [ None found ]
Performing malware checks
Checking running processes for suspicious files [ None found ]
Checking for login backdoors [ None found ]
Checking for suspicious directories [ None found ]
Checking for sniffer log files [ None found ]
Performing Linux specific checks
Checking loaded kernel modules [ OK ]
Checking kernel module names [ OK ]
[Press <ENTER> to continue ]
# 下面是第四部分,主要对网络、系统端口、系统启动文件、系统用户和组配置、SSH配置、文件系统等进行检测
Checking the network...
Performing checks on the network ports
Checking for backdoor ports [ None found ]
Performing checks on the network interfaces
Checking for promiscuous interfaces [ None found ]
Checking the local host...
Performing system boot checks
Checking for local host name [ Found ]
Checking for system startup files [ Found ]
Checking system startup files for malware [ None found ]
Performing group and account checks
Checking for passwd file [ Found ]
Checking for root equivalent (UID 0) accounts [ None found ]
Checking for passwordless accounts [ None found ]
....(略)....
[Press <ENTER> to continue ]
# 下面是第五部分,主要是对应用程序版本进行检测
Checking application versions...
Checking version of GnuPG[ OK ]
Checking version of OpenSSL [ Warning ]
Checking version of OpenSSH [ OK ]
# 下面是最后一部分,这个部分其实是上面输出的一个总结,通过这个总结,可以大概了解服务器目录的安全状态。
System checks summary
=====================
File properties checks...
Required commands check failed
Files checked: 137
Suspect files: 4
Rootkit checks...
Rootkits checked : 311
Possible rootkits: 0
Applications checks...
Applications checked: 3
Suspect applications: 1
The system checks took: 6 minutes and 41 seconds
在Linux终端使用rkhunter来检测,最大的好处在于每项的检测结果都有不同的颜色显示,如果是绿色的表示没有问题,如果是红色的,那就要引起关注了。另外,在上面执行检测的过程中,在每个部分检测完成后,需要以Enter键来继续。如果要让程序自动运行,可以执行如下命令:
[root@server ~]# /usr/local/bin/rkhunter --check --skip-keypress
同时,如果想让检测程序每天定时运行,那么可以在/etc/crontab中加入如下内容:
30 09 * * * root /usr/local/bin/rkhunter --check --cronjob
这样,rkhunter检测程序就会在每天的9:30分运行一次。
第三种:防火墙软件
第一个,windows自带防火墙
windows自带的防火墙windows Defender,在 控制面板\系统和安全\Windows Defender 防火墙 中,开启即可。但是默认是开启的,反正检查一下看看有没有开启,有些软件可以关闭防火墙,检查一下就对了!
第二个:360家庭防火墙
没错,又是360,个人认为360的防火墙还可以,下载独立版的就好了,连接一下云大脑,简直是浪的飞起,虽然并没有什么卵用,定时检查一下端口就好了,我这种前端开发的,看的就是端口,wifi的近期使用情况,谁在用wifi,什么手机,电脑在用,看的就是这个,所以这个防火墙很好的解决了我的问题,自然我就推荐了。主要是我们这些开发者使用,推荐一下。
第三个:GlassWire
GlassWire是windows下的一款软件,对windows的,界面很美观,很简洁就像这样 这是切换中文的图片。你不会想到这是windows下的软件,它太简洁了!所以我强推这款软件,一个字"好!"
第四个:Firewall App Blocker
Firewall App Blocker 超级简单易用的bai限制软件访问网络的防火墙:
对于大多数用户,Windows自带的防火墙虽然实用但并没有好好利用起来,主要是因为设置略显繁琐。使用 Firewall App Blocker (Fab) 来禁止应用联网变得超级简单方便。用户只需将需要限制的应用程序添加到软件的列表里即可,勾选状态下为禁止联网,取消勾选可以临时允许联网,就是这么简单。
这个软件很好用的,它最大的好处是解决了Windows自带防火墙的难用问题。也推荐。但是界面没有GlassWire那么好看。
也许你会说:“为什么只有windows的软件?MAC的去哪里了?”我的回答是,你也不自己去数落数落MAC的防御力,不说是木马了,来个*黑客攻进去也要费很多时间!至于Linux的,或许你已经看过了,就不用我来说了,如果你想秀技术,来个反黑客我没意见。如果你真的黑成功了,那你可以做什么呢?等着网警来找你?不要无罪变有罪了。“那么这么多软件,要怎么下载呢?”给出网址你认为我会告诉你密码吗?想知道密码?很容易,发邮件到我的邮箱里3225454747@qq.com关键字:密码是啥?或者陈殇好帅。都可以。
做后一种方法
前言
这个方法很绕,如果实在是听不下去就别听了(博主的衷心劝告),最后一种方法是反黑客后门软件,前言不多说,直接进入正题
正题
马上进入正题!
了解什么是后门程序
后门程序是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。一般在软件开发时,程序员会在软件中创建后门程序,这样就可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。通俗的讲,后门程序就是留在计算机系统中,供某位特殊使用者通过某种特殊方式控制计算机系统的途径。
一、远程控制的两个通性
(1)任何一款的远程控制技术都必须与目标(被控端)建立至少一个TCP或者UPD连接。如果黑客未上线,则会每隔30秒向黑客发起连接请求。
(2)任何一款远控木马都会向系统写入至少一个随机启动项、服务启动项,或者劫持某个系统必备的正常启动项。并且会在某个目录中隐、释放木马。以方便随机启动。
二、基于远控通性反远程控制法——两条命令判断是否被控制
- 最简单的方法就是通过两条命令,一条是“netstat “ 。另一条就是“tasklist “命令,这两条命令可真为是绝配的反黑客远控的方法啊。首先我们就在虚拟机中测试,在本机使用灰鸽子主控端生成一个木马放入到虚拟机中运行。
netstat # 在cmd,powershell,Git等终端中运行,直接监听端口
tasklist # 查看所有程序的占用端口
-
确认虚拟机已经中了我们的远控木马之后我们开始执行第一条命令,首先大家先在联网的情况,把所有联网的程序都关闭,包括杀毒软件、QQ、迅雷、等存在联网的程序关闭,保存最原始的进程。这样很方便我们识别。再次打开开始菜单——运行——输入“cmd”。进入到黑色的DOS窗口下,输入命令“netstat -ano“。这条命令的意思是查看当前网络的连接状态。输入之后我们查看中主要看”state”的状态,如果是“listenning”是端口的监听这个可以放心,如果是“ESTABLISHED”可要注意了,这个状态意思是正在连接!我们肯定会想,我们都没开任何程序在联网,何来正在与远程主机连接呢?下面是中了远程控制木马的虚拟机中网络连接状态。
-
此时捕捉到正在连接的状态的最后一行PID值为:3920,这就是我们说的远控至少与目标建立一个TCP或UDP连接,而这里建立了一个TCP连接,并且仔细看下,“Foregin Address”意思是外网地址,这个IP地址可以百度进行查询下就可以知道是哪个地区的人在控制我们的电脑,再仔细看下IP地址后面的端口为:8000,现在很多主流的远程软件都是8000或者80端口,这又更值得怀疑了。这样我们就可以查看进程,因为木马要想进行连接就必定会在内存中进行运行,否则就无法进行连接了,我们查看内存中可疑的进程,上面捕获的连接PID为:3920。我们输入命令“tasklist /svc“这条命令是查看当前进程与PID值和启动的服务。
-
通过上面的命令找到了网络连接对应的PID值进程3920,并且发现该进程名是一个IE的进程,很明显这就有问题,因为我们根本没打开浏览器,何来IE进程呢?果断的就知道它的一个远程控制木马伪装的进程。我们应该马上去进行一个查杀掉该进程,从内存中干掉它。我们输入命令“taskkill /f /pid 3920” 这条命令是强制结束PID值为3920的进程。当我们强制结束掉了木马之后发现主控端远程控制软件上的肉鸡马上就下线了。这样黑客就无法进行控制了。
-
在这里说明,我们只是暂时现在已经让黑客无法控制我们的电脑,结束了它的远程控制的连接程序。但是我们要知道远程控制的第二个通性,就是远程控制软件为了让对方能够重启系统后继续在黑客的远控软件上面上线,就必须会在被控者的电脑上写入一个随机启动项,这个随机启动项就是当系统启动的时候立马运行木马,运行了木马就可以再次上线。所以我们还需要检测我们的启动项。很多启动项都是写入注册表的,我们这里给大家列出一些木马可能写入的启动键值。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下的shell键值
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows 下的load键值
- 在CMD下切换到该目录下进程一个强制删除吧,切换到目录后输入命令“del /ah /f svchot.exe “ 就可以强制删除隐藏的木马了。
- 此时我们把隐藏的以服务启动的木马干掉了,你可以去停止服务,或者通过sc delete
去删除服务,这里就不多讲了,因为服务启动的木马已经被干掉了,即使服务存在也无法找到启动程序了。我们这里将虚拟机重启下,再查看下网络连接是否还会与黑客建立TCP远程控制连接呢?
三、基于远控的通性反黑客远程控制法——两个软件判断是否存在后门
- 这两个工具分别是icesword(中文:冰刃)和SSM软件。第一个软件主要是应对一些DLL进程注入或者是存在Rootkit的木马,所谓的Rootkit就是隐藏的意思,这样的木马有隐藏网络连接状态、隐藏进程的功能。但是使用iceword查看就能查看到这种内核级隐藏的木马。例如下面就是GHOST木马的DLL注入,它是通过DLL注入到svchost.exe进程的,从icesword就可以找到可疑的dll模块。
并且大家都说”Svchost.exe“如果与外界的IP连接就肯定是被控制了,这是有道理的。因为现在的远控比如ghost、白金远控就是会有这种现象就是DLL注入到“svhochst.exe“进程进行控制的,所以会有连接,一般来说“svchost.exe“除了在微软更新的时候可能存在与美国IP的连接,但是其它时候都不会存在与外界进行IP连接的。通过360的网络连接就可以直接看的出来。
icesword里面的进程都是黑色显示的,如果出现有红色的进程,一般都是运用了内核级的rootkit技术的木马。这样的木马通过任务管理器或者tasklist /svc 一般都是查看不到进程的,但是用冰刃却可以很快的查看到。 - icesword的软件很强大这里就不多说了,上面已经举例说了。下面说下SSM工具的使用,首先我先在虚拟机里面安装下这个软件吧。并且开启这个软件,开启这个软件后只要我们运行任何一个程序都会报警说明软件执行了什么动作!这里我们将一个灰鸽子远控木马拷贝进到我们的虚拟机,当我们点击远控木马的时候SSM马上就报警了,提示程序启动,这个动作是正常的,因为该程序需要explorer图形化程序进程启动的。
- 当我们运行之后会发现,这时候程序突然来了一个注册表修改的动作,懂注册表的都知道这个就是向HKLC\System\CurretcontrolSet\services里面写入服务。这个就不太正常了,不是安装什么程序,一个简单的程序居然写入服务,增加服务,可疑!
- 当我们允许此次操作的时候,你会发现不停的会向注册表写入服务键值,这个肯定就是个可疑的动作,最后发现木马又释放了程序到系统目录。照理说一个执行程序不会随意释放程序到系统目录,可疑!
- 此允许发现最后一步又有一个进程尝试注入到IE里面进行以IE后台启动木马,很明显就能分析出就是个可疑的木马程序,很可能就是后门木马,它有写入服务的这一通性!通过SSM的拦截程序动作就可以分析一个程序是不是绑有后门木马。
以上就是我分享的反黑客教程,希望可以帮助你