freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用linWinPwn自动枚举活动目录并检测安全漏洞
2022-04-24 18:25:49
所属地 广西

关于linWinPwn

linWinPwn是一个功能强大的Bash脚本,能够帮助广大研究人员以自动化的方式实现活动目录枚举以及安全漏洞扫描。该脚本基于很多现有工具实现其功能,其中包括:impacket、bloodhound、crackmapexec、ldapdomaindump、lsassy、smbmap、kerbrute和adidnsdump。

工具安装

首先,我们需要使用下列命令将该项目源码克隆至本地,然后给脚本提供可执行权限:

git clone https://github.com/lefayjey/linWinPwn

cd linWinPwn; chmod +x linWinPwn.sh

安装Linux和Python包:

sudo apt update

sudo apt install python3 python3-dev python3-pip python3-venv nmap smbmap john libsasl2-dev libldap2-dev ntpdate -y

sudo pip install -r requirements.txt

wget -q "https://raw.githubusercontent.com/micahvandeusen/gMSADumper/main/gMSADumper.py" -O ./Scripts/gMSADumper.py

wget -q "https://raw.githubusercontent.com/zyn3rgy/LdapRelayScan/main/LdapRelayScan.py" -O ./Scripts/LdapRelayScan.py

wget -q "https://raw.githubusercontent.com/ropnop/windapsearch/master/windapsearch.py" -O ./Scripts/windapsearch.py

在非Kali的设备上,请去掉“#Non-Kali variables”之后的代码注释,然后运行下列命令:

sudo pip install impacket crackmapexec

mkdir -p wordlists && wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz -O ./wordlists/rockyou.txt.tar.gz && gunzip ./wordlists/rockyou.txt.tar.gz && tar xf ./wordlists/rockyou.txt.tar -C ./wordlists/ && chmod 644 ./wordlists/rockyou.txt && rm ./wordlists/rockyou.txt.tar && wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Usernames/cirt-default-usernames.txt -O ./wordlists/cirt-default-usernames.txt

如果你遇到了DNS相关的问题,请直接运行“update_dns”脚本。该脚本将会更新“/etc/resolv.conf”文件,并在运行脚本前进行配置备份:

chmod +x update_dns.sh

sudo ./update_dns.sh <DC_IP>

工具使用

linWinPwn脚本包含了四个模块,我们可以单独使用或同时使用。

默认使用(最快):

./linWinPwn.sh -O -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP> -o <output_dir>

使用用户模块:

./linWinPwn.sh -M user -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP> -o <output_dir>

使用所有模块:

./linWinPwn.sh -M all -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP> -o <output_dir>

活动目录枚举:

./linWinPwn.sh -M ad_enum -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP_or_Target_Domain> -o <output_dir>

基于Kerberos的渗透测试:

./linWinPwn.sh -M kerberos -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP_or_Target_Domain> -o <output_dir>

网络共享扫描:

./linWinPwn.sh -M scan_shares -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]>  -t <Domain_Controller_IP_or_Target_Domain> -o <output_dir>

漏洞检测:

./linWinPwn.sh -M vuln_checks -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]>  -t <Domain_Controller_IP_or_Target_Domain> -o <output_dir>

MSSQL枚举:

./linWinPwn.sh -M mssql_enum -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]>  -t <Domain_Controller_IP_or_Target_Domain> -o <output_dir>

密码转储:

./linWinPwn.sh -M pwd_dump -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]>  -t <Domain_Controller_IP_or_Target_Domain> -S <domain_servers_list> -o <output_dir>

适用场景

针对不同的使用场景或案例,linWinPwn脚本能够执行不同的检测。

场景1:未认证

模块:ad_enum

RID爆破

用户枚举

ldapdomaindump匿名枚举

检测是否强制开启ldap-signing,检测LDAP中继

模块:Kerberos

Kerbrute用户喷射

ASREPRoast

模块:scan_shares

SMB共享匿名枚举

模块:vuln_checks

WebDav和Spooler服务枚举

检测Zerologon、Petitpotam和Nopac安全问题

./linWinPwn.sh -M user -t <Domain_Controller_IP_or_Target_Domain>

场景2:标准账号(使用密码、NTLM哈希或Kerberos令牌)

./linWinPwn.sh -M user -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP_or_Target_Domain>

场景3:管理员账号(使用密码、NTLM哈希或Kerberos令牌)

./linWinPwn.sh -M all -d <AD_domain> -u <AD_user> -p <AD_password_or_hash[LM:NT]_or_kerbticket[./krb5cc_ticket]> -t <Domain_Controller_IP_or_Target_Domain> -S <domain_servers_list>

工具使用演示

使用演示一:点我观看

使用演示二:点我观看

项目地址

linWinPwn:GitHub传送门

参考项目

S3cur3Th1sSh1t- WinPwn

SecureAuth- impacket

byt3bl33d3r, mpgn, Porchetta Industries- crackmapexec

Fox-IT- bloodhound-python

dirkjanm- ldapdomaindump, adidnsdump

Hackndo- lsassy

TarlogicSecurity- kerbrute

zer1t0- certi.py

ly4k- Certipy

micahvandeusen- gMSADumper

n00py- LAPSDumper

zyn3rgy- LdapRelayScan

ShawnDEvans- smbmap

ropnop- windapsearch

# 漏洞检测 # 活动目录 # 活动目录枚举 # AD安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录