• 2019-9-25:渗透测试,基础学习,Hydra BP爆破,js基本知识,banner信息收集笔记


    使用BP和Hydra爆破相关的服务
    hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用hydra爆破c/s结构的服务,使用bp爆破web登陆窗口
    爆破需要的几个条件,爆破工具+字典
    字典:就是一些用户名或口令,弱口令、使用社工软件生成的集合

    BP爆破步骤,单向爆破
    1,拦截数据包,将拦截的数据包发送到intruder模块
    2,在intruder模块,进入positions选项卡下,点击clear取消自动选择的爆破对象,然后选中需要爆破的值,点击add,例如password=xxx,在爆破过程中,使用字典替换xxx
    3,进入intruder模块的pyloads选项卡,找到payload options [simple list]区域,点击load,找到字典位置,加载密码字典
    4,进入Intruder模块的options选项卡下,设置需要的规则,如线程、grep-match匹配规则,grep-extract排除规则
    5,回到pyloads选项卡下,点击start attack开始爆破,或者在positions下也有开始爆破
    6,爆破结束之后,点击length,对结果进行排序,放在前几排的测试结果,可能是成功的结果

    如何快速定位爆破的正确结果
    1,需要知道登陆成功之后返回来的字符串,如welcome
    2,可以在爆破结果窗口的Options选项卡中的,匹配规则“grep-match”下添加,在results中字符下有选中的就可能是正确结果

    BP爆破步骤,多项爆破
    1,拦截数据包,发送数据包步骤同单向一样
    2,在intruder模块下的,进入Positions选项卡下,选择需要爆破的多项值,点击add,例如username=xxx,password=xxx,然后attack type攻击类型下,选择cluster bomb模式
    3,进入intruder模块下,进入payloads选项卡下,paload sets下payload set选择“1”,paload type选择需要的攻击载荷类型,simple list就是字典模式,然后在下边的payload options[simple list]区域下,加载需要的字典,此处加载的user字典,因为payload set 选择的1,就是自己第一个添加add的值,然后paload set 选择 “2”,字典加载密码字典

    Hydra爆破SSH/FTP等服务
    1,hydra -h 查看帮助信息,爆破单向
    hydra -l 用户名 -P大写 密码字典 ftp://ftpip
    hydra -l 用户名 -P大写 密码字典 ip ftp
    -l,表示知道爆破账号
    -P大写,后跟密码字典路径

    Hydra多项爆破
    hydra -L 用户字典 -P密码字典 服务://ip
    -L大写,后跟用户字典
    -P大写,后跟密码字典

    Hydra常用命令
    hydra -L logins.txt -P PWS.txt -Mtargets.txt ssh
    hydra -l admin -p password ftp://192.168.1.0/24
    -p指定密码
    如果爆破的服务修改了端口,使用-s指定需要的端口

    JS运算符
    常规运算符
    加+
    减-
    乘*
    除/
    取余%
    自增++
    自减--

    赋值运算符
    赋值=
    += a+=3 等于 a=a+3
    -= a-=3 等于 a=a-3
    *= a*=3 等于 a=a*3
    /= a/=3 等于 a=a/3
    %= a%=3 等于 a=a%3

    字符串链接符号
    +
    a="wo" b="sym" c = a+b 就是 ‘wo sym’
    a=10 b='string' c=a+b 就是输出 '10string'

    JS比较运算符
    等于==,只比较大小,不比较类型
    绝对等于===,会比较类型
    不等于!=
    不绝对等于!==
    大于>
    小于<
    大于或等于 >=
    小于或等于 <=

    逻辑运算符
    and &&
    or ||
    not !

    条件判断语句
    if(条件=true){语句体}
    if(条件为真执行1否则执行2){语句体1}else{语句体2}
    if(条件1){语句体1}else if(条件2){语句体2} else{语句体3},条件1满足执行语句体1,否则判断条件2是否满足,满足执行语句体2,否则执行语句体3
    switch(结果){ case 1:代码1 break; case 2: 代码2 break; default:代码3},首先设置一个结果,随后case下代码写满足结果时候执行的代码,default为case都不满足的时候执行

    js循环
    for循环
    for(开始前执行;执行时条件:循环后执行){语句体},第一部分开始前执行的可以在外边声明好,但是;分号不能少,循环后执行部分可以在语句体执行之后写出来,前边的;分号不能少
    var x ,对象
    如果需要遍历对象的话,使用for in来遍历,for( x in 对象){print+=对象【x】;}

    while循环
    while(条件){代码},先去判断条件
    do{代码} while(条件),先去执行语句体,再去判断条件

    Break 和 Continue 语句
    break:跳出整个循环
    continue:跳出满足条件时候的循环,然后继续循环

    js判断数据类型
    typeof操作符来判断数据类型,array数组本质也是对象

    banner信息收集
    banner信息,就是欢迎语,在banner信息中可以得到软件开发商、软件名称、软件版本、服务等信息,通过这些 信息可以使用某些工具去使用相对应的exp去进行攻击
    前提条件,需要和目标建立链接,只有建立了链接才能获取对应的banner信息,目标服务器上可能队banner信息进行了隐藏或禁止读取

    收集方式:
    1,使用NC(netcat,瑞士军刀)
    nc -nv ip 端口
    -n 表示以数字形式显示ip
    -v 表示显示详细信息
    2,使用dmitry(扫描服务器的软件,基于全连接的扫描方式)
    dmitry -pb ip
    3,nmap -sT -p1-200 --script=banner ip
    -sT,表示使用TCP方式扫描
    -p 1-200表示扫描端口
    --script 使用脚本是banner
    4,使用amap -B ip 端口
    -B表示获取banner信息
    5,使用浏览器插件,比如wappalyzer,分析目标网站的平台架构、网站服务器配置环境、语言
    6,使用tamper data或者Live http headers等工具拦截数据包查看,需要管住响应包中的两个参数,server、x-powered-by

  • 相关阅读:
    mysql小数和类型转换函数
    concat()用法
    sql修改表名字段名
    having函数,case when与order by
    volatile实现原理与应用
    synchronized的实现原理与应用
    java8策略模式
    centos7快速升级gcc
    一个用户从发起请求到接收到响应,中间经过哪些服务,每个服务做什么事情
    Java注解
  • 原文地址:https://www.cnblogs.com/sym945/p/11587185.html
Copyright © 2020-2023  润新知