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, 并发扬光大
- 一般来说,“攻击”这个词杀气太重,习惯来讲,一般会说“渗透测试”。
- IDS/IPS
- 攻击检测、分析、与防御平台:
- IDS: Intrusion Detection Systems, 入侵检测系统
- IDS在交换式网络中的位置一般选择为:尽可能靠近攻击源、尽可能靠近受保护资源
- 部署位置: Internet接入路由器之后的第一台交换机上
- IPS: Intrusion Prevention System, 入侵防御系统
- 办公网与外部网络的连接部位(入口/出口), 简单的说就是网关
- 重要服务器集群前端;
- 办公网内部接入层
- IDS: Intrusion Detection Systems, 入侵检测系统
12.pam锁定账户
-
-
- 网络链接
-
- 网络连接: 通过网络将靶机、攻击机和具备检测分析防御功能的网关进行连接。
- 交换机、网关等
- Kali Linux
- 目标
- 了解渗透测试人员的工作平台-kali linux
- 知道kali linux的安装方法。
-
- 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操作系统。
-
- 安装Kali Linux
如今Linux的安装过程已经非常“傻瓜”化,只需要轻点几下鼠标,就能够完成整个系统的安装。Kali Linux操作系统的安装也非常简单。本节将分别介绍安装Kali Linux至硬盘、USB驱动器、树莓派、VMware Workstation和Womuare Tods的详细过程。
-
-
- ISO下载
-
安装到硬盘是最基本的操作之一。该工作的实现可以让用户不使用DVD,而正常的运行Kali Linux。在安装这个全新的操作系统之前,需要做一些准备工作。例如,从哪里得到Linux?对电脑配置有什么要求?……下面将逐一列出这些要求。
- Kali Linux安装的磁盘空间的最小值是8GB。为了便于使用,这里推荐至少25GB去保存附加程序和文件。
- 内存最好为512MB以上。
- Kali Linux的下载地址,下载界面如图1.1所示。
13.shadow文件的解析
14.hashcat命令的使用
相关文章:

C++入侵检测与网络攻防之暴力破解
目录 1.nessus扫描任务 2.漏洞信息共享平台 3.nessus扫描结果 4.漏扫报告的查看 5.暴力破解以及hydra的使用 6.crunch命令生成字典 7.其他方式获取字典 8.复习 9.关于暴力破解的防御的讨论 10.pam配置的讲解 11.pam弱密码保护 12.pam锁定账户 13.shadow文件的解析 …...

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

如何在Linux用libevent写一个聊天服务器
废话少说,先看看思路 因为libevent的回调机制,我们可以借助这个机制来创建bufferevent来实现用户和用户进行通信 如果成功连接后我们可以直接在listener回调函数里创建一个bufferevent缓冲区,并为每个缓冲区设置相应的读回调和事件回调&…...
系统设计(1)—前端—CDN—Nginx—服务集群
简介: 本指南旨涵盖前端、CDN、Nginx 负载均衡、服务集群、Redis 缓存、消息队列、数据库设计、熔断限流降级以及系统优化等模块的核心要点。我们将介绍各模块常见的设计方案与优化策略,并结合电商秒杀、SaaS CRM 系统、支付系统等高并发场景讨论实践技巧…...
算法设计与分析7(贪心算法)
Prim 算法(寻找最小生成树) 用途:Prim 算法是一种贪心算法,用于在加权无向图中寻找最小生成树(MST),即能够连接图中所有顶点且边的权重之和最小的子图。基本思路: 从图中任意一个顶…...

马浩棋:产通链CT-Chain 破局不动产 RWA,引领数智金融新变革
全球不动产 RWA 数智金融高峰论坛上马浩棋先生致辞 在全球不动产 RWA 数智金融高峰论坛暨产通链 CT-Chain 上链首发会的现场,犀牛世纪集团(香港)有限公司董事会主席马浩棋成为众人瞩目的焦点。此次盛会汇聚了全球金融、区块链及不动产领域的…...
神经符号混合与跨模态对齐:Manus AI如何重构多语言手写识别的技术边界
在全球化数字浪潮下,手写识别技术长期面临"巴别塔困境"——人类书写系统的多样性(从中文象形文字到阿拉伯语连写体)与个体书写风格的随机性,构成了人工智能难以逾越的双重壁垒。传统OCR技术在处理多语言手写场景时,准确率往往不足70%,特别是在医疗处方、古代文…...

学习整理在centos7上安装mysql8.0版本教程
学习整理在centos7上安装mysql8.0版本教程 查看linux系统版本下载mysql数据库安装环境检查解压mysql安装包创建MySQL需要的目录及授权新增用户组新增组用户配置mysql环境变量编写MySQL配置文件初始化数据库初始化msyql服务启动mysql修改初始化密码配置Linux 系统服务工具,使My…...
Kubernetes 节点 Not Ready 时 Pod 驱逐机制深度解析(下)
#作者:邓伟 文章目录 三、深度解析:源码逻辑与调优策略四、常见问题与排查五、最新动态与技术演进总结 三、深度解析:源码逻辑与调优策略 TaintManager 核心源码逻辑 (1)参数定义(kube-controller-manage…...

SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)
1、程序代码 2、程序解读 这段西门子 PLC 程序(程序段 10)实现了基于条件的数据块移动功能,具体解释如下: 条件触点: %M0.1 Always<>(TRUE)(注释为 AT<>1):当 M0.1 的值…...

初识HashMap
HashMap:无序,不重复,无索引 HashMap小练习: 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…...

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

从0开始搭建一套工具函数库,发布npm,支持commonjs模块es模块和script引入使用
文章目录 文章目标技术选型工程搭建1. 初始化项目2. 安装开发依赖3. 项目结构4. 配置文件tsconfig.json.eslintrc.jseslint.config.prettierrc.jsrollup.config.cjs创建 .gitignore文件 设置 Git 钩子创建示例工具函数8. 版本管理和发布9 工具函数测试方案1. 安装测试依赖2. 配…...
使用 Oracle 数据库进行基于 JSON 的应用程序开发
本文为“JSON-based Application Development with Oracle Database (and MongoDB compatibility)”翻译阅读笔记。 副标题为:版本 19c 和 21c,本地和云,自治JSON 数据库以及适用于 MongoDB 的 Oracle 数据库 API,版本为2022年2月…...
Python爬虫(4)CSS核心机制:全面解析选择器分类、用法与实战应用
目录 一、背景与重要性二、CSS选择器基础与分类2.1 什么是选择器?2.2 选择器分类与语法 三、核心选择器详解与实战案例3.1 基础选择器:精准定位元素3.2 组合选择器:元素关系控制3.3 伪类与伪元素:动态与虚拟元素3…...

Cadence学习笔记之---原理图设计基本操作
目录 01 | 引 言 02 | 环境描述 03 | 原理图工具介绍 04 | 原理图设计基本操作 05 | 生成页间引用 06 | 元件自动编号 07 | 结 尾 01 | 引 言 书接上回,在前文中讲述了怎样制作常用的库元件,如电阻、二极管,IC器件,以及怎…...
从零开始学习人工智能Day5-Python3 模块
二、Python3基础语法学习 三、Python3 基本数据类型 四、Python3 数据类型转换 五、Python3 运算符 六、python基本数据类型(续) 七、Python3 控制语句 八、Python推导式 九、Python3 函数 十、Python3 数据结构 十一、Python3 模块 Python 中的模块(…...

进行性核上性麻痹饮食指南:科学膳食助力对抗疾病
进行性核上性麻痹是一种进展性神经退行性疾病,常导致患者出现吞咽困难、运动障碍等症状。科学合理的饮食不仅能为患者提供必要的营养支持,还能降低并发症风险,改善生活质量。 蛋白质是维持身体机能的关键,患者应注重优质蛋白的摄取…...
vue滑块组件设计与实现
vue滑块组件设计与实现 设计一个滑块组件的思想主要包括以下几个方面:用户交互、状态管理、样式设计和事件处理。以下是详细的设计思想: 1. 用户交互 滑块组件的核心是用户能够通过拖动滑块来选择一个值。因此,设计时需要考虑以下几点&…...

opencv函数展示4
一、形态学操作函数 1.基本形态学操作 (1)cv2.getStructuringElement() (2)cv2.erode() (3)cv2.dilate() 2.高级形态学操作 (1)cv2.morphologyEx() 二、直方图处理函数 1.直方图…...

附赠二张图,阐述我对大模型的生态发展、技术架构认识。
文章精炼,用两张图说明大模型发展业态方向,以及大模型主体技术架构。(目前还需要进一步验证我的Thought && ideas,等待机会吧.........) 图一:探究大模型三个层次应用方向,浅层次入门简…...

OpenCv高阶(九)——背景建模
目录 一、背景建模的核心目标与核心挑战 1. 核心目标 2. 核心挑战 二、背景建模模型 1、帧差法原理 2. 概率模型(Parametric Models) (1)高斯混合模型(Gaussian Mixture Model, GMM) (…...

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

【基础IO上】复习C语言文件接口 | 学习系统文件接口 | 认识文件描述符 | Linux系统下,一切皆文件 | 重定向原理
1.关于文件的预备知识 1.1 文件的宏观理解 广义上理解,键盘、显示器等都是文件,因为我们说过“Linux下,一切皆文件”,当然我们现在对于这句话的理解是片面的;狭义上理解,文件在磁盘上,磁盘是一…...

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

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

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

Linux:进程间通信---匿名管道
文章目录 1. 进程间通信1.1 什么是进程间通信?1.2 为什么进程要进行进程间通信?1.3 怎么实现进程间通信? 2. 匿名管道2.1 匿名管道的原理2.2 匿名管道的系统接口2.3 匿名管道的使用2.4 匿名管道的运用场景 序:在上一篇文章中我们知…...
C++ 类及函数原型详解
一、引言 在C 编程中,类(Class)是面向对象编程的核心概念之一,它是一种用户自定义的数据类型,封装了数据和操作数据的函数(成员函数)。函数原型则为函数的声明提供了必要的信息,让编…...

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