利用PHP脚本修改Linux或Unix系统口令,通过PHP修改

作者: 韦德国际1946  发布:2019-05-28

正文介绍怎么样行使PHP脚本修改Linux或Unix系统口令。

本文章来给我们介绍PHP中期维修改Linux或Unix口令方法有供给的仇人可参看。

内需的工具和安装:

只可以用在Unix类系统上,windows上不恐怕选择。
除此以外利用的是字典破解法,所以须要准备贰个口令字典。
调用的是UNIX总结口令hash的crypt()算法。
当然注释中提交了SHA-51二 hash算法的应用方法。

内需的工具和设置:

务必设置上边的工具和软件:
  –修改口令的Shell脚本;
  – Sudo访问权;
  – Apache or Lighttpd web服务器;
  – PHP服务端程序。

  你不可能不设置上面包车型客车工具和软件:

#coding=utf-8
#一个UNIX口令破解器

#crypt模块只用于UNIX
#方法是遍历字典,每一个单词加上指定的salt的计算结果与加密的口令hash做比较
#salt参数是用于增加被编码字符数目的字符串,以使编码更加安全。

#所以函数首先把加密的口令hash的前两个字符作为salt,提取出来
#然后计算字典中的每一个值的hash,与原来的hash做比较,从而破解出密码

#使用crypt模块的crypt()函数计算hash

import crypt
import hashlib

def testPass(cryptPass):
    '''验证hash是否一致'''
    #salt是前两个字符
    salt = cryptPass[0:2]
    dictFile = open("dictionary.txt",'r')
    for word in dictFile.readlines():
        word = word.strip('n')
        cryptWord = crypt.crypt(word,salt)
        #使用hashlib的SHA-512 hash算法
        #cryptWord = hashlib.sha512(word).hexdigest()
        if (cryptWord == cryptPass):
            print "found password" word "n"
            return
    print "password not found"
    return

def main():
    passFile = open("passwords.txt")
    for line in passFile.readlines():
        if ":" in line:
            user = line.split(':')[0]
            cryptPass = line.split(":")[1].strip(' ')
            print "Cracking Passwod for " user
            testPass(cryptPass)

if __name__ == "__main__":
    main()

#Linux中在/etc/shadow中存储了口令的hash```

你必须安装上边包车型地铁工具和软件:

步骤壹:安装能够修改用户口令的shell脚本

  –修改口令的Shell脚本;

– 修改口令的Shell脚本;

  该脚本能够实际用于修改Linux用户的口令(已在Linux和FreeBSD测试)。
  例子: shell脚本代码
  #利用PHP脚本修改Linux或Unix系统口令,通过PHP修改Linux或Unix口令的主意分享。!/bin/sh # exec expect -f “$0″ ${1 ”[email protected]”} set password [lindex $argv 1] spawn passwd [lindex $argv 0] sleep ①expect “assword:” send “$passwordr” expect “assword:” send “$passwordr” expect eof运营shell脚本(下载链接):
  $ chpasswd username password下载该脚本,然后拷贝到你的web根目录也许web服务器的其它地方(用户可读):
  $ cp chpasswd /var/www/或然,假令你利用Lighttpd web服务器:
  $ cp chpasswd /home/lighttpd

  – Sudo访问权;

– Sudo 访问权;

步骤贰:通过sudo以root身份试行命令

  – Apache or Lighttpd web服务器;

– Apache or Lighttpd web 服务器;

  Apache或Lighttpd web服务器进入后台运转后会立刻采纳非root权限。那样能够很好的防备口令修改,就像passwd命令须求root权限技术修改别的用户帐号的口令。
  常常, Apache 2使用www-data用户, Lighttpd使用lighttpd用户(皆为普通用户,非root用户)。使用root用户登录,然后实践下边包车型客车下令:
  # visudo以后你的web服务器允许实施口令修改剧本(chpasswd)。假如您选取Apache web服务器,试行下边包车型地铁吩咐:
  www-data ALL=NOPASSWD: /var/www/chpasswd大概,假如您使用Lighttpd web服务器,试行下边包车型地铁指令:
  httpd ALL=NOPASSWD: /home/lighttpd/chpasswd保存和剥离文件。

  – PHP服务端程序。

– PHP服务端程序。

步骤3.创立2个基于PHP的接口

  步骤1:安装能够修改用户口令的shell脚本

步骤壹: 安装能够修改用户口令的shell脚本

  往后你供给写一个php脚本。这里有一个php脚本实例。你能够依据你的要求来修改。至少你供给科学安装好的shell脚本地方。打开php脚本和找到shellscript一行:
  $shellscript = “sudo /home/lighttpd/chpasswd”;修改shellscript指向到正确的职位。PHP的源代码从那边下载:

  该脚本可以实际用于修改Linux用户的口令(已在Linux和FreeBSD测试)。

该脚本能够实际用来修改Linux用户的口令(已在Linux和FreeBSD测试)。

步骤四:运转脚本

  例子: shell脚本代码

事例: shell脚本代码

  在你的web浏览器地址栏输入网地址- :
  假设口令修改成功,你会博得的承认提醒:
  由于有的缘由,假如口令修改战败,你能够参见下边提醒获得越来越多详细的错误音讯:

  #!/bin/sh # exec expect -f “$0″ ${1 ”$@”} set password [lindex $argv 1] spawn passwd [lindex $argv 0] sleep 1 expect “assword:” send “$passwordr” expect “assword:” send “$passwordr” expect eof运行shell脚本(下载链接):

#!/bin/sh
# 
exec expect -f “$0″ ${1 ”$@”}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect “assword:”
send “$passwordr”
expect “assword:”
send “$passwordr”
expect eof

步骤5:安全

  $ chpasswd username password下载该脚本,然后拷贝到你的web根目录也许web服务器的其余地方(用户可读):

本文由韦德国际1946发布于韦德国际1946,转载请注明出处:利用PHP脚本修改Linux或Unix系统口令,通过PHP修改

关键词: ViolentPytho