分享一些支持企业安全工作的免费工具

其实网上有很多非常实用的免费安全工具,如果要全部介绍这些工具的话,可能一天一夜的时间都不够。虽然现在也有很多公司会通过试用版软件来“勾引”用户去购买他们完整功能的产品,但是目前市面上仍然有很多功能强大的免费安全工具,包括情报工具、在软件开发阶段保证安全性的工具、渗透测试工具和取证工具等等。 工具简介 威胁情报工具包括AlienVault的Open Threat Exchange(OTX),这个工具实际上是一个计算机安全平台,它可以收集并共享互联网威胁情报,类似的平台还有Hailataxii和Cymon.io等等。除此之外,我们还有很多静态应用程序安全测试(SAST)工具可供选择,开发人员可以用这些工具来测试采用不同编程语言(C/C++、Ruby on Rails或Python等)开发的软件。就渗透测试而言,我们通常选择使用Nmap安全扫描工具和Wireshark网络协议分析工具。专门的分析取证产品包括GRR远程取证框架、Autopsy和SleuthKit等,这些工具可以对硬盘驱动器和智能手机进行取证分析,而Volatility Foundation的开源框架则可以对系统内存进行取证分析。 威胁情报工具 安全厂商可以对威胁情报进行分析,并为相应的威胁信息创建签名,而他们的安全检测工具就可以利用这些签名数据来检测安全威胁了。AlienVault的 Open Threat Exchange(OTX)平台可以收集并与社区共享互联网威胁情报信息,这个项目目前总共有来自140个国家的47000多名参与者,这些参与者每天都会贡献超过4百万个 威胁情报标识。当新型威胁出现时,这种形式的资源共享可以帮助企业和安全厂商快速地对这些安全威胁进行识别和响应。 CyTech Services的首席执行官Ben Cotton(注册信息系统安全专家,CISSP)也表示: “AlienVault的OTX平台在共享威胁情报标识(IoC)方面做得非常的好。安全产品可以通过OTX所提供的IoC来增强自身的检测能力,并更好地检测新型的安全威胁。” eSentire 的 Cymon.io 同样也提供了大量免费的威胁情报信息,根据其官网所提供的数据,当社区成员发现了新的恶意活动或病毒感染源,他们便会立刻将相应的标识添加到Cymon.io的数据库中。 Cymon每天都会从180个不同的领域来获取安全威胁情报信息,这些领域包括公共产业、政府机构、以及商业威胁情报来源(例如VirusTotal、Phishtank、blacklists以及各大反病毒厂商的安全报告)等等。Cymon可以利用这些威胁情报来追踪恶意软件、网络钓鱼、僵尸网络、以及垃圾邮件等恶意活动,Cymon的数据库每天都会新增超过2万个独立的IP地址,到目前为止,Cymon总共有超过6百万个登陆IP,并且记录了超过3370万次安全事件。 Cotton还表示: “在我看来,除了OTX之外, Hailataxii.com 也是一个非常棒的开源威胁情报资源库。但Cymon.io同样做得非常好,我认为作为一个威胁情报共享平台来说,它与AlienVault的OTX和Hailataxii一样的优秀。” 在软件开发阶段增强安全性的工具 现在也有很多静态应用程序安全测试(SAST)工具可供广大开发人员使用,开发人员可以在软件的编码阶段利用这些工具来测试自己所编写的软件安全性是否到位。Cigital的资深安全顾问Meera Subbarao认为:“目前世界上最为流行的JavaSAST工具就是 FindBugs 和 PMD 了。这些SAST工具大多都可以以插件的形式添加到开发人员所使用的IDE内,这样就可以更好地帮助他们在开发应用程序的过程中保证编码的安全。当然了,除了针对Java的SAST工具之外,也有很多专为Python、Ruby on Rails、C/C++、JavaScript、以及.NET等编程语言的SAST工具。” 专为渗透测试/渗透测试人员而生的工具 通过对产品进行渗透测试,安全人员可以赶在黑客之前发现产品中存在的安全漏洞。安全专家使用最广泛的就是开源的 Nmap 安全扫描器了。Nmap由Gordon Lyon开发,它是一款专业的渗透测试工具,安全研究人员可以使用Nmap来扫描目标主机端口并定位网络漏洞。Cotton认为:“如果要进行网络漏洞分析的话,在所有的免费开源扫描工具中Nmap的效率是最高的。唯一不足的是,虽然Nmap可以扫描大型网络,但是它却没有提供与安全事件响应有关的功能。” Wireshark 是一款得到了广泛使用的网络协议分析工具,它同样是一款免费的渗透测试工具。该软件最初由GeraldCombs负责开发,目前由Riverbed负责维护。Cotton表示:“Wireshark可能是目前最好的网络数据包嗅探工具了。但是,Wireshark并 不支持扫描文件大小超过100MB的数据包。” 分析取证工具 企业可以利用取证工具来调查过去所发生的或正在发生的安全事件。Google的GRR远程取证框架(免费,开源)提供了实时事件响应服务,我们可以通过GRR的python代理来与GRR的python服务器进行实时交互来获取这项服务。你可以在Windows、Linux、以及macOS系统中使用GRR代理,并对系统内存数据进行取证和分析。同样的,虽然它是一款非常优秀的工具,但是当GRR用于企业环境中时,其扩展性方面的问题就会暴露出来。Cotton认为:“一般来说,我们只会用GRR来处理十台左右的设备。” 通常情况下,我们会拿多种工具来配合使用。取证工具Autopsy和SleuthKit可以对计算机硬盘、智能手机、以及磁盘镜像进行分析,该产品支持Windows、Linux、以及macOS系统。Cotton说到:“这些工具只能帮助我们对十台以下的电脑进行分析,而且Autopsy和SleuthKit同样无法有效地处理大型网络中的问题。” 还有一款不得不提的内存分析工具,即VolatilityFoundation的开源框架。这款分析取证工具可以通过收集目标主机RAM中的数据来对正在运行中的系统进行剖析。它允许你从Windows系统中收集内存数据,并导出进程、开放端口、以及网络链接相关的数据,所以它可以帮助我们识别内存中正在运行的恶意软件。 Cotton解释称: “我强烈推荐VolatilityFoundation的这款内存分析开源框架。但它的不足之处在于,当你需要开始分析数据之前,你需要创建当前的内存镜像,这样你才可以导出内存数据,并使用Volatility来对目标主机当前的RAM数据进行分析。” 这些免费的安全软件仍有很长的路要走 本文所列举出的免费工具几乎是每一位安全研究人员都使用过的,不仅是因为这些工具在开源软件项目中都是佼佼者,而且这些工具是全世界任何一个地方的人都可以免费获取和使用的。你可以使用这些工具来暂时填补企业中的安全空缺,并尽你所能地将组织或自身的安全做到你所能实现的高度。 \ 参考来源: csoonline,FB小编Alpha_h4ck编译,转载请注明来自 FreeBuf.COM*

2016年12月27日 · 1 分钟 · lucien116

KALI LINUX安装Metasploitable 3

1、安装virtualbox virtualbox安装的姿势很多,kali之前的版本是可以通过apt-get install virtualbox来安装。 或者去官方网站下载virtualbox stretch版本,官方网站:https://www.virtualbox.org/wiki/Linux_Downloads, wget http://download.virtualbox.org/virtualbox/5.1.10/virtualbox-5.1_5.1.10-112026 Debianstretch_amd64.deb 下载完成以后,通过dpkg安装: dpkg -i virtualbox-5.1_5.1.2-108956Debianstretch_i386.deb 如果有缺少依赖文件就使用下面命令补上去:apt-get -f install 运行 sudo /sbin/vboxconfig,检查是否缺少内核文件,然后根据提示安装内核文件,如:apt-get install linux-headers-amd64 2、安装packer root@kali:/# apt-get install packer 3、安装vagrant wget https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.deb dpkg -i vagrant_1.9.1_x86_64.deb 4、执行 build_win2008.sh 给sh文件加上执行权限:chmod +x build_win2008.sh,并运行它。 在Waiting for SSH to become available是有点慢,耐心等待!这时打开VirtualBox管理器可以看到预览中正在创建虚拟机。当虚拟机安装完之后,安装脚本会自动通过SSH连入虚拟机并进行各种漏洞设置。 build_win2008.sh 执行结束后会提示你执行vagrant up来启动虚拟机配置: 5、执行vagrant up 第一次执行vagrant up会往虚拟机中安装各种软件,和配置虚拟机中的漏洞。 可以把这些用于配置漏洞环境的文件用迅雷下载好,再丢虚拟机里面安装,可以节省很多时间。 http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-windows-x64.exe http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-windows-x64.exe http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jre-8u111-windows-x64.exe https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33-windows-x64.zip https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe http://download.java.net/glassfish/4.0/release/glassfish-4.0.zip wampserver2.2.d-x64.exe : http://pan.baidu.com/share/link?shareid=1406529211&uk=1010090726&fid=359162040528870 …… 6、使用虚拟机 在上面第一次执行完vagrant up之后就可以正常使用虚拟机了,后面也不用每次都执行vagrant up,直接通过VirtualBox来打开就可以了。 ...

2016年12月26日 · 1 分钟 · lucien116

Aircrack-ng 扩展 : Marfil

Marfil 是 Aircrack-ng 套件的一个扩展工具,被用于 WiFi 网络安全的评估测试。利用它,我们可以实现在多台计算机之间,进行分布式的爆破任务。 我们都知道 Aircrack-ng 套件,为我们提供了许多用于无线破解的工具。其中 aircrack-ng 工具,就是一个专门用于 802.11 WEP 和 WPA / WPA2-PSK 密钥破解的程序。由于无线的保护力度不断加大,现在市面上大多数无线都采用 WPA / WPA2-PSK 的方式进行加密 。因此我们想要破解密码,则必须使用字典或单词列表。这些字典越大,则我们所需的破解时间就越长。这还得看你的硬件配置如何,如果配置较低,破解任务可能需要几天或几个星期不等。或许此时你的旁边有一些额外的硬件设备,原本可以帮你共同来完成任务。但你无法使用 aircrack-ng 让他们之间实现分布式破解。那么你只能选择其中一个速度较快的设备,而白白浪费了另外的破解资源。Marfil 就是为了解决这个困扰,而被开发出来的。 Marfil 是一个基于 php 语言开发的工具,它能在不同节点之间实现分布式破解。它的实现原理也非常简单:将原本非常大的字典进行拆分,并将其分布在其余节点上。而不是像原本那样,只使用一个节点来破解单个 .cap 文件。过程如下: 1.在服务器节点中配置使用字典。 2.客户端节点向服务器发送破解请求。(包括.cap文件和目标网络的 BSSID) 3.客户端请求服务器开始工作。 4.开始工作后,服务器向客户端响应 .cap 文件 和 BSSID 以及字典片段。 5.客户端自行执行破解,并在完成后返回结果。 6.服务器根据结果更新破解请求状态。 7.最终,.cap 文件将针所有未成功,或找到密码部分的字典进行处理。 Aircrack-ng 扩展要求 1.aircrack-ng 套件 2.PHP >= 5.5.9 3.PHP5 SQLite 模块( 只有服务器端需要) 4.Composer ( 依赖管理工具,需要时可安装) Marfil 目前仅在 Linux 系统上进行了测试。但它的使用方式及工具,都是相对独立于平台的。因此,它也应该能在 Windows 或 Mac上工作。 Aircrack-ng 扩展: Marfil 设置 初始设置和字典配置 1.下载最新的发行版 Marfil 文件。 ...

2016年12月19日 · 1 分钟 · lucien116

远控木马Dendoroid.B分析报告

近期,360团队截获了一款功能强大的专业间谍软件,它可以通过PC端远程控制中招用户的手机,控制指令高达二十多种,窃取用户手机通讯录,短信,照片及其它重要隐私数据。这个远控木马与去年知名的Android.Dendoroid木马家族手段非常相似,所以我们将其命名为Android.Dendoroid.B。 一、木马Android受控端恶意行为分析 1.释放文件,隐藏图标,启动恶意服务 Android.Dendoroid.B启动后会根据系统版本释放自身Assets目录下的testv7或testv5文件到/data/data/{packagename}目录下重命名为test;申请Root权限,释放su后门文件ssu到/system/bin目录下。隐藏自身图标,运行test文件: test为ELF文件,主要功能为通过命令行的方式启动恶意服务WorkServer: 2.频繁结束安全软件进程 我们发现该木马在各处重要的恶意行为节点上频繁地结束国内主流安全软件进程,破坏安全软件正常运行,木马的自我保护给用户手机带来更大安全风险: 能够结束以下安全软件: 3.通话过程中自动录音 通过监控电话状态改变,来实现通话录音,每当被控手机来电时,木马会自动开启录音功能,并保存录音文件: 4.通过联网获取指令的方式实现远程控制 通过向中招手机发送不同的指令,以达到相应的行为控制。指令名称、功能及向PC端返回的响应如下表: 5.暂未实现的其它功能 木马受控端除了以上这些功能,我们还在代码中发现了解密微信聊天记录的部分代码,以及通过短信指令远程控制的代码,但该部分代码未被调用: 二、FTP服务器分析 从上面的指令列表中,可以发现隐私数据大部分都被上传到了病毒作者的FTP服务器,地址为121.199.2*.***,用户名和密码为root,登录进去后,FTP中的文件列表如下: 在服务器中我们发现并梳理了以下几个重要的文件,其中一些文件是已经从用被监控手机中实际上传的用户隐私: 其中bf.zip中是一个工程名为“SimpleServer”的Java代码,我们通过分析这个工程代码发现其主要功能是为了解析PC主控端与手机APK受控端之间的通信,关系如图: 解析Android受控端发送的指令的代码: 解析PC主控端发送指令的代码: 另一个文件“muma.rar”以“木马”拼音命名不得不引起我们的关注,我们发现这个里面有大量.php文件并且发现了下面这个图片,由此可以看出这正是去年我们播报过的Android.Dendoroid的源码,这也是我们将该木马命名为Android.Dendoroid.B的另一个原因。 三、木马PC主控端分析 FTP上的PE文件MySocketServer.exe是木马Android.Dendoroid.B的主控端,主控端用于发送远控指令和接收受控端返回的隐私信息。 我们在实际验证中点击了联系人按钮,很快返回了中招用户手机中的联系人列表: 另外,我们还在该软件上发现了一个网址 http://www.yunkong8.com/ ,该网址显示是一个专业的监控类软件售卖的网站,软件功能页面中介绍可以用手机或者使用其他电脑浏览网页来远控指定的PC客户端,网站中没有提到可以通过PC端远控手机端,我们猜测这有可能是未公开的软件功能或是定制版本。 四、感染用户 根据360互联网安全中心数据显示,最近两个月里有若干用户感染了该木马,地区包括:蚌埠、荆州、武汉、海口。 五、关于病毒作者 从受控端样本代码中发现,我们还在一个未调用的Mail类中,发现了一个QQ邮箱:84777****@qq.com,该类无任何调用,通过360全量样本的大数据的计算回查,发现该QQ邮箱曾用在了多个恶意样本中,而这些样本具有相同的Mail类并能够被正常调用。因此可以得出,该木马是经过了不断演变进化的,历史上曾经使用邮件的方式窃取用户隐私,而当前已经演变成使用FTP窃取回传隐私,回传的内容更加丰富,方式更加隐蔽 针对此qq号我们进行了追寻,发现是来自四川泸州昵称为“老A”的程序员。 通过进一步追踪,定位到了“老A”的具体信息: 杨**(常用昵称:lzyyf,老A) 2010级泸州二中 2013年9月至2017年9月,就读韩国蔚山大学 曾经使用另一QQ号:139*******,并曾经于2014年初在多个论坛中扩散类似木马 在他的微博中也多次发布木马信息: 通过360后台云查信息等大数据分析,我们发现还有其他的一些人员也与木马有关,猜测可能是买马人。 手机串号 所在地 35291106045**** 中国 东北 黑龙江省 哈尔滨市 35713905461**** 中国 华南 广东省 深圳市 35260505594**** 中国 华东 江西省 南昌市 六、总结 从Android.Dendoroid.B木马家族可以看出,这种伪装成系统应用的远控类隐私窃取木马家族,不是依靠第三方市场传播而是通过网站售卖或地下黑产交易,然后被不法人员植入到指定的监控对象中,它具备单点传播,感染特定对象,潜伏时间长,造成单点损失大等特点。建议用户提高个人隐私保护意识,同时安装安全软件定期扫描检查软件安全性。 我们将继续紧密关注这类木马家族的发展并提供安全保护方案。 ...

2016年12月14日 · 1 分钟 · lucien116

TCP-IP详解卷1-21:TCP的超时与重传(Timeout and Retransmission)

一:介绍 1: 与数据链路层的ARQ协议相类似,TCP使用超时重发的重传机制。 即:TCP每发送一个报文段,就对此报文段设置一个超时重传计时器。 此计时器设置的超时重传时间RTO(Retransmission Time-Out)应当略大于TCP报文段的平均往返时延RTT,一般可取RTO=2RTT。 但是,也可以根据具体情况人为调整RTO的值,例如可以设置此超时重传时间RTO=90秒。 当超过了规定的超时重传时间还未收到对此TCP报文段的预期确认信息,则必须重新传输此TCP报文段。 二:四种定时器 1: 重传计时器(retransmission timer):当TCP发送报文段时,就创建该特定报文段的重传计时器。可能发生两种情况: A: 若在计时器截止时间到(通常是60秒)之前收到了对此特定报文段的确认,则撤销此计时器。 B: 若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位。 2: 坚持计时器(persist timer ) :为了对付零窗口大小通知,TCP需要另一个计时器。 假定接收TCP宣布了窗口大小为零。发送TCP就停止传送报文段,直到接收TCP发送确认并宣布一个非零的窗口大小。但这个确认可能会丢失。 我们知道在TCP中,对确认是不需要发送确认的。若确认丢失了,接收TCP并不知道,而是会认为它已经完成任务了,并等待着发送TCP接着会发送更多的报文段。但发送TCP由于没有收到确认,就等待对方发送确认来通知窗口的大小。双方的TCP都在永远地等待着对方。 要打开这种死锁,TCP为每一个连接使用一个坚持计时器。当发送TCP收到一个窗口大小为零的确认时,就启动坚持计时器。当坚持计时器期限到时,发送TCP就发送一个特殊的报文段,叫做探测报文段。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒对端:确认已丢失,必须重传。 坚持计时器的值设置为重传时间的数值。但是,若没有收到从接收端来的响应,则需发送另一个探测报文段,并将坚持计时器的值加倍和复位。发送端继续发送探测报文段,将坚持计时器设定的值加倍和复位,直到这个值增大到门限值(通常是60秒)为止。在这以后,发送端每隔60秒就发送一个探测报文段,直到窗口重新打开。 3: 保活计时器(keepalive timer ) :保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲。 假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。 要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。 保活计时器通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。 若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。 4: 时间等待计时器(2MSL timer ):时间等待计时器是在连接终止期间使用的。 当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。 在时间等待期间中,连接还处于一种中间过渡状态。 这就可以使重复的FIN报文段(如果有的话)可以到达目的站因而可将其丢弃。 这个计时器的值通常设置为一个报文段的寿命期待值的两倍。 三:拥塞控制用到的术语 数据段:一个数据段就是任意的TCP/IP数据或确认包(或两者兼备)。 发送端最 大数据 段尺寸(SMSS):SMSS是发送端能发送的最大数据段的尺寸。这个值是以网络最大传送单元(MTU),MTU路径发现 算法,RMSS(见下一项),或其它因素为基础的。该尺寸不包括TCP/IP头和选项。 接收端最大数据段尺寸(RMSS):RMSS是接收端愿意接收的最大数据段的尺寸。这个值在连接开始时接收端发送的MSS选项中说明。又或者,如果MSS选项没有使用,就是536字节[Bra89].该尺寸不包括TCP/IP头和选项。 满尺寸数据段:一个包括允许最大数目数据的数据段(也就是说,一个包括SMSS字节数据的数据段)。 接收端窗口(rwnd):最近通知的接收端窗口。 拥塞窗口(cwnd):一个TCP状态参量,代表着一个TCP允许发送的最大数据量。在任意 一个给定的时刻,TCP不会发送序号大于最大确认序号和cwnd、rwnd中较小者的数据。 初始窗口(iw):初始窗口是三次握手完成后发送端的拥塞窗口的尺寸。 丢失窗口(lw):丢失窗口是在一个TCP根据它的重传定时器检测到了数据丢失之后,拥塞窗口的尺寸。 重启窗口(rw):重启窗口是TCP在一段闲置期之后重新开始传送后拥塞窗口的尺寸(如果使用慢启动算法;参见4.1节以获取更多的讨论)。 传送尺寸:已经被发送但还没有确认的数据的总量。

2016年11月29日 · 1 分钟 · lucien116

详解嗅探(被动嗅探)与ARP欺骗(主动嗅探)

关于嗅探与ARP欺骗的原理,网络上有很多很好的帖子和文章,但大部分都忽略了数据在网络中的转发过程。实际上用嗅探和ARP欺骗来做标题有点忽悠的成分,因为嗅探本身就包含了主动嗅探和被动嗅探,欺骗的目的只是让数据经过本机,即:主动嗅探=ARP欺骗+抓包。 若未加说明,文章中的三层指的是网络层,二层指的是数据链路层。 一.数据在网络中的转发过程: 1.数据在交换网络中的传输过程如下图(PC1发包给PC2) 注:此图是以公网网络为基础,如果PC为内网或者加入私有网络则在出口要考虑NAT等情况 a)PC1发现目标IP110.1.1.2(网络号110.1.1.0)与本机不在同网段(掩码为24位,所以本机网络号为1.1.1.0),因此PC1会将数据包丢给网关,为了数据报文能够到达网关,PC1封装的报文里头会以网关的MAC作为目的MAC(网络数据传输,原目的IP不变,原目的MAC通过三层网络时会不断改变)。 b)数据报文到达二层交换机(这里只涉及二层交换,如果是三层交换机并设置了端口IP,则会有所不同)后,由于二层交换机拆解数据报文时只拆解到二层(只拆解到原目的MAC),根本看不懂IP,所以会查找MAC-接口映射表(所谓的建立虚拟链路),发现网关MAC对应的是E5口,则将数据包从E5口丢出去。 c)路由器R1收到数据报文后查看原目的IP(路由器属于三层设备,拆解数据包到IP层),查看数据包的目的IP为110.1.1.1,进而查找路由表,发现数据要到达目的网络,数据包必须往下一跳218.1.1.2发送,因此路由器对数据包进行重封装,查看ARP表,原、目的IP保持不变,将原MAC修改成R1出接口(连接到R2的那个端口)的MAC地址,目的MAC改成R2的进接口(R2接R1的接口MAC地址),接下来和二层传输一样,将数据包丢给R2。 d)R2收到数据包后与R1做的操作一样,直到数据报文到达目标。根据之前的步骤可以推出数据报文到达目标后,原IP、目的IP不变,原MAC为R2接PC2的接口MAC、目的MAC为PC2的MAC。PC2发现数据报文的目的IP和目的MAC与本机相符(非攻击者),从而拆解数据包,获得数据报文内容。回复报文的时候和之前的传输一样。 2.数据在共享网络中的传输图(PC1发包给PC2) 数据报文在共享网络中的传输和交换网络唯一的不同在于第二个步骤,交换网络中交换机会根据MAC-端口对应表进行传输,也就是说除了网关(以图为例),其他同交换机下的PC机无法收到数据报文(没出现攻击的情况下)。而在共享网络中,由于HUB属于一层设备,对于到达本身的数据报文,HUB会对报文进行广播(除了收到报文的那个接口),因此接在同HUB的所有PC都能收到该报文。注:通常情况下,网卡都是工作在非混杂模式,也就是说即使收到数据报文,网卡会判断目的MAC是否和自己的一样,不一样的话代表数据包不是给自己的,因此会丢弃,只接收那些目的MAC和自己一样的数据报文。在嗅探时必须开启混杂模式,在该模式下,网卡不对数据报文进行判断,一锅端!二.ARP欺骗:1.欺骗过程及原理从上面的数据报文传输过程可以知道二层传输是通过MAC进行传输的,在传输过程中PC需要查询ARP表。因此攻击者只要可以改变目标的ARP表就能实现攻击,从而将数据牵引到自己的机器上,如图 a)在正常情况下,PC1通过本地ARP表知道网关1.1.1.2的MAC地址为1.1.1.10260.8c01.1111,所以PC1封装包的时候会将目的MAC设置成路由器的MAC地址。交换机通过MAC-端口对应表能够正常的将数据报文从E1口转发给路由器,实现数据传输。 b)黑客对PC2有完全的控制权,通过不断发送(假冒的)ARP报文告诉PC1,自己才是1.1.1.1对应的MAC是0260.8c01.1113。 c)PC1收到黑客发的ARP报文后,刷新自己的ARP表,将1.1.1.1的MAC误认为是0260.8c01.1113。 d)PC1将要访问外网数据报文的目的MAC设置成0260.8c01.1113(PC2的MAC,目测PC1被自己的ARP表给骗了)。 e)交换机通过拆解包发现目的MAC对应的端口为E4(PC2的那个接口,连锁反应了!),就将数据报文从E4口丢出。 f)PC2成功得到PC1发往外网的请求报文。偷看后重新封包,原IP、目的IP不改变,将原MAC改成PC2的MAC,目的MAC改成网关的(数据包恢复正常,看起来和没攻击时PC1发出的报文完全一样),PC2修改完后将数据包丢给交换机,从而欺骗实现,当然对于该包的回应报文,由于路由器ARP表没被污染,所以能够正常的将返回报文直接丢给PC1。 2.如何选择欺骗方向 在欺骗过程中,选择正确的欺骗方向也是很重要的,通过阅读我们可以看到上面的欺骗方向是PC1à网关。那么我们如何确定正确的欺骗方向呢? a) 员工工作网络,我们知道正常请求报文里面含有大量的敏感信息,如网站管理后台账户密码等。而请求包的走向是员工PCà网关,如果黑客控制的电脑与员工内部同一网段,那么正常情况下黑客会欺骗员工的PC机自己是网关,从而截获请求报文 b)服务器网络,而在机房(服务器网络)中,管理员一般会在外部进行访问,即请求报文是由网关转发给服务器,也就是说请求报文的走向是网关à服务器,如果黑客控制的是机房里的一台服务器,为了截获到请求报文中的服务器登录密码等敏感信息,攻击者一般会对网关发起欺骗,告诉网关自己是某台或者某些服务器。 c) 实际上不管在员工网络或者机房内部网络,黑客比较习惯与进行双向欺骗,一方面告诉网关自己是某些终端,另一方面告诉同网段的其他终端自己是网关,但是该方法会产生大量的垃圾信息,因为在回应报文中基本上不会携带敏感的信息。 3. ARP欺骗的瓶颈为了得到更多的敏感信息,很多人会使用双向+批量的欺骗方式,一方面告诉网关自己的MAC对应的IP是网段内所有的IP(这样无论数据报文是给哪台机子的,只要是发送给同网段机器网关都会转发给攻击者);另一方面欺骗所有同网段终端自己是网关(实际上欺骗同网段所有的终端比较容易,直接将ARP包的目的mac设置成FFFFFFFFF就行了),从而所有终端发出的报文都会经过攻击者的机器。但是如果这样子做,攻击者控制的机器直接承载了整个网段的数据流量,要对整个网段的数据进行处理,重封装、再转发,这在服务器的性能和配置上要求可不是一般的苛刻,所以选择好欺骗对象和方向显得非常重要。 三.嗅探和ARP欺骗的区别 a) 嗅探一般存在于共享网络中,在共享网络中一般使用HUB作为接入层,经过HUB的数据报文不管长得什么样,因为HUB工作在第一层,看不懂二层以上的报文是啥样子的,所以一律以广播处理,在同一网段的计算机只要将网卡设置成混杂模式即可。 b) 嗅探在交换网络中不适用,因为交换机是通过MAC-端口对应表来转发数据报文的,所以在交换网络中如果只将网卡设置成混杂模式,而不进行ARP欺骗,其结果只能接受到网络中的广播包。 c) 共享网络中适用ARP欺骗,那是多此一举,适用ARP欺骗的方式会对影响网络流量,对网络造成很大的影响,另外适用ARP欺骗会产生大量的ARP报文,很容易被发现。而嗅探对整个网络几乎没有影响,因为嗅探只是做监听,而不会产生多余的数据报文。 四.加密是否安全 很多人说使用HTTPS或者VPN等手段就可以防止嗅探或者ARP欺骗,这是不全面的。具体要看什么网络及什么技术。下面笔者针对HTTPS和VPN在共享、交换网络中进行探讨。 1. 共享网络+嗅探 a) 在共享网络使用HTTPS确实可以很好的解决数据被窃取的问题(当然个人证书泄露除外),由于监听的机器没有证书也就无法进行解密。 b) 在共享网络中使用VPN技术不一定能够防止,部分VPN技术只是在原有的数据报文多加一个IP报头,对于数据内容本身未做加密,攻击者使用监听技术获取该类数据还是能正常获取报文的内容的 2. 交换网络+ARP嗅探从原理上讲,该类型的攻击属于中间人攻击,可以伪造任何证书,因此对于HTTPS等来说,攻击者只要偷梁换柱,伪造证书就可以成功获得数据的明文信息。但对于部分使用秘钥不通过公网传输的协议(例如使用publikey验证的SSH,KEY不通过网络传输)就无法截取明文信息,也无法伪造。 3. 共享网络+ARP欺骗该类型攻击和第2中攻击没啥两样,就不做详细讨论了五.如何防止ARP欺骗及嗅探。实际上网上已经有很多种解决方案了,但在这边还是小提一下简单的防止方式。第四点也有提到了一部分。在交换网络中一般使用双向绑定就可以解决ARP欺骗的问题了,有些牛人说可以直接伪造MAC欺骗交换机,这也是一种绕过方法,但实际上这种方法可行性不高,虽然有时候确实能够截获到数据报文,但会时交换机的MAC-端口对应表产生混乱,另外报文若发给你就不会发给目标服务器,会产生拒绝服务攻击。在共享网络中使用双向绑定理论上是没效果的,因为只要经过HUB的数据都会进行广播,即使绑定,所有终端也会收到数据报文。Hub不像二层交换,有MAC-端口对应表。当然对于嗅探和ARP攻击的原理、利用和防御不止文中提到的这些,文章只是笔者的一点心得体会,仅供参考。说这么多,实际上要进行ARP攻击的话,一个cain、一个sniffer、一个ettercap就可以完全搞定了。

2016年11月29日 · 1 分钟 · lucien116

njRAT&H-worm木马分析报告

概要 通过对国外一系列“著名”的木马活动进行跟踪调查,本报告从威胁情报的角度针对njRAT&H-worm进行分析。 njRAT 使用微软 .NET 框架开发,因其广泛流传的在线支持和教程,成为了最成功的网络犯罪工具之一。H-worm 借鉴了njR A T 的开源代码,服务端为使用 VBS 脚本编写,适用于Windows全系操作系统并且使用了比较先进的 User-Agent 传递数据的方式,具有开启U盘感染的功能。 H-worm是一个VBS 脚本编写的病毒,使用了比较先进的User-Agent传递数据的方式,为网络罪犯提供了类似njRAT的控制方式 。 关键点 根据长期跟踪,发现njRAT&H-worm主要流行于中东地区,有证据表明极端组织ISIS也曾使用njRAT作为重要的网络武器 ; H-worm 曾被用于攻击国外能源机构 ; njRAT主要通过被感染的游戏、破解软件和注册机感染目标设备 ; H-worm主要通过携带病毒的电子邮件附件和恶意链接传播扩散 ; 主要威胁针对所有版本windows操作系统包括目前的win10操作系统 ,并且网络中流传znjRAT&H-worm对大部分反病毒软件免杀的在线支持和教程 ; 建议采取以下措施来预防和发现njRAT&H-worm的入侵: o 依据本报告威胁指示器列表(IOCs)在网络安全设备中添加相应检测和防护策略 ; o 加强邮件服务器对邮件附件和正文中链接的检测能力 ; o 避免从非信任渠道下载游戏 、破解软件和注册机等程序 ; o 避免打开不受信任来源的电子邮件,尤其是带有附件和外部 链接内容的邮件。 战略威胁情报 njRAT&H-worm在2013年第一次出现 ,主要盛行于中东地区,在世界其他国家和地区也有广泛传播。 njRAT 程序完美支持阿拉伯字符 ,有证据表明极端组织 ISIS 使用njRAT作为重要的网络武器。njRAT使用微软的 .NET框架开发 , 并像其他许多木马一样为远程攻击者提供了对被感 染系统的完全控制功能。我们已经看到攻击者利用被污染的流 行游戏、破解软件及注册机来 进行污染 传播。njRAT木马因其广泛流传的在线支持和教程,已成为最成功的网络犯罪工具之一。与此同时,目前网络中也有较多.NET 混淆工具流传,使病毒检测相对困难,妨碍了安全研究人员的分析。 早在2013年H-worm就被发现用于对国外能源机构的攻击。H-worm是一个VBS脚本编写的病毒,使用了比较先进的User-Agent传递数据的方式。其作者Houdini使用了njRAT作者njq8的一部分开源代码 ,国外分析机构也常将H-worm作为njRAT的主要变种。 根据最近一周的跟踪分析,发现沙特阿拉伯和捷克njRAT感染尤为集中。 图1:njRAT感染分布图 表1: njRAT感染IP(部分) H-worm病毒仍在全球范围内大量活跃,根据跟踪分析,发现感染对象包括美国、俄罗斯、沙特阿拉伯、阿根廷、秘鲁、巴西、智利、巴拉圭、委内瑞拉 、印度以及中国。 图2: H-worm国外感染分布图 表2: H-worm国外感染IP(部分) 重点对国内H-worm感染主机进行检测,发现涉及18个省市共发现200多个感染主机 。 图3: H-worm 国内感染分布图 ...

2016年11月3日 · 1 分钟 · lucien116

Ngrbot蠕虫分析(一)

1. 基本信息 病毒别名: Worm.Win32.Ngrbot 病毒类型: 蠕虫 样本长度: 252.000 字节 样本MD5:FA92DAE6F14F9B9DB1D263222FC65DFF 样本SHA1: A0BA2E072CA9BA7C3BDDC2F3BEF2FA09E15A716D 文件类型:PE_EXE 原始文件名: txgxltogztf.exe 感染系统:Windows All(x86) 2. 样本概述 该蠕虫与木马Androm绑定在一起被下载到用户的计算机上,并能通过HTTP,FTP,MSN,email,U盘等手段进行传播,一旦用户感染此蠕虫,会立即窃取用户的密码及隐私信息,包括用户的电子银行,社交网站,邮箱密码,FTP密码和MSN好友信息等.同时该病毒监控用户下载的文件,搜集用户的上网习惯.被感染的用户组成一个庞大的僵尸网络用于对网络目标进行攻击. 3. 详细分析 行为流程分析 由于该病毒是通过androm下载到本地,所以执行流程,以及加密方式跟androm是一样的,区别在于资源”JPEG”中的恶意代码功能,入口处会创建一个辅助线程,该线程功能是初始化所需要的API及字符串,同时为了防止重入,创建命名互斥体” SSLOADasdasc000100” 图1:API的初始化 随后生成随机的文件名称,文件名只包含数字以及字母,这些文件名是用来在calc中下载使用的,生成到临时文件中. 图2:下载后保存的文件名 判断系统版本是否是64位程序,该病毒只能感染32位的程序,所以程序打开Syswow64或system32下的calc程序,写入恶意代码以及数据,之后该线程进入死循环 图3:感染clac进程 在calc中,下载地址以及文件名加密后被蠕虫传送过来 图4:要下载的文件地址,被加密 解密算法伪代码: int i = 0; int d = 0; for(;(d = strBase[i]);++i) { if(d > 0x21 && d < 0x4F) strBase[i] =(d + 0x2F)%0x7F; if(d > 0x50 && d < 0x7E) strBase[i] =(d - 0x2F)%0x7F; ...

2016年10月25日 · 3 分钟 · lucien116

记录利用ettercap进行简单的arp欺骗和mitm攻击过程

攻击主机平台:kali-linux 被攻击主机:安卓手机192.168.1.107 (在同一局域网内) 1.利用ettercap进行arp欺骗: root权限下打开ettercap:ettercap -C (curses UI) ettercap -G (GTK+ GUI) curses UI工作界面: GTK+ UI工作界面: 这里以GTK+ UI为例,打开ettercap之后,选择Sniff—-Unified-sniffing,然后选择网卡: 然后Hosts—Scan for hosts—Hosts list,此时可以看到目标主机ip(192.168.1.107) 选定目标主机,然后点add to target 1,将目标主机添加到目标1;选定路由,点add to target 2,将路由添加到目标2: 如图,添加成功! 然后点mitm — arp posoning ,勾选sniff remote connections: ...

2016年10月20日 · 1 分钟 · lucien116

网络性能排查之TCP重传与重复ACK

作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端。但用户感到网络运行缓慢并不意味着就是网络问题。 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起。之后阐述如何发现网络慢速之源。最后,对网络各组成部分上的数据流进行概况分析。这几张内容将会帮助读者识别,诊断,以及排查慢速网络。 更多信息 接下来的内容,较多是黑白图片了。虽然看起来有点不爽,但还是很值得一看。 TCP错误恢复功能: TCP的错误恢复功能是定位,诊断及修复网络延时的最佳工具。延时可以在单程也可以往返方向测量。高延时是网络管理员的头号大敌。本节我们讨论TCP高延时是如何导致序列号和确认号乱序的。 TCP重传: 主机报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。 报文丢失的可能因素有很多种,包括应用故障,路由设备过载,或暂时的服务宕机。报文级别速度是很高的,而通常报文丢失是暂时的,因此TCP能够发现和恢复报文丢失显得尤为重要。 决定报文是否有必要重传的主要机制是重传计时器(retransmission timer),它的主要功能是维护重传超时(RTO)值。当报文使用TCP传输时,重传计时器启动,收到ACK时计时器停止。报文发送至接收到ACK的时间称为往返时间(RTT)。对若干次时间取平均值,该值用于确定最终RTO值。在最终RTO值确定之前,确定每一次报文传输是否有丢包发生使用重传计时器,下图说明了TCP重传过程。 当报文发送之后,但接收方尚未发送TCP ACK报文,发送方假设源报文丢失并将其重传。重传之后,RTO值加倍;如果在2倍RTO值到达之前还是没有收到ACK报文,就再次重传。如果仍然没有收到ACK,那么RTO值再次加倍。如此持续下去,每次重传RTO都翻倍,直到收到ACK报文或发送方达到配置的最大重传次数。 最大重传次数取决于发送操作系统的配置值。默认情况下,Windows主机默认重传5次。大多数Linux系统默认最大15次。两种操作系统都可配置。 示例如下图: TCP重传过程发送的第一个报文如下图所示(图片不很清楚,已经尽力了): 这是一个TCP PSH/ACK报文①,包含648字节数据②,从10.3.30.1发送至10.3.71.7。这是一个典型的数据报文。 在通常情况下,第一个报文发送之后很快会收到TCP ACK报文。然而,在这个case里,第二个是重传报文。可以在Packet list面板里看到。Info栏清楚的标明“TCP Retransmission”,报文以黑色背景红色字体标出。下图是Packet List面板中的重传示例(仍然不清楚,但可参见上图): 也可以在Packet Details和Packet Bytes面板中查看来确定是否是重传报文,如下图所示: 注意此报文与源报文相同(除了IP标识和checksum字段)。要验证这一点,比较两个报文的Packet Bytes①。 在Packet Details面板,注意到重传报文在SEQ/ACK Analysis下面有些额外的信息②。这些信息是由Wireshark提供的而并非报文本身。SEQ/ACK Analysis告诉我们这确实是一个重传报文,RTO值是0.206秒,此时的RTO是基于报文1的时间增量。 检查剩下的报文会得到类似的结果,不同之处只有IP标识和checksum,以及RTO值。要使报文之间的时间间隔形象化,在Packet List面板中查看Time栏,如下图所示。这里可以看到RTO值的翻倍增长关系。 TCP重复ACK以及快速重传: 重复ACK是指在接收方收到乱序报文时,所发出的一类TCP报文。TCP使用报文头的序列号和确认号以有效保证数据按照发送的顺序接收和重组。 当TCP连接建立以后,握手过程中交换的一个最重要的信息是初始序列号(ISN)。一旦连接双方设定了ISN之后,接下来发送的报文所包含的序列号增加一个数据载荷值。 假设有个主机ISN是5000,发送500字节报文至接收方。一旦报文接收之后,接收端回复一个ACK号为5500的TCP ACK报文,基于以下公式: Sequence Number In + Bytes of Data Received = Acknowledgment Number Out 按照上述计算结果,返回发送端的确认编号实际上是接收端希望收到的序列号。示例如下图: 数据接收方通过序列号来检查报文丢失。接收方通过追踪接收到的序列号,能够确认序列号是否乱序。当接收方收到一个不正常的序列号,它会假设传输过程中有报文丢失。为了正确重传数据,接收方必须拥有丢失报文,所以它发送包含有丢失报文正确序列号的ACK报文,以便发送方重传此报文。 当重传主机从发送端接收到3个重复ACK时,它会假设此报文确实在传送中丢失,并且立即发送一个快速重传。一旦触发了快速重传,所有正在传输的其他报文都被放入队列中,直到快速重传报文发送为止。过程如下图所示: 承接上文的彩图: 本例中第一个报文如下图: 这是一个TCP ACK报文,从数据接收端(172.31.136.85)发给发送端(195.81.202.68)①,确认前一个报文所发送的数据。 此报文中的确认编号是1310973186②,应当是下一个接收报文的序列号,如下图所示: 不幸的是接收端的序列号是1310984130①,并不是所期望的值。这意味着报文在传送中丢失。接收端注意到报文乱序,并且在第三个报文中发送重复ACK,如下图所示: 可以通过以下两种方式之一来确认这是一个重复ACK: 在Packet Detaisl面板中的Info栏。报文呈现黑色背景红色字体。 SEQ/ACK Analysis下的Packet Deatails面板。扩展这一栏会发现报文显示为duplicate ACK。接下来几个报文重复此过程。如下图所示: 此文件中的第四个报文是发送端所发出具有错误序列号①的另一个数据块。因此,接收端发送第二个重复ACK②。接收端又收到一个乱序报文③。从而触发了第三以及最后一个重复ACK④. ...

2016年10月10日 · 1 分钟 · lucien116