木马和php怎么分辨,你会担心云服务器安全吗?
会有危险
我的服务器是腾讯云的(1块钱一个月)的学生服务器,上面跑着我的小博客,今年八月完成了服务器的docker化,用nginx-proxy完成反向代理和套https。我今天dump下了它的日志,准备看一下日志中有多少有趣的东西。
日志文件的大小足足有16M大,也许几张高清大图的大小远超16M,但是这可是纯文本文件啊。为了分析方便我使用脚本将日志文件分字段拆分插入了mariadb数据库,方便以后分析查询。
由于使用了nginx-proxy容器作为反向代理,只有以正确的域名访问我的服务器才会得到正确的响应,通过ip访问或者通过错误的域名访问统统503。没想到这个不太刻意的设置居然成了我的服务器的第一道防火墙。
把服务器日志导入数据库,大概滤掉正常的请求,首先看到的是师傅们扫目录的记录。
这些请求全部来自一个香港的IP(大概是个vps),这些大概是扫描服务器中的webshell(webshell是可以通过web直接操作服务器的后门,可以说是一种木马),也有的是扫描wp-config.php这样的WordPress配置文件,一般没有什么危害,只是作为信息收集。
继续往下看我们发现了更有趣的东西:有4834条记录与phpmyadmin的扫描有关。我们知道phpmyadmin是一个很好用的类MySQL数据库的管理前端,很多学艺不精的程序员很喜欢用它管理数据库,大大咧咧的把它放在了根目录,再配以祖传的弱密码。被拖库只是时间和运气问题。这些流量有来自香港,福建,也有北京。
是不是所有扫描都是那么简单粗暴呢,并没有,我们注意了这位师傅的扫描记录:
风格一改其他师傅简单粗暴的风格,怀着好奇心我们搜寻了一下这些请求背后的故事。
第一个payload针对的是织梦cms(Dedecms)的任意文件上传漏洞,这已经是一个老漏洞了,黑客可以利用这个漏洞上传webshell木马什么的,最终控制服务器。
第三个payload(xycms)针对的是xycms咨询公司建站系统的漏洞(都不能叫漏洞了),直接把数据库放在了web目录下,真正实现一键拖库。
(厂商忽略此漏洞可真是太蠢了)
下一个漏洞又是织梦cms的,就是那个download.php和ad_js的。这是一个2013年的高危漏洞,因为变量未被正确初始化, 黑客可以通过一套花里胡哨的操作执行sql注入,并且还能通过一个程序把数据库中的内容写入文件,最终通过一套连环操作在服务器中留下后门。
下一个是个新漏洞,这个高危漏洞今天7月才被爆出,可以远程执行代码,来自Modx Revolution
漏洞全来自php?并没有,我们注意到这样一条记录:
此攻击针对的是巨硬家IIS 6.0的一个安全漏洞,这是一个利用缓存区溢出的高危漏洞,可以导致远程代码执行。
还有一些利用Weblogic的新洞(CVE-2018-3252),Apache Struts2的漏洞(CVE-2017-5638)的payload我在这里就不再列举了。当然当然,最有意思的还属最后一个payload:
这个payload罕见的附上了用户名,我们在网上搜索和这个payload相关信息的时候发现,这并不是一个针对服务器的攻击payload,而是针对一些物联网设备,比如说……摄像头。
hi3510是海思公司推出的一款视频压缩芯片,主要用于摄像头,我们找到了一份IP Camera CGI的应用指南,找到了相对应的命令用法:
但是我们并没有在网上搜索到相关的漏洞,但是发现很多网站的日志中都存在这条记录
所以这极有可能是一个还没有公开的,物联网中摄像头中存在的漏洞。所以,有师傅日了摄像头当肉鸡看起来并不是传言。
然而,上面分析的这些,也只是黑客黑产冰山上的小冰渣。现实比这要严重的多,也许黑客在黑市中贩卖着你的隐私,你的服务器,而你却浑然不知。
冰蝎木马是什么?
冰蝎特有的的PHP木马,(注意:使用一句话木马无法连接冰蝎),连接密码可以随意改动格式为md5 32为的前16为值 。
“冰蝎”是一个动态二进制加密网站管理客户端。在实战中一代webshell管理工具“菜刀”的流量特征非常明显,很容易就被安全设备检测到。基于流量加密的webshell变得越来越多,“冰蝎”在此应运而生。
云服务器ECS是什么?
(转自阿里云,自己一直在用阿里云产品,非常稳定,侵删)
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
为什么选择云服务器ECS
选择云服务器ECS,您可以轻松构建具有以下优势的计算资源:
无需自建机房,无需采购以及配置硬件设施。分钟级交付,快速部署,缩短应用上线周期。快速接入部署在全球范围内的数据中心和BGP机房。成本透明,按需使用,支持根据业务波动随时扩展和释放资源。提供GPU和FPGA等异构计算服务器、弹性裸金属服务器以及通用的x86架构服务器。支持通过内网访问其他阿里云服务,形成丰富的行业解决方案,降低公网流量成本。提供虚拟防火墙、角色权限控制、内网隔离、防病毒攻击及流量监控等多重安全方案。提供性能监控框架和主动运维体系。提供行业通用标准API,提高易用性和适用性。更多选择理由,请参见云服务器ECS的优势和应用场景。
产品架构
云服务器ECS主要包含以下功能组件:
实例:等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的计算组件。实例的计算性能、内存性能和适用业务场景由实例规格决定,其具体性能指标包括实例vCPU核数、内存大小、网络性能等。镜像:提供实例的操作系统、初始化应用数据及预装的软件。操作系统支持多种Linux发行版和多种Windows Server版本。块存储:块设备类型产品,具备高性能和低时延的特性。提供基于分布式存储架构的云盘、共享块存储(公测中)以及基于物理机本地存储的本地盘。快照:某一时间点一块云盘或共享块存储的数据状态文件。常用于数据备份、数据恢复和制作自定义镜像等。安全组:由同一地域内具有相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置实例的网络访问控制。网络:专有网络VPC:逻辑上彻底隔离的云上私有网络。您可以自行分配私网IP地址范围、配置路由表和网关等。经典网络:所有经典网络类型实例都建立在一个共用的基础网络上。由阿里云统一规划和管理网络配置。更多功能组件详情,请参见云服务器ECS产品详情页。
以下为云服务器ECS的产品组件架构图,图中涉及的功能组件的详细介绍请参见相应的帮助文档。产品定价
云服务器ECS支持预付费、按量付费、预留实例券(邀测中)、抢占式实例等多种账单计算模式。更多详情,请参见计费概述和云产品定价页。
管理工具
通过注册阿里云账号,您可以在任何地域下,通过阿里云提供的以下途径创建、使用或者释放云服务器ECS:
ECS管理控制台:具有交互式操作的Web服务页面。关于管理控制台的操作,请参见常用操作导航。ECS API:支持GET和POST请求的RPC风格API。关于API说明,请参见API参考。以下为调用云服务器ECS API的常用开发者工具:命令行工具CLI:基于阿里云API建立的灵活且易于扩展的管理工具。您可基于命令行工具封装阿里云的原生API,扩展出您需要的功能。OpenAPI Explorer:提供快速检索接口、在线调用API和动态生成SDK示例代码等服务。阿里云SDK:提供Java、Python、PHP等多种编程语言的SDK。资源编排(Resource Orchestration Service):通过创建一个描述您所需的所有阿里云资源的模板,然后资源编排将根据模板,自动创建和配置资源。Terraform:能够通过配置文件在阿里云以及其他支持Terraform的云商平台调用计算资源,并对其进行版本控制的开源工具。阿里云App:移动端类型的管理工具。关于如何使用阿里云App,请参见App用户指南。Alibaba Cloud Toolkit:阿里云针对IDE平台为开发者提供的一款插件,用于帮助您高效开发并部署适合在云端运行的应用。部署建议
您可以从以下维度考虑如何启动并使用云服务器ECS:
地域和可用区地域指阿里云的数据中心,地域和可用区决定了ECS实例所在的物理位置。一旦成功创建实例后,其元数据(仅专有网络VPC类型ECS实例支持获取元数据)将确定下来,并无法更换地域。您可以从用户地理位置、阿里云产品发布情况、应用可用性、以及是否需要内网通信等因素选择地域和可用区。例如,如果您同时需要通过阿里云内网使用云数据库RDS,RDS实例和ECS实例必须处于同一地域中。更多详情,请参见地域和可用区。
高可用性为保证业务处理的正确性和服务不中断,建议您通过快照实现数据备份,通过跨可用区、部署集、负载均衡SLB等实现应用容灾。
网络规划阿里云推荐您使用专有网络VPC,可自行规划私网IP,全面支持新功能和新型实例规格。此外,专有网络VPC支持多业务系统隔离和多地域部署系统的使用场景。
安全方案您可以使用云服务器ECS的安全组,控制ECS实例的出入网访问策略以及端口监听状态。对于部署在云服务器ECS上的应用,阿里云为您提供了免费的DDoS基础防护,此外您还可以使用阿里云云盾,例如:通过DDoS高防IP保障源站的稳定可靠。更多详情,请参见DDoS高防IP文档。通过安骑士保障云服务器ECS的安全。更多详情,请参见安骑士文档。学习路径
您可以通过ECS学习路径图快速了解产品,由浅入深地学习运维云服务器ECS。
相关服务
使用云服务器ECS的同时,您还可以选择以下阿里云服务:
根据业务需求和策略的变化,使用弹性伸缩(Auto Scaling)自动调整云服务器ECS的数量。使用容器服务(Container Service)在一组云服务器ECS上通过Docker容器管理应用生命周期。通过负载均衡(Server Load Balancer)对多台云服务器ECS实现流量分发的负载均衡目的。通过云监控(CloudMonitor)制定实例、系统盘和公网带宽等的监控方案。在同一阿里云地域下,采用关系型云数据库(Relational Database Service)作为云服务器ECS的数据库应用是典型的业务访问架构,可极大降低网络延时和公网访问费用,并实现云数据库RDS的最佳性能。云数据库RDS支持多种数据库引擎,包括MySQL、SQL Server、PostgreSQL、PPAS和MariaDB。在云市场获取由第三方服务商提供的基础软件、企业软件、网站建设、代运维、云安全、数据及API、解决方案等相关的各类软件和服务。您也可以成为云市场服务供应商,提供软件应用及服务。更多详情,请参见云市场文档。如何才能认识黑客?
一、前期
1、了解什么是黑客,黑客的精神是什么。当然了解一下几大着名黑客或骇客的“发家史”也是很有必要的。
2、黑客必备的一些基础命令,包括DOS命令,以及UNIX / Linux下的命令。
3、远程扫描、远程刺探技术。包括通过系统自带命令的信息刺探以及使用工具扫描等。
4、密码pj。了解现在的密码pj的适用范围,以及操作技巧等等。
5、溢出攻击。溢出工具的使用方法。
6、注入攻击。注入攻击只是一个简称,这里还要包括XSS、旁注、远程包含等一系列脚本攻击技巧。
7、学会各种编译工具的使用方法,能编译所有ShellCode。
8、学会手动查杀任何木马、病毒,学会分析Windows操作系统,以使自己百毒不侵。
二、中期
1、学习所有Windows下服务器的搭建步骤(ASP、PHP、JSP)。
2、掌握例如Google黑客、cookies 、网络钓鱼、社会工程学等。
3、学习HTML、JavaScript、VBScript。
4、学习标准SQL语言,以及大多数数据库的使用。
5、学习ASP,并拥有发掘ASP脚本漏洞的能力。
6、学习PHP,并拥有发掘PHP脚本漏洞的能力。
7、学习JSP,并拥有发掘JSP脚本漏洞的能力。
8、学习掌握最新脚本的特性性以及发掘漏洞的方法,例如眼下的WEB2.0
三、后期
1、确定自己的发展方向
2、学习C语言,并尝试改写一些已公布的ShellCode。
3、学习C++,尝试编写一个属于自己的木马(如果你想自己编写木马的话)。
4、学习汇编
5、研究Linux系统内核。
6、学习缓冲区溢出利用技术。
7、ShellCode技术。
8、堆溢出利用技术、格式化串漏洞利用技术、内核溢出利用技术、漏洞发掘分析。
各个编程语言都有哪些黑点?
每种编程语言都会有或多或少的黑点吧……速度快的写起来麻烦,写起来简单的速度又慢,所以大家也不要在较真了,用适合自己的语言就好~不过,要说被黑得最惨烈的语言,小慕就不得不先从PHP说起……
PHPPHP招黑一直被业内人士所熟知,因为PHP本来就是Personal Home Page(PHP最初的全称),对于很多程序语言的高级特性并不支持。原作者拉斯姆斯当年无论如何都想不到他只是用来制作个人网页的CGI程序,经过多年的迭代会在业界得到如此广泛的应用。从那个时候开始PHP就被批评不支持面向对象、没有命名空间(namespace)、并不真正支持多线程、弱类型和性能差等,但PHP本身也在不断自我完善和发展,从PHP4开始支持面向对象,从PHP5.3开始支持命名空间和pthreads多线程扩展,在PHP7的版本更新中大幅提升了性能。
除此之外,PHP还经常被批评函数名混乱,因为在长年累月的迭代中,为了保证程序的兼容性,很多当年的函数名不可能一言不合说改就改。比如同样是内置函数的getmypid和get_current_user采用了两种不同的命名风格,甚至还有一些形如rtrim的诡异的缩写形式。
PHP:虽然被黑的最惨的总是我,但我还是要说出那句“PHP是最好的语言”。
C++、Java、python、JavaScript:……C++C++几乎是主流语言中最容易让你写出“hello world”的语言,找个ide装上,写完了只需要点一下编译并运行,不用像java还要加环境变量,不用像python还要安装。所有的理工科专业几乎都要开C或C++的课,但当你写过一些代码,并考出计算机二级,觉得自己能用C++找口饭吃的时候,C++就会残忍的告诉你,什么叫“饭里有毒”。
你会发现,自己的c++和官方的c++,就像LOL里己方的“儿童劫”和对面的“火影劫”一样,差距非常夸张。归根结底,是源于C++的复杂性。
Sort源代码片段:
JavaJava就像一个老学究,时时刻刻在警告你 “我认为你这种写法不是很面向对象”。Java过于标准的写法导致了代码十分冗长,在新手眼里可能比较友好,但是在老手眼里却并不这样。因为Java程序员有时候为了少打点字甚至都会修改数据结构,所以即使有代码自动补全也仍会让人头大。
例如把单词的字母放进hashset里,再打印出来。用java写就要比c++冗长的多……
Java:
C++:
再说一个Java的小坑,Java 和 JavaScript 虽然是巴基斯坦和卡巴斯基的关系,但是Java的Integer 还是可以挑战一下JavaScript的九九真值表。
Python缩进
其实游标卡尺的问题真的不能算黑点,整齐的缩进非常有利于程序的可读性。虽然绝大多数编程语言的编译器对缩进并没有什么要求,但是为了代码的可读性,程序员都会写出带有优雅层级的代码。而python干脆把大括号这种范围表示符号省略了,直接用缩进来对代码分层。其实买上一块4k带鱼屏竖起来,一个带有对齐线的开发工具,写python完全就可以为所欲为。
python 可以快速成型,可以为所欲为,但它并不是没有缺点,有时会让一个开发者脱离了计算机科学的基本理念。一个python程序员写的求一个数的阶乘末尾有多少个0的
小算法:
和正确代码比较
代码非常相似,结果完全一样。大家都喊着python慢的,真的只是怪解释型语言的原因吗?
JavaScript同样被黑得够呛的还有JavaScript,这个传说从设计到完工只需10天的编程语言。JavaScript跟Personal Home Page一样,当初可能只是为了实现一些简单的页面交互功能,在应用越来越广泛后,各种缺陷才慢慢开始浮现。比如神奇的隐式类型转换,运算1+”2”的结果是12,JavaScript会自动将整数1转换为字符1,然后与字符2相互拼接,然而1+2+”3”的结果却是33。
除此之外,JavaScript全局变量的使用也极易在不同模块之间产生相互污染,所以很多JavaScript的教材当中都强调要慎用全局变量,或使用闭包,避免造成全局污染。
PerlPerl语言在当年也颇受诟病,比如在一些邋遢、爱炫技的程序员写出的Perl代码,恐怕只有本人才看得明白。因为Perl实在太自由灵活了,再加上诸如@_$%&!<>等各种眼花缭乱符号,你完全可以把程序写成一串天书,跟拿着游标卡尺写出来的Python代码比起来,简直就是两个极端。
另外Ruby的性能差和python2 和python3不兼容也算是黑点,python可能是轮子多太方便了,为了让自己冷静一下,所以一个热门的语言同时流行着两个互不兼容的版本。
被黑较少的语言相对处于所谓dominant地位的,「黑点」最少的应该只有两类。一种比如Haskell和Lisp等「学院派」编程语言,它们处于鄙视链顶端,由于难以真正掌握,一般程序员想黑但无从下手;还有一种是已经渐渐淡出历史舞台的编程语言,比如曾经热门的ASP。
那些在程序员圈子内口口相传,津津乐道的「黑点」,除了因编程语言本身设计和开发遗留的客观因素之外,其实还有一小部分主观因素。比如某编程语言得益于简单易用,很多缺乏理论基础和经验的程序员经过简单培训、短期自学,都能写出可以实现功能但质量可能经不起推敲的代码。如果出于对这部分尚待提高的程序员的排斥,而迁怒于编程语言,小慕认为有失偏颇。
总之无论基于什么理由,只要还在被黑就证明了这门语言还活着。
比如PHP今年在TIOBE排行榜上下降了一位,但依然排名第八;
JavaScript得益于风头正盛的HTML5技术,在移动互联网时代依然大放异彩,甚至凭借Node.js从前端走到了后端。
所以语言避免被黑也取决于:能否在技术上得以不断的自我完善,商业机构或者开源社区是否提供持续的维护,在应用上能否得到业界不断的充实和创新。
其实有些时候,一种语言的缺点也会是它的优点。语言只是工具,只要你用它能达到目的就行啦~