8.3 破解LM Hashes密码

8.3 破解LM Hashes密码,第1张

LM(LAN Manager)Hash是Windows *** 作系统最早使用的密码哈希算法之一。在Windows 2000、XP、Vista和Windows 7中使用了更先进的NTLMv2之前,这是唯一可用的版本。这些新的 *** 作系统虽然可以支持使用LM哈希,但主要是为了提供向后兼容性。不过在Windows Vista和Windows 7中,该算法默认是被禁用的。本节将介绍如何破解LM Hashes密码。

在Kali Linux中,可以使用findmyhash工具破解LM Hashes密码。其中,findmyhash命令的语法格式如下所示:

以上语法中,各个选项含义如下所示。

【实例8-2】使用findmyhash命令攻击LM Hashes密码。执行命令如下所示:

以上输出的信息是攻击LM Hashes密码的过程。经过一番的攻击,最后获取到哈希值5f4dcc3b5aa765d61d8327deb882cf99的原始密码是password。

如果觉得破解LM Hashes太慢的话,可以使用Metasploit中的psexec模块绕过Hash值。下面将介绍使用psexec模块绕过Hash值的方法。

(1)通过在目标主机(Windows 7)上运行Veil创建的可执行文件backup.exe,成功获取一个活跃的远程会话,如下所示:

从以上信息中,可以看到成功打开了会话1。

(2)查看用户权限信息。执行命令如下所示:

从输出的信息中,可以看到该用户的权限是一个普通权限。接下来,使用bypassuac模块绕过UAC。

(3)设置lyw用户绕过UAC。执行命令如下所示:

从输出的信息中,可以看到此时lyw用户权限已经为SYSTEM。

(4)查看目标主机上所有用户的哈希密码值。执行命令如下所示:

从输出的信息中,可以看到捕获到六个用户的哈希密码值。此时,可以使用SMB psexec模块绕过Hash值。

(5)后台运行会话2。执行命令如下所示:

(6)使用SMB psexec模块,并设置需要的配置选项参数。执行命令如下所示:

(7)启动攻击。执行命令如下所示:

从输出的信息中,可以看到使用“Test”用户成功的打开了一个会话。

以下几种方法检测linux服务器是否被攻击:\x0d\x0a1、检查系统密码文件 \x0d\x0a首先从明显的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 \x0d\x0a2、查看一下进程,看看有没有奇怪的进程 \x0d\x0a\x0d\x0a重点查看进程:ps _aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果看到输出了一个类似inetd _s \x0d\x0a/tmp/.xxx之类的进程,着重看inetd \x0d\x0a_s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中\x0d\x0a也仅仅是inetd \x0d\x0a_s,同样没有用inetd去启动某个特定的文件;如果使用ps命令看到inetd启动了某个文件,而自己又没有用inetd启动这个文件,那就说明已经有人入侵了系统,并且以root权限起了一个简单的后门。\x0d\x0a3、检查系统守护进程 \x0d\x0a检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep _v “^#”,输出的信息就是这台机器所开启的远程服务。 \x0d\x0a一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。\x0d\x0a4、检查网络连接和监听端口 \x0d\x0a输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。 \x0d\x0a输入netstat _rn,查看本机的路由、网关设置是否正确。 \x0d\x0a输入 ifconfig _a,查看网卡设置。 \x0d\x0a5、检查系统日志 \x0d\x0a命令last | \x0d\x0amore查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系\x0d\x0a统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现\x0d\x0asyslog被非法动过,那说明有重大的入侵事件。 \x0d\x0a在linux下输入ls _al /var/log \x0d\x0a检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。 \x0d\x0a6、检查系统中的core文件 \x0d\x0a通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能\x0d\x0a100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core \x0d\x0a_exec ls _l {} \依据core所在的目录、查询core文件来判断是否有入侵行为。\x0d\x0a7、检查系统文件完整性 \x0d\x0a检查文件的完整性有多种方法,通常通过输入ls _l \x0d\x0a文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm _V \x0d\x0a`rpm _qf 文件名` \x0d\x0a来查询,查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man \x0d\x0arpm来获得更多的格式。

在Unix/Linux系统中,passwd这个指令可以用来变更使用者的密码,对于一般使用者而言(非root),执行passwd之后,会需要输入目前现行的密码,才可以允许密码的变更;而如果是root管理者的话,则可以在不需要现行密码的情况下,变更任何使用者的密码(包含root自己的密码)。

变更使用者密码

一般的使用者执行passwd即可变更自己的密码:

如果是root管理者的话,可以变更任何使用者的密码:

sudo passwd xxx

如果变更root管理者的密码,就跟一般使用者一样直接执行passwd即可。

显示密码状态资讯

若要显示密码的状态资讯,可以加上-S参数:

这个输出包含七个栏位:

帐号名称。

密码状态,状态包含锁定密码(L)、无密码(NP)与可用密码(P)。

上次修改密码的时间。

密码最短使用期限(minimum password age),单位为天。

密码最长使用期限(maximum password age),单位为天。

密码过期前警告期间(password warning period),单位为天。

密码过期后可使用的期间(password inactivity period),单位为天。

如果是root管理者,则可以查看特定使用者的密码资讯:

sudo passwd -S gtwang

root管理者可以使用-aS参数查阅所有使用者的密码状态资讯:

sudo passwd -a

移除使用者的密码

若要移除使用者的密码,可以使用-d参数,并加上使用者的名称:

sudo passwd -d xxxx

移除使用者的密码之后,可以检查一下状态资讯:

sudo passwd -S xxxx

xxxx NP 09/30/2015 0 99999 7 -1

在密码被移除之后,该使用者的帐号也会同时被停用,无法登入。

设定密码为过期状态

有时候因为某些原因(像是重新设定密码之后),我们会希望使用者立刻更改自己的密码,这时候我们可以使用-e参数:

sudo passwd -e xxx

passwd: password expiry information changed.

检查一下状态资讯:

sudo passwd -S xxx

xxx P 01/01/1970 0 99999 7 -1

这时候如果使用者使用SSH 登入的话,系统就会强制变更密码:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7543941.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存