第三天
入侵一个真实目标的思路以及步骤
1.确认目标(如:西安明德理工学院)
注意:在不影响教学以及学员老师自身的学习工作的情况下进行
2.收集信息
3.收集(明德)子域名
4.收集学号、工号以及(明德)公开的文件,文件里可能有默认密码或者默认密码的规则
规律:学号:学号; 学号:123456; 学号:身份证后6位等
测试选人名比较特殊的,不容易重复的
利用Google搜索敏感信息
1.site:域名 intext:管理|后台|登陆|用户名|密码|验证码|系统|帐号|manage|admin|login|system
2.site:域名 inurl:login|admin|manage|manager|admin_login|login_admin|system
3.site:域名 intext:"手册"
4.site:域名 intext:"忘记密码"
5.site:域名 intext:"工号"
6.site:域名 intext:"优秀员工"
7.site:域名 intext:"身份证号码"
8.site:域名 intext:"手机号"
例如:site:xxx.edu.cn sfz
site:xxx.edu.cn xh
等查找,一般隐私信息都会以doc、pdf、xls 这些文件发布到网上,所以造成信息泄露
1、
site:xxx.edu.cn intitle:学号 filetype:pdf OR filetype:xls OR filetype:doc
可能会有默认密码的收获2、
如果以上没有找到自己想要的信息,你就可以去找所在学校相关的教育局站点,因为助学金等奖励都会通过当地教育局进行展开
site:xxx.edu.cn ( "默认密码" OR "学号" OR "工号" OR "助学金")3、
也可以加入班群,表白墙等容易泄露信息的地方;包括使用抖音平台,可以去检索某某大学录取通知书之类的信息,很容易可以找到该学校的一些用户信息
利用谷歌查找脆弱的系统获取信息
系统初始密码获取
site:xxx.edu.cn ( "默认密码" OR "初始密码" OR "工号")
一些提高密码喷洒与爆破出货率的小技巧
常用的弱口令:admin、admin123、admin888、123456、111111、666666、888888、123123、654321等,在这之下匹配用户名
参数Fuzz字典:
Fuzz是模糊的意思,因为不知道上传的api参数是什么,所以需要测试,测试就需要字典(探测api接口上传的参数)
用户名字典
先把所有比较小的字典做一个合并去重 ,再做一些针对性补充,添加一些数据,让它变得更好用
补充:
1、往里添加两位英文字符排列组合(aa-zz)+三位英文字符排列组合(aaa-zzz)相关的字符串(如:张伟—zw)
2、尽可能多收集国内常见的姓名的拼音形式,比如上面提到的张伟,用户名可能就是zhangwei,很好理解
3、搜集一些常见的英文单词(尤其是名词)添加到字典里,
4、测试手机号
GitHub - TheKingOfDuck/fuzzDicts: You Know, For WEB Fuzzing ! 日站用的字典。
5、一些用户id和简单的编号,这个不需要太多,比如001、0001、111111这类
6、一些常见用户名进行拓展,比方说admin、test用户,实际上常见的不只是admin、test,还有 admin1、test1、admin01、test01、admin001、test001等
7、加一些payload,比如最经典的注入payload
admin'--admin' or ''=''--admin' or 1=1--'or 1=1--09 10 万能密码这种payload就算要加,也是集中加到字典的最后,因为有waf(web application firewall )的情况下跑这些payload毫无疑问是要被拦截的,有风险的东西还是放到最后来跑
密码字典
从各个字典项目里找小型一点的密码字典,合并去重作为基础。然后我们还得补充一些东西
补充:
1、简单来说是键盘顺序排列组合的一些密码。比如 QWER1234QAZWSX123,或者九宫格位置相关的一些密码 456852159753等,456852是数字九宫格中间的十字,159753则是九宫格斜线交叉。
2、也是一种常见的密码规律。大概是关键用户名+数字(年份),或者关键用户名+特殊字符+数字(年份)
典型例子有:
Admin@123
admin@2024
Admin!@#123
Test123
Test!@2024
可以用字典生成器来生成,如:白鹿
常规喷洒-爆破流程
喷洒很好理解,我们固定密码为123456、111111或者admin(一般123456就够了),然后导入用户名字典,大部分情况下密码正确、密码错误但用户名正确、密码和用户名都错误,三种情况会分别对应不同的返回长度或者不同的响应内容
不知道存活用户的喷洒-爆破流程
我们首先可以挑一些常见的高价值用户名进行爆破测试,例如admin、root、test等等,也可以多试几种常见的弱口令进行喷洒,不止123456,比如还可以试试上面提到的111111、admin、888888等等,想办法构造 admin admin123;root root123;test test123等去测试,也可以用户名+@123 ;用户名+@年份 ;用户名首字母大写+@123等,可以让喷洒成功率提高很多
特殊情况之手机号作为用户名
常见的一种情况,就是一些登录口可能只让我们用手机号+密码去登录
特殊情况之邮箱作为用户名
可以先确定目标公司的企业邮箱是什么,一般都和他们的主域名有关。比如某知名视频网站bixxbixx.com,企业邮箱大概率是@bixxbixx.com
针对目标专门设计密码字典去进行爆破
可以通过目标公司名或域名关键词、年份、数字、特殊字符去生成目标专属的密码字典
第四天
子域名收集
1、收集大量子域名
方法:网站收集:ip138.com;whois (效果一般般,可以作为参考,最后合并)
2、检测存活
方法:burpsuite;httpx;自己写python脚本(request、get、判断返回值)
httpx:
./httpx -status-code -title -list urltest.txt-status-code:获取每个 URL 的 HTTP 状态码
-title:提取每个 URL 的页面标题
-list:读取 URL 列表搜索引擎:https://fofa.so/
3、检测子域名指纹
工具:棱洞(EHole)
js未授权接口
工具:packerfuzzer