@websec007
2017-09-28T14:54:45.000000Z
字数 4312
阅读 8283
Linux渗透测试
# 一句话添加guest账号
root@ifly-21171:~# useradd -p `openssl passwd -1 -salt 'salt' 123456` guest
root@ifly-21171:~#
# 切换到普通账号guest环境下
root@ifly-21171:~# su guest
guest@ifly-21171:/root$ whoami
guest
guest@ifly-21171:/root$
#删除普通账号 guest与相关环境
root@ifly-21171:~# userdel -r guest
userdel: guest mail spool (/var/mail/guest) not found
userdel: guest home directory (/home/guest) not found
root@ifly-21171:~#
学习过程发现了 ` ` 其实是用来存放可执行的系统命令的,后来学习发现其实"$()"也可以存放命令执行语句,所以上面一句添加普通账号与密码还可以使用的如下命令执行。
root@ifly-21171:~# useradd -p "$(openssl passwd -1 123456)" guest
root@ifly-21171:~#
注:这里我们没有使用 -salt 'string' 进行加盐,对于我们渗透测试来说,其实命令越简单越好,其他就多余了,不是吗...
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
# 注意:这里的 -G -s -d 其实我们可以不用写,默认就好,但是-o选项是必须要有的,否则可能会报错,无法将当前普通账户设置为拥有root权限。
useradd命令用于创建用户,默认情况下只有系统超级用户root才能使用。由于用户的属性有很多,所以该命令的选项也有很多,我们只简单记录下我们使用到的选项。
-p, --password PASSWORD The encrypted password, as returned by crypt(3). The default is to disable the password.
-o, --non-unique allow to create users with duplicate (non-unique) UID
-u, --uid UID user ID of the new account
-g, --gid GROUP name or ID of the primary group of the new account
-G, --groups GROUPS list of supplementary groups of the new account
-s, --shell SHELL login shell of the new account
-d, --home-dir HOME_DIR home directory of the new account
-p:指定一串密文(The encrypted password 已加密的)作为指定账户的密码;所以一句话生产账号的过程中,我们使用了openssl passwd -1 'password_string' 来生成一串密码的密文内容。
-u:该选项用于指定用户的UID,如果不使用该选项那么系统会默认的从500开始递增;
-g:该选项用于指定用户的初始组,可以是名称也可以是GID,如果不使用该选项那么系统会默认创建一个与用户名相同的组名作为用户的初始组;
-G:指定用户所属的附加群组;
-d:该选项用于指定用户的家目录,如果不使用该选项那么系统会默认在/home目录下创建一个与用户名相同的目录作为家目录;
-s:该选项用于指定用户的shell,如果不使用该选项系统会默认指定/bin/bash,具体shell的概念后续会介绍
基本介绍
OpenSSL计划在1998年开始,其目标是发明一套自由的加密工具,在互联网上使用。
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统)。
安全加密
OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能,更好的是,它可能已经安装到你的系统中了。
OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。
百度百科:OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
由于Openssl的功能太丰富了,这里我们仅简单的记录和学习明文密码加密部分中我们使用到的几个命令参数,其他相关内容请自行查阅资料学习。
我们只需使用低啊用命令passwd
就可以生成密码hash值,具体明文密码加密命令帮助说明如下。
passwd Generation of hashed passwords. (生成hash密码值.)
openssl passwd 密码加密的方式有多种可以选择,默认使用标准的Unix密码算法进行明文密码的加密,其实也就意味着上面的一句话添加账户与密码的语句可以更简洁 openssl passwd 123456
即可生产Unix默认加密算法的密码内容,有关passw 输出加密算法的参数可见如下帮助文件的输出。
root@ifly-21171:~# openssl passwd -h
Usage: passwd [options] [passwords]
where options are
-crypt standard Unix password algorithm (default)
-1 MD5-based password algorithm
-apr1 MD5-based password algorithm, Apache variant
-salt string use provided salt
-in file read passwords from file
-stdin read passwords from stdin
-noverify never verify when reading password from terminal
-quiet no warnings
-table format output as table
-reverse switch table columns
-salt
# 不加任何参数,默认就会使用-crypt的方式进行加密明文内容
root@ifly-21171:~# openssl passwd 123456
mUSuPZn8k0kV6
root@ifly-21171:~#
root@ifly-21171:~#
root@ifly-21171:~# openssl passwd -1 123456
$1$q59f6vnJ$vt.tD.ADugYRy0yyImh6G1
root@ifly-21171:~#
root@ifly-21171:~#
root@ifly-21171:~# openssl passwd -1 -salt 'my1es' 123456
$1$my1es$FKmSI4QLamLxJkdRdbfgm0
root@ifly-21171:~#
账户的密码密文部分,必须是本机中生成的才能生效,个人通过命令执行时发现这个openssl 的MD5算法每次运行,其生成的值都是不一样的。如果非本机生成的MD5值,复制到其他主机上是无法使用的,已经验证过。
root@ifly-21171:~# openssl passwd -1 123456
$1$jIZTZd.R$4ijaZ7j8Cg9H83ujyS7ZF0
root@ifly-21171:~# openssl passwd -1 123456
$1$s8lAwdFa$ONUxf7pmmXn2K7uf/j3XJ0
root@ifly-21171:~# openssl passwd -1 123456
$1$Nyc.eQt2$q3cgoUDZzOFkZSEEhOwqt.
root@ifly-21171:~# openssl passwd -1 123456
$1$lnEiiO45$dhA6mOqDx1vOGpoB3xygK1
root@ifly-21171:~# openssl passwd -1 123456
$1$7rxWg/Qj$EYi.e3bANuULSgsCYcp3k1