当前位置: 首页 > news >正文

C++入侵检测与网络攻防之暴力破解

目录

1.nessus扫描任务

2.漏洞信息共享平台

3.nessus扫描结果

4.漏扫报告的查看

5.暴力破解以及hydra的使用

6.crunch命令生成字典

7.其他方式获取字典

8.复习

9.关于暴力破解的防御的讨论

10.pam配置的讲解

11.pam弱密码保护

12.pam锁定账户

13.shadow文件的解析

14.hashcat命令的使用


1.nessus扫描任务

1 nessus 漏扫工具
    安装方式
        将deb安装包上传到 kali

        dpkg -i <安装包地址>
        /etc/init.d/nessusd start

        打开浏览器访问 nessus的服务
            https://ip:8834/
                报错,证书不能够验证(证书是自签),添加例外,强制访问

            1 创建管理员账号以及密码
            2 激活,填入激活码
            3 等待线上安装插件

    如果线上安装失败,此时就要执行这个
    /opt/nessus/sbin/nessuscli update

    更新成功之后,登录到nessus的管理界面
    添加扫描任务,填入任务名以及扫描的ip地址,保存后开始扫描

2.漏洞信息共享平台

2 漏洞信息共享平台
    https://nvd.nist.gov/
    http://cve.mitre.org/
    http://www.cnvd.org.cn/
 

3.nessus扫描结果

3 暴力破解
    原理:穷举各个密码,进行破解尝试,如果成功,就找到了对应的密码
        银行卡 000000 - 999999  尝试一遍


    成功率: 100% (密码全集尝试)
    非常耗时间


    从全集挑选一些常用的或者常见的密码进行尝试,成功率也很高,字典攻击
        成功条件:密码字典里边包含一个正确的密码
 

4.漏扫报告的查看

4 hydra命令
    hydra -l msfadmin -P passwd.txt -e nsr -vV -o ssh_ok.log  192.168.16.204 ssh

        -l msfadmin: 指定用户名msfadmin
        -L 用户名字典   :  指定用户名字典(用户名也要猜)

        -p 单个密码:  尝试单个密码
        -P passwd.txt: 指定字典文件passwd.txt

        -e nsr: 额外检查,n 代表空口令, s代表用户名, r代表用户名称逆序(反向)
            s ->    root : root 
            r ->    root : toor

        -vV: 显示详细过程

        -o ssh_ok.log: 输出login/passwd 对到ssh_ok.log

        192.168.16.204: 靶机IP地址

        ssh: 被攻击的协议
            目前 hydra支持的协议
            adam6500  afp  asterisk  cisco  cisco-enable cvs firebird ftp ftps http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc
              ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql(v4) mysql5 ncp nntp oracle oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp radmin2 redis rexec
              rlogin rpcap rsh rtsp s7-300 sapr3 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
 

5.暴力破解以及hydra的使用

5 字典的获取

    自行构造(最笨的方法)
        crunch 最小长度 最大长度 字符集

        crunch 2 2 abc 
            生成 以 abc3个字符组成的所有2位密码

        crunch 2 2 -f /usr/share/crunch/charset.lst numeric
            指定使用某个字符集文件中的特定字符集

    其他方式
        kali默认自带的字典
            /usr/share/wordlists/rockyou.txt

        互联网上面去下载一些公开的字典

        cupp -l  从仓库去下载一些字典

        cupp -i 跟用户做问答最后生成一个字典
 

6.crunch命令生成字典

6 暴力破解防御

    暴力破解成功率100%


    用户名的防御:
        保证账号名不要泄露,尽量不要使用黑客能够随便拿到猜到的用户名(公司名,test,admin)

        但是root用户是肯定存在
        $ sudo vi /etc/ssh/sshd_config
            PermitRootLogin yes
            改为 :
            PermitRootLogin no
            或者改为 prohibit-password  不允许root用户使用密码进行登录,但是可以使用证书进行登录

        可以添加以下选项来控制哪些用户可以登录或者不允许登录
        AllowUsers  xxxuser1 xxxuser2
        DenyUsers root xxxuser1 xxxuser2

        控制每个TCP连接尝试次数,客户端重新连接之后还可以继续进行尝试:
        MaxAuthTries 3

    密码的防御:
    只能延长破解时间
        1 锁定账户
        2 扩充密码全集
            控制密码有大小写字符数字下划线等特殊字符组成 6-32位

7.其他方式获取字典

 PAM
    标识
        解决一个问题:我是谁
        用户名

        系统有张三李四使用,
            zhangsan  -> 张三 
            lisi      -> 李四

    鉴别
        解决一个问题:我是我
        密码

        密码可以改为其他的鉴别方式,指纹、刷脸....


    ubuntu
        ssh登录  ->   输入用户名 -> 密码   -> 进入命令行交互界面
        GUI登录  ->   输入用户名 -> 指纹   -> 进入GUI的桌面


    鉴别的方式随着计算的发展进行调整,需要一个可插拔的方式来实现鉴别的调整  PAM


    linux 什么时候 会触发鉴权?
        1 登录
        2 sudo
        3 passwd
        4 chsh

    pam配置文件的格式
        正常 pam.conf 是5列 ,因为后面每个服务都单独写一个pam文件
            放到 /etc/pam.d  ,第一列是废掉了
    type control module-path module-arguments

    简单理解: 每一行其实就是调用 特定so中的某个接口顺便传参,也是使用配置文件进行编程

    1  type 第一栏,认证鉴别接口类型:(四类接口)
        auth:表示鉴别类接口模块类型用于检查用户和密码,并分配权限
        account:表示账户类接口,主要负责账户合法性检查,确认帐号是否过期,是否有权限登录系统等;
        session:会话类接口。实现从用户登录成功到退出的会话控制;
        password:口令类接口。控制用户更改密码的全过程。
        
        简单说,就是一个接口名字

    2   control  是控制语句

    3   so模块的地址,只需要填文件名,自动去 /lib/x86_64-linux-gnu/security

    4   模块参数

8.复习

shadow密码的破解
    root:$6$WQJmEIbE$u5gns7kaUXd6GdTgNpoFNDGpmdU4O7qPf3DgNCHg57wgOIuwEXKorlZczhBWVoNV6EG8DvkajzYeP8Sgye8Vq1:18015:0:99999:7:::

    第二列就是该用户密码的哈希值
        $6$WQJmEIbE$u5gns7kaUXd6GdTgNpoFNDGpmdU4O7qPf3DgNCHg57wgOIuwEXKorlZczhBWVoNV6EG8DvkajzYeP8Sgye8Vq1

        该字符串的组成形式 $id$salt$encrypted    是以$符号作为分隔符的3列信息

        id    密码加密算法id
              ID  | Method
              ─────────────────────────────────────────────────────────
              1   | MD5
              2a  | Blowfish (not in mainline glibc; added in some
                  | Linux distributions)
              5   | SHA-256 (since glibc 2.7)
              6   | SHA-512 (since glibc 2.7)


        salt  盐 (加料)
            添加一个额外的随机字符串然后再使用哈希算法来计算密码哈希
            1 增加安全性
            2 增加迷惑性
                a用户密码是123456
                b用户密码也是123456


        encrypted
            密码的哈希


    普及知识:
        以下三种类型的计算方式 都是 讲一段数据计算成为另一段数据

        编码   base64
            算法公开,可逆

        加密   des 3des rsa ...
            可逆,加密需要加密密钥,解密也需要解密密钥
            根据加密和解密的密钥是否相等分为对称和非对称

        哈希 MD5 sha1 sha2 sha-256 ...
            将一段数据计算成为一段固定长度的数据,不可逆
            只要两段数据二进制是相同的,计算的结果也是一样的


    使用hashcat来破解shadow文件中的密码哈希
        hashcat -m 1800 <密码哈希的文件> <字典文件>
        
        hashcat依赖硬件资源

9.关于暴力破解的防御的讨论

10.pam配置的讲解

11.pam弱密码保护

  • 攻击机: 用于发起网络攻击的主机,本次课程基于Kali Linux构建攻击机。
    • Kali Linux下载地址
    • 搞渗透测试的专用平台。 
    • Kali Linux是基于Debian的Linux发行版,(和ubuntu是兄弟关系),设计用于数字取证操作系统。 
    • 集成超过300个渗透测试工具, 继承自BackTrack, 并发扬光大
    • 一般来说,“攻击”这个词杀气太重,习惯来讲,一般会说“渗透测试”。
      1. IDS/IPS
  • 攻击检测、分析、与防御平台:
    • IDS: Intrusion Detection Systems, 入侵检测系统
      • IDS在交换式网络中的位置一般选择为:尽可能靠近攻击源、尽可能靠近受保护资源
      • 部署位置: Internet接入路由器之后的第一台交换机上
    • IPS: Intrusion Prevention System, 入侵防御系统
      • 办公网与外部网络的连接部位(入口/出口), 简单的说就是网关
      • 重要服务器集群前端;
      • 办公网内部接入层

12.pam锁定账户

      1. 络链
  • 网络连接: 通过网络将靶机、攻击机和具备检测分析防御功能的网关进行连接。
    • 交换机、网关等
  1. Kali Linux
  •  
    • 了解渗透测试人员的工作平台-kali linux
    • 知道kali linux的安装方法。
    1. Kali Linux
  • Kali Linux是一个基于Debian的Linux发行版,
  • 集成了300多个安全和取证方面的相关工具, 专为渗透测试人员准备,
  • Kali Linux的前身是BackTrack Linux发行版。
  • Back Track是基于Ubuntu的一个Linux发行版。(补充: ubuntu也是基于Debian的Linux发型版)
  • 它由Offensive Security Ltd维护和资助,最先由Offensive Security的MatiAharoni和Devon Kearns通过重写Back Track来完成。
  • Kali Linux有32位和64位的镜像,可用于x86指令集。同时它还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook。用户可通过硬盘、Live CD或Live USB来运行Kali Linux操作系统。


    1.  安装Kali Linux

如今Linux的安装过程已经非常“傻瓜”化,只需要轻点几下鼠标,就能够完成整个系统的安装。Kali Linux操作系统的安装也非常简单。本节将分别介绍安装Kali Linux至硬盘、USB驱动器、树莓派、VMware Workstation和Womuare Tods的详细过程。

      1. ISO

安装到硬盘是最基本的操作之一。该工作的实现可以让用户不使用DVD,而正常的运行Kali Linux。在安装这个全新的操作系统之前,需要做一些准备工作。例如,从哪里得到Linux?对电脑配置有什么要求?……下面将逐一列出这些要求。

  • Kali Linux安装的磁盘空间的最小值是8GB。为了便于使用,这里推荐至少25GB去保存附加程序和文件。
  • 内存最好为512MB以上。
  • Kali Linux的下载地址,下载界面如图1.1所示。

13.shadow文件的解析

14.hashcat命令的使用

相关文章:

  • 项目笔记1:通用 Service的常见方法
  • 通讯录完善版本(详细讲解+源码)
  • 什么是财务管理系统?一文看清其功能及作用!
  • 【AI落地应用实战】借助 Amazon Q 实现内容分发网络(CDN)CDK 构建的全流程实践
  • 腾讯一面面经:总结一下
  • 玉米产量遥感估产系统的开发实践(持续迭代与更新)
  • 《人月神话》50周年遇到AI-那些乐趣和苦恼(01-03)
  • CF-Hero:自动绕过CDN找真实ip地址
  • 计算机组成原理第二章 数据的表示和运算——2.1数制与编码
  • 当智驾成标配,车企暗战升级|2025上海车展
  • 软件技术专业
  • 云服务器和独立服务器的区别在哪
  • 问答页面支持拖拽和复制粘贴文件,MaxKB企业级AI助手v1.10.6 LTS版本发布
  • 算能BM1684升级为BM1688: tpu_mlir转换模型_SDK更新_代码修改_问题排查_代码调试
  • 【MySQL】3分钟解决MySQL深度分页问题
  • 一种专用车辆智能配电模块的设计解析:技术革新与未来展望
  • C#并行编程极大提升集合处理速度,再也没人敢说你程序性能差了!
  • 【信息系统项目管理师】高分论文:论成本管理与采购管理(信用管理系统)
  • 高校学子走进万物纵横:体验边缘计算前沿技术,共探产业创新未来
  • 38 python random
  • 世联行:2024年营业收入下降27%,核心目标为“全面消除亏损公司和亏损项目”
  • 第三款在美获批的国产PD-1肿瘤药来了,影响多大?
  • 上海发布一组人事任免信息:钱晓、翁轶丛任市数据局副局长
  • 财政部:前3月国有企业利润总额10907.4亿元,同比增1.7%
  • 中越海警2025年第一次北部湾联合巡逻圆满结束
  • 安徽铁塔再通报“会议室不雅行为”事件:涉事员工停职检查