如何看Linux服务器是否被攻击?

如何看Linux服务器是否被攻击?,第1张

以下几种方法检测linux服务器是否被攻击:\x0d\1、检查系统密码文件 \x0d\首先从明显的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 \x0d\2、查看一下进程,看看有没有奇怪的进程 \x0d\\x0d\重点查看进程:ps _aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果看到输出了一个类似inetd _s \x0d\/tmp/xxx之类的进程,着重看inetd \x0d\_s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中\x0d\也仅仅是inetd \x0d\_s,同样没有用inetd去启动某个特定的文件;如果使用ps命令看到inetd启动了某个文件,而自己又没有用inetd启动这个文件,那就说明已经有人入侵了系统,并且以root权限起了一个简单的后门。\x0d\3、检查系统守护进程 \x0d\检查/etc/inetdconf文件,输入:cat /etc/inetdconf | grep _v “^#”,输出的信息就是这台机器所开启的远程服务。 \x0d\一般入侵者可以通过直接替换inxxx程序来创建一个后门,比如用/bin/sh 替换掉intelnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。\x0d\4、检查网络连接和监听端口 \x0d\输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。 \x0d\输入netstat _rn,查看本机的路由、网关设置是否正确。 \x0d\输入 ifconfig _a,查看网卡设置。 \x0d\5、检查系统日志 \x0d\命令last | \x0d\more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系\x0d\统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现\x0d\syslog被非法动过,那说明有重大的入侵事件。 \x0d\在linux下输入ls _al /var/log \x0d\检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。 \x0d\6、检查系统中的core文件 \x0d\通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能\x0d\100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core \x0d\_exec ls _l {} \; 依据core所在的目录、查询core文件来判断是否有入侵行为。\x0d\7、检查系统文件完整性 \x0d\检查文件的完整性有多种方法,通常通过输入ls _l \x0d\文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm _V \x0d\`rpm _qf 文件名` \x0d\来查询,查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man \x0d\rpm来获得更多的格式。

Apache 服务器

预安装在Kali Linux

可以用以下命令开启:

service apache2 start

MySQL

预安装在Kali Linux

可以用以下命令开启:

service mysql start

使用PHP-MySQL创建一个有漏洞的web应用

我使用PHP开发了一个有漏洞的web应用并且把它放在上面提到的 Apache-MySQL里面。

上述设置完成后,我用了一些Kali Linux中的自动工具(ZAP、w3af)扫描这个有漏洞的应用的URL。

现在让我们来看看分析日志中的不同情况。

0x02 Apache服务中的日志记录

Debian系统上Apache服务器日志的默认位置为:/var/log/apache2/accesslog

日志记录只是在服务器上存储日志。我还需要分析日志以得出正确结果。在接下来的一节里,我们将看到我们如何分析Apache服务器的访问日志以找出web站点上是否有攻击尝试。

分析日志

手动检查

在日志量较小的情况下,或者如果我们查找一个指定关键词,可以使用像grep表达式这样的工具观察日志。

在下图中,我们在URL中试图搜寻所有关键词为“union”的请求。

从上图中,我们可以看到URL中的“union select 1,2,3,4,5”请求。很明显,ip地址为 19216856105的某人尝试了SQL注入。 类似地,当我们有自己的关键词时可以搜索特殊的关键词。

在下图中,我们正在搜索试图读取“/etc/passwd”的请求,很明显是本地文件包含尝试。

如上面的截图所示,我们有许多本地文件包含的尝试,且这些请求发送自ip地址 127001。

很多时候,能轻易通过日志看出是否是自动化扫描器产生的。

举例来说, IBM appscan在许多攻击payload中使用“appscan”这个词。所以,在日志中查看这样的请求,我们基本就可以判断有人在使用appscan扫描网站。

Microsoft Excel也是一个打开日志文件和分析日志的不错的工具。我们可以通过指定“空格”为分隔符以用excel打开日志文件。

当我们手头没有日志分析工具时,这个也挺好用的。

除了这些关键词,在分析期间要了解HTTP状态代码的基础知识。以下是关于HTTP状态代码的高级信息的表格。

0x03 Web shells

webshell是网站/服务器的另一个问题。webshell可以已web server权限控制服务器。

在一些情况下,我们可以使用webshell来访问所有放在相同服务器上的其他站点。

以下截图显示了Microsoft Excel 中开启相同的accesslog文件。

我们清楚地看到有一个叫“b374kphp”的文件被访问了。“b374k”是一个流行的webshell,因此这个文件是很可疑的。

查看相应代码“200”,本行表明有人上传了一个webshell并访问了它。

在许多情况下,攻击者重命名webshell的名字以避免怀疑。我们必须变得聪明点,看看被访问的文件是否是常规文件或者是否他们看起来不太一样。我们可以更进一步,如果任何文件看起来可疑的话,还可以查看文件类型和时间戳。

One single quote for the win

SQL注入是web应用中最常见的漏洞之一。大多数学习web应用安全的人是从学习SQL注入开始的。

识别一个传统的SQL注入很容易,给URL参数添加一个单引号看看是否报错。

任何我们传递给服务器的东西都会被记录,并且可以朔源。

以下截图显示了日志当中记录了有对参数user传入单引号测试是否有SQL注入的行为。

%27是单引号的URL编码。

出于管理目的,我们还可以运行查询监视来查看数据库中的哪个请求被执行了。

如果我们观察以上,传递一个单引号给参数“user”的SQL语句被执行了。

0x04 使用自动化工具分析

当存在大量日志时。手动检查就会变得困难。在这种情景下,除了一些手动检查之外我们可以使用自动化工具。

虽然有许多高效的商业工具,但是我要向你们介绍一款被称为“Scalp”的免费工具。

据他们的官方链接所说,Scalp是用于Apache服务器,旨在查找安全问题的日志分析器。主要理念是浏览大量日志文件并通过从HTTP/GET中提取可能的攻击。

Scalp可以从以下链接下载:

https://codegooglecom/p/apache-scalp/

Scalp是python脚本,所以要求我们的机器中安装python。

以下显示该工具的帮助。

如我们在上图所见,我们需要使用标志-l来提供要分析的日志文件。

同时,我们需要提供使用标志-f提供一个过滤文件让Scalp在accesslog文件中识别可能的攻击。

我们可以使用PHPIDS项目中的过滤器来检测任何恶意的尝试。

该文件名为“default_filterxml ”,可以从以下链接中下载:

https://githubcom/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filterxml

以下代码块是取自上面链接的一部分。

1

2

3

4

5

6

7

8

9

10

11

<filter>

<id>12</id>

<rule><![CDATA[(:etc\/\Wpasswd)]]></rule>

<description>Detects etc/passwd inclusion attempts</description>

<tags>

<tag>dt</tag>

<tag>id</tag>

<tag>lfi</tag>

</tags>

<impact>5</impact>

</filter>

它是使用XML标签定义的规则集来检测不同的攻击测试。以上代码片段是检测文件包含攻击尝试的一个示例。

下载此文件之后,把它放入Scalp的同一文件夹下。

运行以下命令来使用Scalp分析日志。

1

python scalp-04py –l /var/log/apache2/accesslog –f filterxml –o output –html

“output”是报告保存的目录。如果不存在的话,由Scalp自动创建。-html是用来生成HTML格式的报告。 如我们在上图看到的那样,Scalp结果表明它分析了4001行,超过4024并发现了296个攻击模式。

运行上述命令后在输出目录内生成报告。我们可以在浏览器内打开它并查看结果。 下面截图显示的输出显示了目录遍历攻击尝试的一小部分。

MySQL中的日志记录

本节论述了数据库中的攻击分析和监视它们的方法。

第一步是查看设置了什么变量。我们可以使用“show variables;”完成,如下所示。

接下来显示了上述命令的输出。

如我们在上图中看到的,日志记录已开启。该值默认为OFF。

这里另一个重要的记录是 “log_output”,这是说我们正在把结果写入到文件中。另外,我们也可以用表。

我们可以看见“log_slow_queries”为ON。默认值为OFF。

所有这些选项都有详细解释且可以在下面提供的MySQL文档链接里直接阅读:

MySQL的查询监控

请求日志记录从客户端处收到并执行的语句。默认记录是不开启的,因为比较损耗性能。

我们可以从MySQL终端中开启它们或者可以编辑MySQL配置文件,如下图所示。

我正在使用VIM编辑器打开位于/etc/mysql目录内的“mycnf”文件。

如果我们向下滚动,可以看见日志正被写入一个称为“mysqllog”的文件内。

我们还能看到记录“log_slow_queries” ,是记录SQL语句执行花了很长时间的日志。

现在一切就绪。如果有人用恶意查询数据库,我们可以在这些日志中观察到。如下所示:

上图显示了查询命中了名为“webservice”的数据库并试图使用SQL注入绕过认证。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何看Linux服务器是否被攻击?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情