wget 服务器_wget攻击服务器

hacker|
445

wget 是什么?有什么功能??

wget是一款免费开放源代码下载工具,可以运行在Unix和Linux操作系统下。不过有漏洞:

wget没有正确处理NLST FTP的服务器应答,远程攻击者可以利用这个漏洞构建恶意FTP服务器,诱使用户访问,把恶意文件覆盖到FTP客户端当前目录之外的位置上。

当wget处理来自FTP服务器的NLST应答时,RFC规定需要FTP客户端在包含目录信息时需要详细检查输入,而wget没有对此信息进行充分检查,因此,如果恶意FTP服务程序提供的文件包含目录信息如下字符:

"../","/path","..\"(windows系统下),"C:"(windows系统下),"..." (windows系统下等于../..)

当wget使用一些通配符进行下载时,没有检查这些文件路径信息,可造成客户端的目录遍历,盲目下载到客户端指定目录以外位置上。如果熟知客户端系统中文件名和相应目录,可以直接覆盖这些文件,造成拒绝服务等攻击。

服务器被攻击问题如何解决?

当服务器被攻击时,最容易被人忽略的地方,就是记录文件,服务器的记录文件了黑客活动的蛛丝马迹。在这里,我为大家介绍一下两种常见的网页服务器中最重要的记录文件,分析服务器遭到攻击后,黑客在记录文件中留下什么记录。

目前最常见的网页服务器有两种:Apache和微软的Internet Information Server (简称IIS)。这两种服务器都有一般版本和SSL认证版本,方便黑客对加密和未加密的服务器进行攻击。

IIS的预设记录文件地址在 c:winntsystem32logfilesw3svc1的目录下,文件名是当天的日期,如yymmdd.log。系统会每天产生新的记录文件。预设的格式是W3C延伸记录文件格式(W3C Extended Log File Format),很多相关软件都可以解译、分析这种格式的档案。记录文件在预设的状况下会记录时间、客户端IP地址、method(GET、POST等)、URI stem(要求的资源)、和HTTP状态(数字状态代码)。这些字段大部分都一看就懂,可是HTTP状态就需要解读了。一般而言,如果代码是在200到299代表成功。常见的200状态码代表符合客户端的要求。300到399代表必须由客户端采取动作才能满足所提出的要求。400到499和500到599代表客户端和服务器有问题。最常见的状态代码有两个,一个是404,代表客户端要求的资源不在服务器上,403代表的是所要求的资源拒绝服务。Apache记录文件的预设储存位置在/usr/local/apache/logs。最有价值的记录文件是access_log,不过 ssl_request_log和ssl_engine_log也能提供有用的资料。 access_log记录文件有七个字段,包括客户端IP地址、特殊人物识别符、用户名称、日期、Method Resource Protocol(GET、POST等;要求哪些资源;然后是协议的版本)、HTTP状态、还有传输的字节。

我在这里所用的是与黑客用的相似的模拟攻击网站方式和工具。(注意:在本文中所介绍的方法请大家不要试用,请大家自觉遵守网络准则!)

分析过程

网页服务器版本是很重要的信息,黑客一般先向网页服务器提出要求,让服务器送回本身的版本信息。只要把「HEAD / HTTP/1.0」这个字符串用常见的netcat utility(相关资料网址:)和OpenSSL binary(相关资料网址:)送到开放服务器的通讯端口就成了。注意看下面的示范:

C:nc -n 10.0.2.55 80

HEAD / HTTP/1.0

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Date: Sun, 08 Mar 2001 14:31:00 GMT

Content-Type: text/html

Set-Cookie: ASPSESSIONIDGQQQQQPA=IHOJAGJDECOLLGIBNKMCEEED; path=/

Cache-control: private

这种形式的要求在IIS和Apache的记录文件中会生成以下记录:

IIS: 15:08:44 11.1.2.80 HEAD /Default.asp 200

Linux: 11.1.2.80 - - [08/Mar/2001:15:56:39 -0700] "HEAD / HTTP/1.0" 200 0

虽然这类要求合法,看似很平常,不过却常常是网络攻击的前奏曲。access_log和IIS的记录文件没有表明这个要求是连到SSL服务器还是一般的网页服务器,可是Apache的 ssl_request_log和ssl_engine_log(在/usr/local/apache/logs目录下)这两个记录文件就会记录是否有联机到SSL服务器。请看以下的ssl_request_log记录文件:

[07/Mar/2001:15:32:52 -0700] 11.1.1.50 SSLv3 EDH-RSA-DES-CBC3-SHA "HEAD / HTTP/1.0" 0

第三和第四个字段表示客户端使用的是哪种加密方式。以下的ssl_request_log分别记录从OpenSSL、 Internet Explorer和Netscape客户端程序发出的要求。

[07/Mar/2001:15:48:26 -0700] 11.1.1.50 SSLv3 EDH-RSA-DES-CBC3-SHA "GET / HTTP/1.0" 2692

[07/Mar/2001:15:52:51 -0700] 10.0.2.55 TLSv1 RC4-MD5 "GET / HTTP/1.1" 2692

[07/Mar/2001:15:54:46 -0700] 11.1.1.50 SSLv3 EXP-RC4-MD5 "GET / HTTP/1.0" 2692

[07/Mar/2001:15:55:34 –0700] 11.1.2.80 SSLv3 RC4-MD5 “GET / HTTP/1.0” 2692

另外黑客通常会复制一个网站(也就是所谓的镜射网站。),来取得发动攻击所需要的信息。网页原始码中的批注字段常有目录、文件名甚至密码的有用资料。复制网站常用的工具包括窗口系统的Teleport Pro(网址:)和Unix系统的wget(网址:)。在这里我为大家分析wget和TeleportPro这两个软件攻击网页服务器后记录文件中的内容。这两个软件能全面快速搜寻整个网站,对所有公开的网页提出要求。只要检查一下记录文件就知道,要解译镜射这个动作是很简单的事。以下是IIS的记录文件:

16:28:52 11.1.2.80 GET /Default.asp 200

16:28:52 11.1.2.80 GET /robots.txt 404

16:28:52 11.1.2.80 GET /header_protecting_your_privacy.gif 200

16:28:52 11.1.2.80 GET /header_fec_reqs.gif 200

16:28:55 11.1.2.80 GET /photo_contribs_sidebar.jpg 200

16:28:55 11.1.2.80 GET /g2klogo_white_bgd.gif 200

16:28:55 11.1.2.80 GET /header_contribute_on_line.gif 200

注:11.1.2.80这个主机是Unix系统的客户端,是用wget软件发出请求。

16:49:01 11.1.1.50 GET /Default.asp 200

16:49:01 11.1.1.50 GET /robots.txt 404

16:49:01 11.1.1.50 GET /header_contribute_on_line.gif 200

16:49:01 11.1.1.50 GET /g2klogo_white_bgd.gif 200

16:49:01 11.1.1.50 GET /photo_contribs_sidebar.jpg 200

16:49:01 11.1.1.50 GET /header_fec_reqs.gif 200

16:49:01 11.1.1.50 GET /header_protecting_your_privacy.gif 200

注:11.1.1.50系统是窗口环境的客户端,用的是TeleportPro发出请求。

注意:以上两个主机都要求robots.txt这个档,其实这个档案是网页管理员的工具,作用是防止wget和TeleportPro这类自动抓文件软件对某些网页从事抓取或搜寻的动作。如果有人提出robots.txt档的要求,常常代表是要镜射整个网站。但,TeleportPro和wget这两个软件都可以把要求robots.txt这个文件的功能取消。另一个侦测镜射动作的方式,是看看有没有同一个客户端IP反复提出资源要求。

黑客还可以用网页漏洞稽核软件:Whisker(网址:),来侦查网页服务器有没有安全后门(主要是检查有没有cgi-bin程序,这种程序会让系统产生安全漏洞)。以下是IIS和Apache网页服务器在执行Whisker后产生的部分记录文件。

IIS:

13:17:56 11.1.1.50 GET /SiteServer/Publishing/viewcode.asp 404

13:17:56 11.1.1.50 GET /msadc/samples/adctest.asp 200

13:17:56 11.1.1.50 GET /advworks/equipment/catalog_type.asp 404

13:17:56 11.1.1.50 GET /iisadmpwd/aexp4b.htr 200

13:17:56 11.1.1.50 HEAD /scripts/samples/details.idc 200

13:17:56 11.1.1.50 GET /scripts/samples/details.idc 200

13:17:56 11.1.1.50 HEAD /scripts/samples/ctguestb.idc 200

13:17:56 11.1.1.50 GET /scripts/samples/ctguestb.idc 200

13:17:56 11.1.1.50 HEAD /scripts/tools/newdsn.exe 404

13:17:56 11.1.1.50 HEAD /msadc/msadcs.dll 200

13:17:56 11.1.1.50 GET /scripts/iisadmin/bdir.htr 200

13:17:56 11.1.1.50 HEAD /carbo.dll 404

13:17:56 11.1.1.50 HEAD /scripts/proxy/ 403

13:17:56 11.1.1.50 HEAD /scripts/proxy/w3proxy.dll 500

13:17:56 11.1.1.50 GET /scripts/proxy/w3proxy.dll 500

Apache:

11.1.1.50 - - [08/Mar/2001:12:57:28 -0700] "GET /cfcache.map HTTP/1.0" 404 266

11.1.1.50 - - [08/Mar/2001:12:57:28 -0700] "GET /cfide/Administrator/startstop.html HTTP/1.0" 404 289

11.1.1.50 - - [08/Mar/2001:12:57:28 -0700] "GET /cfappman/index.cfm HTTP/1.0" 404 273

11.1.1.50 - - [08/Mar/2001:12:57:28 -0700] "GET /cgi-bin/ HTTP/1.0" 403 267

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "GET /cgi-bin/dbmlparser.exe HTTP/1.0" 404 277

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /_vti_inf.html HTTP/1.0" 404 0

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /_vti_pvt/ HTTP/1.0" 404 0

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /cgi-bin/webdist.cgi HTTP/1.0" 404 0

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /cgi-bin/handler HTTP/1.0" 404 0

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /cgi-bin/wrap HTTP/1.0" 404 0

11.1.1.50 - - [08/Mar/2001:12:57:29 -0700] "HEAD /cgi-bin/pfdisplay.cgi HTTP/1.0" 404 0

大家要侦测这类攻击的关键,就在于从单一IP地址发出大量的404 HTTP状态代码。只要注意到这类信息,就可以分析对方要求的资源;于是它们就会拼命要求提供 cgi-bin scripts(Apache 服务器的 cgi-bin 目录;IIS服务器的 scripts目录)。

小结

网页如果被人探访过,总会在记录文件留下什么线索。如果网页管理员警觉性够高,应该会把分析记录文件作为追查线索,并且在检查后发现网站真的有漏洞时,就能预测会有黑客攻击网站。

接下来我要向大家示范两种常见的网页服务器攻击方式,分析服务器在受到攻击后黑客在记录文件中痕迹。

(1)MDAC攻击

MDAC攻击法可以让网页的客户端在IIS网页服务器上执行命令。如果有人开始攻击IIS服务器,记录文件就会记下客户端曾经呼叫msadcs.dll文档:

17:48:49 12.1.2.8 GET /msadc/msadcs.dll 200

17:48:51 12.1.2.8 POST /msadc/msadcs.dll 200

(2)利用原始码漏洞

第二种攻击方式也很普遍,就是会影响ASP和Java网页的暴露原始码漏洞。最晚被发现的安全漏洞是 +.htr 臭虫,这个bug会显示ASP原始码。 如果有人利用这个漏洞攻击,就会在IIS的记录文件里面留下这些线索:

17:50:13 11.1.2.80 GET /default.asp+.htr 200

网页常会只让有权限的使用者进入。接下来我们要让各位看 Apache的access_log记录文件会在登录失败时留下什么线索:

12.1.2.8 - user [08/Mar/2001:18:58:29 -0700] "GET /private/ HTTP/1.0" 401 462

注:第三栏里面的使用者名称是「user」。还有要注意HTTP的状态代号是401,代表非法存取。

服务器被攻击后怎么处理?

1、发现服务器被入侵,应立即关闭所有网站服务,暂停至少3小时。这时候很多站长朋友可能会想,不行呀,网站关闭几个小时,那该损失多大啊,可是你想想,是一个可能被黑客修改的钓鱼网站对客户的损失大,还是一个关闭的网站呢?你可以先把网站暂时跳转到一个单页面,写一些网站维护的的公告。

2、下载服务器日志,并且对服务器进行全盘杀毒扫描。这将花费你将近1-2小时的时间,但是这是必须得做的事情,你必须确认黑客没在服务器上安装后门木马程序,同时分析系统日志,看黑客是通过哪个网站,哪个漏洞入侵到服务器来的。找到并确认攻击源,并将黑客挂马的网址和被篡改的黑页面截图保存下来,还有黑客可能留下的个人IP或者代理IP地址。

3、Windows系统打上最新的补丁,然后就是mysql或者sql数据库补丁,还有php以及IIS,serv-u就更不用说了,经常出漏洞的东西,还有就是有些IDC们使用的虚拟主机管理软件。

4、关闭删除所有可疑的系统帐号,尤其是那些具有高权限的系统账户!重新为所有网站目录配置权限,关闭可执行的目录权限,对图片和非脚本目录做无权限处理。

5、完成以上步骤后,你需要把管理员账户密码,以及数据库管理密码,特别是sql的sa密码,还有mysql的root密码,要知道,这些账户都是具有特殊权限的,黑客可以通过他们得到系统权限!

6、Web服务器一般都是通过网站漏洞入侵的,你需要对网站程序进行检查(配合上面的日志分析),对所有网站可以进行上传、写入shell的地方进行严格的检查和处理。如果不能完全确认攻击者通过哪些攻击方式进行攻击,那就重装系统,彻底清除掉攻击源。

0条大神的评论

发表评论