首页 > 其他分享 >SSH弱口令爆破服务器

SSH弱口令爆破服务器

时间:2024-08-27 22:51:50浏览次数:6  
标签:99999 centos 口令 19802 xiaodi awk SSH 服务器 18353

一、实验背景

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、分析哪条日志是登录成功的

标签:99999,centos,口令,19802,xiaodi,awk,SSH,服务器,18353
From: https://blog.csdn.net/fencecat/article/details/141613505

相关文章

  • 从0到1部署django项目至阿里云服务器
    1.前言最近学院一个志愿服务项目要做个网站展示,并且要求部署上线。趁着学校报销,我租了个阿里云服务器爽一把hhh。这篇文章大概写下我从买服务器到部署上线的历程以及报错的解决,给大家分享的同时,我自己也相当于纪念一下做个笔记。2.部署历程 阿里云配着学生认证,有个一年的基......
  • TCP并发服务器多线程和多进程方式以及几种IO模型
    1.阻塞I/O(BlockingI/O)在阻塞I/O模型中,当应用程序发起I/O操作时,整个进程会被阻塞,直到操作完成。在这个过程中,应用程序无法执行其他任务,必须等待I/O操作的完成。特点:简单性:编程简单,逻辑清晰,容易理解和实现。低效性:在高并发场景下,由于每个I/O操作都会阻塞整个进程,资......
  • NTFS安全权限和SMB文件共享服务器
    NTFS安全权限右键文件或文件夹属性-->安全可以修改权限基本权限读取允许查看文件、目录的内容、属性写入允许修改文件、添加新的文件扩展允许执行文件或遍历目录修改读取、写入、删除完全控制允许执行所有权限,包括更改权限和拥有权原则最小权限原则......
  • 网站提示500.12 服务器错误:Web 服务器上的应用程序正在重新启动怎么办
    当网站提示 500.12InternalServerError 并指出“Web服务器上的应用程序正在重新启动”时,这通常意味着IIS(InternetInformationServices)正在重新启动一个ASP.NET应用程序池。这种情况通常是由于应用程序池的配置问题、应用程序错误或资源问题引起的。以下是解决 500......
  • 网站提示500.11 服务器错误:Web 服务器上的应用程序正在关闭怎么办
    当网站提示 500.11InternalServerError 并指出“Web服务器上的应用程序正在关闭”时,这通常意味着应用程序池(ApplicationPool)在IIS(InternetInformationServices)服务器上已停止运行或正在重启过程中。这种情况通常发生在ASP.NET应用程序中。以下是解决 500.11Internal......
  • 网站提示400 - 请求错误,服务器无法理解客户端的请求怎么办
    当网站提示 400BadRequest 错误时,这意味着服务器无法理解客户端发送的请求。这种错误通常是由于客户端请求的格式有问题或者包含了一些服务器无法处理的信息。以下是解决 400BadRequest 错误的一些常见方法:常见原因URL输入错误:URL中可能存在语法错误或无效的参数。H......
  • 网站提示404 - 页面未找到:服务器无法找到请求的网页怎么办
    当网站提示 404NotFound 错误时,这意味着服务器无法找到客户端请求的网页。这种错误通常是因为页面不存在、URL错误、链接损坏或服务器配置问题等原因造成的。以下是解决 404NotFound 错误的一些常见方法:常见原因页面不存在:请求的页面已被删除或从未存在。URL错误:输......
  • 网站提示405 - 方法不允许:请求中使用了服务器不允许的方法或动作怎么办
    当网站提示 405MethodNotAllowed 错误时,这意味着客户端请求的方法不被服务器允许。这种情况通常发生在客户端尝试使用服务器不支持的HTTP方法(如 PUT, DELETE, TRACE 等)来访问某个资源时。以下是解决 405MethodNotAllowed 错误的一些常见方法:常见原因使用了不支......
  • xshell使用跳板机ssh连结远程后使用SFTP
    xshell连结跳板机后,再使用ssh连结到真实机器,SFTP只能显示原跳板机的目录,不能显示真实目录.可以使用隧道,代理来显示真实目标机器的目录.参考:https://blog.csdn.net/qq_43797186/article/details/1236690711.在原跳板机的ssh连结,增加隧道ssh连结属性->连结->SSH->隧道......
  • 服务器型号和阵列卡信息查看
    通过命令行判断服务器的品牌(如Dell或其他)以及获取阵列卡信息,你可以使用一些特定的命令来检查硬件信息。这些命令通常适用于大多数Linux发行版。检查服务器品牌和型号使用dmidecode命令dmidecode命令可以读取系统的DMI(桌面管理接口)表,提供详细的硬件信息,包括制造商、产......