🦉用户组在攻防场景中的应用

用户管理命令

Linux用户是通过UID来唯一标识

  • 管理员:root,0

  • 系统用户

    • 1-499 Centos6以前

    • 1-999 Centos7以后

  • 普通用户:1-60000自动分配

  • 登录用户

    • 500+ Centos6以前

    • 1000+ Centos7以后

主要配置文件

  • etc/passwd 用户及其属性信息(名称、UID、主组ID)

  • /etc/shadow 用户密码及其相关属性

  • /etc/group 组及其属性信息

  • /etc/gshadow 组密码以及其相关属性

passwd文件格式

root:x:0:0:root:/root:/bin/bash

第1位,登录用户名

第2位,密码

第3位,用户身份编号

第4位,组编号

第5位,用户命名或注释

第6位,用户主目录

第7位,用户默认使用shell

shadow文件格式

root:$6$OjigWYXX$yR3dxfcjvvFPL83oEkKujo9BiH.2dbcsOt1ZlRsSa53qeNj0KUeIvgOPDS0c7APyfY66HgMEOLUlbY4gUxK4s1:19091:0:99999:7:::

第1位,用户名

第2位,sha512加密, $6$Sha512 $1$MD5

第3位,密码最近一次被更改的时间

第4位,密码再过几天可以被变更(0表示随时可被更改)

第5位,密码再过几天必须被变更

第6位,密码过期前几天系统提示用户

第7位,锁定用户

第8位,密码多少天后才会失效

vipw
vigr
密码类型:
https://hashcat.net/hashcat/
#MD5
$1$KyF5u4ME$VnwrCGapy0Xt3q8MFkPQ51

#SHA512
$6$P1tesqE/$5CBSliUzYEI1oEdxApOdE5dCXrhgtOmw13hN9Teps7c.dhn4hUe.FYUFUQ4QC25cSPaWKW8akjb1Y4he6KXPB1
hashcat --force -a 0 -m 1800 hash.txt ./password.txt

相关破解工具:

  • john

  • hashcat

  • cmd5

用户和组管理

useradd命令

-u UID

-o 配合-u 选项,不检查UID的唯一性

-g GID 指明用户所属基本组,可为组名,也可以GID

-c "COMMENT" 用户的注释信息

-d HOME_DIR 以指定的路径(不存在)为家目录

-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在

-N 不创建私用组做主组,使用users组做主组

-r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000 -m 创建家目录,用于系统用户

-M 不创建家目录,用于非系统用户

-p 指定加密的密码

useradd命令默认设定是由/etc/default/useradd定义

/etc/default/useradd
GROUP=100
HOME=/home
INACTIVE=-1 #对应/etc/shadow文件第7列,即用户密码过期的宽限期
EXPIRE= #对应/etc/shadow文件第8列,即用户帐号的有效期
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

grub-crypt

grub-crypt命令的作用是对口令进行加密

# Centos6使用grub-crypt
grub-crypt --sha-512
 
#创建用户
useradd -p 'SHA512' test
 
#指定查看某个文件shadow密码
getent shadow ccav
 
# Centos7使用python创建sha512
python -c 'import crypt,getpass;pw="ccav";print(crypt.crypt(pw))'
 
# Centos8使用openssl创建sha512
openssl  passwd  -6 ccav

用户属性修改

usermod命令

-u UID: 新UID

-g GID: 新主组

-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使 用-a选项

-s SHELL:新的默认SHELL

-c 'COMMENT':新的注释信息

-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

-l login_name: 新的名字

-L: lock指定用户,在/etc/shadow 密码栏的增加 !

-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉

-e YYYY-MM-DD: 指明用户账号过期日期

-f INACTIVE: 设定非活动期限,即宽限期

删除用户

userdel

-f, --force 强制

-r, --remove 删除用户家目录和邮箱

切换用户

su

切换有两种方式:

su root:非登录式切换,切换时不会读取目标用户的配置文件等

su - root:登录式切换,会读取目标用户的配置文件等

换个身份执行命令

su - root -c "whoami"

设置密码

passwd

-d:删除指定用户密码

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-f:强制操作

-n mindays:指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限

--stdin:从标准输入接收用户密码,Ubuntu无此选项

非交互式设置密码:

场景:命令执行、反弹Shell、无交互式
/usr/sbin/useradd -u 0 -o -g root -G root -d /home/ccide ccide -p \$6\$RFindqMa\$hSOW1eOSD0FEPCoxUWBMd5KNYEuoz2b0MxuSSUBcv0PA0V1bee62f/1q0TGTnEhJpTghBdBBGNoOo1fRk1BWS/
 
echo "ccide:\$6\$RFindqMa\$hSOW1eOSD0FEPCoxUWBMd5KNYEuoz2b0MxuSSUBcv0PA0V1bee62f/1q0TGTnEhJpTghBdBBGNoOo1fRk1BWS/:18736:0:99999:7:::" >> /etc/shadow
 
echo "ccide:password" |chpasswd
 
#利用echo -e方式解释,无交互修改密码
echo -e '123456000\n123456000\n'|passwd test
 
echo '123456'|passwd --stdin ccav

Last updated