触控笔不用花钱买,教你简单几步 DIY 一支电容屏触控笔

看别人拿触控笔在手机上戳戳戳觉得很酷?你就只能哀怨的凝视自己手中这部“残缺美”的水果机?NONONO,如果你是真的很想要触控笔、却死不换 Note,又不想花钱买一支的人,小编就是你的救星!好啦不是小编,是拍上传这个视频教学的人,他是你的救星!让你几乎不用花多少钱,就可以做一支好用触控笔……

01

首先,你要准备:透明胶带、一支笔、卫生纸、锡箔纸

02

把卫生纸揉成小球

03

用胶带固定在笔的末端

04

然后用锡箔纸包住…记住雾面要朝外

05

好用触控笔就完成!是不是超简单?来看看视频吧。

DIY 电容屏触控笔

触控笔不用花钱买,教你简单几步 DIY 一支电容屏触控笔,首发于极客范 – GeekFan.net

Linux后门入侵检测工具,附bash漏洞解决方法

一、rootkit简介

rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root权限登录到系统。

rootkit主要有两种类型:文件级别和内核级别,下面分别进行简单介绍。

 

1、文件级别rootkit

文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最经常被替换的,因为当访问Linux时,无论是通过本地登录还是远程登录,/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻击者还是一样能通过root用户登录系统。攻击者通常在进入Linux系统后,会进行一系列的攻击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。

这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit入侵。检查件完整性的工具很多,常见的有Tripwire、 aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入侵。

 

2、内核级别的rootkit

内核级rootkit是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序,也就是说,当用户要运行程序A时,被入侵者修改过的内核会假装执行A程序,而实际上却执行了程序B。

内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻击者不能获取root权限,就无法在内核中植入rootkit。

 

二、rootkit后门检测工具chkrootkit

chkrootkit是一个Linux系统下查找并检测rootkit后门的工具,它的官方址: http://www.chkrootkit.org/。 chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装,不过这种安装方法也更加安全。下面简单介绍下chkrootkit的安装过程。

1.准备gcc编译环境

对于CentOS系统,需要安装gcc编译环境,执行下述三条命令:

[root@server ~]# yum -y install gcc
[root@server ~]# yum -y install gcc-c++
[root@server ~]# yum -y install make

2、安装chkrootkit

为了安全起见,建议直接从官方网站下载chkrootkit源码,然后进行安装,操作如下:

[root@server ~]# tar zxvf chkrootkit.tar.gz
[root@server ~]# cd chkrootkit-*
[root@server ~]# make sense

# 注意,上面的编译命令为make sense

[root@server ~]# cd ..
[root@server ~]# cp -r chkrootkit-* /usr/local/chkrootkit
[root@server ~]# rm -rf chkrootkit-*

3、使用chkrootkit

安装完的chkrootkit程序位于/usr/local/chkrootkit目录下,执行如下命令即可显示chkrootkit的详细用法:

[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit  -h

chkrootkit各个参数的含义如下所示。

 

参数含义

-h显示帮助信息

-v显示版本信息

-l显示测试内容

-ddebug模式,显示检测过程的相关指令程序

-q安静模式,只显示有问题的内容

-x高级模式,显示所有检测结果

-r dir设置指定的目录为根目录

-p dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录

-n跳过NFS连接的目录

chkrootkit的使用比较简单,直接执行chkrootkit命令即可自动开始检测系统。下面是某个系统的检测结果:

[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit
Checking `ifconfig'... INFECTED
Checking `ls'... INFECTED
Checking `login'... INFECTED
Checking `netstat'... INFECTED
Checking `ps'... INFECTED
Checking `top'... INFECTED
Checking `sshd'... not infected
Checking `syslogd'... not tested
Checking `tar'... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `telnetd'... not found

从输出可以看出,此系统的ifconfig、ls、login、netstat、ps和top命令已经被感染。针对被感染rootkit的系统,最安全而有效的方法就是备份数据重新安装系统。

4、chkrootkit的缺点

chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始系统命令让chkrootkit对rootkit进行检测。这个过程可以通过下面的操作实现:

[root@server ~]# mkdir /usr/share/.commands
[root@server ~]# cp `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
[root@server ~]# /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/
[root@server share]# cd /usr/share/
[root@server share]# tar zcvf commands.tar.gz .commands
[root@server share]#  rm -rf commands.tar.gz

上面这段操作是在/usr/share/下建立了一个.commands隐藏文件,然后将chkrootkit使用的系统命令进行备份到这个目录下。为了安全起见,可以将.commands目录压缩打包,然后下载到一个安全的地方进行备份,以后如果服务器遭受入侵,就可以将这个备份上传到服务器任意路径下,然后通过chkrootkit命令的“-p”参数指定这个路径进行检测即可。

 

三、rootkit后门检测工具RKHunter

RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:

MD5校验测试,检测文件是否有改动

检测rootkit使用的二进制和系统工具文件

检测特洛伊木马程序的特征码

检测常用程序的文件属性是否异常

检测系统相关的测试

检测隐藏文件

检测可疑的核心模块LKM

检测系统已启动的监听端口

 

下面详细讲述下RKHunter的安装与使用。

 

1、安装RKHunter

RKHunter的官方网页地址为:http://www.rootkit.nl/projects/rootkit_hunter.html,建议从这个网站下载RKHunter,这里下载的版本是rkhunter-1.4.0.tar.gz。RKHunter的安装非常简单,过程如下:

[root@server ~]# ls
rkhunter-1.4.0.tar.gz
[root@server ~]# pwd
/root
[root@server ~]# tar -zxvf rkhunter-1.4.0.tar.gz 
[root@server ~]# cd rkhunter-1.4.0
[root@server rkhunter-1.4.0]# ./installer.sh  --layout default --install

这里采用RKHunter的默认安装方式,rkhunter命令被安装到了/usr/local/bin目录下。

 

2、使用rkhunter指令

rkhunter命令的参数较多,但是使用非常简单,直接运行rkhunter即可显示此命令的用法。下面简单介绍下rkhunter常用的几个参数选项。

[root@server ~]#/usr/local/bin/rkhunter–help

Rkhunter常用参数以及含义如下所示。

参数             含义

-c, –check必选参数,表示检测当前系统

–configfile <file>使用特定的配置文件

–cronjob作为cron任务定期运行

–sk, –skip-keypress自动完成所有检测,跳过键盘输入

–summary显示检测结果的统计信息

–update检测更新内容

-V, –version显示版本信息

–versioncheck检测最新版本

下面是通过rkhunter对某个系统的检测示例:

[root@server rkhunter-1.4.0]# /usr/local/bin/rkhunter   -c 
[ Rootkit Hunter version 1.4.0 ]
#下面是第一部分,先进行系统命令的检查,主要是检测系统的二进制文件,因为这些文件最容易被rootkit攻击。显示OK字样表示正常,显示Warning表示有异常,需要引起注意,而显示“Not found”字样,一般无需理会
Checking system commands...
  Performing 'strings' command checks
    Checking 'strings' command                           [ OK ]
  Performing 'shared libraries' checks
    Checking for preloading variables                        [ None found ]
    Checking for preloaded libraries                         [ None found ]
    Checking LD_LIBRARY_PATH variable                 [ Not found ]
  Performing file properties checks
    Checking for prerequisites                              [ Warning ]
    /usr/local/bin/rkhunter  [ OK ]
    /sbin/chkconfig                                       [ OK ]
....(略)....
[Press <ENTER> to continue]
#下面是第二部分,主要检测常见的rootkit程序,显示“Not found”表示系统未感染此rootkit
Checking for rootkits...
  Performing check of known rootkit files and directories
    55808 Trojan - Variant A                                 [ Not found ]
    ADM Worm                                           [ Not found ]
    AjaKit Rootkit                                         [ Not found ]
    Adore Rootkit                                          [ Not found ]
aPa Kit                                               [ Not found ]
    Apache Worm                                          [ Not found ]
    Ambient (ark) Rootkit                                    [ Not found ]
    Balaur Rootkit           [ Not found ]
    BeastKit Rootkit                                         [ Not found ]
beX2 Rootkit                                             [ Not found ]
    BOBKit Rootkit                    [ Not found ]
....(略)....
[Press <ENTER> to continue]
#下面是第三部分,主要是一些特殊或附加的检测,例如对rootkit文件或目录检测、对恶意软件检测以及对指定的内核模块检测
  Performing additional rootkit checks
    Suckit Rookit additional checks                          [ OK ]
    Checking for possible rootkit files and directories      [ None found ]
    Checking for possible rootkit strings                    [ None found ]
  Performing malware checks
    Checking running processes for suspicious files          [ None found ]
    Checking for login backdoors                          [ None found ]
    Checking for suspicious directories                     [ None found ]
    Checking for sniffer log files                          [ None found ]
  Performing Linux specific checks
    Checking loaded kernel modules                     [ OK ]
    Checking kernel module names                     [ OK ]
[Press <ENTER> to continue]
#下面是第四部分,主要对网络、系统端口、系统启动文件、系统用户和组配置、SSH配置、文件系统等进行检测
Checking the network...
  Performing checks on the network ports
    Checking for backdoor ports                         [ None found ]
  Performing checks on the network interfaces
    Checking for promiscuous interfaces                      [ None found ]
Checking the local host...
  Performing system boot checks
    Checking for local host name                         [ Found ]
    Checking for system startup files                        [ Found ]
    Checking system startup files for malware                [ None found ]
  Performing group and account checks
    Checking for passwd file [ Found ]
    Checking for root equivalent (UID 0) accounts            [ None found ]
    Checking for passwordless accounts                   [ None found ]
....(略)....
[Press <ENTER> to continue]
#下面是第五部分,主要是对应用程序版本进行检测
Checking application versions...
    Checking version of GnuPG[ OK ]
    Checking version of OpenSSL                        [ Warning ]
    Checking version of OpenSSH                        [ OK ]
#下面是最后一部分,这个部分其实是上面输出的一个总结,通过这个总结,可以大概了解服务器目录的安全状态。
System checks summary
=====================
File properties checks...
    Required commands check failed
    Files checked: 137
    Suspect files: 4
Rootkit checks...
    Rootkits checked : 311
    Possible rootkits: 0
Applications checks...
    Applications checked: 3
    Suspect applications: 1
The system checks took: 6 minutes and 41 seconds

在Linux终端使用rkhunter来检测,最大的好处在于每项的检测结果都有不同的颜色显示,如果是绿色的表示没有问题,如果是红色的,那就要引起关注了。另外,在上面执行检测的过程中,在每个部分检测完成后,需要以Enter键来继续。如果要让程序自动运行,可以执行如下命令:

[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress

同时,如果想让检测程序每天定时运行,那么可以在/etc/crontab中加入如下内容:

30 09 * * * root /usr/local/bin/rkhunter –check –cronjob

这样,rkhunter检测程序就会在每天的9:30分运行一次。

 

安全更新:

今天刚刚爆出Bash安全漏洞,SSH bash紧急安全补丁!重要!

测试是否存在漏洞,执行以下命令:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
 vulnerable
 this is a test

如果显示如上,那么,很遗憾,必须立即打上安全补丁修复,

 

临时解决办法为:

yum -y update bash

升级bash后,执行测试:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
 bash: warning: x: ignoring function definition attempt
 bash: error importing function definition for `x'
 this is a test

如果显示如上,表示已经修补了漏洞。

Linux后门入侵检测工具,附bash漏洞解决方法,首发于博客 – 伯乐在线

别光顾着拍照了,用iPhone检查视力吧

541cde3bed900

 

似乎每隔一段时间,就会有人开发出手机的新玩法。近日,Smart Vision Labs就将iPhone的相机应用在了视力检查上。简单点说,该团队在iPhone的相机上附加了一个镜头,让医生能方便快捷地进行视力检查,而之前一般需要前往专业的验光室。

前不久,负责人Marc及其成员在海地运用了这一新技术,他们几乎能在1分钟内对病人进行诊断,当时他们在6个小时内完成了对250人的检查。这不仅能提高工作效率,还令比较顽皮的小孩也愿意安静地坐下来接受检查,他们也对这种设备很感兴趣。

541cde6880eb7

 

其实,这并不是iPhone第一次大显神勇,它早已大举向医疗领域进军,并取得了不错的成果。

2012年,佐治亚理工学院和埃默里大学研发了一款名为“遥控耳镜”(Remoteoscope)的iPhone配件,让iPhone变身耳镜,帮助医生对病人的耳部疾病进行诊断。遥控耳镜安装在iPhone镜头上,医生能够快递查看患者耳道,尤其是儿童耳道也能够清楚查看。

另外,今年5月左右,休斯顿大学工程技术教授George Zouridakis开发了一款DemoScreen的应用,这款应用与价值500美元的皮肤镜相结合使用,可以用来检测皮肤中的黑色素瘤(一种最危险的皮肤癌)。这款iPhone应用检测的准确率在85%左右,与皮肤科专家检测的准确率相当,并且明显高于初级护理医师。

现在,iPhone几乎已经变身成心电图仪器、血糖仪、心率监测器、医学显微镜等,这些功能都能借助iPhone应用或者外设达到。美国FDA(食品药品监督管理局)曾批准iPad/iPhone作为医疗影像诊断放射学的辅助产品,还有医生指出iPhone可进行中风诊断,而且准确度十分高。

另外不能忘的是苹果的HealthKit健康平台,它能将从各处收集到的健康数据作统一管理,如果手机外设与这一平台协作,就能对用户的健康有更全面的了解。

别光顾着拍照了,用iPhone检查视力吧,首发于极客范 – GeekFan.net

Seatylock:让自行车座垫变身车锁-

541a24bae672d

 

你是否曾为自己心爱的自行车被盗而懊恼?如果你还在担心车锁硬度不够,太笨重,甚至车座被偷,来自布鲁克林的Seatylock能帮助骑行者解决两个最基本的问题:车锁的坚固性和便携性。

541a2472945e1

 

Seatylock锁能折叠并安置在特殊设计的座椅中,抽出座椅,锁就会自动滑出。上锁时,打开座椅后下方的固定阀,抽出座椅,再用钥匙打开Seatylock,展开锁链即可。解锁时,用钥匙开锁后,折叠好锁链,将座椅固定在金属杆上,扣上固定阀。操作简单便捷,且安全性很高,整个过程能在30秒内完成。

541a24904fe00

 

Seatylock锁链展开长度为3英尺(约1米),由钢材材质制成,制造工艺精致细密。生产过程中,座椅要经过抗压弹性测试,而锁链要进行抗破坏测试,断线钳已不再是车锁的噩梦了。Seatylock适用于各种自行车型号,安装和拆卸都很方便。发明者Oren Livne 和生产商Michael Shenkerman表示,Seatylock钢材锁链能够抵抗任何破坏,坚固无比。

541a24a8e7e04

 

Seatylock起售价为75美元,有两种款式:舒适型和耐磨型,这两款座椅宽度不同。此外,Seatylock有多种颜色可选,能够满足客户的个人定制要求。

Seatylock团队计划筹资4万美元,正在Kickstarter上众筹,如果你是骑行爱好者就来支持一下吧!

Seatylock:让自行车座垫变身车锁-,首发于极客范 – GeekFan.net

google街景里的奇葩镜头-9eyes

又是一种新的google街景玩法。。。网站收集了来自google街景里的奇葩镜头,要说有多奇葩?举个栗子先:两个正在打架的女人;车祸现场;在公路上奔跑的逃犯;各种面具男。。。

9-eyes

 

传送门 http://9-eyes.com/

 方法

进入网站直接观看图片,唯一可惜的是作者没有提供这些图片在google街景中的位置。。。

google街景里的奇葩镜头-9eyes,首发于极客范 – GeekFan.net

GitHub上最热门的11款开源安全工具

恶意软件分析、渗透测试、计算机取证——GitHub托管着一系列引人注目的安全工具、足以应对各类规模下计算环境的实际需求。

作为开源开发领域的基石,“所有漏洞皆属浅表”已经成为一条著名的原则甚至是信条。作为广为人知的Linus定律,当讨论开源模式在安全方面的优势时,开放代码能够提高项目漏洞检测效率的理论也被IT专业人士们所普遍接受。

现在,随着GitHub等高人气代码共享站点的相继涌现,整个开源行业开始越来越多地帮助其它企业保护自己的代码与系统,并为其提供多种多样的安全工具与框架,旨在完成恶意软件分析、渗透测试、计算机取证以及其它同类任务。

以下十一个基本安全项目全部立足于GitHub。任何一位对安全代码及系统抱有兴趣的管理员都有必要对它们加以关注。

1、Metasploit 框架

作为由开源社区及安全企业Rapid7一手推动的项目,Metasploit框架是一套专门用于渗透测试的漏洞开发与交付系统。它的作用类似于一套漏洞库,能够帮助管理人员通过定位弱点实现应用程序的安全性评估,并在攻击者发现这些弱点之前采取补救措施。它能够被用于对Windows、Linux、Mac、Android、iOS以及其它多种系统平台进行测试。

“Metasploit为安全研究人员提供了一种途径,能够以相对普遍的格式对安全漏洞加以表达,”Rapid7公司工程技术经理Tod Beardsley指出。“我们针对全部设备类型打造出数千种模块——包括普通计算机、手机、路由器、交换机、工业控制系统以及嵌入式设备。我几乎想不出有哪种软件或者固件无法发挥Metasploit的出色实用性。” 项目链接:https://github.com/rapid7/metasploit-framework

2、Brakeman

Brakeman是一款专门面向Ruby on Rails应用程序的漏洞扫描工具,同时也针对程序中一部分数值向另一部分传递的流程执行数据流分析。用户无需安装整套应用程序堆栈即可使用该软件,Brakeman缔造者兼维护者Justin Collins解释道。

尽管速度表现还称不上无与伦比,但Brakeman在大型应用程序扫描方面只需数分钟、这样的成绩已经超越了“黑盒”扫描工具。虽然最近已经有针对性地作出了修复,但用户在使用Brakeman时仍然需要留意误报状况。Brakeman应该被用于充当网站安全扫描工具。Collins目前还没有将其拓展至其它平台的计划,不过他鼓励其他开发人员对项目代码作出改进。项目链接:https://github.com/presidentbeef/brakeman

3、Cuckoo Sandbox

Cuckoo Sandbox是一款自动化动态恶意软件分析系统,专门用于检查孤立环境当中的可疑文件。

“这套解决方案的主要目的是在启动于Windows虚拟机环境下之后,自动执行并监控任何给定恶意软件的异常活动。当执行流程结束之后,Cuckoo会进一步分析收集到的数据并生成一份综合性报告,用于解释恶意软件的具体破坏能力,”项目创始人Claudio Guarnieri表示。

Cuckoo所造成的数据包括本地功能与Windows API调用追踪、被创建及被删除的文件副本以及分析机内存转储数据。用户可以对该项目的处理与报告机制进行定制,从而将报告内容生成为不同格式,包括JSON与HTML。Cuckoo Sandbox已经于2010年开始成为谷歌代码之夏中的项目之一。项目链接:https://github.com/cuckoobox/cuckoo

4、Moloch

Moloch是一套可扩展式IPv4数据包捕捉、索引与数据库系统,能够作为简单的Web界面实现浏览、搜索与导出功能。它借助HTTPS与HTTP机制实现密码支持或者前端Apahce能力,而且无需取代原有IDS引擎。

该软件能够存储并检索标准PCAP格式下的所有网络流量,并能够被部署到多种系统之上、每秒流量处理能力也可扩展至数GB水平。项目组件包括捕捉、执行单线程C语言应用程序、用户也可以在每台设备上运行多个捕捉进程;一套查看器,这实际是款Node.js应用程序、针对Web接口以及PCAP文件传输;而Elasticsearch数据库技术则负责搜索类任务。项目链接:https://github.com/aol/moloch

5、MozDef:Mozilla防御平台

这款Mozilla防御平台,也就是MozDef,旨在以自动化方式处理安全事件流程,从而为防御者带来与攻击者相对等的能力:一套实时集成化平台,能够实现监控、反应、协作并改进相关保护功能,该项目缔造者Jeff Bryner解释称。

MozDef对传统SEIM(即安全信息与事件管理)功能作出扩展,使其具备了协同事件响应、可视化以及易于集成至其它企业级系统的能力,Bryner指出。它采用Elasticsearch、Meteor以及MongoDB收集大量不同类型的数据,并能够根据用户需求以任意方式加以保存。“大家可以将MozDef视为一套立足于Elasticsearch之上的SIEM层,能够带来安全事件响应任务流程,”Bryner表示。该项目于2013年在Mozilla公司内部开始进行概念验证。项目链接:https://github.com/jeffbryner/MozDef

6、MIDAS

作为由Etsy与Facebook双方安全团队协作打造的产物,MIDAS是一套专门针对Mac设备的入侵检测分析系统框架(即Mac intrusion detection analysis systems,缩写为MIDASes)。这套模块框架提供辅助工具及示例模型,能够对OS X系统驻留机制中出现的修改活动进行检测。该项目基于《自制防御安全》与《攻击驱动防御》两份报告所阐述的相关概念。

“我们发布这套框架的共同目标在于促进这一领域的探讨热情,并为企业用户提供解决方案雏形、从而对OS X终端当中常见的漏洞利用与驻留模式加以检测,”Etsy与Facebook双方安全团队在一份说明文档中指出。MIDAS用户能够对模块的主机检查、验证、分析以及其它针对性操作进行定义。项目链接:https://github.com/etsy/MIDAS

7、Bro

Bro网络分析框架“与大多数人所熟知的入侵检测机制存在着本质区别,”Bro项目首席开发者兼加州伯克利大学国际计算机科学协会高级研究员Robin Sommer指出。

尽管入侵检测系统通常能够切实匹配当前存在的各类攻击模式,但Bro是一种真正的编程语言,这使其相较于那些典型系统更为强大,Sommer表示。它能够帮助用户立足于高语义层级执行任务规划。

Bro的目标在于搜寻攻击活动并提供其背景信息与使用模式。它能够将网络中的各设备整理为可视化图形、深入网络流量当中并检查网络数据包;它还提供一套更具通用性的流量分析平台。项目链接:https://github.com/bro/bro

8、OS X Auditor

OS X Auditor是一款免费计算机取证工具,能够对运行系统之上或者需要分析的目标系统副本当中的伪迹进行解析与散列处理。包括内核扩展、系统与第三方代理及后台程序、不适用的系统以及第三方启动项、用户下载文件外中已安装代理。

用户的受隔离文件则可以提取自Safari历史记录、火狐浏览器cookies、Chrome历史记录、社交与邮件账户以及受审计系统中的Wi-Fi访问点。项目链接:https://github.com/jipegit/OSXAuditor

9、The Sleuth Kit

The Sleuth Kit是一套库与多种命令行工具集合,旨在调查磁盘镜像,包括各分卷与文件系统数据。该套件还提供一款插件框架,允许用户添加更多模块以分析文件内容并建立自动化系统。

作为针对微软及Unix系统的工具组合,Sleuth Kit允许调查人员从镜像当中识别并恢复出事件响应过程中或者自生系统内的各类证据。在Sleuth Kit及其它工具之上充当用户界面方案的是Autopsy,这是一套数字化取证平台。“Autopsy更侧重于面向用户,”Sleuth Kit与Autopsy缔造者Brian Carrier指出。“The Sleuth Kit更像是一整套能够为大家纳入自有工具的库,只不过用户无需对该训加以直接使用。” 项目链接:https://github.com/sleuthkit/sleuthkit

10、OSSEC

基于主机的入侵检测系统OSSEC能够实现日志分析、文件完整性检查、监控以及报警等功能,而且能够顺利与各种常见操作系统相对接,包括Linux、Mac OS X、Solaris、AIX以及Windows。

OSSEC旨在帮助企业用户满足合规性方面的各类要求,包括PCI与HIPAA,而且能够通过配置在其检测到未经授权的文件系统修改或者嵌入至软件及定制应用日志文件的恶意活动时发出警报。一台中央管理服务器负责执行不同操作系统之间的策略管理任务。OSSEC项目由Trend Micro公司提供支持。项目链接:https://github.com/ossec/ossec-hids

11、PassiveDNS

PassiveDNS能够以被动方式收集DNS记录,从而实现事故处理辅助、网络安全监控以及数字取证等功能。该软件能够通过配置读取pcap(即数据包捕捉)文件并将DNS数据输出为日志文件或者提取来自特定接口的数据流量。

这款工具能够作用于IPv4与IPv6流量、在TCP与UDP基础上实现流量解析并通过缓存内存内DNS数据副本的方式在限制记录数据量的同时避免给取证工作带来任何负面影响。项目链接:https://github.com/gamelinux/passivedns

GitHub上最热门的11款开源安全工具,首发于博客 – 伯乐在线

心跳眼镜

Google Class的出现引领了一大堆的眼睛系产品,各家硬件公司似乎都参与到了可穿戴式的队伍中,智能手环的出现更是铺天盖地。

141122j2vkibjabckbbjcy

 

传说中的Google Glass

141122hk4rsu4hmss1yy4k

 

Arduino DIY “google glass”

因此LZ也想搅搅这趟浑水,于是『心跳眼镜』闪亮登场,3D打印+纯黑色喷漆,效果还是可圈可点滴~

141123ahkr6vsz5wrhsh5h

 

LZ连广告词都想好了:

想了解你现在的心率吗?
想记录你一天的心跳数据吗?
想知道男(女)朋友是否对你说谎吗?(大雾一片)
请使用Angelo出品的『心跳眼睛』吧~

下面就来介绍一下此款眼睛的特点:
1. 3D打印:3D打印就不多说了,做原型的神器。还有一点也是挺有用的,PLA这种材料只要用热风枪一吹就会变软,如果在设计上有点问题可以通过这种方式弥补。镜框特别细的地方断掉了,用热风枪一吹搞定。

141123bgrt2bcxi0cri20t

 

2. 喷漆:LZ是第一次喷漆,一开始使用的是木头的颜色的漆,企图营造一种木制的感觉。想得很好但事与愿违,喷漆水平太渣,再加上木色的漆比较难以盖住3D打印件的颜色,被各种吐槽。只能让我们的ALLEN大神帮忙,喷出来的作品很有沧桑感,128个赞。

3. 模块化结构:当初在做这个原型的时候就在想:不能把这副眼镜局限在心跳测量上面。因此这副眼镜的眼镜架是可以替换的,可以让它变成『血压眼镜』,『血糖眼镜』,『偷窥眼镜』(大雾)什么的。另外,没电了可以直接换一个电池眼镜架,省去了在充电时没有办法佩戴的问题~

141123wld0xh7jtezt0f7d

 

4. RGBLED:眼镜前方的两个RGBLED小灯在每一次心跳的时候都会闪烁,在心率正常的时候显示为绿色;当心跳越来越慢,就会变成蓝色;当心跳越跳越快,就会变成红色。让对方带上,你就可以看到(监视^_^)他的心跳了~~

141124u2808f2cp2ry1ci1

 

5. 蓝牙:通过Bluno nano 和 Android 手机连接,得到当前的心跳,下图就是我写的Android程序,emoji表情显示的是不同心跳状态下的不同人物表情~~

141126jwxovauzchaxl232

 

我特别喜欢最右边的升天的图标,Angelo的化身~~

141125ho3mqhs3yzns35vd

 

如果你想自己做一个『心跳眼镜』以下是你所要用到的东西:
1. 3D打印机一台
2. Bluno Nano
3. 锂电池3.7V 两块
4. 脉搏传感器
5. Micro USB一根
5. 排母若干
6. 排针若干
7. 电线若干
8. Android手机(蓝牙4.0, ROM 4.3+)一台
9. 天才一枚(误)

机械设计:

141126giaa5ieneu6bai5n

 

电子连线图:

144901cftefs4d0hodfa1u

 

所有的资源都在Github上面,包括安卓端,Arduino端,3D打印设计模型。
所有资料在这里,请自取~~

心跳眼镜,首发于极客范 – GeekFan.net

3D打印水龙头 西瓜变身酒桶

Hi,今年夏天有看到什么有趣的项目吗?
看看这个很酷的 通过3D 打印的水龙头让西瓜变身酒桶的项目吧!一家国外桌面 3D 打印机制造商Robo3D,公布了一个可打印的水龙头,让你可以安装在西瓜的身上,瞬间变身一个为夏季BBQ趴体的居家旅行好伴侣。

165503y03ki3qqnjeqk0kj

 

这个西瓜水龙头由五个不同的零件组成。如果您的3D打印机的打印尺寸够大,还可以一次打印完成。

模型下载链接:thingiverse

165525tprrxf00d00w0r7x 165528g34cyck1ffb8m1y3

 

如果你也有一台3D打印机的话,像我们一样打印一个水龙头,西瓜汁喝完后也可以装上别的饮料,用挖空的西瓜酒桶装柠檬水、鸡尾酒或随便的其他什么,看你想象咯。来瞅瞅我们打印的吧,万事俱备,只欠西瓜 ╮(╯_╰)╭

170033v0fzslzsf0vp1t0r

3D打印水龙头 西瓜变身酒桶,首发于极客范 – GeekFan.net

在后院有一个3D打印的城堡,真是棒极了

screen-shot-2014-08-29-at-3-05-40-pm

 

现在我知道要什么样的生日礼物了。安德烈·卢金科(Andrey Rudenko)利用定制的3D打印技术在他自己家的后院打印了一个城堡。从概念设计到完工花了他两年的时间。最后出来的成果也是很了不起的。

这张图片只是他网站上的一张截图,网站上展示了他的建设过程

据卢金科称,使用混凝土来建造城堡遇到了一些特殊的问题。卢金科说“单独打印塔楼就是一个错误,把它们抬起来并且安装到城堡上去真是太难了。”我可以想象当时的情景。

下一步要做什么呢?一个“与实物大小一样”的房子。这个城堡已经足够大,可以让人们进出其中,但看起来建造者还有更远大的计划。下一个建筑物很可能会建在温度更高的地方。为什么要温度更高?这样混凝土凝固得就可以更快一些,如果你可以让混凝土凝固更快,那么你的建造速度也就会提高。

卢金科打算夜以继日地打印接下来的建筑,并且所有的打印工作都在现场完成,因此保证混凝土状况良好对于承受荷载将会是至关重要的。

在后院有一个3D打印的城堡,真是棒极了,首发于极客范 – GeekFan.net

如何用你家的猫黑掉邻家的无线网络

七月月底,华盛顿特区的郊区,一只叫Coco的暹罗猫在社区里游荡。它花了三个小时遍历了附近邻家的后院。它杀死了一只老鼠,然后得意的把死老鼠带回它80岁的老主人南希的家里。Coco在外闲逛时,顺便对附近街坊的无线路由器做了些调查,发现,其中4家路由器是老式的,很容易破解,还有4家根本没有密码。

Coco不知道,它脖子上的项圈是南希孙女婿、安全研究员Bransfield设计的。Bransfield在项圈里安装了一个Spark Core芯片,里面有他特制的固件程序,还有一个WiFi卡,以及一个微型GPS模块和电池。对于探测邻居们的WiFi网络、了解谁家完全容易侵入、谁家用简单工具就能破解,这些工具都是必要的。

早在1980年代,黑客们经常会用一种叫 ““wardialing”的技术,它通过调制解调器,循环搜索数据,不受区域限制的找到互联网中无保护的电脑。WiFi的发明带来了“接入点映射”技术,车内装根天线,然后在城里转悠,立刻就能探测到易破解或不设密的无线网。本周末,在拉斯维加斯DEF CON黑客大会上,Bransfield将介绍他的新发明:“智能宠物项圈”。他设计的这个装置价格不到100美金,却能够让任何一只室外活动的猫变身WiFi探测器成为黑客帮凶。

猫咪Skitzy

尽管在这次黑客大会上他的演讲主题是——“如何武装你的宠物”,但Bransfield相信,智能宠物项圈不具有潜在的安全威胁。相反,这种趣味设计是用来娱乐这次大会的黑客观众的。不过,喵星人带回的数据显示,出众多的无线网络仍然10几年前的、容易破解的WEP加密方式,这让他大吃了一惊。“我的目的不是让人们知道哪有免费WiFi,只是觉得把探测技术装在猫咪身上,让它带着四处转悠这种想法很好玩。”Bransfield说,“猫咪获得的数据显示,虽然现在已经是2014年,仍然有很多人的网络是开放的或使用落后的加密方法。”

在演讲中,Bransfield将会讲解如何制作智能宠物项圈,人们可以仿照他制作自家的WiFi探测猫。这种装置只是在最近才有可能实现,因为Spark Core在上月实现了改进,更容易编程。曾经有个人在安全简报会上向他展示了一个发射信号定位宠物GPS的项圈,Bransfield就是那时候冒出用猫进行无线探测想法的。“只需要一个WiFi探测器,”他说,“这个想法很有意思,我决定做一个。”

首次实验中,他把一个HTC Wildfire智能手机装到宠物外套口袋里,然后让同事家的大猫Skitzy穿上。但是Skitzy很快就甩掉外套,弄丢了Bransfield的装置。“太倒霉了,”他说,“那只猫欠我一部手机。”

智能项圈和美元大小参照

接下来的几个月里,Bransfield将全部精力都放在了打造项圈上。南希帮他把原件缝进了布条里,然后戴在Skitzy身上测试。但是,Skitzy令他失望了,猫咪坐前廊上不动弹,一直到电池没电。

事实显示,Coco才是一只出色的间谍猫。三个多小时里,它探测了23个WiFi点,发现其中的三分之一完全开放或使用了很容易破解加密技术。Bransfield将这些网络点通过谷歌地球的应用程序接口(API)在地图中绘制出来,安全防护薄弱的站点的数量之多令人吃惊。Bransfield说,有几个WiFi路由器竟然还保留着出厂设置。

虽然他和他的猫咪探长主要是为了自我娱乐,但Bransfield还希望能让更多的人提高安全意识——尽管安全社群里人对加密防范已经习以为常。“很明显,相对于网络安全,人们对猫更感兴趣。”布兰斯菲尔德说。“如果能让大家知道,就连猫都可以破解他们家的WiFi网络,这未必不是一件好事。”

如何用你家的猫黑掉邻家的无线网络,首发于博客 – 伯乐在线

3D打印的撞匙:几乎可以开所有锁

keybump-inline-lead-660x443

 

撞匙是锁匠(和黑客)用来开一些普通锁所使用的的简单工具。到目前为止,很多锁由于过于复杂无法被撞匙打开,所以还是安全的,也因此由于这种复杂性而让人有一点安全感。而这一切现在都发生了改变。

由乔斯·威尔斯(Jos Weyers)和克里斯蒂安·霍勒(Christian Holler)创造出来的这些钥匙,在被锤子撞击后,可以用来敲打或撞击开标准锁的锁芯。这两人发现了根据锁孔本身的照片来3D打印一个适合锁眼的塑料钥匙的方法。在塑料材料经过几次精细的裁剪之后,你就可以拿到一个可用的钥匙了。

视频展示了它的工作原理——以及它的简单易用。

两人并不希望人们用这个工具闯入军事设施。相反,他们想要展示大多数门锁是如何地原始,而且要骗过安全系统真的是变得越来越容易。如果任何人只要有3D打印机和相机就可以制作一把钥匙,那为什么还要锁呢?

3D打印的撞匙:几乎可以开所有锁,首发于极客范 – GeekFan.net

如何用正确姿势调戏蹭网者?

这篇文章本来是知乎回答的一个问题,但是由于本人五行缺勤奋,所以一直没写(其实是忘了=。=),下面是我的一个实验,如何通过squid调戏那些蹭网的人。没什么技术含量,请大牛不要笑话~

声明:本实验仅作为技术分享,一把刀用来砍什么,由你决定。

先上效果:

是不是有点意思?
这里还需要说明一件事情
本文目的在于分享,采用的方式是国外的Pete大大的一种做法,效果不错,http://www.ex-parrot.com/pete/upside-down-ternet.html 但是这里不是重复造轮子,实在是Pete先僧写得过于简略,作为事件主角的squid居然被一笔带过,squid表示相当不爽(╯‵□′)╯︵┻━┻ 。如果可以通过上面的描述实现这个效果的,就不用往下看我的废话连篇了~如果你和我一样开始遇到过问题,那就跟着我走吧~
先说一下大体的思路。既然是要对网页中的图片进行操作,那么我们首先需要把图片下载到本地,然后进行变换之后再输出到客户端机器上面,就实现了图片的翻转,水印,模糊等各种捉弄人的效果。当然功能绝不仅仅是这样就算了,更多功能,大家看完之后不妨多挖掘一下,我就不多废话了~
好的,那么下面我们正式开始!

0×01    实验环境

我先说一下我的实验环境:

主机:ubuntu
虚拟机:windowsXP(vbox)
软件:squid、apache

拓扑环境就不多废话了,我这边是host通过wlan0上网,虚拟机选择Host-Only模式,连接到主机的vboxnet0接口(默认的,我没修改)。

0×02  系统配置

这里,我们首先要把系统的网络转发功能打开,可以使用

echo 1 > /proc/sys/net/ipv4/ip_forward

暂时启用,当然也可以修改sysctl.conf永久转发。
然后,对虚拟机进行ip设定,我这里设置为192.168.56.21,子网掩码255.255.255.0

0×03  软件设置
下面我们进行软件的设置。
apache不多说了,你可以指定一个本地路径作为网络分享的地址,作用主要是发布修改后的图片,我这里的路径选择是/mydoc/test/
接着是squid。
关于squid的安装这里不是重点,网上有很多的教程,我们着重说配置。Squid的配置文件是在/etc/squid(3)下面的squid.conf。为了看起来能凸显得我的高冷气质(楼主自恋程度已经逆天…( _ _)ノ|壁 ),着重配置的点我都已经写在上传的文件里面了,文末我会给出地址,大家可以看一下。
这里之所以说squid是关键,是因为我们主要使用了squid的redircetor的功能,即我们常说的重定向器功能。重定向器可以将收到的url进行改写重定向,而且支持python、perl、C等等语言写的重定向脚本(程序),功能还是很强大的,这里感兴趣的同学不妨玩玩~这里贴上《squid权威指南》中关于squid的详细描述,有问题可以到这里查阅:http://zyan.cc/book/squid/chap11.html
然后,我们把脚本文件放在配置文件中指定的位置,我这里是放在了/etc/squid3/下面,这里需要注意的是文件的权限问题,因为squid默认运行权限是squid用户,隶属于squid组(squid3是proxy用户,proxy组),所以如果squid没有权限执行脚本文件的时候是会报错的。这里的脚本文件我直接使用了Pete大大给出的perl脚本进行了一点点修改,可能是因为Pete直接从本地测试的,所以脚本有一点点的小问题,大家也可以从我给出的网址上下载。
然后我们配置虚拟机的代理。因为这里我没有用iptables进行流量转发,为了方便,直接配置了浏览器的代理配置,这里代理IP 192.168.56.1:8080,当然大家也可以使用iptables进行转发,这样就可以了。
最后我们重启squid。

sudo service squid restart

(squid3的服务名称是squid3),这里注意对于squid的任何操作一定要记得用sudo执行,否则会报错。

0×04  检验效果
这个时候,我们打开虚拟机,输入http://www.baidu.com,就应该可以看到baidu的logo是反向的了,打开更多网页试试吧~是不是很好玩?23333。

当然,脚本只是使用了flip选项,当然这里不建议使用过于复杂的命令,会使浏览器响应过于慢。关于imagemagic的更多的效果可以从网上查阅,是一个相当强大的命令行图片控制软件。

0×05  更多猜想
实验已经成功,那么我们说回到我们今天的MITM主题上面。有的同学或许会问:你得得得得说这么多,怎么应用啊?我这里提供一个小的方式,抛砖引玉:
可以买一树莓派,买一个usb上网卡,一张中国联通或者中国电信的卡,再买一个无线网卡,用airport建个无线信号,买个电源,装上linux配置好squid,当然还可以打开sniff,配好接收数据的服务器。。

剩下的就是:背好你的背包,默默走到斯达巴克斯,点一杯咖啡,用吸管慢慢品尝这份苦茗,望向窗外花坛那朵玫瑰,心里静静地想着那个TA。。。
说道这里,大家可能会想到菠萝,其实因为菠萝使用的是openwrt的精简系统,很多东西不可以使用,而且配置比起树莓派低了一些,大批量的图片操作很容易让CPU狂飙,自带的MITM最近貌似也不能用了?不过还是推荐Geek们自行动手~

如果有更多的想法,我们一起交流。

0×06  注意事项
因为我在做实验的过程中也遇到了很多问题,这里贴出一些常见的问题,大牛略过吧~:)
1、注意接收图片文件夹的权限和隶属于的用户,最好是能与squid用户相同的用户组。如果不是,可以使用chown进行修改。例:chown proxy.proxy xxx
2、注意脚本文件的权限。脚本文件必须是可以被squid用户执行的。
3、注意log文件的权限,关于log文件一共有三个,位于/var/log/squid3/下,分别是cache.log、store.log、access.log,这三个文件必须是可写的,同时也可以直接用chown改变用户所有权限。
4、遇到更多虚拟机打不开网页的问题,大家可以查阅/var/log/squid3/cache.log,这里会给出很详细的说明。
这里我能想到的暂时就这么多了,再有什么其他问题我们可以一起交流,我这里有一把肥皂。。。

0×07  写在最后
最后,也没什么好说的了,附上链接:https://github.com/linvex/MITM-squid/tree/master

上几张图吧~

如何用正确姿势调戏蹭网者?,首发于博客 – 伯乐在线

疯狂车库发明家继续疯狂,变身焰火侠

tin-man

 

抬头看烟花好累,有没有想过置身其中体验一把百焰齐发的感觉?

你可以遥控四轴飞行器飞过烟花丛,然后拍下来。或者,如果觉得自己够劲暴,你可以穿上全金属防护铠甲,身上绑满炮仗,等待点火的一刻。

视频里的老兄好像有点面熟?没错,这个疯狂举动依旧是我们最爱的疯狂车库发明家柯林·福尔泽(Colin Furze)业余时间捣鼓出的大作。

还记得全自动伸缩金刚狼爪吗?那是他的作品。还记得能在天花板上凌波微步的反重力靴子吗?那也是他的作品。还记得装在手腕上的火焰喷射器吗?没错,还是他的作品。

虽然有点老生常谈,但我还是要说:非专业人士请勿模仿。或者容我改一下措辞:非柯林·福尔泽本人,请勿模仿。

疯狂车库发明家继续疯狂,变身焰火侠,首发于极客范 – GeekFan.net

Web 前端攻防(2014版)

禁止一切外链资源

外链会产生站外请求,因此可以被利用实施 CSRF 攻击。

目前国内有大量路由器存在 CSRF 漏洞,其中相当部分用户使用默认的管理账号。通过外链图片,即可发起对路由器 DNS 配置的修改,这将成为国内互联网最大的安全隐患。

案例演示

百度旅游在富文本过滤时,未考虑标签的 style 属性,导致允许用户自定义的 CSS。因此可以插入站外资源:

所有浏览该页面的用户,都能发起任意 URL 的请求:

由于站外服务器完全不受控制,攻击者可以控制返回内容:

  • 如果检测到是管理员,或者外链检查服务器,可以返回正常图片;
  • 如果是普通用户,可以返回 302 重定向到其他 URL,发起 CSRF 攻击。例如修改路由器 DNS:
http://admin:admin@192.168.1.1/userRpm/PPPoECfgAdvRpm.htm?wan=0&lcpMru=1480&ServiceName=&AcName=&EchoReq=0&manual=2&dnsserver=黑客服务器&dnsserver2=4.4.4.4&downBandwidth=0&upBandwidth=0&Save=%B1%A3+%B4%E6&Advanced=Advanced

演示中,随机测试了几个帖子,在两天时间里收到图片请求 500 多次,已有近 10 个不同的 IP 开始向我们发起 DNS 查询。

通过中间人代理,用户的所有隐私都能被捕捉到。还有更严重的后果,查考流量劫持危害探讨

要是在热帖里『火前留名』,那么数量远不止这些。

如果使用发帖脚本批量回复,将有数以万计的用户网络被劫持。

防范措施

杜绝用户的一切外链资源。需要站外图片,可以抓回后保存在站内服务器里。

对于富文本内容,使用白名单策略,只允许特定的 CSS 属性。

尽可能开启 Content Security Policy 配置,让浏览器底层来实现站外资源的拦截。

富文本前端扫描

富文本是 XSS 的重灾区。

富文本的实质是一段 HTML 字符。由于历史原因,HTML 兼容众多不规范的用法,导致过滤起来较复杂。几乎所有使用富文本的产品,都曾出现过 XSS 注入。

案例演示

旅游发帖支持富文本,我们继续刚才的演示。

由于之前已修复过几次,目前只能注入 embed 标签和 src 属性。

但即使这样,仍然可以嵌入一个框架页面:

因为是非同源执行的 XSS,所以无法获取主页面的信息。但是可以修改 top.location,将页面跳转到第三方站点。

将原页面嵌入到全屏的 iframe 里,伪造出相同的界面。然后通过浮层登录框,进行钓鱼。

总之,富文本中出现可执行的元素,页面安全性就大打折扣了。

防范措施

这里不考虑后端的过滤方法,讲解使用前端预防方案:

无论攻击者使用各种取巧的手段,绕过后端过滤,但这些 HTML 字符最终都要在前端构造成元素,并渲染出来。

因此可以在 DOM 构造之后、渲染之前,对离屏的元素进行风险扫描。将可执行的元素(script,iframe,frame,object,embed,applet)从缓存中移除。

或者给存在风险的元素,加上沙箱隔离属性。

  • 例如 iframe 加上 sandbox 属性,即可只显示框架内容而不运行脚本
  • 例如 Flash 加上 allowScriptAccess 及 allowNetworking,也能起到一定的隔离作用。

DOM 仅仅被构造是不会执行的,只有添加到主节点被渲染时才会执行。所以这个过程中间,可以实施安全扫描。

实现细节可以参考:http://www.etherdream.com/FunnyScript/richtextsaferender.html

如果富文本是直接输入到静态页面里的,可以考虑使用 MutationEvent 进行防御。详细参考:http://fex.baidu.com/blog/2014/06/xss-frontend-firewall-2/

但推荐使用动态方式进行渲染,可扩展性更强,并且性能消耗最小。

跳转 opener 钓鱼

浏览器提供了一个 opener 属性,供弹出的窗口访问来源页。但该规范设计的并不合理,导致通过超链接打开的页面,也能使用 opener。

因此,用户点了网站里的超链接,导致原页面被打开的第三方页面控制。

虽然两者受到同源策略的限制,第三方无法访问原页面内容,但可以跳转原页面。

由于用户的焦点在新打开的页面上,所以原页面被悄悄跳转,用户难以觉察到。当用户切回原页面时,其实已经在另一个钓鱼网站上了。

案例演示

百度贴吧目前使用的超链接,就是在新窗口中弹出,因此同样存在该缺陷。

攻击者发一个吸引用户的帖子。当用户进来时,引诱他们点击超链接。

通常故意放少部分的图片,或者是不会动的动画,先让用户预览一下。要是用户想看完整的,就得点下面的超链接:

由于扩展名是 gif 等图片格式,大多用户就毫无顾虑的点了。

事实上,真正的类型是由服务器返回的 MIME 决定的。所以这个站外资源完全有可能是一个网页:

当用户停留在新页面里看动画时,隐匿其中的脚本已悄悄跳转原页面了。

用户切回原页面时,其实已在一个钓鱼网站上:

在此之上,加些浮层登录框等特效,很有可能钓到用户的一些账号信息。

防范措施

该缺陷是因为 opener 这个属性引起的,所以得屏蔽掉新页面的这个属性。

但通过超链接打开的网页,无法被脚本访问到。只有通过 window.open 弹出的窗口,才能获得其对象。

所以,对页面中的用户发布的超链接,监听其点击事件,阻止默认的弹窗行为,而是用 window.open 代替,并将返回窗体的 opener 设置为 null,即可避免第三方页面篡改了。

详细实现参考:http://www.etherdream.com/FunnyScript/opener_protect.html

当然,实现中无需上述 Demo 那样复杂。根据实际产品线,只要监听用户区域的超链接就可以。

用户内容权限

支持自定义装扮的场合,往往是钓鱼的高发区。

一些别有用心者,利用装扮来模仿系统界面,引诱用户上钩。

案例演示 – 空间越界

百度空间允许用户撰写自定格式的内容。

其本质是一个富文本编辑器,这里不演示 XSS 漏洞,而是利用样式装扮,伪装一个钓鱼界面。

百度空间富文本过滤元素、部分属性及 CSS 样式,但未对 class 属性启用白名单,因此可以将页面上所有的 CSS 类样式,应用到自己的内容上来。

防范措施

规定用户内容尺寸限制,可以在提交时由用户自己确定。

不应该为用户的内容分配无限的尺寸空间,以免恶意用户设置超大字体,破坏整个页面的浏览。

最好将用户自定义的内容嵌套在 iframe 里,以免影响到页面其他部位。

如果必须在同页面,应将用户内容所在的容器,设置超过部分不可见。以免因不可预测的 BUG,导致用户能将内容越界到产品界面上。

案例演示 – 功能越界

自定义装扮通常支持站外超链接。

相比贴吧这类简单纯文字,富文本可以将超链接设置在其他元素上,例如图片。

因此这类链接非常具有迷惑性,用户不经意间就点击到。很容易触发之前提到的修改 opener 钓鱼。

如果在图片内容上进行伪装,更容易让用户触发一些危险操作。

要是和之前的区域越界配合使用,迷惑性则更强:

防范措施

和之前一样,对于用户提供的超链接,在点击时进行扫描。如果是站外地址,则通过后台跳转进入,以便后端对 URL 进行安全性扫描。

如果服务器检测到是一个恶意网站,或者目标资源是可执行文件,应给予用户强烈的警告,告知其风险。

点击劫持检测

点击劫持算是比较老的攻击方式了,基本原理大家也都听说过。就是在用户不知情的前提下,点击隐藏框架页面里的按钮,触发一些重要操作。

但目前在点击劫持上做防御的并不多,包括百度绝大多数产品线目前都未考虑。

案例演示

能直接通过点击完成的操作,比较有意义的就是关注某用户。例如百度贴吧加关注的按钮:

攻击者事先算出目标按钮的尺寸和坐标,将页面嵌套在自己框架里,并设置框架的偏移,最终只显示按钮:

接着通过 CSS 样式,将目标按钮放大,占据整个页面空间,并设置全透明。

这时虽看不到按钮,但点击页面任意位置,都能触发框架页中加关注按钮的点击:

防范措施

事实上,点击劫持是很好防御的。

因为自身页面被嵌套在第三方页面里,只需判断 self == top 即可获知是否被嵌套。

对一些重要的操作,例如加关注、删帖等,应先验证是否被嵌套。如果处于第三方页面的框架里,应弹出确认框提醒用户。

确认框的坐标位置最好有一定的随机偏移,从而使攻击者构造的点击区域失效。

Web 前端攻防(2014版),首发于博客 – 伯乐在线