我是想在r0上查看系统进程以找到那些可能被rootkit技术隐藏起来的进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我是想在r0上查看系统进程以找到那些可能被rootkit技术隐藏起来的进程相关的知识,希望对你有一定的参考价值。

我一开始的思路是使用内核函数,我使用了zwquerysysteminformation函数,使用ntdll.dll导出的系统进程列表,但是我一个同学说如果你碰到的是针对ntdll.dll和zaquerysysteminformation函数做过隐藏的rootkit进程那么是无法检测的,所以请教大牛如果我想把查找隐藏进程做的更好应该怎样做?急求!!最好能给出代码,我做的是windows系统,使用C语言,因为最后想做可视化,拜托各位高手帮忙啦,因为我个人比较菜的但是接到这么一个对我来说很有难度的事情所以只能上百度来请教了

和入侵检测术语字典( NSA Glossary of Terms Used in Security and Intrusion Detection)对rootkit的定义如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operating systems.
x7d3]1G!?2Rz0SupeSite/X-Space官方站OvP%T:t&_0NEw
好多人有一个误解,他们认为rootkit是用作获得系统root访问权限的工具。实际上,rootkit是攻击者用来隐藏自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击获得root访问权限,或者首先密码猜测或者密码强制破译的方式获得系统的访问权限。进入系统后,如果他还没有获得root权限,再通过某些安全漏洞获得系统的root权限。接着,攻击者会在侵入的主机中安装rootkit,然后他将经常通过rootkit的后门检查系统是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。 SupeSite/X-Space官方站J l+br [0x-V

bX#[H5^*`G!r0什么是rootkit
i*Q i [3tj*y3s0@(j0
8mh iuyD0Rootkit出现于二十世纪90年代初,在1994年2月的一篇安全咨询报告中首先使用了rootkit这个名词。这篇安全咨询就是CERT-CC的CA-1994-01,题目是Ongoing Network Monitoring Attacks,最新的修订时间是1997年9月19日。从出现至今,rootkit的技术发展非常迅速,应用越来越广泛,检测难度也越来越大。其中针对SunOS和Linux两种操作系统的rootkit最多(树大招风:P)。所有的rootkit基本上都是由几个独立的程序组成的,一个典型rootkit包括: SupeSite/X-Space官方站:Rd]#m+a0]X l
SupeSite/X-Space官方站c yNmQO M
以太网嗅探器程程序,用于获得网络上传输的用户名和密码等信息。 SupeSite/X-Space官方站"V'wz,
特洛伊木马程序,例如:inetd或者login,为攻击者提供后门。
;S
可能还包括一些日志清理工具
)M@H3uF/F0一些复杂的rootkit还可以向攻击者提供telnet、shell和finger等服务。
o_k(F;Z |#k0还包括一些用来清理/var/log和/var/adm目录中其它文件的一些脚本。
OUzU6R9j q h0Ocrf0SupeSite/X-Space官方站 gerx*eNjl(n,e
入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。 SupeSite/X-Space官方站(m yZ1e3~(L1|
SupeSite/X-Space官方站2dP&q+S1| GW/w.Ew l
在一些黑客组织中,rootkit (或者backdoor) 是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注, 因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。 SupeSite/X-Space官方站zY jAUxM)SI\,\w

J J3E&j$u,T#"jlQ:E0入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。
`TC%d;z+O1V'O.]&n0SupeSite/X-Space官方站c8Ai/Jh,K \
设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。
V.W M.B#L4p t1FD0
G4~8t:rC0y0系统木马程序。黑客替换一些系统程序,如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。
qg6kb#F SeC0
s'w.I D Vc5R\~0Cron后门。黑客在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。 SupeSite/X-Space官方站*j/y#t6RGt-~
具体可能通过以下方法给予远程用户以最高访问权限: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。 SupeSite/X-Space官方站m ~?3^8x/B
".rhosts" 文件。一旦 "+ +"被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。 SupeSite/X-Space官方站"t+cR-B_^J N8U9X @
SupeSite/X-Space官方站:l#]_S4\
ssh认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。 SupeSite/X-Space官方站XJ:?0pp.J
SupeSite/X-Space官方站6T\CoY9aY
Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。 SupeSite/X-Space官方站Ix_F~R M
SupeSite/X-Space官方站&~3[+[4?L'h\1j'a
Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。
XF5Q ~uu0在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。
Yk g"e*|I s0为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。 SupeSite/X-Space官方站8~tG5q7f?JfJ;@,w,s

%KSTGJB;N[ Zz0为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。追问

这位同学,我不是想知道rootkit是什么,请看清楚我的问题再回答好么,你的这些百度百科都有的

参考技术A ROOTKIT无非是对内核中的函数做钩子,比如SSDT钩子,修改zwquerysysteminformation函数的前几个字符为JMP XX XX XX XX 这样把自己的进程从进程链中拿掉, 你可以检测下这些个函数的见几位有没有下过钩子,比如是不是出现E9这样的字符。再看下SSDT中的函数是不是从内核NTOSKRNL.EXE中导出来的。推荐个书 rootkit-WINDOWS核心安全追问

由于水平有限,虽然这位大牛说的我大概能明白但是自己实现起来确实很困难,因为我对于windows核心编程实在是没什么水平,只能说是初涉,如果可以的话能不能请你稍微详细具体一点呢?如果能给代码是最好的

追答

这么多年了,我又重新登录了这个账号,又来到当初回答一半的提问。。。但是已经没有兴趣也没有能力平这个坑了。。。主要是当初的忘光了,代码丢了。。。

参考技术B 可以看看 rootkit revealer 可能能够检测出来追问

我并非是要一个现成的软件,因为很多软件都可以达成从系统底层查看隐藏进程,但是他们基本上没有开源的,这样我就没法自己做到,我现在的问题是如何自己写出一个可以查看隐藏进程的程序

端口被占用

一、windows上

windows + r,输入cmd。

1、查看端口信息
找到8080端口的对应PID。

netstat -ano|findstr 8080

2、杀掉进程

打开任务栏管理器,选择详细信息,找到刚才的PID,结束任务。

二、mac上

1、查看端口信息
#终端输入如下命令,将会出现占用端口的进程信息。
sudo lsof -i tcp:8080

2、杀掉进程

#找到进程的PID,如2044,使用kill命令
sudo kill 2044

 

以上是关于我是想在r0上查看系统进程以找到那些可能被rootkit技术隐藏起来的进程的主要内容,如果未能解决你的问题,请参考以下文章

linux执行passwd命令时提示:unkown user admin。 我是想清除路由器密码的,设备是linux系统。

linux下进程结束时如何得到通知?

linux如何查看端口被哪个进程占用,并杀死相关进程?

linux如何查看端口被哪个进程占用,并杀死相关进程?

Linux查看端口被那个进程占用?

linux如何查看端口被哪个进程占用