SSH弱口令爆破服务器

news2024/12/23 17:24:04

一、实验背景

1、概述

使用kali的hydra进行ssh弱口令爆破,获得服务器的用户名和口令,通过 ssh远程登录服务器。

2、实验环境

kali攻击机:192.168.1.107
centos服务器:192.168.1.105

二、前置知识

1、centos设置用户并设置弱口令

centos查看用户名 cat /etc/passwd

centos查看密码cat /etc/shadow

centos查找系统中某个用户的密码可以使用cat /etc/shadow|grep "用户名"

  • centos创建用户xiaodi
#添加新用户xiaodi
adduser xiaodi

#查看centos系统的用户名
cat /etc/passwd
xiaodi:x:1001:1001::/home/xiaodi:/bin/bash
xiaodi->用户名
x     ->决定是否需要密码登录
1001  ->用户ID,系统通过用户ID识别用户,用户通过用户名登录
1001  ->组ID
/home/xiaodi->用户家目录,每次切换用户时都会进入对应的家目录
/bin/bash->bash shell应用层到内核通过shell翻译传送
  • 设置弱口令密码123456
#为用户小迪设置密码
passwd xiaodi

#查看系统用户的密码
[root@bogon ~]# cat /etc/shadow
root:$5$tsAxUaqpYg55Y2$LX0He23sL/sMtQ/NGDh8JMhFH/Sf3Edxt6UXp./tI.A::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:19802::::::
dbus:!!:19802::::::
polkitd:!!:19802::::::
libstoragemgmt:!!:19802::::::
colord:!!:19802::::::
rpc:!!:19802:0:99999:7:::
saned:!!:19802::::::
gluster:!!:19802::::::
saslauth:!!:19802::::::
abrt:!!:19802::::::
setroubleshoot:!!:19802::::::
rtkit:!!:19802::::::
pulse:!!:19802::::::
radvd:!!:19802::::::
chrony:!!:19802::::::
unbound:!!:19802::::::
qemu:!!:19802::::::
tss:!!:19802::::::
sssd:!!:19802::::::
usbmuxd:!!:19802::::::
geoclue:!!:19802::::::
ntp:!!:19802::::::
gdm:!!:19802::::::
rpcuser:!!:19802::::::
nfsnobody:!!:19802::::::
gnome-initial-setup:!!:19802::::::
sshd:!!:19802::::::
avahi:!!:19802::::::
postfix:!!:19802::::::
tcpdump:!!:19802::::::
root123:$5$tsAxUaqpYg55Y2$LX0He23sL/sMtQ/NGDh8JMhFH/Sf3Edxt6UXp./tI.A:19802:0:99999:7:::
nginx:!!:19802::::::
guacd:!!:19802::::::
mysql:!!:19802::::::
xiaodi:$1$kXuam.tR$YGOwuwgOk3CO6BGxG07uV1:19962:0:99999:7:::

登录名:xiaodi 口令($1$kXuam.tR$YGOwuwgOk3CO6BGxG07uV1):字段存放的加密后的用户口令,如果为空表示登录时不需要口令;如果为“*”表示账号被锁定;如果为“!!"表示密码以过期。

$6开头表示加密方式为SHA-512,$1开头表示加密方式为MD5,$2开头表示加密方式为Blowfish,$5开头表示加密方式为SHA-256. $kXuam.tR表示加密算法所加的盐值为kXuam.tR $YGOwuwgOk3CO6BGxG07uV1表示加密算法得到的密文是YGOwuwgOk3CO6BGxG07uV1

最后一次修改时间19962:表示从某个时刻起,到用户最后一次修改口令 的天数,时间七点对于不同系统可能不一样,如在SCOLinux中,这个时间七点是1970年1月1日。

最小时间间隔0:表示两次修改口令之间所需的最小天数

最大时间间隔99999:表示口令保持有效的最大天数

警告时间7:表示从系统开始 警告用户到用户密码正式失效之间的天数。

不活动时间():表示用户没有登录活动 但账号仍能保持有效的最大天数。

失效时间():字段给出的是一个绝对天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法账号,也就不能再用来登录了。

保留字段()

shadow文件解密:

shadow文件的MD5密码破解_shadow密码解密-CSDN博客

2、kali上上传暴力破解的字典

3、centos支持ssh并追踪日志

  • 确保ssh登录centos:
  • 查看ssh进程是否被监听:netstat -antpl 命令会列出系统上所有 TCP 连接及其状态、监听的端口,以及使用这些端口的进程及其 PID。
    netstat -antpl|grep 22
    #参数含义:
    #-a:显示所有连接和监听的端口。
    #-n:以数字格式显示地址和端口号,而不是尝试解析为主机名或服务名。
    #-t:仅显示 TCP 连接。
    #-p:显示使用每个连接或端口的程序的进程标识符 (PID) 和名称。
    #-l:仅显示监听状态的端口。

  • 对/var/log/secure文件进行追踪(操作系统的登录日志记录文件,如果有密码错误,用户名错误等事件都会记录)
    要在kali上准备有弱口令爆破的字典,将windows的字典上传到kali

三、开始爆破

1、使用hydra进行弱口令爆破

sudo hydra -l xiaodi -P top500.txt ssh://192.168.1.105

#命令含义
#hydra:工具名,用于破解密码。
#-l xiaodi:指定使用用户名 xiaodi 进行尝试。
#-P top500.txt:指定密码字典文件 top500.txt,从中尝试密码。
#ssh://192.168.1.105:指定目标 IP 地址及服务类型 (SSH)。192.168.1.105是centos的IP地址。

爆破成功:

2、kali通过爆破的密码登录centos

四、centos日志分析

通过对secure分析并统计出哪个IP地址对centos进行了爆破,尝试了多少次爆破
分析哪条日志是登录成功的。

1、cat /var/log/secure 查看登录

cat /var/log/secure

2、grep过滤登录失败的日志

grep failure /var/log/secure

3、去除冗余信息,保留IP地址

因为上述过滤出的内容中包含有一些我们不需要的信息

grep "pam_unix(sshd:auth): authentication failure; " /var/log/secure | awk '{print $14}'
#awk '{print $14}'意思是过滤出这些行的第14个字符

过滤掉前面的内容,只保留IP地址

grep "pam_unix(sshd:auth): authentication failure; " /var/log/secure | awk '{print $14}' | awk -F = '{print $2}' 
#`awk -F= '{print $2}'`:用 `=` 作为分隔符,提取用户名字段的值

4、 统计暴力破解失败次数

这里我只使用kali这台服务器爆破过所以只有这一个IP,统计的次数就是这个IP爆破失败的次数。

但是如果有多个服务器尝试爆破,这里统计出的就是所有这些爆破过的服务器总的爆破失败的次数;如果有多个IP的情况下,可使用sort函数进行排序,然后使用uniq命令进行汇总。

(1)排序

grep "pam_unix(sshd:auth): authentication failure; " /var/log/secure | awk '{print $14}' | awk -F= '{print $2}'| sort

(2)分类

grep "pam_unix(sshd:auth): authentication failure; " /var/log/secure | awk '{print $14}' | awk -F= '{print $2}'| sort | uniq

(3)计数

grep "pam_unix(sshd:auth): authentication failure; " /var/log/secure | awk '{print $14}' | awk -F= '{print $2}'| sort |uniq -c

5、分析哪条日志是登录成功的

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

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

相关文章

软件设计原则之接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计中的一个重要原则,它属于SOLID原则之一。这个原则强调客户端(即接口的调用者)不应该被迫依赖于它们不使用的方法。换句话说,一个类对另一…

【区块链 + 司法存证】数据存证区块链服务开放平台 | FISCO BCOS应用案例

大数据时代,数据参与社会生产过程,实现价值增值,是一种新型生产要素。数据产品具有易复制、易修改等特点, 因而数据产品在使用、流通过程中面临被非法复制、非法传播、非法篡改和知识产权窃取等安全风险。在存证数 据上链过程中&a…

PDF转化为机器可读格式的工具

MinerU PDF转化为机器可读格式的工具 项目简介 MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。 项目地址: https://github.com/opendatalab/MinerU/tree/master主要功能 删除页…

微信开发者工具 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开文件设置对话框2. 在Font Family里面输入字体 前言 微信开发者工具 自定义字体大小,统一设置为 Cascadia Code SemiBold ,大小为 14 具体操作 【文件】>【首选项】>【设置】>【文…

登录校验组件 Spring Security OAuth2 详解

什么是OAuth? OAuth(全称Open Authorization,开放授权)是一种基于令牌的身份验证和授权协议,它允许用户授权第三方应用访问其在服务提供者(如社交媒体、邮箱服务等)上存储的特定信息,而无需直…

安防监控/软硬一体/视频汇聚网关EasyCVR硬件启动崩溃是什么原因?

安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、WS-FMP4、HTTP-…

PyTorch深度学习网络(二:CNN)

卷积神经网络(CNN)是一种专门用于处理具有类似网格结构数据的深度学习模型,例如图像(2D网格的像素)和时间序列数据(1D网格的信号强度)。CNN在图像识别、图像分类、物体检测、语音识别等领域有着…

API网关之Kong

Kong 是一个高性能的开源 API 网关和微服务管理平台,用于管理、保护和扩展 API 和微服务。它最初由 Mashape 公司开发,并于 2015 年作为开源项目发布。Kong 能够处理 API 的路由、认证、负载均衡、缓存、监控、限流等多种功能,是微服务架构中…

Mysql中count(*) over 用法讲解

Mysql中count(*) over ()用法讲解 一、原理1、原理介绍 二、下面是一个使用COUNT(*) OVER()的代码示例:1、代码示例2、结果详解3、COUNT(*) OVER() 分区用法 三 、总结 一、原理 1、原理介绍 在MySQL中,C…

MySQL集群的基础部署及主从复制详解

一、Msql在服务器中的部署方法 官网:http://www.mysql.com 在企业中90%的服务器操作系统均为Linux 在企业中对于Mysql的安装通常用源码编译的方式来进行 1.1 在Linux下部署MySQL 1.1.1 部署环境 主机IP角色MySQL-node1172.25.254.13masterMySQL-node2172.25.…

【C语言】深入理解指针(四)qsort函数的实现

指针4 1.回调函数是什么2.qsort使用举例3.qsort函数的模拟实现 1.回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的…

【CanMV K230】外接传感器

【CanMV K230】外接传感器 外接LED灯 B站视频链接 抖音链接 我们后面主要做是机器视觉。K230能帮我们捕捉到图像信息。更多小功能需要我们自己来做。 比如舵机抬杆,测温报警等 都需要我们外接传感器。 本篇就来分享一下如何使用K230外接传感器 首先需要知道K230…

Leetcode JAVA刷刷站(98)验证二叉搜索树

一、题目概述 二、思路方向 在Java中,要判断一个二叉树是否是有效的二叉搜索树(BST),我们可以采用递归的方法,通过维护一个外部的范围(通常是Integer.MIN_VALUE到Integer.MAX_VALUE作为初始范围&#xff…

网络优化4|网络流问题|路径规划问题|车辆路径问题

网络流问题 网络最大流问题 研究网络通过的流量也是生产管理中经常遇到的问题 例如:交通干线车辆最大通行能力、生产流水线产品最大加工能力、供水网络中最大水流量等。这类网络的弧有确定的容量,虽然常用 c i j c_{ij} cij​表示从节点 i i i到节点 j…

怎么检测电脑的RAM?丨什么是RAM?

RAM 是 Random Access Memory 的缩写,它是一个允许计算机短期存储数据以更快访问的组件。众所周知,操作系统、应用程序和各种个人文件都存储在硬盘驱动器中。 当 CPU 需要调用硬盘上的数据进行计算和运行时,CPU 会将数据传输到 RAM 中进行计…

安防视频汇聚平台EasyCVR启动后无法访问登录页面是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T28181协议、部标JT808、GA/T1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等…

科研绘图系列:R语言多组极坐标图(grouped polar plot)

介绍 Polar plot(极坐标图)是一种二维图表,它使用极坐标系统来表示数据,而不是像笛卡尔坐标系(直角坐标系)那样使用x和y坐标。在极坐标图中,每个数据点由一个角度(极角)和一个半径(极径)来确定。角度通常从水平线(或图表的某个固定参考方向)开始测量,而半径则是…

Jenkins发邮件功能如何配置以实现自动化?

jenkins发邮件的设置指南?Jenkins怎么配置服务器? Jenkins作为一个流行的自动化服务器,其发邮件功能是通知团队成员构建状态的重要手段。AokSend将详细介绍如何配置Jenkins发邮件功能,以实现自动化通知。 Jenkins发邮件&#xf…

NVI技术创新联盟成立,BOSMA博冠IP轻量化制播已运用

2024年北京国际广播电影电视展览会(BIRTV)首日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV 2024超高清全产业链发展研讨会上宣布正式成立。作为国产8K摄像机先行者,BOSMA博冠受邀加入NVI技术…

Flowable BPMN bpmnjs 设计器

最近半年我一直在打造一款行业顶尖的流程设计器,适配了flowable所有的组件,美观,大方,灵活,好用。所有的组件都进行严格的测试并在生产环境上线了。 1、在线预览 2、整体框架布局 3、组件分组 4、完整模式切换 给大…