一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Operating System

IIS攻击与安全加固实例分析

    IIS作为一款流行的Web服务器,在当今互联网环境中占有很大的比重,绝大多数的asp、asp.net网站都运行在它上面。因此,也引来了无数黑客们关注的目光。目前针对IIS的攻击技术已经非常成熟,而且相对技术门槛较低,所以很多初学者拿它来练手。许多网站因为网站管理员的安全意识不高或技术上的疏忽而惨遭毒手。本文通过实例来谈谈针对IIS的攻击技术与安全加固措施。   攻击实例   IIS写权限漏洞利用   我们先通过一个攻击实例来演示如何利用IIS权限配置不当来快速攻陷一个网站,以此来提高广大读者对IIS安全性的重视。   目标网站IP:192.168.1.105   利用漏洞:IIS写权限漏洞   用到的工具:IIS PUT Scaner、桂林老兵写权限利用工具   1 检测目标网站是否存在写权限漏洞   打开IIS PUT Scanner,输入目标网站的IP、端口号(默认为80端口),然后点击“Scan”按钮开始扫描,很快就返回了结果,如图1所示:   图1   2 IIS写权限漏洞利用过程   根据扫描结果,我们可以确定目标网站存在IIS写权限漏洞。下面我们来看下如何利用这个漏洞,来得到一个WebShell。   我们先将“”这段一句话木马代码保存成一个txt文档,名字随意。我这里命名为test.txt。接着打开桂林老兵写权限利用工具,输入目标网站的IP或域名,在“数据包格式”处的下拉菜单中选择“PUT”数据包提交方式,最后点击“数据包提交”按钮,我们来看服务器返回的结果。如图2所示:   图2   服务器返回了201响应码,这标志着我们成功上传了文件。   现在我们需要将刚刚上传的txt文本修改为asp文件,否则服务器不会将它解析为asp文件。在“数据包格式”的下拉菜单中选择“MOVE”数据包提交方式,在“Destination”处修改文件名称,默认为shell.asp,这里我修改为cmd.asp。然后点击“提交数据包”按钮,我们来看服务器返回的信息。如图3所示:   图3   服务器同样返回了“201”响应码,说明我们成功将test.txt修改为cmd.asp了。   现在我们用一句话木马客户端来连接刚上传的一句话木马,可以成功访问。如图4所示:   图4   这样我们就得到了一个WebShell。从整个攻击过程来看,用的时间很短,而且技术门槛很低,一个普通人运用工具也可以很快拿下一个网站。但遗憾的是,在实际的渗透测试过程中,依然有不少站点存在这样的漏洞,希望通过这个实例能够引起广大网络管理员对安全的重视。   IIS作为一款流行的Web服务器,在当今互联网环境中占有很大的比重,绝大多数的asp、asp.net网站都运行在它上面。因此,也引来了无数黑客们关注的目光。   IIS6.0解析漏洞利用   a. 在WEB目录下,当文件名称为类似“a.asp;b.jpg”这种格式的时候,IIS会将它解析为asp文件,如图5所示。   图5   b. 在WEB目录下,IIS6.0会将以“x.asp”这种格式命名的文件夹下的所有文件都解析为asp文件,如图6所示。   图6   上面这两点属于IIS设计的缺陷,但可惜微软认为这是IIS的特性,一直没有推出相应的安全补丁。   在尝试绕过文件上传检测时,这两种方法有时非常有效,下面是在实际渗透测试过程中遇到的一个例子。   先登录网站后台,直接上传一个asp木马,提示非法文件,不允许上传。接下来将它的名称改为1.asp;2.jpg后再次上传,发现成功上传至网站目录,如图7所示。   安全加固   这部分我们通过跟踪IIS从安装到配置的整个过程,分析其中可能面临的安全风险,并给出相应的加固措施。   IIS安装及版本的选择    在IIS安装过程中,根据具体的业务需求,只安装必要的组件,以避免安装其他一切不必要的组件带来的安全风险。如网站正常运行只需要ASP环境,那我们就没必要安装.net组件。   对于IIS版本,至少要在6.0以上,IIS5.0存在严重的安全漏洞,不过现在运行IIS5.0的服务器已经非常少了,对于这一点不用太过担心。   IIS配置   1 删除IIS默认站点   把IIS默认安装的站点删除或禁用掉。   2 禁用不必要的Web服务扩展   打开IIS 管理器,检查是否有不必要的“Web服务扩展”,如果有则禁用掉。如图8所示:   3 IIS访问权限配置   如果IIS中有多个网站,建议为每个网站配置不同的匿名访问账户。   方法:   a. 新建一个账号,加入Guests组   b. “网站属性”—>“目录安全性”—>“身份验证和访问控制”,把“启用匿名访问”处,用刚新建的账户代替默认账户,如图9所示。   图9   4 网站目录权限配置   原则(如图10):   目录有写入权限,一定不要分配执行权限   目录有执行权限,一定不要分配写入权限   网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限   其他目录一般只分配“读取”和“记录访问”权限即可   图10   5 只保留必要的应用程序扩展    根据网站的实际情况,只保留必要的应用程序扩展,其他的一律删除,尤其是像cer、asa这样极其危险的扩展,而且一般网站也不需要它,如图11。   图11   6 修改IIS日志文件配置   无论是什么服务器,日志都是应该高度重视的部分。当发生安全事件时,我们可以通过分析日志来还原攻击过程,否则将无从查起。有条件的话,可以将日志发送到专门的日志服务器保存。   先检查是否启用了日志记录,如未启用,则启用它。日志格式设置为W3C扩展日志格式,IIS中默认是启用日志记录的。   接着修改IIS日志文件保存路径,默认保存在“C:\WINDOWS\system32\LogFiles”目录下,这里修改为自定义路径。建议保存在非系统盘路径,并且IIS日志文件所在目录只允许Administrators组用户和SYSTEM用户访问,如图12。   图12   7 防止信息泄露   a. 禁止向客户端发送详细的ASP错误信息   “IIS管理器”—>“属性”—>“主目录”—>“配置”—>“调试”,选择“向客户端发送下列文本错误消息”项,自定义出错时返回的错误信息,如图13。   图13   b. 修改默认错误页面   “IIS管理器”—>“属性”—>“自定义错误”,用自定义的错误页面替换默认的默认页面。下面是我自定义的一个404错误页面,当网站发生404错误时,将向客户端返回这个页面,如图14。   8 自定义IIS Banner信息   默认Banner信息会泄露服务器类型、版本等相关信息,我们需要对其进行修改,这样可以防止信息泄露,还可以骗过一些自动化扫描、攻击工具。   a. 修改默认HTTP头信息   在修改之前,我们先来看下默认的HTTP头信息是什么样的。我们向IIS服务器发一个请求,然后用抓包工具分析它返回的数据,就可以发现HTTP头信息,如图15所示:   上图用红框标注的地方就是HTTP头信息,通过它我们就可以确定目标网站使用的是IIS服务器。   现在我们来看下如何自定义HTTP头信息。首先,打开“IIS管理器”—>“属性”—>“HTTP头”,在“自定义HTTP头”选中默认的HTTP头信息,进行编辑,或者删除掉默认的,自己添加一个新的HTTP头信息。图16中是我随便自定义的一个HTTP头。   图16   在修改完成后,我们再来抓包分析一下,如图17所示:   从图上可以看到,现在IIS服务器返回的HTTP头已经是我们自定义了。   b. 修改默认IIS头信息   修改默认IIS头信息需要通过工具来完成。这里推荐使用ServerMask,它是一款专门用来隐藏或修改IIS服务器默认Banner信息,防止信息泄露的工具。下图18是该软件的界面:   图18   根据服务器返回的信息,我们很容易判断出目标网站使用的服务器是IIS,版本是6.0,操作系统是Windows Server 2003,这些信息对攻击者确定下一步行动是非常有帮助的。   我们也可以使用扫描工具来完成刺探目标网站服务器相关信息的任务,这类工具非常多,而且使用非常简单,如图20。   现在我们来把默认的IIS头信息隐藏或修改掉,首先打开软件,选中要保护的网站,在“Security Profile”处的下拉菜单中选择相应的策略,这里我自定义一个。   图21   如图21所示,我把IIS默认的头信息修改成了Apache服务器的信息。这样就可以迷惑攻击者,有效隐藏网站的真实信息。现在我们再来分析下修改后的IIS服务器返回的头信息,如图22:   现在IIS服务器返回的头信息已经是我们自定义的了,这里伪装成了Apache服务器。   我们再用扫描工具扫描一下,看能否得到目标网站的真实服务器类型,结果如图23:   根据上图,我们可以看到现在扫描器已经获取不到目标网站的服务器类型了。   对于一些自动化攻击工具来说,因为获取不到目标服务器的类型和版本相关信息,自然也就无法进行下一步攻击了。   总结   通过上面对IIS攻击和安全加固的实例,相信读者对IIS服务器的安全有了更加深入的认识。其实对于IIS的安全加固并不难,很多时候更重要的是管理员的安全意识,只要有足够的安全意识,加上上面介绍的安全加固方法,相信你一定可以打造一个安全的IIS服务器。 转自:http://sec.chinabyte.com/278/12496778.shtml

龙生   25 Feb 2013
View Details

ubuntu下eclipse安装PDT(php development toolkit)

  eclipse是我非常喜欢的IDE,开源+免费+功能强大+跨平台+跨语言+插件机制,虽然有时候也会有这样那样的问题,但是作为主力开发IDE,eclipse已经非常足够了。 第1步,安装JRE:sudo apt-get install sun-java6-jre 第2步,下载eclipse: http://www.eclipse.org/downloads/ 找到其中Eclipse Classic 3.*.*.*,选择linux版,因为eclipse是绿色版的,所以下载下来解压就可以使用了。 第3步,打开eclipse:先chmod 777 -R ./给予eclipse文件夹足够的权限,否则会报错, 然后会要求选择开发目录,直接指定php的开发根目录就可以,配置地址在Windows –>Preferences,面板很多,功能混乱,eclipse的使用估计要适应一段时间的,但是相信我,没有比这更好的IDE了。 第4步,安装WST(Web Standard Tools)等基础环境:eclipse的插件非常多,先要安装一些基础插件,按照路径Help –>Softwear Updates –>Find and Install –> Search for new features to install 选中Europa Discovery Site(我的是3.3版本的eclipse)–>Finish –>开始搜索相关的可更新项,如果要求选择服务器,看看有没有shanghai,有的选上海–>出现Europa Discovery Site的根目录,翻里面的Web and J2EE Develepment里面的WST,选种以后会提示你缺少另一个插件,这时候点右侧的Select Required,就会自动找到所有需要的插件 –>Finish 后面安装完就可以了。 第5步,安装PDT:php在eclipse下面有两个插件:phpeclipse和PDT,现在PDT发展的比较好。按照路径Help –>Softwear Updates –>Find and Install –> Search for new features to install,点击右侧的New Remote Site,为左侧选择框添加PDT的在线安装地址,地址为:http://download.eclipse.org/tools/pdt/updates/release 后面的安装方法和第4步一样。 第6步,安装subeclipse:用subversion做版本控制的朋友可以用这个插件,直接在http://subclipse.tigris.org/里面找在线安装的地址,然后学第5步的方法安装。 第7步,安装Aptana:Aptana里面的一些web开发工具比较不错,这里建议安装:在线安装的地址是:http://update.aptana.com/update/studio/3.2 转自:http://blog.csdn.net/hhq163/article/details/6904244

龙生   19 Feb 2013
View Details

linux下vi命令大全

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename….filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern […]

龙生   19 Feb 2013
View Details

如何在本地用SSH远程连接到LINUX服务器安装PHPMYADMIN

  在linux上面安装ssh服务 在windows系统里面用Putty连接到linux 进入终端. 通过wget下载最新版 phpMyAdmin-3.3.8.1 wget -c http://ncu.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.8.1/phpMyAdmin-3.3.8.1-all-languages.tar.gz  

龙生   19 Feb 2013
View Details

Windows7下如何安装CentOS双系统

  1.下载CentOS的安装盘 我的电脑是32位的,所以下载了i386版本的CentOS-6.2-i386-bin-DVD.iso 注:应该下载硬盘安装版,而不是liveCD版 liveCD (光盘版)是可以直接在光盘上运行的版本,运行后可以再选择安装到硬盘中。 bin-DVD(硬盘安装版) 是一个纯安装版本,一般推荐用这个,因为 LiveCD 安装的时候很多软件包要从网络去下载,会很慢。 将镜像文件解压后,提取其中的isolinux和images两个文件夹,将其复制到C盘和你存放镜像文件的磁盘的根目录下。 注:存放镜像文件的磁盘必须为FAT32格式分区(因为Grub不认ntfs)。 2.划分磁盘 下载DiskTool分区助手 这个工具主要用于硬盘分区,并非一定要用这个工具,只要能进行分区即可。 启动DiskTool,选择你的一个盘,然后点击“创建分区”,划分一块硬盘空间,作为CentOS的硬盘,点击工具栏的“提交”按钮,重启电脑,使其生效。 这个时候,划分出来的这个磁盘仍然归属于Windows,因此我们还需要将其从Windows中分离出去。 鼠标右键计算机->管理->存储->磁盘管理,找到刚才划分的磁盘,右键->删除卷。 3.多系统启动设置 安装多个系统后,启动时会比较麻烦,因此,我们需要借助工具来进行多系统的启动管理,这里推荐EasyBCD。 EasyBCD是一个多系统启动管理工具,免除了BCDEdit的繁琐冗长命令。 启动EasyBCD,点击添加新条目->NeoGrub,然后编写配置。 在点击“配置”按钮后,出现的文件中添加如下几行: #启动时显示的名字,可自定义 title CentOS #系统命令,进入到下标为0的硬盘(也就是C盘) root (hd0,0) #设置文件路径 kernel (hd0,0)/isolinux/vmlinuz initrd (hd0,0)/isolinux/initrd.img 4.安装 重启电脑,选择NeoGrub Bootloader,进入CentOS的安装,选择语言,选择安装文件源=>硬盘驱动器,选择CentOS映像所在的分区,然后根据提示一路安装即可。 安装过程中涉及一个磁盘分区的问题,建议手动分区。 这里对Linux的几个目录进行一下说明: boot 目录是引导文件位置,设置为100M, / 根目录是系统文件位置,大小视CentOS而定, swap 是虚拟内存,一般设为内存的两倍 root 存放root用户的相关文件 home 存放普通用户的相关文件 var 存放经常变化的文件 usr 软件默认安装目录(类似windows的program) bin 存放常用命令的文件 sbin 要具有一定权限才可以使用的命令 mnt 默认挂在光驱和软驱的目录 etc 存放配置相关的文件 5.网络设置 安装好CentOS后,可能无法联网,需要设置好IP、网关等等,方法有如下几种: (1)可视化界面形式 以root账号登陆,执行setup命令,然后在network configuration里面进行设置 配置完成后,重启/etc/rc.d/init.d/network restart生效 (2)临时修改 ifconfig eth0 192.168.1.141 ifconfig eth0 network xxxxxxx 子网掩码 (3)直接修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0 onboot=yes(No=禁止自动启动) bootproto=static(静态,指定具体某个配置)/dhcp(动态,自动分配IP,适用于局域网防止冲突) IPADDR=192.168.1.141 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 然后重启网卡(凡是涉及永久修改的,都需要重启才能生效) 注意:Linux中所有设备都是文件,可以直接操作(因此学会查看Linux源码很重要) (4)操作界面修改 进入操作系统,点击屏幕上方右侧的网络连接图标进行设置。  

龙生   19 Feb 2013
View Details

fcitx安装过程

  推荐方法:最简单的方法:去软件中心搜 fcitx  全选码表然后安装。想去掉多余码表的话去”/usr/share/fcitx/data/table/”里面把不想要的删掉就好了。自己编译安装:1.去http://code.google.com/p/fcitx/downloads/list下载源码2.解压3.进入解压目录4.依次  ./configurmakemake install5.若有错误,则参考下面的:aclocal: not found 此时要安装apt-get install automake :libtoolize: not found 此时要安装apt-get install libtool :intltoolize: not found 此时要安装apt-get install intltool 这些做完后 便要./configure(调试这个软件包) 之后可能还会出现如下状况 NO XRender Lib found 此时要做的是 去新立德里面搜XRender,标记安装 之后还可能出现 NO Cairo-xlib found 此时要做的就是:apt-get install libcairo2-dev NO PANGOCAIRO found 此时要做的就是:apt-get install libpango1.0-dev Ubuntu 下的配置(详见http://fcitx.github.com.sixxs.org/handbook/fcitx.html)   安装 im-switch软件包。 进入/etc/X11/xinit/xinput.d目录,新建fcitx文件,文件内容为:

​ /usr/local/bin/fcitx 根据 fcitx 的安装路径来填。   把系统的 locale 设为 zh_CN.UTF-8,执行im-switch -s fcitx 可能还需要  (说要设环境变量时再弄)

龙生   19 Feb 2013
View Details

安装ibus

sudo add-apt-repository ppa:shawn-p-huang/ppasudo apt-get updatesudo apt-get install ibus-pinyin

龙生   19 Feb 2013
View Details

apt

  APT(the Advanced Packaging Tool)是Ubuntu 软件包管理系统的高级界面,Ubuntu 是基于Debian的,APT由几个名字以“apt-”打头的程序组成。apt-get、apt-cache 和apt-cdrom是处理软件包的命令行工具。 APT工作原理APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。编辑本段常用命令用法apt-cache search # ——(package 搜索包)apt-cache show #——(package 获取包的相关信息,如说明、大小、版本等)sudo apt-getinstall # ——(package 安装包)sudo apt-get install # —–(package – – reinstall 重新安装包)sudo apt-get -f install # —–(强制安装?#”-f = –fix-missing”当是修复安装吧…)sudo apt-get remove #—–(package 删除包)sudo apt-get remove – – purge # ——(package 删除包,包括删除配置文件等)sudo apt-get autoremove –purge # —-(package 删除包及其依赖的软件包 配置文件等(只对6.10有效,强烈推荐))sudo apt-get update #——更新源sudo apt-get upgrade #——更新已安装的包sudo apt-get dist-upgrade # ———升级系统sudo apt-get dselect-upgrade #——使用 dselect 升级apt-cache depends #——-(package 了解使用依赖)apt-cache rdepends # ——(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧…)sudo apt-get build-dep # ——(package 安装相关的编译环境)apt-get source #——(package 下载该包的源代码)sudo apt-get clean && sudo apt-get autoclean # ——–清理下载文件的存档 && 只清理过时的包sudo apt-get check #——-检查是否有损坏的依赖apt-get install# ——(下载 以及所有倚赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。)apt-get remove [--purge]# ——(移除 以及任何倚赖这个包裹的其它包裹。)–purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。apt-get update# ——(升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了/etc/apt/sources.list 后,必须执行。)apt-get upgrade [-u]# ——(升级所以已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。)  

龙生   19 Feb 2013
View Details

yum

 软件包管理器Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。软件包来源可供Yum下载的软件包包括Fedora本身的软件包以及源自rpmfusion和rpm.livna.org的Fedora Extras,全部是由Linux社区维护的,并且基本是自由软件。所有的包都有一个独立的GPG签名,主要是为了您的系统安全。而对於Fedora core 4.0 的用户,rpm.livna.org 的签名是自动导入并安装的。图形化前端Yum的图形化前端主要有yumex和kyum。它们并不是独立於Yum的,而是Yum的图形前端,也就是说在安装和使用Yumex和kyum同时,都是以Yum的安装和配置为基础;所以在用Yumex或kyum 时,必须先安装配置Yum。常用命令行命令安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpmyum常用命令删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm升级软件:yum upgrade foo或者yum update foo查询信息:yum info foo搜索软件(以包含foo字段为例):yum search foo显示软件包依赖关系:yum deplist foo其它参数参见man yum

龙生   19 Feb 2013
View Details
1 40 41 42 45