利用Linux内核的多个安全漏洞提权

2010/12/20

这是来自VPSee的消息,因为我个人试了一下Debian表示没有鸭梨,于是转过来,手痒的Ubunu用户可以试试……

——————————————-这是手痒的分割线——————————————-

系统安全高手 Dan Rosenberg 发布了一段 C 程序,这段200多行的程序利用了 Linux Econet 协议的3个安全漏洞,可以导致本地帐号对系统进行拒绝服务或特权提升,也就是说一个普通用户可以通过运行这段程序后轻松获得 root shell,以下在 update 过的 Ubuntu 10.04 Server LTS 上测试通过:

$ uname -r
2.6.32-21-server
 
$ gcc full-nelson.c -o full-nelson
$ ./full-nelson
[*] Resolving kernel addresses...
 [+] Resolved econet_ioctl to 0xffffffffa0131510
 [+] Resolved econet_ops to 0xffffffffa0131600
 [+] Resolved commit_creds to 0xffffffff8108b820
 [+] Resolved prepare_kernel_cred to 0xffffffff8108bc00
[*] Calculating target...
[*] Failed to set Econet address.
[*] Triggering payload...
[*] Got root!
#

由于 RHEL/CentOS 默认不支持 Econet 协议,所以测试没有通过:

$ uname -r
2.6.18-194.26.1.el5
 
$ gcc full-nelson.c -o full-nelson
$ ./full-nelson
[*] Failed to open file descriptors.

如果在企业环境用 Ubuntu 的话可能会比较杯具了,几百个帐号里总可以找到一两个帐号被内部或外部人员通过上面这段程序拿到 root,这对服务器的危害是毁灭性的。前天还在说 Ubuntu 在内核方面无作为,现在想起来还有点后怕。VPSee 提醒正在使用多个普通帐号登录 Ubuntu VPS 的朋友及时升级或打内核补丁,出售 VPN/SSH 帐号、提供免费 SSH 的商家尤其要小心 “客户” 捣乱,使用其他 Linux 发行版的朋友也最好检查一下自己的 VPS 有没有这些高危漏洞。

——————————————-这是手痒的分割线——————————————-

21个人的测试,在Debian 5.0.6上测试,结果如下:

$ uname -r
2.6.26-2-xen-amd64
$ gcc h.c -o h
$ ./h
[*] Resolving kernel addresses...
 [+] Resolved econet_ioctl to 0xffffffffa017819b
 [+] Resolved econet_ops to 0xffffffffa01791e0
[*] Failed to resolve kernel symbols.

同时,各位提供SSH番羽墙的童鞋,只要把用户的shell设置为nologin便可以表示没有鸭梨了~

-EOF-

Tags: , , , , , 345, Posted in 开源盛试6 条评论

Convert .htaccess to nginx

2010/12/10

这篇,我稍微微博一下好了 …… 这么好的工具,不得不马克一下~

Link: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

不过据说有人因此Nginx起不来,大家慎用就是了……

-EOF-

Tags: , , , 107, Posted in 软言软语2 条评论

小内存优化VPS的LNMP及fail2ban配置

2010/12/07

哈,大家好,21经过长时间的“沉没”,在这个寒冷的冬日怎么着也该冒泡泡以表无恙呀~ 话说,今天是二四节气中的“大雪”,够不上下雪条件的昆明便下起了稀里哗啦的雨,让21这个电动车男给冻的 …… 无法用言语形容的呀~

经过近半年时间,21手上开始掌握了一些廉价的VPS进行个人学习和实验,基本配置小至128M OpenVZ大至512M Xen都有,当然,买来以后闲置的时间稍微占多了点,不过由于Hawkhost空间12.6到期的刺激,我把Mr. 2175%都搬迁到其中一个512M Xen VPS上并且进行了相关的配置。本着内存能少用就少用、资源能节约就节约的原则,我进行了一些学习和模仿。

文中涉及到的操作基本上都需要root权限,且,21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。

基础调配部分及LNMP

由于21喜欢用Debian,于是参考了VPSee的文章《64MB VPS 上优化 Debian 5》和LowEndBox的《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》,对VPS上的OpenSSH、 syslog-ng用Dropbear和inetutils-syslogd进行了替换,从基础上对资源占用进行了控制,大概操作如下:

    OpenSSH、 syslog-ng的替换,我使用了LEB的lowendscript,在root用户下,如此操作便可:

    1
    2
    
    wget http://github.com/lowendbox/lowendscript/raw/master/setup-debian.sh
    bash setup-debian.sh system

    如果你参考这里,会发现LEB的这个脚本其实还可以安装LNMP里面的NMP(Nginx, MySQL, PHP)三个组件,但是我个人比较喜欢国人的LNMP,于是仅使用LES脚本进行了系统组件的替换。

之后,我安装LNMP 0.5(请参考这里)作为WEB服务器,并且进行了一些调整,这个调整请按照自己的需求就好。

  1. 将Nginx的子线程调整为2个,方法如下:
    1
    
    nano /usr/local/nginx/conf/nginx.conf

    找到worker_processes,将其改成下面的样子:

    1
    
    worker_processes 2;

    然后按Ctrl+O保存,按Ctrl+X退出。

  2. 同时,我将PHP-FPM的子线程也调整为2个,方法如下:
    1
    
    nano /usr/local/php/etc/php-fpm.conf

    按Ctrl+W搜索max_children,改成下面这样的格式:

    1
    
    <value name="max_children">2</value>

    然后按Ctrl+O保存,按Ctrl+X退出。再来重启nginx和php-fpm:

    1
    2
    
    invoke-rc.d nginx restart
    /usr/local/php/sbin/php-fpm restart
  3. 关于这个……MYSQL的调优,这个……21表示个人水平不足,就不献丑了。

Fail2Ban调配部分

这是一些比较基础的安全方面的调配。

  1. 首先,是禁用root用户的ssh登录,由于我们已经用Dropbear替换了OpenSSH,所以跟一般教程针对OpenSSH的修改方式不太一样,大概方法如下:
    1
    
    nano /etc/xinetd.d/dropbear

    然后把其中的server_args修改为如下样子

    1
    
        server_args     = -i -g

    让 /etc/xinetd.d/dropbear 配置文件看起来像这样

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    service ssh
    {
        socket_type     = stream
        only_from       = 0.0.0.0
        wait            = no
        user            = root
        protocol        = tcp
        server          = /usr/sbin/dropbear
        server_args     = -i -g
        disable         = no
    }

    然后按Ctrl+O保存,按Ctrl+X退出。
    -g的意思就是禁用root使用密码登录,但可以用公钥登录(public key)(请参考这里)。
    然后重启Dropbear:

    1
    
    invoke-rc.d xinetd restart
  2. 禁用了root账户登录,但是21在某些特定的没有公钥情况下又需要登录SSH,怎么办呢?增加一个普通用户就好了,这个用户不用具备什么特殊权限,只要能登录SSH足矣,大概操作如下:

    1
    
    useradd [username] -p [password]

    [username]替换为你想要的用户ID(注:不能为纯数字),[password]替换为想要的密码便可。
    之后我们以[username]登录系统,然后输入su root,再输入root密码便可以切换到root用户的shell。
    推荐不要使用太简单的ID,比如a/ab/abc什么的,为什么?后面告诉你。

»继续阅读

Tags: , , , , , , , , , , 1,190, Posted in 软言软语4 条评论

MacBook Pro – Fan Control

2010/08/22

这篇文章主要介绍了在Mac OS X、Ubuntu Lucid和Windows 7三个系统平台下对MacBook Pro(以下简称:MBP)的风扇控制,因为不知道为什么的原因,我个人和不少人的MBP都表现出风扇调速迟钝的问题,通常都是2000RPM左右,然后等到机器超过90摄氏度后风扇开始提速到6000RPM进行散热,但这个肯定不是我们需要的效果,我们要的是,要么自己控制,要么自动调整。

Mac OS X

这个身为MBP原生的,与硬件契合度最高的系统同样存在风扇自动调整的问题,至少在我重置了N次SMC的情况依然还是只能达到90度附近才会提速,于是只能用软件来对付了,我个人觉得效果比较好的是Fan Control

名称:Fan Control
系统:Leopard, Snow Leopard
下载:http://www.lobotomo.com/products/FanControl/

安装之后,会在“系统偏好设置”里面增加一个叫“Fan Control”的设置面板。

进去之后三项设置,
Base Speed,初始速度,系统默认是2000RPM,系统启动之后会以这个初始速度为基准;
Lower Threshold,温度下限阀值,这个是配合Base Speed工作的,在这个温度下,转速是Base Speed;
Upper Threshold,温度上限阀值,这个是值达到时系统将以最高转速跑风扇,我的MBP 13是6200。
风扇的转速会自动在Lower和Upper之间自动调整。 »继续阅读

Tags: , , , , , , , , 3,319, Posted in 软言软语2 条评论

如何重置Mac OS X的网络配置

2010/08/03

由于Mac OS X的智能化,大多数情况我们是不需要对系统配置进行过多的干涉的,但是当我们的网络设备及各种网络接口配置不断增加的时候(例如我除了自带的Airport、以太网之外,还有3个VPN,两个PPPoE,一个Modem over Serial Port及一个Kindle USBNetwork的接口),而不同的配置多了有可能会导致一些奇怪的网络问题,这个时候我们可以选择将Mac OS X的网络配置重置到出厂设置的状态(其实就是系统自动检测设备并重新生成配置),这样你的网络配置部分就跟全新的Mac OS X电脑一样了。

很简单,只需要重命名以下这个文件,然后重启即可。

   /Library/Preferences/SystemConfiguration/preferences.plist

改成

   /Library/Preferences/SystemConfiguration/preferences.plist.bk

然后重启。

具体操作流程如下:
选择Dock上的“应用程序”->“实用工具”->“终端”,然后输入以下命令

1
2
MBP:~ 21$ sudo mv /Library/Preferences/SystemConfiguration/preferences.plist /Library/Preferences/SystemConfiguration/preferences.plist.bk
Password: (此处输入你当前的密码,无显示,输完回车即可。)

回车后输入你当前用户的密码,回车,然后重启你的Mac OS X即可。

请注意,你的网络配置会因此丢失,如果有什么特殊的配置,请自行记录。
提示:这个办法无法解决部分OS X通过Airport连接VPN但是无法访问内网的情况。

引用来源:
Steve Jamesson | Reset Mac OS X network configuration to factory default

Tags: , , , , 2,756, Posted in 網際網路我抢沙发

答疑:域名不能添加A记录(国内)

2010/07/21

以后我会根据偶尔搜索引擎过来的关键词进行特别的回答,这是第一篇,请多指教!

Q: 我在国内的注册的域名,为什么最近莫名其妙的不能在域名的控制面板里面添加新的记录了?
A: 好吧,还是那个经典的话“建设具有中国特色的社会主义网络”,于是我们有一个东西叫“备案”,简单的说,只要是在国内工商注册过的域名/互联网服务商就必须遵守国内的游戏规则,所以,如果出现以上情况,请联系你的注册商客服/代理,询问需要提供什么资料才能恢复使用。

就我个人在易名网的体验来说,目前CN域名想要正常使用需要满足以下条件:

  1. 域名的主办人不允许为“个人”;
  2. 向域名注册商提交资料备案,包括营业执照副本复印件、联络人身份证复印件、备案申请单;
  3. 进行域名的ICP备案,也就说你需要买一个国内的空间。

我的一个CN域名由于缺少第三个条件,目前的情况为“该域名已被注册管理机构暂停解析”。

一般来说,第一步是禁用你的域名控制面板的使用,也就说不能添加记录了,第二步是CNNIC停用你的域名,例如《BlogBus被封应急方案》里面遇到的那种情况 …… 也许情况不都是这样,但是我的确实如此。

所以,Mr. 21一直建议,不要注册CN域名,不要在国内注册域名。域名注册有风险,入行须谨慎。

延伸阅读:
关于域名注册的建议
虚拟主机答疑之「域名转移」

Tags: , , , 218, Posted in 網際網路7 条评论

解决SSH断线后的会话恢复

2010/07/09

最近从vpsee\酷胖等博客看到的信息,购买了好几个廉价的VPS在学习,于是就产生了不少基于SSH的困扰,而掉线重连的会话丢失算是一个 ……

感谢GG大神的帮助,我找到了这个工具:screen
简单的说,就是这个工具会接管你当前的console会话,然后当前控制台显示的输入/输出就由它负责,如果你掉线后,只要重新启用screen,就是恢复到之前的状态。大概的操作流程如下:

  1. 以SSH的方式连接你的服务器
  2. 安装Screen;
    debian/ubuntu: apt-get install screen
    fedora/centos: yum install screen
  3. 输入screen接管当前会话;
  4. 进行自己需要的任何操作;
  5. SSH掉线;
  6. 重连SSH并输入screen -r恢复会话;
  7. 可以在.bash_profile里加一行
    alias r=’screen -d `screen -ls |grep Attached|cut -f2|cut -f1 -d”.”`;screen -r `screen -ls |grep Detached|cut -f2|cut -f1 -d”.”`’
    能够方便的切回screen窗口(假设只开了一个screen)。

恩,不是啥复杂的东西,但是能解决不小的困扰。

内容引用参考:
雨中的高速公路 – 《在ssh终端下如何解决断线带来的困扰》。

Tags: , , , , 622, Posted in 软言软语7 条评论

可信的公用DNS

2010/06/20

从Mr. 21博客里面为数不多的几篇关于Hosts文件应用的文章(《DropBox》、《BlogBus被封应急方案》等)来看,我们的网络是充满刺激和不明真相的,随时都不知道自己访问的网站到底存不存在,也不太敢确定自己看到的是不是真的,于是我们需要一些手段来解决,其中之一就是使用可信的公用DNS(Public DNS)

下面列举目前网上流行的比较可靠的三个DNS,使用哪个,看个人爱好了:

  • Google Public DNS
  • Open DNS
  • Norton DNS
  • | 8.8.8.8 / 8.8.4.4
    | 208.67.222.222 / 208.67.220.220
    | 198.153.192.1 / 198.153.194.1

但是,我们知道另外有种方式叫“DNS污染”,就是在你获得电脑获取正确的域名解析结果前,墙先把一个假的结果反馈给你,于是电脑便会忽略了那个来得比较慢的正确结果,也就说,我们单纯使用一些可信的公用DNS还是不够的,于是还需要一些修改过的小程序来解决这样的问题。

    程序名称:Anti Dns Pollution
    程序作者:Ying David ( http://www.google.com/profiles/lehui99 )
    开发语言:JAVA
    授权方式:开源
    下载地址:http://www.williamlong.info/archives/2184.html

    下面说一下这个小程序的具体工作流程:首先程序启动后,会从文本文件dnsfilter.properties中读取配制,然后去一个不存在的DNS服务器——但这个IP地址却是国外的——中进行DNS查询被劫持的域名,然后返回的IP地址就是被劫持的IP,被记录下来,之后正常的DNS查询中,就自动把这些IP地址过滤了。这个程序以后会不定期更新,或许也会出.NET版本,请在我的Google Reader上关注更新。

    对于高级用户,可以手动用文本编辑器修改配置文件dnsfilter.properties:

      BindToIP:小程序启动后作为DNS服务期绑定53端口,这里指定绑定的IP地址
      DnsServer:国外的DNS服务器,可以设置为OpenDNS或Google DNS服务器的IP地址
      ResponseTimeout:DNS查询返回超时的时间(毫秒)
      TestDnsServer:测试DNS服务器,请指定一个不存在的DNS服务期,但要求IP是国外的
      TestRespTimeout:测试DNS服务器的查询返回超时时间(毫秒),也就是DNS劫持的旁路回复超时时间
      TestCount:测试DNS服务器的次数,为了得到所有被劫持的IP地址,需要一定的测试次数
      小程序的执行文件和源代码在同一个压缩包内,请点上面的链接下载(含源代码)。

好吧,看到这里,基本上应该是可以保持一个稍微正常的网络使用环境了。

部分内容引用自:

Tags: , , , , , , 3,219, Posted in 網際網路6 条评论

WordPress 3.0 发布

2010/06/19

近日WordPress的大版本3.0发布了,大概有如下改进(特性描述引用自:我爱水煮鱼博客):

  • WordPress 和 WordPress MU 已经合并,现在一个 WordPress 的安装就能多个用户多个博客。
  • WordPress 3.0 新推出了 “Twenty Ten” 的默认主题,它包含了现在 WordPress 所有的功能。
  • 新的菜单管理系统,可以让你创建包含由日志,页面,分类,标签和其他链接组成的完全自定义菜单。
  • 自定义 header和背景颜色或者图片的 API。
  • WordPress 后台每个界面的帮助标签下都有上下文帮助。
  • 现在全新安装的 WordPress 可以自定义帐号和密码。
  • 在编辑主题的时候会自动进入维护模式
  • 支持短连接。
  • 支持和改进了自定义日志类型和自定义分类系统。
  • 一个更轻快颜色的后台,让你更加关注你的内容。
  • 补充:刚刚发现Login页面输错密码居然会像苹果那样左右地摇头晃脑~

Mr. 21博客升级后,遇到了一点小问题,在New Post的时候,因为21使用的单栏的编辑布局,Publish模块没有出来,21还以为是做了什么特殊的改进,结果切换一下两栏布局后再切换回来就好了。

目前我使用的主题和插件均没有遇到什么问题,基本上按照WP的指示升级到最新版本就可以了。
我使用的插件列表如下,列出仅供参考:
»继续阅读

Tags: , , 74, Posted in 业界时讯4 条评论