怎么找php网站漏洞,如何入侵linux服务器?
华盛顿大学的安全研究员Andre' DiMino注意到了多个IP地址试图利用一个已修复PHP漏洞劫持Linux服务器,他很好奇攻击者如何成功控制一台Linux服务器, 因此设立了一个蜜罐,运行旧版本的PHP,让攻击者劫持,进行观察。
DiMino发现,攻击者确实非常狡猾,发出了包含多个指令的HTTP POST请求,下载一个伪装成PDF文件的 Perl 脚本,执行之后删除。
为了确保成功,攻击者使用 curl、fetch、lwp-get请求重复上述步骤。
Perl 脚本编程休眠一段时间,猜测可能是避开管理员的耳目。最终被感染的机器连上一个中继聊天频道,下载执行另一个脚本。
攻击者在服务器上安装了多个应用,包括 比特币和素数币挖矿程序,DDoS工具,扫描其它存在已知漏洞的机器的工具。随着Linux服务器的流行,它和Windows PC一样成为攻击者眼中极具吸引力的目标。
java比php安全吗?
安全这个问题不适合放在开发语言上来讲,开发语言本身只是提供一种编码的方式让我们控制电脑来做一些事情,任何语言开发出来的程序都可能存在安全问题。
比如常见的SQL注入问题,如果操作数据库的方式不当,任何语言开发出来的程序都可能存在。再比如弱密码问题,很容易被人猜出来,这都很难说是程序的安全没做好。
当然开发语言的一些基础类库或者框架可能存在bug,导致安全问题的出现,Java也出现过不少安全漏洞,一般这种漏洞会很快被修复,开发者及时升级依赖的包或类库就可以了。
所以如果要把安全做好,需要关注到多个方面,开发语言的安全漏洞,应用程序的漏洞,服务器的安全漏洞,运维管理措施,用户的安全引导,网络的传输安全等等。
最新曝光的WinRAR漏洞有多严重?
在享誉全球成为必备装机软件的同时,过去19年以来WinRAR也深受各种严重安全漏洞的负面影响。根据安全公司Check Point研究人员披露的细节,在WinRAR的UNACEV2.dll代码库中发现严重安全漏洞,而该库自2005年以来就一直没有被主动使用过。WinRAR在打开“booby-trapped”(诡雷代码)文件之后允许技术娴熟的攻击者执行“任意恶意代码”。
简单来说,该漏洞允许安全专家绕过权限提升就能运行WinRAR,而且可以直接将恶意文件放进Windows系统的启动文件夹中。这就意味着当用户下次重新开机的时候,这些恶意文件就能自动运行,让安全专家“完全控制”受害者的计算机。安全专家表示,全球有超过5亿用户受到WinRAR漏洞影响。
Check Point表示WinRAR不再支持ACE存档格式(就是该漏洞的攻击文件),而且在上个月同时也删除了UNACEV2.dll文件。目前WinRAR发布了最新的测试版5.70 Beta 1,已经修复了这个问题。
不过值得注意的是,如果现在访问WinRAR的官方网站,点击下载的依然是5.61版本。而该版本目前尚未修复这个漏洞。因此你经常使用这款压缩软件,推荐通过本文下方的链接下载Beta版本。
下载:https://www.win-rar.com/affdownload/download.php
服务器被攻击后有哪些应对措施?
一般思路
系统遭受攻击并不可怕,可怕的是面对攻击束手无策,下面就详细介绍下在服务器遭受攻击后的一般处理思路。
1.切断网络
所有的攻击都来自于网络,因此,在得知系统正遭受黑客的攻击后,首先要做的就是断开服务器的网络连接,这样除了能切断攻击源之外,也能保护服务器所在网络的其他主机。
2.查找攻击源
可以通过分析系统日志或登录日志文件,查看可疑信息,同时也要查看系统都打开了哪些端口,运行哪些进程,并通过这些进程分析哪些是可疑的程序。这个过程要根据经验和综合判断能力进行追查和分析。下面的章节会详细介绍这个过程的处理思路。
3.分析入侵原因和途径
既然系统遭到入侵,那么原因是多方面的,可能是系统漏洞,也可能是程序漏洞,一定要查清楚是哪个原因导致的,并且还要查清楚遭到攻击的途径,找到攻击源,因为只有知道了遭受攻击的原因和途径,才能删除攻击源同时进行漏洞的修复。
4.备份用户数据
在服务器遭受攻击后,需要立刻备份服务器上的用户数据,同时也要查看这些数据中是否隐藏着攻击源。如果攻击源在用户数据中,一定要彻底删除,然后将用户数据备份到一个安全的地方。
5.重新安装系统
永远不要认为自己能彻底清除攻击源,因为没有人能比黑客更了解攻击程序,在服务器遭到攻击后,最安全也最简单的方法就是重新安装系统,因为大部分攻击程序都会依附在系统文件或者内核中,所以重新安装系统才能彻底清除攻击源。
6.修复程序或系统漏洞
在发现系统漏洞或者应用程序漏洞后,首先要做的就是修复系统漏洞或者更改程序bug,因为只有将程序的漏洞修复完毕才能正式在服务器上运行。
7.恢复数据和连接网络
将备份的数据重新复制到新安装的服务器上,然后开启服务,最后将服务器开启网络连接,对外提供服务。
二、检查并锁定可疑用户
当发现服务器遭受攻击后,首先要切断网络连接,但是在有些情况下,比如无法马上切断网络连接时,就必须登录系统查看是否有可疑用户,如果有可疑用户登录了系统,那么需要马上将这个用户锁定,然后中断此用户的远程连接。
1.登录系统查看可疑用户
通过root用户登录,然后执行“w”命令即可列出所有登录过系统的用户,如图1所示。
通过这个输出可以检查是否有可疑或者不熟悉的用户登录,同时还可以根据用户名以及用户登录的源地址和它们正在运行的进程来判断他们是否为非法用户。
2.锁定可疑用户
一旦发现可疑用户,就要马上将其锁定,例如上面执行“w”命令后发现nobody用户应该是个可疑用户(因为nobody默认情况下是没有登录权限的),于是首先锁定此用户,执行如下操作:
[root@server ~]# passwd -l nobody
锁定之后,有可能此用户还处于登录状态,于是还要将此用户踢下线,根据上面“w”命令的输出,即可获得此用户登录进行的pid值,操作如下:
[root@server ~]# ps -ef"grep @pts/3
531 6051 6049 0 19:23 ? 00:00:00 sshd: nobody@pts/3
[root@server ~]# kill -9 6051
这样就将可疑用户nobody从线上踢下去了。如果此用户再次试图登录它已经无法登录了。
3.通过last命令查看用户登录事件
last命令记录着所有用户登录系统的日志,可以用来查找非授权用户的登录事件,而last命令的输出结果来源于/var/log/wtmp文件,稍有经验的入侵者都会删掉/var/log/wtmp以清除自己行踪,但是还是会露出蛛丝马迹在此文件中的。
三、查看系统日志
查看系统日志是查找攻击源最好的方法,可查的系统日志有/var/log/messages、/var/log/secure等,这两个日志文件可以记录软件的运行状态以及远程用户的登录状态,还可以查看每个用户目录下的.bash_history文件,特别是/root目录下的.bash_history文件,这个文件中记录着用户执行的所有历史命令。
四、检查并关闭系统可疑进程
检查可疑进程的命令很多,例如ps、top等,但是有时候只知道进程的名称无法得知路径,此时可以通过如下命令查看:
首先通过pidof命令可以查找正在运行的进程PID,例如要查找sshd进程的PID,执行如下命令:
1 2 [root@server ~]# pidof sshd 13276 12942 4284
然后进入内存目录,查看对应PID目录下exe文件的信息:
1 2 [root@server ~]# ls -al /proc/13276/exe lrwxrwxrwx 1 root root 0 Oct 4 22:09 /proc/13276/exe -> /usr/sbin/sshd
这样就找到了进程对应的完整执行路径。如果还有查看文件的句柄,可以查看如下目录:
[root@server ~]# ls -al /proc/13276/fd
通过这种方式基本可以找到任何进程的完整执行信息,此外还有很多类似的命令可以帮助系统运维人员查找可疑进程。例如,可以通过指定端口或者tcp、udp协议找到进程PID,进而找到相关进程:
1 2 3 4 5 6 7 8 9 [root@server ~]# fuser -n tcp 111 111/tcp: 1579 [root@server ~]# fuser -n tcp 25 25/tcp: 2037 [root@server ~]# ps -ef|grep 2037 root 2037 1 0 Sep23 ? 00:00:05 /usr/libexec/postfix/master postfix 2046 2037 0 Sep23 ? 00:00:01 qmgr -l -t fifo -u postfix 9612 2037 0 20:34 ? 00:00:00 pickup -l -t fifo -u root 14927 12944 0 21:11 pts/1 00:00:00 grep 2037
在有些时候,攻击者的程序隐藏很深,例如rootkits后门程序,在这种情况下ps、top、netstat等命令也可能已经被替换,如果再通过系统自身的命令去检查可疑进程就变得毫不可信,此时,就需要借助于第三方工具来检查系统可疑程序,例如前面介绍过的chkrootkit、RKHunter等工具,通过这些工具可以很方便的发现系统被替换或篡改的程序。
五、检查文件系统的完好性
检查文件属性是否发生变化是验证文件系统完好性最简单、最直接的方法,例如可以检查被入侵服务器上/bin/ls文件的大小是否与正常系统上此文件的大小相同,以验证文件是否被替换,但是这种方法比较低级。此时可以借助于Linux下rpm这个工具来完成验证,操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@server ~]# rpm -Va ....L... c /etc/pam.d/system-auth S.5..... c /etc/security/limits.conf S.5....T c /etc/sysctl.conf S.5....T /etc/sgml/docbook-simple.cat S.5....T c /etc/login.defs S.5..... c /etc/openldap/ldap.conf S.5....T c /etc/sudoers ..5....T c /usr/lib64/security/classpath.security ....L... c /etc/pam.d/system-auth S.5..... c /etc/security/limits.conf S.5..... c /etc/ldap.conf S.5....T c /etc/ssh/sshd_config
对于输出中每个标记的含义介绍如下:
S 表示文件长度发生了变化
M 表示文件的访问权限或文件类型发生了变化
5 表示MD5校验和发生了变化
D 表示设备节点的属性发生了变化
L 表示文件的符号链接发生了变化
U 表示文件/子目录/设备节点的owner发生了变化
G 表示文件/子目录/设备节点的group发生了变化
T 表示文件最后一次的修改时间发生了变化
如果在输出结果中有“M”标记出现,那么对应的文件可能已经遭到篡改或替换,此时可以通过卸载这个rpm包重新安装来清除受攻击的文件。
不过这个命令有个局限性,那就是只能检查通过rpm包方式安装的所有文件,对于通过非rpm包方式安装的文件就无能为力了。同时,如果rpm工具也遭到替换,就不能通过这个方法了,此时可以从正常的系统上复制一个rpm工具进行检测。
什么是WEB渗透工程师?
主要是做:
1、负责渗透测试技术服务实施,编写渗透测试报告;
2、负责渗透测试技术交流、培训;
3、负责代码审计、漏洞检测与验证、漏洞挖掘;
4、负责最新渗透测试技术学习、研究。应聘这样的职位有一定的职业要求:1、熟悉交换路由等网络协议、熟悉ACL、NAT等技术、熟悉网络产品配置和工作原理;熟悉LINUX、AIX等操作系统安全配置;熟悉ORACLE、MSSQL、MYSQL等数据库安全配置;熟悉WEB、FTP、邮件等应用安全配置;2、能熟练使用各类渗透测试工具,熟悉手工注入、上传、中间人攻击测试、业务逻辑漏洞测试;3、熟悉HTML、XML、ASP、PHP、JSP等脚本语言,会使用C/C++、JAVA、.net、PYTHON等进行程序开发;4、熟悉木马、后门技术、SHELLCODE技术、免杀技术、密码pj技术、漏洞挖掘技术、远程控制技术等。