首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
小谈WIN系统Hacking中的小命令2
来源:vfocus.net 作者:NetPatch 发布时间:2009-09-23  

本文已发于《非安全》
作者:NetPatch
//转载请保留版权,谢谢!

继《小谈WIN系统Hacking中提权前的小命令》之后,NetPatch斗胆再来谈谈一些在Hacking中被大部分人忽略的小命令以及原理(算是科普文章咯)。
其实这些命令,大部分人都知道,也都使用过。但是,却在某些特殊场合,由于没理解原理,没让它们派上用场。废话短说,我们直接进入主题。

一.CMD命令的特殊使用(别一看到这标题,你就失去了兴趣了哦,人不可貌相,海水不可斗量,请读者朋友耐心继续看下去)
为了不让读者看的蒙蒙的,我们先来介绍下原理。(以下内容,均以WIN2k3系统的IIS6为测试环境)
很多人都知道,我们一般拿到的WEBSHELL基本都是GUEST或USER权限,但其实我们的WEBSHELL在2K3上并不仅仅是GUEST或USER权限。呵呵,看到这是不是有点蒙了呢?别急,让NP慢慢道来。IIS6的运行,有分IUSR(来宾账户【GUESTS组权限】)和IWAM(IIS的启动帐户【IIS_WPG组权限】)以及默认的nt authority\network service (IIS内置账户)来运转的。 也就是说,我们用WEBSHELL直接去看目录的东西时,是以IUSR来宾账户的权限去看的,而当我们执行命令时,却是用默认的nt authority\network service (IIS内置账户)或IWAM账户来运行的(以IWAM权限运行的,一般都是后面自己设置的)由于两个用户的权限不一样,就产生了一些权限管理的疏漏。当管理员权限配置不当时,虽然我们以IUSR用户无法跨目录看到别的站点的信息 如图1所示

1.jpg



但是却可用WSH以执行命令的形式,用IIS内置账户或IWAM的权限去查看目标的信息 如图2所示。

2.jpg



这个时候我们就可用用dir命令查询到对方目录有什么文件,用type看到对方文件的内容。如图3所示

3.jpg



COPY一类的内置命令却不好使。如图4所示

4.jpg



为什么会这样呢?我们用CACLS查询了下WEBSHELL所在目录的权限 如图5所示

 5.jpg

我们发现“nt authority\network service”的权限被设置可读.我们再看看别的目录的权限,如图6所示

6.jpg



权限设置跟WEBSHELL目录类似。这种就是典型的权限配置疏漏。但是由于是只读权限,所以我们都没办法COPY东西到我们自身目录,因为nt authority\network service (IIS内置账户)对WEBSHELL所在目录也只是只读权限。若我们COPY到TEMP目录,就会发现,我们COPY成功了,因为TEMP是EVERYONE可写的。管理员的一个权限配置疏漏,给我们留下了一线生机,让我们轻易的获得别的网站的内容和敏感信息。有的时候Dir不了对方的目录,但是却可用Type命令列其文件内容。这又是为什么呢?这个就是枚举权限和读权限的差别了!当我们知道了其中的原理,我们在Hacking中就更能如鱼得水了。当然,攻防双收,管理员看了这个,估计也会注意权限的配置了。尽量避免这种权限配置疏漏的小错误发生了。(建议在能执行命令的WEBSHELL上,习惯性的WHOAMI下,看看当前的权限哦!有的管理员会把应用程序池设置成SYSTEM权限,那就占了很大便宜咯!)

二.IIS虚拟路径获取
有的时候,目标站点久攻不下。新手朋友只能绕道而行,旁注。比如获得了一个SQL SERVER账号,有权限备份,但是找目标站点,却很费劲,特别是没有什么规律的目录,让新手朋友很难入手(高手可用自己用SQL脚本去列举,那菜菜们呢?呵呵,今天我就教大家如何更简单的获取。)。其实IIS的ADSI接口早给我们留了个方便之门。我们将以下VBS代码保存为vWeb.vbs然后在WEBSHELL里调用cscript c:\xxx\vWeb.vbs 就可用利用ADSI接口获得IIS里所有网站的域名以及真实路径。如图7所示

7.jpg

  1. On Error Resume Next
  2. If (LCase(Right(WScript.Fullname,11))="wscript.exe") Then
  3.    wscript.echo Space(12) & "IIS Virtual Web Viewer" & Space(12) & Chr(13) & Space(9) & " Usage:Cscript vWeb.vbs",4096,"Lilo"
  4.    WScript.Quit
  5. End If
  6. Set ObjService=GetObject("IIS://LocalHost/W3SVC")
  7. For Each obj3w In objservice
  8.    If IsNumeric(obj3w.Name) Then
  9.        Set OService=GetObject("IIS://LocalHost/W3SVC/" & obj3w.Name)
  10.        Set VDirObj = OService.GetObject("IIsWebVirtualDir", "ROOT")
  11.        If Err <> 0 Then WScript.Quit (1)
  12.        WScript.Echo Chr(10) & "[" & OService.ServerComment & "]"
  13.        For Each Binds In OService.ServerBindings
  14.            Web = "{ " & Replace(Binds,":"," } { ") & " }"
  15.            WScript.Echo Replace(Split(Replace(Web," ",""),"}{")(2),"}","")
  16.        Next
  17.        WScript.Echo "Path         : " & VDirObj.Path
  18.    End If
  19. Next
复制代码

当然,你也可用自己UP一个adsutil.vbs(微软IIS自带的脚本 c:\Inetpub\AdminScripts\adsutil.vbs 此目录脚本,默认没权限调用)以这样的命令形式调用Cscript.exe c:\xxx\adsutil.vbs ENUM /P W3SVC 执行后效果 如图8所示

8.jpg



不过效率问题,建议大家还是用我提供的脚本来获取。那样简单快捷。只是介绍了下,其实在WEBSHELL下,也有办法调用这些脚本去访问IIS的ADSI接口。虽然只有读的权限,但却给我们提供了不少方便。若是碰到cscript.exe不能使用的,请自行UP吧!
要是你还懒的UP,或者碰到BT管理员,把VBS之类的脚本映射给去掉了。那怎么办呢?嘿嘿,别急,NP再推荐一个强大的命令行小工具 mdutil给你。(mdutil.exe 这是在NT4 Option Pack CD-ROM 中附带的IIS Metabase 处理工具)。我们先来看看mdutil的大体帮助。
Samples:
  mdutil GET W3SVC/1/ServerBindings
  mdutil SET JAROSLAD2/W3SVC/1/ServerBindings ":81:"
  mdutil COPY W3SVC/1/ROOT/iisadmin W3SVC/2/ROOT/adm
  mdutil ENUM_ALL W3SVC
  mdutil ENUM W3SVC/1

mdutil ENUM_ALL W3SVC 在WEBSHELL下执行后效果 如图9所示

9.jpg



是不是感觉很奇妙?我们在nt authority\network service内置账户的权限下,居然轻易的枚举出IIS的配置。下面我们还是以科普为主,让大家了解下其中的奥妙。首先,我们来看看IIS6的Metabase.xml文件的默认ACL(默认权限配置)

  1. ? R 读取
  2. ? W 写入
  3. ? S 限制写入
  4. ? 阅读不安全 U 属性
  5. ? E 枚举项
  6. ? D 写入 DACL (权限)
  7.  
  8. IIS 6.0
  9. ? 默认 ACL: 以下列表描述默认安装 IIS 6.0 时, 都置于 Metabase.xml 目录 ACL:
  10.  
  11. LM –
  12.      W3SVC
  13.         NT AUTHORITY\LOCAL SERVICE
  14.           Access: R UE
  15.         NT AUTHORITY\NETWORK SERVICE
  16.           Access: R UE
  17.         {computername}\IIS_WPG
  18.            Access: R UE
  19.         BUILTIN\Administrators
  20.            Access: RWSUED
  21.         {computername}\ASPNET
  22.            Access: R   E
  23.      W3SVC/Filters
  24.         NT AUTHORITY\LOCAL SERVICE
  25.            Access: RW UE
  26.         NT AUTHORITY\NETWORK SERVIC
  27.            Access: RW UE
  28.         {computername}\IIS_WPG
  29.            Access: RW UE
  30.         BUILTIN\Administrators
  31.            Access: RWSUED
  32.      W3SVC/1/Filters
  33.         NT AUTHORITY\LOCAL SERVICE
  34.            Access: RW UE
  35.         NT AUTHORITY\NETWORK SERVIC
  36.            Access: RW UE
  37.         {computername}\IIS_WPG
  38.            Access: RW UE
  39.         BUILTIN\Administrators
  40.            Access: RWSUED
  41.      W3SVC/AppPools
  42.         NT AUTHORITY\LOCAL SERVICE
  43.            Access:    U
  44.         NT AUTHORITY\NETWORK SERVICE
  45.            Access:    U
  46.        {computername}\IIS_WPG
  47.            Access:    U
  48.         BUILTIN\Administrators
  49.            Access: RWSUED
  50.      W3SVC/INFO
  51.         BUILTIN\Administrators
  52.            Access: RWSUED
  53.      MSFTPSVC
  54.         BUILTIN\Administrators
  55.            Access: RWSUED
  56.      SMTPSVC
  57.         BUILTIN\Administrators
  58.            Access: RWSUED
  59.         NT AUTHORITY\LOCAL SERVICE
  60.            Access:    UE
  61.         NT AUTHORITY\NETWORK SERVICE
  62.            Access:    UE
  63.      NNTPSVC
  64.         BUILTIN\Administrators
  65.            Access: RWSUED
  66.         NT AUTHORITY\LOCAL SERVICE
  67.            Access:    UE
  68.         NT AUTHORITY\NETWORK SERVICE
  69.            Access:    UE
  70.      Logging
  71.         BUILTIN\Administrators
  72.            Access: RWSUED
复制代码

大家认真看属于IIS_WPG组和NT AUTHORITY\NETWORK SERVICE内置账户的权限配置。我们的权限是足够枚举和读取这个文档的。这也是我们为什么在低权限用户下可用枚举IIS配置的原因咯(其他版本的IIS配置文件ACL请到微软官方查阅)

三、巧用命令实现SYSTEM2USER
何谓SYSTEM2USER呢?就是把当前的运行权限从SYSTEM权限转成USER权限。
老鸟们应该都清楚,在SYSTEM权限下是不能进行IPC连接的。而很多时候我们却需要用到IPC。当溢出获得一个SHELL,却不方便传工具什么的,想用IPC那就得靠系统自身的命令去实现咯。或许你会说,用RUNASUSER,但我可用很肯定的告诉你,RUNASUSER在SYSTEM权限下是做不到的。因为它没有登陆会话!(后补:其实SYSTEM下可以用 /:u机器名或IP\用户名 /u:localhost\administrator形式)
那我们要如何才能利用系统自带的命令进行SYSTEM2USER呢?嘿嘿,发展到2K3后,微软为我们提供了一个很好的命令,schtasks!(安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。)
具体参数就请读者自己看相关命令的帮助咯!我这边就大体介绍下如何实现SYSTEM2USER。
1.bat的内容如下
whoami>c:\whoami.txt
net use \\127.0.0.1\ipc$ test /u:administrator
echo test >\\127.0.0.1\c$\good.txt
net use \\127.0.0.1\ipc$ /del
首先我们看下我们的环境,如图10所示

10.jpg



当我们的权限是SYSTEM时,执行1.bat时,就会提示改会话没有登陆。不能进行IPC。
步骤一 schtasks /create /tn "MyApp" /tr c:\1.bat /sc monthly /d 1 /ru username /rp password
我们来解释下参数。
/create 创建计划任务的必要参数
/tn TaskName
指定任务的名称。
/tr TaskRun
指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略该路径,SchTasks.exe 将假定文件在 Systemroot\System32 目录下。
/sc schedule
指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。 值 说明
MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 指定计划的时间单位。
ONCE 任务在指定的日期和时间运行一次。
ONSTART 任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。
ONLOGON 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。
ONIDLE 只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。


步骤二 schtasks /run /tn "myapp"
/run 立即运行指定的计划任务

运行效果如图11所示。

11.jpg



步骤三 schtasks /delete /f /tn "myapp"  
/delete 删除指定的计划任务
/f 阻止确认消息。不警告就删除任务。


为什么不指定时间运行呢,呵呵,为了方便执行命令,我们可用随时更改计划任务要运行的程序的内容。我们可用随时用指定用户去执行。
以上说的均在2K3下测试通过。有什么不明白的或觉得我什么地方有错的,请到www.nspcn.org与我联系。


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·小谈WIN系统Hacking中提权前的小
·续谈Hacking中的小技巧
·DEDECMS小说连载模块0day
·php版ewebeditor 3.8的漏洞
·利用Fly_Flash蠕虫攻击开心网
·Gene6 FTP Server提权方法
·墨尔本及高雄电影节官网漏洞揭露
·电信局入侵实例
·Javascript Paste Keyboard Shor
·unix入侵
·如何使用MySQL提升权限
·如何渗透域
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved