首先在我们拿到一份靶标名单之后我们肯定是先挑软柿子来捏的,目标资产一般来说可将其攻击优先级分为三个梯度:
想要构建一个上帝视野,前期的信息收集工作是必不可少的,无论是了解一个人、一项业务、还是深入一个系统等,都需要信息。渗透测试的本质是信息收集,而个人直观感受就是意料之外,情理之中。对一个大型目标的攻防,资产测绘部分是最为重要的,此时我一般会通过三个维度对其进行收集:
此时在给出的靶标中发现主域名:xxx.xxx.xxx.xxx
;我们针对主域名进行信息收集;通过网络空间安全测绘平台(鹰图平台、360quake、fofa)进行信息收集;此时发现其子域名下搭建了一个制造平台。
在最初开始做资产暴露面收集时,我一般会去找title
关键字和body
关键字;并且将时间拉长至3
年。
title关键字domain="xxx.com" && (web.title="管理" || web.title="后台" || web.title="登录" || web.title="邮件" || web.title="教务" || web.title="注册" || web.title="访客")
body关键字domain="xxx.com" && (web.body="管理" || web.body="后台" || web.body="登录" || web.body="用户名" || web.body="密码" || web.body="验证码" || web.body="系统" || web.body="账号" || web.body="忘记密码")
我一般是先在
既然出现了平台、后台、系统这种关键信息;那我们优先对其进行指纹扫描,发现是Shiro
框架,那么此时我们就准备尝试爆破密钥,因为本次演习等级较高;知晓对方肯定有蓝队师傅在值守,那么就没打算直接上一键利用工具,掏出二开小工具进行使用
注:这里也想针对这个Shiro
框架的渗透进行一个介绍,有的师傅很奇怪有时候明明可以抓到密钥,有的时候又不可以;这里想说的是大型集团一般会存在Waf
,如果你没有针对绕过waf
的爆破脚本那么即使存在密钥;我们常用的工具也是无法获取链子的。这里推荐大家可以对:https://github.com/SummerSec/ShiroAttack2 进行二开,添加绕过Waf
的功能,这对于当下Waf
遍地的攻防有着显著的意义。后续我也会写一篇关于Shiro
反序列化绕过Waf
的文章进行分享。
拿到机器权限后首先要先注意到本机的敏感配置文件,里面有着大量的配置文件,这也是我们获取数据库权限的关键信息
dir /s/b *.conf
此时可以编写一个Go
程序对已经拿下的机器做一个敏感信息的收集,此时我先列出一些配置敏感信息;Go
编译出来的体积相对较小且灵活。
Key: - jdbc - redis - mysql - pgsql - postgresql - oracle - oss. - oss.accessKey - oss.secretKey - secretKey - accessKey - ak - sk - mongondb - password - username - mail - token - datasource - accessKeyId - accessKeySecret - mssql - sqlserver - aliyun - oss - kingbase8 - kingbase - SQLite - Neo4j - access_key - access_token - admin_pass - admin_user - algolia_admin_key - algolia_api_key - alias_pass - alicloud_access_key - amazon_secret_access_key - amazonaws - ansible_vault_password - aos_key - api_key - api_key_secret - api_key_sid - api_secret - api.googlemaps AIza - apidocs - apikey - apiSecret - app_debug - app_id - app_key - app_log_level - app_secret - appkey - appkeysecret - application_key - appsecret - appspot - auth_token - authorizationToken - authsecret - aws_access - aws_access_key_id - aws_bucket - aws_key - aws_secret - aws_secret_key - aws_token - AWSSecretKey - b2_app_key - bashrc password - bintray_apikey - bintray_gpg_password - bintray_key - bintraykey - bluemix_api_key - bluemix_pass - browserstack_access_key - bucket_password - bucketeer_aws_access_key_id - bucketeer_aws_secret_access_key - built_branch_deploy_key - bx_password - cache_driver - cache_s3_secret_key - cattle_access_key - cattle_secret_key - certificate_password - ci_deploy_password - client_secret - client_zpk_secret_key - clojars_password - cloud_api_key - cloud_watch_aws_access_key - cloudant_password - cloudflare_api_key - cloudflare_auth_key - cloudinary_api_secret - cloudinary_name - codecov_token - config - conn.login - connectionstring - consumer_key - consumer_secret - credentials - cypress_record_key - database_password - database_schema_test - datadog_api_key - datadog_app_key - db_password - db_server - db_username - dbpasswd - dbpassword - dbuser - deploy_password - digitalocean_ssh_key_body - digitalocean_ssh_key_ids - docker_hub_password - docker_key - docker_pass - docker_passwd - docker_password - dockerhub_password - dockerhubpassword - dot-files - dotfiles - droplet_travis_password - dynamoaccesskeyid - dynamosecretaccesskey - elastica_host - elastica_port - elasticsearch_password - encryption_key - encryption_password - env.heroku_api_key - env.sonatype_password - eureka.awssecretkey
此时收集到的密码对于我们后续做横向移动有着至关重要的作用,根据经验来判断,某些个大型企业内网中机器的密码均存在前几位的重复,举个例子有个集团叫做:万海集团;那么在其内部各个机器的密码很有可能就是集团名字+年份wanhai2025@!+
或者whqwe@++!
这种形式;所以大家拿完敏感信息后可以整合成密码本;为后续的横向移动做好准备。
那先把目光放在这台被拿下的机器上面;在这里建议各位师傅在打下一台机器后不要急着上线C2
,本机的信息收集还是要老老实实的做一遍,对机子有大致的了解;然后可以翻一下机器上的配置文件,大家有没有发现,这两年的攻防演习中数据分的地位越来越高;往往你可能在内网打得累死累活的也还没拿下域控时,别的队伍直接在外网夸夸刷数据泄露分。所以呢翻翻配置文件看看能不能多拿点数据分呀这样子。做了一下基础的信息收集;此时发现存在杀毒软件ESET Security
企业版
此时无论你上传Cobalt Strike
还是Vshell
亦或是Adaptixde
、Havoc
的beacon 都会被杀掉,还是老老实实的做一遍免杀;在我个人打点时我会优先选择将肉机上线到Vshell
进行管控,Vshell
可以直接搭建内网隧道;这对于我们前期做内网信息收集很方便,此时我会选择把Vshell
当做一个管理端来做内网穿透;然后在进行内网渗透时再把权限转到Cobalt Strike
,Cobalt Strike
拥有众多优秀的插件可以让你在内网渗透时事半功倍的进行横向移动。免杀的话可以现在网上搜,实在没有的话在自己动手
嘻嘻嘻,好用爱用。上线后搭建隧道在上个免杀的fscan
开扫;我一般会先爆破一下rdp
和数据库;再找一台内网机子来做横向移动,不然动静太大入口点机器掉了就糟糕了
到了内网那就好办了,因为存在ESET Security
杀软和深信服态势感知;这个时候可不能轻举妄动;传入免杀的fscan
和netspy
;fscan
先扫资产,netspy
扫内网可达网段,此时速率一定要调低!调低!调低!内网的打法还是那几样,掏出nday、1day
去打;能先拿数据库、主机权限先拿数据库主机权限;再不济再去拿web
权限。此时的内网渗透略...我个人是会先找个主机权限,然后再将这个主机当做跳板机;这样子被蓝队发现也不至于连入口点的权限都掉。在内网渗透中就没有必要像在外网中死磕一个点;能打就打不能打就走,优先拿主机权限来制造后期的横向移动。tips
:此时这里也分享一个如果临时没有免杀工具或者真的过不了免杀的方法:使用火绒的强碎粉碎,找到杀软的安装目录;直接粉碎...
此时在内网渗透中如果有拿下主机权限就已经可以开始进行内网横向移动了
Rdp
上去后再做信息收集,发现存在域内机器
基础主机信息收集
ipconfig /all
:查看IP配置、DNS服务器(通常为域控)。
systeminfo
:获取操作系统、补丁、域信息。
net time /domain
:确认域连接状态并探测域控主机名。
net config workstation
:显示计算机名、用户名、工作站域。
whoami /all
:查看当前用户权限、SID、所属组。
用户与组枚举
net user /domain
:列出域内所有用户。
net user <username> /domain
:查询指定域用户详细信息。
net group /domain
:列出域内所有组。
net group "Domain Admins" /domain
:枚举域管理员组成员。
net group "Enterprise Admins" /domain
:枚举企业管理员组成员(林根域)。
计算机对象枚举
net group "Domain Computers" /domain
:列出域内所有计算机(传统)。
Get-ADComputer -Filter * -Properties * | Select-Object Name, OperatingSystem (PowerShell)
:更全面的计算机信息获取。
域信任关系发现
nltest /domain_trusts /all_trusts /v
:枚举当前域的所有信任关系(域/林信任)。
Get-ADTrust -Filter * -Properties * | Select-Object Name, Direction, Source, Target
(PowerShell)。
组策略信息提取 `gpresult /H report.html /Scope Computer