免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
工作组和域环境
我的理解:
工作组就是还是局域网一样只是大一点里面的电脑很多,每个电脑还是都是单独的电脑没有受人控制。然后域就是有很多电脑,这些电脑由一台域控主机控制,只有他可以对域里面的电脑做任何事情,而且使用电脑的人的账号可以在这个域里面的任何一个电脑进行登录,但是他的权限由域控赋予。在我们自己的电脑上面的登录使用whoami查看看到了就是我们的电脑的版本和用户名,但是在域里面登录了一台主机使用whoami查看到的是域名和用户名
域渗透的思路就是:
通过域成员主机,定位出域控制器IP及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP,设法从域成员主机内存中dump出域管理员密码,进而拿下域控制器、渗透整个内网。
域成员主机——>定位出域控制器IP及域管理员账号——>域成员主机作为跳板——>域管理员登陆过的主机IP——>从域成员主机内存中dump出域管理员密码——>拿下域控制器、渗透整个内网
-
- 当前机器角色的判断(个人|文件服务器|邮件服务器等)
- 当前机器网络环境判断(局域网|工作组|域环境)
- 当前机器角色功能判断(任务|端口|服务|密码|漏洞|配置等)
信息收集:
常用命令
-
systeminfo 详细信息
-
netstat -ano 端口列表
-
route print 路由表
-
net start 启动服务
-
tasklist 进程列表
-
schtasks 计划任务
-
ipconfig /all 判断存在域
-
net view /domain 判断存在域
-
net time /domain 判断主域
-
netstat -ano 当前网络端口开放
-
nslookup 域名 追踪来源地址
-
wmic service list brief 查询本机服务
-
net config workstation 查询当前登录域及登录用户信息
-
wmic startup get command,caption 查看已启动的程序信息
信息类收集-网络&用户&域控等
- 使用命令net view /domain 查看是否有域 或者使用net time domain 查看域的时间,如果有域就会返回时间
- 使用 net user /domain 查看域的用户
-
net view /domain 查询域列表
-
net time /domain 从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判 断主域,主域一般用做时间服务器
-
net localgroup administrators 本机管理员【通常含有域用户】
-
net user /domain 查询域用户(当前域)
-
net group /domain 查询域工作组
-
net group “domain computers” /domain 查看加入域的所有计算机名
-
net group “domain admins” /domain 查询域管理员用户组和域管用户
-
net localgroup administrators /domain 查看域管理员
-
net group “domain controllers” /domain 查看域控
-
net accounts /domain 查看域密码策略
-
ping 得到域控计算机名可以得到域控ip
关键信息类收集-密码&凭据&口令等
旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备
计算机用户HASH,明文获取-mimikatz(win),mimipenguin(linux)
计算机各种协议服务口令获取-LaZagne(all),XenArmor(win),CS插件
自动化工具探针-插件&Adfind&BloodHound
-
https://github.com/k8gege/LadonGo
-
https://github.com/BloodHoundAD/BloodHound
-
http://www.joeware.net/freetools/tools/adfind/index.htm
cs上面可以添加许多插件,通过这些插件可以增加很多功能点
adfind是和插件一起使用的,通过上传程序自动收集信息
-
列出域控制器名称:AdFind -sc dclist 查询当前域中在线的计算机:AdFind -sc computers_active
-
查询当前域中在线的计算机(只显示名称和操作系统):AdFind -sc computers_active name
-
operatingSystem 查询当前域中所有计算机:AdFind -f “objectcategory=computer”
-
查询当前域中所有计算机(只显示名称和操作系统):AdFind -f “objectcategory=computer” name
-
operatingSystem 查询域内所有用户:AdFind -users name 查询所有GPO:AdFind -sc gpodmp
bloodhound是一款图式化的拓扑图一样的渗透流程分析工具
BloodHound是一种单页的JavaScript的Web应用程序,构建在Linkurious上,用Electron编译,NEO4J数据库是PowerShell/C# ingestor.
BloodHound使用可视化图来显示Active Directory环境中隐藏的和相关联的主机内容。攻击者可以使用BloodHound轻松识别高度复杂的攻击路径,否则很难快速识别。防御者可以使用BloodHound来识别和防御那些相同的攻击路径。蓝队和红队都可以使用BloodHound轻松深入了解Active Directory环境中的权限关系。
-
安装和使用
-
http://cn-sec.com/archives/146548.html
-
https://github.com/BloodHoundAD/BloodHound/releases
这里优先使用CS的插件来进行演示
先使用cs生成个32位木马 在虚拟机上线后 找到合适的提权漏洞 优先拿到system权限在进行其他操作 优先使用32位木马 64位bug太多
然后使用它的种种功能来进行提权操作
插件也有很多收集信息的功能
可以通关cs插件 欧拉 上传adfind专门搜集内网信息工具
收集密码 IP 用户 等等常规信息
通过BloodHound域分析使用(给出渗透流程)
项目地址:GitHub - BloodHoundAD/BloodHound: Six Degrees of Domain Admin
安装教程:内网渗透(十六) | 域分析工具BloodHound的使用 | CN-SEC 中文网
1、启动neo4j neo4j.bat console
2、启动BloodHound BloodHound.exe
3、运行程序后将生成数据导入,筛选查看
请切换java版本11