[关闭]
@websec007 2017-09-28T06:54:45.000000Z 字数 4312 阅读 8132

一句话添加账户与密码学习(useradd -p)

Linux渗透测试


一、一句话添加账户与密码(useradd)

1.1 添加普通账号 guest

  1. # 一句话添加guest账号
  2. root@ifly-21171:~# useradd -p `openssl passwd -1 -salt 'salt' 123456` guest
  3. root@ifly-21171:~#
  4. # 切换到普通账号guest环境下
  5. root@ifly-21171:~# su guest
  6. guest@ifly-21171:/root$ whoami
  7. guest
  8. guest@ifly-21171:/root$
  9. #删除普通账号 guest与相关环境
  10. root@ifly-21171:~# userdel -r guest
  11. userdel: guest mail spool (/var/mail/guest) not found
  12. userdel: guest home directory (/home/guest) not found
  13. root@ifly-21171:~#

学习过程发现了 ` ` 其实是用来存放可执行的系统命令的,后来学习发现其实"$()"也可以存放命令执行语句,所以上面一句添加普通账号与密码还可以使用的如下命令执行。

  1. root@ifly-21171:~# useradd -p "$(openssl passwd -1 123456)" guest
  2. root@ifly-21171:~#

注:这里我们没有使用 -salt 'string' 进行加盐,对于我们渗透测试来说,其实命令越简单越好,其他就多余了,不是吗...

1.2 添加root权限账户

  1. root@ifly-21171:~# useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -d /home/test
  2. # 注意:这里的 -G -s -d 其实我们可以不用写,默认就好,但是-o选项是必须要有的,否则可能会报错,无法将当前普通账户设置为拥有root权限。

二、命令使用详解

2.1 useradd 命令使用简介

useradd命令用于创建用户,默认情况下只有系统超级用户root才能使用。由于用户的属性有很多,所以该命令的选项也有很多,我们只简单记录下我们使用到的选项。

(1)命令帮助查询

  1. -p, --password PASSWORD The encrypted password, as returned by crypt(3). The default is to disable the password.
  2. -o, --non-unique allow to create users with duplicate (non-unique) UID
  3. -u, --uid UID user ID of the new account
  4. -g, --gid GROUP name or ID of the primary group of the new account
  5. -G, --groups GROUPS list of supplementary groups of the new account
  6. -s, --shell SHELL login shell of the new account
  7. -d, --home-dir HOME_DIR home directory of the new account

(2)命令中文详解

-p:指定一串密文(The encrypted password 已加密的)作为指定账户的密码;所以一句话生产账号的过程中,我们使用了openssl passwd -1 'password_string' 来生成一串密码的密文内容。

-u:该选项用于指定用户的UID,如果不使用该选项那么系统会默认的从500开始递增;

-g:该选项用于指定用户的初始组,可以是名称也可以是GID,如果不使用该选项那么系统会默认创建一个与用户名相同的组名作为用户的初始组;

-G:指定用户所属的附加群组;

-d:该选项用于指定用户的家目录,如果不使用该选项那么系统会默认在/home目录下创建一个与用户名相同的目录作为家目录;

-s:该选项用于指定用户的shell,如果不使用该选项系统会默认指定/bin/bash,具体shell的概念后续会介绍

2.2 OpenSSL 使用简介

(1)OpenSSL 简单介绍

百度百科:OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

(2)openssl 命令帮助

由于Openssl的功能太丰富了,这里我们仅简单的记录和学习明文密码加密部分中我们使用到的几个命令参数,其他相关内容请自行查阅资料学习。

我们只需使用低啊用命令passwd 就可以生成密码hash值,具体明文密码加密命令帮助说明如下。

  1. passwd Generation of hashed passwords. (生成hash密码值.)

openssl passwd 密码加密的方式有多种可以选择,默认使用标准的Unix密码算法进行明文密码的加密,其实也就意味着上面的一句话添加账户与密码的语句可以更简洁 openssl passwd 123456即可生产Unix默认加密算法的密码内容,有关passw 输出加密算法的参数可见如下帮助文件的输出。

  1. root@ifly-21171:~# openssl passwd -h
  2. Usage: passwd [options] [passwords]
  3. where options are
  4. -crypt standard Unix password algorithm (default)
  5. -1 MD5-based password algorithm
  6. -apr1 MD5-based password algorithm, Apache variant
  7. -salt string use provided salt
  8. -in file read passwords from file
  9. -stdin read passwords from stdin
  10. -noverify never verify when reading password from terminal
  11. -quiet no warnings
  12. -table format output as table
  13. -reverse switch table columns
  14. -salt

(3)openssl 命令使用小结

  1. # 不加任何参数,默认就会使用-crypt的方式进行加密明文内容
  2. root@ifly-21171:~# openssl passwd 123456
  3. mUSuPZn8k0kV6
  4. root@ifly-21171:~#
  1. root@ifly-21171:~#
  2. root@ifly-21171:~# openssl passwd -1 123456
  3. $1$q59f6vnJ$vt.tD.ADugYRy0yyImh6G1
  4. root@ifly-21171:~#
  1. root@ifly-21171:~#
  2. root@ifly-21171:~# openssl passwd -1 -salt 'my1es' 123456
  3. $1$my1es$FKmSI4QLamLxJkdRdbfgm0
  4. root@ifly-21171:~#

三、学习小结

账户的密码密文部分,必须是本机中生成的才能生效,个人通过命令执行时发现这个openssl 的MD5算法每次运行,其生成的值都是不一样的。如果非本机生成的MD5值,复制到其他主机上是无法使用的,已经验证过。

  1. root@ifly-21171:~# openssl passwd -1 123456
  2. $1$jIZTZd.R$4ijaZ7j8Cg9H83ujyS7ZF0
  3. root@ifly-21171:~# openssl passwd -1 123456
  4. $1$s8lAwdFa$ONUxf7pmmXn2K7uf/j3XJ0
  5. root@ifly-21171:~# openssl passwd -1 123456
  6. $1$Nyc.eQt2$q3cgoUDZzOFkZSEEhOwqt.
  7. root@ifly-21171:~# openssl passwd -1 123456
  8. $1$lnEiiO45$dhA6mOqDx1vOGpoB3xygK1
  9. root@ifly-21171:~# openssl passwd -1 123456
  10. $1$7rxWg/Qj$EYi.e3bANuULSgsCYcp3k1

学习参考

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注