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

news2025/4/26 3:48:18

目录

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命令的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理100个小程序-很难吗

20公里的徒步-真难 群里的伙伴发起了一场天目山20公里徒步的活动&#xff0c;想着14公里都轻松拿捏了&#xff0c;思考了30秒后&#xff0c;就借着春风带着老婆孩子就出发了。一开始溪流清澈见底&#xff0c;小桥流水没有人家&#xff1b;青山郁郁葱葱&#xff0c;枯藤老树没有…

如何在Linux用libevent写一个聊天服务器

废话少说&#xff0c;先看看思路 因为libevent的回调机制&#xff0c;我们可以借助这个机制来创建bufferevent来实现用户和用户进行通信 如果成功连接后我们可以直接在listener回调函数里创建一个bufferevent缓冲区&#xff0c;并为每个缓冲区设置相应的读回调和事件回调&…

马浩棋:产通链CT-Chain 破局不动产 RWA,引领数智金融新变革

全球不动产 RWA 数智金融高峰论坛上马浩棋先生致辞 在全球不动产 RWA 数智金融高峰论坛暨产通链 CT-Chain 上链首发会的现场&#xff0c;犀牛世纪集团&#xff08;香港&#xff09;有限公司董事会主席马浩棋成为众人瞩目的焦点。此次盛会汇聚了全球金融、区块链及不动产领域的…

学习整理在centos7上安装mysql8.0版本教程

学习整理在centos7上安装mysql8.0版本教程 查看linux系统版本下载mysql数据库安装环境检查解压mysql安装包创建MySQL需要的目录及授权新增用户组新增组用户配置mysql环境变量编写MySQL配置文件初始化数据库初始化msyql服务启动mysql修改初始化密码配置Linux 系统服务工具,使My…

SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)

1、程序代码 2、程序解读 这段西门子 PLC 程序&#xff08;程序段 10&#xff09;实现了基于条件的数据块移动功能&#xff0c;具体解释如下&#xff1a; 条件触点&#xff1a; %M0.1 Always<>(TRUE)&#xff08;注释为 AT<>1&#xff09;&#xff1a;当 M0.1 的值…

初识HashMap

HashMap&#xff1a;无序&#xff0c;不重复&#xff0c;无索引 HashMap小练习&#xff1a; import java.text.ParseException; import java.util.*; import java.util.function.BiConsumer; import java.util.function.Consumer;import static java.lang.Math.abs;public cla…

隧道高清晰广播如何提升行车安全体验?

在隧道中行驶时&#xff0c;驾驶员常面临回声干扰、语音模糊、信息过载等问题&#xff0c;传统广播系统可能不仅未能提供有效信息&#xff0c;反而因噪音增加驾驶压力。高清晰广播通过数字降噪、动态音效优化等技术&#xff0c;显著改善驾驶员的听觉体验&#xff0c;进而提升行…

从0开始搭建一套工具函数库,发布npm,支持commonjs模块es模块和script引入使用

文章目录 文章目标技术选型工程搭建1. 初始化项目2. 安装开发依赖3. 项目结构4. 配置文件tsconfig.json.eslintrc.jseslint.config.prettierrc.jsrollup.config.cjs创建 .gitignore文件 设置 Git 钩子创建示例工具函数8. 版本管理和发布9 工具函数测试方案1. 安装测试依赖2. 配…

Cadence学习笔记之---原理图设计基本操作

目录 01 | 引 言 02 | 环境描述 03 | 原理图工具介绍 04 | 原理图设计基本操作 05 | 生成页间引用 06 | 元件自动编号 07 | 结 尾 01 | 引 言 书接上回&#xff0c;在前文中讲述了怎样制作常用的库元件&#xff0c;如电阻、二极管&#xff0c;IC器件&#xff0c;以及怎…

进行性核上性麻痹饮食指南:科学膳食助力对抗疾病

进行性核上性麻痹是一种进展性神经退行性疾病&#xff0c;常导致患者出现吞咽困难、运动障碍等症状。科学合理的饮食不仅能为患者提供必要的营养支持&#xff0c;还能降低并发症风险&#xff0c;改善生活质量。 蛋白质是维持身体机能的关键&#xff0c;患者应注重优质蛋白的摄取…

opencv函数展示4

一、形态学操作函数 1.基本形态学操作 &#xff08;1&#xff09;cv2.getStructuringElement() &#xff08;2&#xff09;cv2.erode() &#xff08;3&#xff09;cv2.dilate() 2.高级形态学操作 &#xff08;1&#xff09;cv2.morphologyEx() 二、直方图处理函数 1.直方图…

附赠二张图,阐述我对大模型的生态发展、技术架构认识。

文章精炼&#xff0c;用两张图说明大模型发展业态方向&#xff0c;以及大模型主体技术架构。&#xff08;目前还需要进一步验证我的Thought && ideas&#xff0c;等待机会吧.........&#xff09; 图一&#xff1a;探究大模型三个层次应用方向&#xff0c;浅层次入门简…

OpenCv高阶(九)——背景建模

目录 一、背景建模的核心目标与核心挑战 1. 核心目标 2. 核心挑战 ​二、背景建模模型 1、帧差法原理 2. 概率模型&#xff08;Parametric Models&#xff09; &#xff08;1&#xff09;高斯混合模型&#xff08;Gaussian Mixture Model, GMM&#xff09; &#xff08;…

leetcode - 字符串

字符串 466. 统计重复个数 题目 定义 str [s, n] 表示 str 由 n 个字符串 s 连接构成。 例如&#xff0c;str ["abc", 3] "abcabcabc" 。 如果可以从 s2( )中删除某些字符使其变为 s1&#xff0c;则称字符串 s1( )可以从字符串 s2 获得。 例如&#xf…

【基础IO上】复习C语言文件接口 | 学习系统文件接口 | 认识文件描述符 | Linux系统下,一切皆文件 | 重定向原理

1.关于文件的预备知识 1.1 文件的宏观理解 广义上理解&#xff0c;键盘、显示器等都是文件&#xff0c;因为我们说过“Linux下&#xff0c;一切皆文件”&#xff0c;当然我们现在对于这句话的理解是片面的&#xff1b;狭义上理解&#xff0c;文件在磁盘上&#xff0c;磁盘是一…

Freertos--统计所有任务栈信息以及CPU占比和钩子函数

一、概念 在 FreeRTOS 中统计任务栈信息和 CPU 占比是为了分析栈使用情况防止溢出、优化性能识别高负载任务、合理分配资源避免内存浪费、调试系统排查阻塞或优先级问题&#xff0c;有助于提升效率、确保稳定性、快速定位问题并防止崩溃&#xff0c;比如在你的蜂鸣器任务中可以…

京东商品详情API接口调用技术指南‌

本文基于京东宙斯开放平台&#xff08;JD Open API&#xff09;的 jingdong.ware.product.detail.search.get 接口&#xff0c;提供商品详情数据获取的完整技术方案&#xff0c;包含参数说明、代码实现及实战避坑指南。 一、接口功能与权限‌ 核心能力‌ 获取商品SKU的完整信…

基于Java(JSP)+MySQL实现深度学习的音乐推荐系统

基于深度学习的音乐推荐系统简述 本文简要介绍我做的基于深度学习的音乐推荐系统。主要从需求分析与设计实现的角度来进行介绍。 需求分析 基于深度学习的音乐推荐系统旨在以个性化音乐推荐模型为基础&#xff0c;使用B/S架构的形式实现。个性化推荐模型使用了 随机梯度下降…

Linux:进程间通信---匿名管道

文章目录 1. 进程间通信1.1 什么是进程间通信&#xff1f;1.2 为什么进程要进行进程间通信&#xff1f;1.3 怎么实现进程间通信&#xff1f; 2. 匿名管道2.1 匿名管道的原理2.2 匿名管道的系统接口2.3 匿名管道的使用2.4 匿名管道的运用场景 序&#xff1a;在上一篇文章中我们知…

深度学习小记(包括pytorch 还有一些神经网络架构)

这个是用来增加深度学习的知识面或者就是记录一些常用的命令,会不断的更新 import torchvision.transforms as transforms toPIL transforms.ToPILImage()#可以把tensor转换为Image类型的 imgtoPIL(img) #利用save就可以保存下来 img.save("/opt/data/private/stable_si…