常规工作组渗透【信息收集】
针对本机的各类信息收集
基础信息收集
确认当前权限
是否需要提权
- network server
- iis应用池提权
- administrator
- system
- root
检查当前机器状态
运行时长
- 主要为了据此大致判断目标管理员平时的管理习惯
了解当前机器的大致配置信息
- 是否为虚拟机
- 打了多少补丁
- 详细系统版本式多少
2003/xp以下的版本
2008-2012之间的版本
2012之后的版本
不同的系统版本自带的工具有所不同,针对某些特性的利用上也有差别 - 防火墙是否开启
- 机器的默认共享有哪些
- 等等等…
本地管理员用户列表
确认当前机器是否需要提权
进程信息
获取当前机器的详细进程列表
用的什么杀软,具体式哪种类型和那个版本
- ESET 企业套装
- 趋势企业套装
- 卡巴企业套装
- 赛门铁克企业套装
- McAfee企业套装
- 360、火绒、defender 等等
- 针对行免杀
检查有无各种常规监控以及各类入侵检测的agent端
- bit9、zabbix、nagios
在内网每台机器上一般都装有对应的agent端 - cacti
非agent搜集。使用snmp - 等等…
获取当前机器已安装软件的详细列表
服务端
- 找可劫持的dll
- 抓各种密码
- 关于内网team viewer的深度利用
- 等等…
个人机
- 用的什么邮件客户端,详细版本是多少
- 用什么VPN客户端,安装目录在哪里
- 用的哪些即使通信聊天工具
实时截屏查看聊天信息 - 有无office套件,详细版本是多少
后期可考虑用来留后门[但不建议这么干] - 等等…
获取当前机器的所有计划任务列表
看看里面有无同行的马
各类密码搜集技巧
搜集当前系统用户 铭文密码及hash
前提需要拥有目标系统管理权限
- 通过常规系统提权利用技巧
尝试 dump lsass.exe进程数据拖到本地解密
- 会遇到新版本卡巴进程保护的问题
从sam中提取本地用户密码hash
- ntlm hash破解
- sha系列 hash破解【内核版本新旧,加密算法也不同】
尝试解密保存在本地的所有 rdp连接密码
需要拥有管理员权限
首先,获取当前机器中的所有rdp连接记录
确认相应目录下是否存在相应的Credentials文件
自行免杀mimikatz 尝试解密保存的rdp明文密码
查找RDP连接记录
尝试解密各类Windows ssh 客户端密码
需要管理员权限
SeureCRT
- 拖整个配置文件目录到本地
会遇到配置加密问题
xshell
- 托整个配置文件目录到本地
putty
-真正运维很少用,非专业个人机居多
从命令历史记录的log文件中搜集各类铭文密码
从各类基础服务配置文件搜集明文密码
通常情况下无需管理员权限,保证对配置文件可读即可
rsync、redis、各类Windows ftp 软件、http基础认证配置文件中保存的密码
搜集各类数据库中保存的明文密码机hash
无需系统管理员,但需要数据库管理员权限
msssql、MySQL、Oracle、db2、postgresql、ldap(金矿)
抓取各类常用软件中的明文密码
以下大部分操作需要管理员权限
浏览器中各类网站的登陆密码
- 此项很重要,运气好可以借助内网机器拿到相应站点的外网站点权限
读取navicat中保存的各类数据库连接密码
读取各类邮件客户端中保存的密码
各类win svn客户端连接密码
各类Windows ftp客户端连接工具中保存的密码
解密系统密码管理器中保存的密码
需要系统管理权限
可借助免杀好的mimikatz进行
搜集本机的各类VPN登陆凭证
需要管理员权限
- 借助免杀号的mimikatz解密保存的pptp密码
- openvpn登陆证书【可能会被加密】
搜集本机各类文件中的账号密码字段
无需管理员权限
windows
- dir + findstr 指定路径下批量搜集密码
- .doc .docx .xls .xlsx .bak .txt 里也有可能存在各种铭文密码
- 回收站的各种密码
Linux
- find + grep 指定路径下批量搜集密码
搜集注册表中保存的各种用户密码字段项值
reg query 各种账号密码字段项值【默认十六进制】
抓取本机所有的无线连接记录及对应明文密码
需要管理员权限
netsh wlan show profiles “无线名称” key=clear
如何批量抓取本机所有的WiFi连接记录及对应的无线密码
汇总整理针对行弱口令字典
根据以上方式搜集的各类密码,制作更加复合目标内网环境的账号密码字典
分析目标管理员的密码设置规律【不一定都是有迹可循】
利用各类 传统键盘记录 来收集密码
CS 或 MSF
内网环境初步分析
基础内网环境判断
- 当前机器是否在域内
- IP、掩码、网关、dns、分别是多少
- 当前机器能不能出网,出口IP式多少
出网刺探 ,先观察那些协议那些端口能正常出网 - 当前机器的网络连接有哪些
尽量关注可直接提权以及能搜集到账号密码的端口
观察有无到达其他内网段的网络连接
有无各种监控和常规入侵检测的agent端口
看下有无同行的shell连接
各类VPN端口,后期维持入口用 - 观察arp缓存记录
看看有无新网段 - 查看本机hosts文件
观察内网解析 - 当前机器有无使用代理
- 当前机器有无存活IP从连接
内网端口安全扫描
- 按照能够快速getshell的优先级尝试进行但端口扫描
严禁在强防护内网下一上来就漫无目的的尝试大规模批量端口扫描 - 随机IP扫
- 在每个扫描请求之间加上适当延迟【3-6不等】
- 尽量用单线程跑【循环延迟即可】
一次只扫一个端口,即使这样扫一个C段实际上也不会太久,而且东京不会太大 - 尝试模拟正常请求连接【telnet】
尽量不要用各种公开工具暴力扫
- msf内置各种内网探测模块【可直接挂在socks下用,相对于其他工具靠谱一些】
- masscan、zmap
适合用来在公网上执行大规模批量端口扫描【无状态】,不适合用在内网 - nmap
适合把上面两种工具的扫描结果整理汇总,然后针对性的精细扫描 - powershell、py、msf、CS
效果会好点
文件共享服务默认端口
- ftp:21
- nfs:2049
- rsync:873
- Linux svn:3690
- Linux samba:tcp/udp 137 138 139
- 尝试从各类共享文件中搜集各种铭文账号密码以及针对服务自身的漏洞和错误配置利用
各类基础web服务默认端口
通常为80-90 80880-8090【http】
443、8443【https】
各类Java web中间件默认端口 7001【Java系列RCE利用】
主要针对各类基础web漏洞的利用
数据库默认端口
msssql:1433
ldap:389
redis:6379
mysql:3306
Oracle:1521
postgresql:5432
提权,快速横向扩展,搜集账号密码
用于Windows横向渗透的默认端口
smb:445
wmi:135
大部分的Windows内网自动化感染也都是基于此端口
winrm:5985、5986
rce,弱口令,多用于win内网中,快速横向扩展
各种远程管理类服务默认端口
rdp:3389
ssh:22
以上两个端口要数一蜜罐
vnc:5900
rdp系列热键后门尝试,ssh,自身漏洞利用,弱口令,隔离突破
VPN服务默认端口
443【VPN产品的默认web端口】
pptp:1723 可爆破
openvpn:1723 可爆破
mail默认端口
pop3:110
smtp:25
imap:143
重点关注 传统owa【自身漏洞利用】,zimbra【自身漏洞利用,常用于Linux下】,IBM…
加密服务端口【非默认】
借助smb ,快速探测内网所有Windows主机
根据机器名命名规则快速定位到内网关键机器【有些机器命名会没有规则】
相对于TCP/UDP端口扫描,动静小,速度快
可协助跨到核心域机器
msf中的探测模块
auxiliary/admin/oracle/oracle_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/winrm/winrm_login
auxiliary/scanner/redis/redis_login
…
借助msf实现内网快速批量化口令测试【只针对某个单密码】
内网“跨平台”文件互传
Linux平台
- ftp客户端【自带】
- wget
- curl
- nc【大多数自带】
- 内网Linux机器间互传文件【scp…】
跨平台文件互传
- 借助目标内网web目录中转
- 借助目标内网的各类文件共享服务中转【ftp】
- Windows --> linux = winscp[win10下会方便很多]
Windows平台
内网Windows机器间文件互推【借助smb】
从远程加载到本地
bitsadmin、win自带ftp客户端、powershell、certutil、vbs脚本(这几个有些杀软会拦截)
wget and curl for Windows【非自带】
- 主要为了解决某些杀软可能会拦截win自带的一些下载工具
域渗透【单域】
域内信息收集
利用spn在目标域内进行精准探测
- 需要具备的基础常识,深入了解Kerberos认证写一下的域内资源请求访问过程
- 不同于常规 tcp/udp 端口扫描,由于spn本质就是正常的Kerberos请求,所以扫描才会显得非常隐蔽,目前针对此类扫描的检测也比较少
- MSSQLSvc【扫描域内所有mssql机器】
通常都是用在内网快速扩机器,运气爆棚的情况下说不定能直接抓到域管 - exchangMDB【扫描域内所有owa机器】
后期横向 、托邮件用 - TERMSERV【扫描域内所有开放了rdp的机器】
低版本Windows可尝试热键后门【shift后门】、高版本rdp后续可用来横向 - WSMAN【扫描域内所有开放了WSMan、WinRm、ps remoting的机器,此项可用于后期域内横向移动】
- 扫描所有VPN机器【后期维持入口用】
- 扫描域内所有DNS、 ldap机器【定位域控用】
- 扫描域内所有ftp机器【翻文件、搜集信息、找密码】
- 扫描域内所有web(http)机器【后期利用内网web抓域管
- 扫描所有SMTP机器【找内网其他mail机器】
定位到相应的机器名后,无比要先顺手ping下,看下机器当前到底在不在线
大部分win系统默认自带spn探测工具【setspn.exe】
- 此操作无需管理员
- 域内机器只要执行
setspn -T 目标域名 -Q */*
即可完整查出当前域内的所有spn
初步定位域管用户有哪些
后续绝大部分的精力都是围绕在抓这些用户的密码hash上,域渗透的核心之一,只不过有的域管用户可能是金庸状态
域控机器是哪几台
直接查询dns记录会方便一些【只要当前机器的dns地址是域内IP即可】
nslookup -type=all _ldap._tcp.dc._msdcs.target.com
另外一种方法是通过上面查出来的spn结果可以看到
- 直接去里面找 OU=Domain Controllers 的所有机器即可
net group "domain controllers" /domain
此方法需要当前机器在域内
扫描内网中同时开了389和53端口的机器【如果当前机器不再域中可借助此方法快速定位】
定位主控【后续导ntds.dit用】
域内需要重点关注的关键组
其它管理员组
技术人员组
财务人员组
人事人员组
目标boss所在组
以及其它的敏感组
后期在侥幸拿到域控后,可能要着重扩到这些人的机器去收集更多资料或者长期控制
搞清不同域之间的信任关系
这关乎到你能不能用一个目标域的账号密码登到另一个目标域中,包括域内的一些利用方式,都会稍有不同
当前域所苦啊内网段有哪些
如果网段间互通,有时候我们也可以通过网段来跨到不同的目标域中
绘制域内关系动态画像
导出域内数据库【ldap】离线分析目标域动态关系图
- BloodHound
导出域内所有dns记录【dnscmd】
导出owa登陆日志
分析域内机器及域用户对应关系【Csvde LDIFDE】
用于快速定位域内关键机器
尝试获取域管密码的一些常规方式
经典的MS14-068 kerberos协议漏洞【不多】
查找sysvol和组策略首选项中保存的密码【注意下KB2962486补丁的问题,也不多】
离线爆破指定五福访问票据【即对应的TGS】
- 需要当前机器用户在目标域内
- 需要运气和强大的GPU支持
- 导出缓存文件后,再利用John转换成hashcat支持的散列格式进行爆破
借助各类基础服务漏洞挨个机器getshell,然后不停的抓明文密码、hash,直到抓到目标域管的明文密码或hash为止【经典的域渗透模式】
- 瞄准目标内网的各类数据库机器
- 瞄准目标内网的各类web机器
- 瞄准目标内网的各类文件共享机器
- 域管可能经常到这些机器上做些维护,难免会留下登陆缓存,相对更容易抓到域管密码
- tasklist循环找域管进程【前提是本地administrator密码能在内网通杀才行,少见】
想办法在目标内网一些关键机器植入传统键盘记录【监听域管密码】
基于各种常规的密码收集工具【通过前面精心汇总的密码字典在内网smb批量扩散循环抓hash】
Windows系列smb漏洞【不多】
通过已控的目标内部邮箱借助多方社工拿到目标域管密码
离线、在线 完整导出域内用户数据
ntdsutil
vshadow
diskshadow
基于volume shadow copy 服务所衍生出的其他各类域内hash导出技巧
dcsync同步
主要是为了备份所有用户名,密码,hash,登陆记录…,留着后期扩展维持用
域管权限维持基础
黄金票据
ssp密码记录【mimilib.dll / mimidrv.sys驱动文件(用于绕过LSA保护)】
hookpasswordchange密码记录【注入lsass.exe进程,重启失效】
DSRM同步指定域用户密码
skeleton key “万能钥匙”【用于临时维持】
SID History
常规GPO【组策略】后门