NSRC技术分享——自制Linux Rootkit检测工具
### 前言




01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/file.h> #include <linux/dcache.h> #include <linux/fdtable.h> #include <linux/file.h> #include <linux/fs.h> #include <linux/limits.h> #include <linux/string.h> #include <linux/net.h> #include <net/inet_sock.h> static int __init mychk_init( void ); static void __exit mychk_exit( void ); module_init(mychk_init); module_exit(mychk_exit); MODULE_LICENSE( "GPL" ); void get_socket( struct file *f, char * sock_name){ struct socket *st = NULL; struct inet_sock *is = NULL; st = f->private_data; is = inet_sk(st->sk); printk(KERN_ALERT "%s: LA: %d.%d.%d.%d:%u FA: %d.%d.%d.%d:%u\n" ,sock_name,NIPQUAD(is->saddr),ntohs(is->sport),NIPQUAD(is->daddr),ntohs(is->dport)); } char * get_path( struct path p) { char *buff = NULL; char *path = NULL; buff = kmalloc(PATH_MAX,GFP_KERNEL); if (!buff) return NULL; path = d_path(&p,buff,PATH_MAX); return path; } static int __init mychk_init( void ) { struct task_struct *t = NULL; struct files_struct *f = NULL; struct file *file = NULL; struct fdtable *fdt = NULL; struct path p; char *msg = NULL; int i; list_for_each_entry(t,¤t->tasks,tasks) { printk(KERN_ALERT "Process:%s [%d]\n" , t->comm, t->pid); task_lock(t); f = t->files; if (NULL != f){ fdt = f->fdt; for (i = 0;i<NR_OPEN_DEFAULT;i++) { if (fdt != NULL) { file = fdt->fd; if (file != NULL && file->f_path.dentry != NULL) { p = file->f_path; msg = get_path(p); if (msg != NULL && msg != strstr (msg, "socket" )) printk(KERN_ALERT "-- %s\n" ,msg); else get_socket(file,msg); } } } } task_unlock(t); } return 0; } static void __exit mychk_exit( void ) { printk(KERN_ALERT "Remove Module!\n" ); } |
NSRC技术分享——自制Linux Rootkit检测工具的更多相关文章
- Linux入侵检测工具 - RKHunter
RKHunter是Linux系统平台下的一款开源入侵检测工具 特点 (1)安装便捷,运行快速 (2)扫描范围全,能够检测各种已知的rootkit特征码.端口扫描.常用程序文件的变动情况检查 主要功能 ...
- Linux入侵检测工具
原文:https://www.cnblogs.com/lvcisco/p/4045203.html 一.rootkit简介 rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统 ...
- 技术分享 | 自制GreatSQL Docker镜像
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 近期打算制作一个GreatSQL的docker镜像,方便社区用户使用GreatSQL. 制作docker镜像的环境基于Ce ...
- 网易视频云技术分享:linux软raid的bitmap分析
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
- 【技术分享】linux各种一句话反弹shell总结——攻击者指定服务端,受害者主机(无公网IP)主动连接攻击者的服务端程序(CC server),开启一个shell交互,就叫反弹shell。
反弹shell背景: 想要搞清楚这个问题,首先要搞清楚什么是反弹,为什么要反弹.假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规 ...
- [Linux 性能检测工具]PIDSTAT
PIDSTAT NAME pidstat对linux任务的统计 语法 pidstat [ -C comm ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { pid [,...] ...
- [Linux 性能检测工具]TOP
TOP NAME 显示linux任务 语法 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 描述 top程序提供了系统实时 ...
- [Linux 性能检测工具]FREE
FREE NAME free显示系统可用内存和已使用内存 语法 free [-b | -k | -m] [-o] [-s delay ] [-t] [-l] [-V] 描述 free显示了总可用和被用 ...
- [Linux 性能检测工具]SAR
SAR NAME: SAR报告,收集,保存系统活动信息 语法: sar [ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ...
随机推荐
- 【译】gRPC负载均衡
原文地址:https://github.com/grpc/grpc/blob/master/doc/load-balancing.md gRPC负载均衡 范围 本文档解释了gPRC的负载均衡的设计. ...
- 教我徒弟Android开发入门(三)
前言: 老实说,我有点不知道该讲什么了,希望看过的人能给我提提意见,感激不尽. 本期知识点: 长按事件,log的简单使用,双击退出程序功能的实现 正文: 上一期我们了解到点击事件其实就是让控件绑定一个 ...
- json省市县数据源
{cityData,"Code":""},{"Name":"牡丹江市",","Code": ...
- ThinkCMF的跳转303 404等页面的方法
1. 控制器方法: return $this->redirect('http://www.thinkcmf.cmf',[],301); 或者助手函数: return redirect('http ...
- 简述Spring事务有几种管理方法,写出一种配置方式
Spring事务有两种方式: 1.编程式事务:(代码中嵌入) 2.声明式事务:(注解,XML) 注解方式配置事务的方式如下: 首先,需要在applicationContext.xml中添加启动配置,代 ...
- THUWC2018咸鱼记
Day -inf 好不容易联赛水进来了 好虚啊...(萌新)什么都不会...只会大水题 估计要\(GG\)了,瑟瑟发抖 准备辣.. 自我介绍根本没面试,就没脸贴了 周围的大佬们(尤其\(Zsy\))还 ...
- python 时间模块time,datetime详细介绍
模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...
- 用python给html里的css及js文件链接自动添加版本号
传统的给文件链接添加版本号的方法是使用gulp-rev,这里提出的解决方案是使用python来替代gulp-rev. import os import re import uuid import sy ...
- Problem : 1013 ( Digital Roots )
tips:分析不够仔细,白费了许多功夫.输入数据的范围,平时几乎很少考虑的,这个以后得注意.代码检查不够仔细啊,以后得注意了 #include<iostream> using namesp ...
- Vim修炼秘籍之语法篇
前言 少年,我看你骨骼精奇,是万中无一的武学奇才,维护世界和平就靠你了,我这有本秘籍<Vim修炼秘籍>,见与你有缘,就十块卖给你了! 如果你是一名 Vimer,那么恭喜你,你的 Vim 技 ...