{}Hi,门口已经埋雷(蜜罐雷,甜你一脸)!

最近的这些专题,和大家讨论一下数据安全的话题,帮助大家提高网络安全意识和提高网络安全技术。

Honeypot,蜜罐,先科普一下什么叫蜜罐网络。

蜜罐是一种傀儡系统,吸引黑客来攻击,收集黑客的攻击方式,这样我们就可以掌握黑客的攻击方式和攻击思路,同时我们也能发现我们真正系统所存在的系统漏洞,进而能够及时的修补。

这就很是有趣了,蜜罐系统是系统管理员和黑客之间斗智斗勇的中介物质,到底鹿死谁手,这就看谁更智慧了。

蜜罐有什么作用呢?

首先,它作为一种研究的工具,有一定的商业价值,当了解黑客的攻击方式之后,我们就能够对其下一次的攻击进行防护,这样就能够避免一定的损失,或将损失减小到最小化。

黑客用半小时的时间来进行攻击,你需要耗费二十倍到三十倍不等的时间俩分析,“我在明。敌在暗。”

上边说了,蜜罐是一种傀儡系统,吸引黑客攻击,这就是捕捉攻击者记录的系统,简单说,这对于黑客来说,就是一个陷阱。

蜜罐的局限

这么好用的东西,怎么会有局限呢?其实,你搭建蜜罐的时候,也就给自己在门口埋好了雷,你得千万要小心,如果蜜罐被黑客识破,黑客对其懂得手脚,是你想象不到的,他可以把它用作跳板,来攻击其他的网络系统,设想,这个锅谁来背??

蜜罐搞得不好,暴露了,这就和肉鸡没什么区别了。

蜜罐的种类

蜜罐有哪些种类呢?

分类有很多依据,有高交互性的蜜罐系统,自然有低交互性的蜜罐系统;有实蜜罐系统,也有伪蜜罐系统;这里我们经常用到的一些,Tor蜜罐,开源蜜罐,wifi蜜罐。

蜜罐的设置

蜜罐是怎么部署出来的呢?就是管理员故意将存有已知漏洞的系统运行于服务器上,黑客在进行攻击的时候,能将其的攻击动作记录,在攻击结束后,管理员会进行分析。

Dionaea(捕蝇草) 低交互式蜜罐是Honeynet Project的开源项目,起始于 Google Summer of Code 2009,是Nepenthes(猪笼草)项目的后继。Honeynet Project是成立于1999年的国际性非盈利研究组织,致力于提高因特网的安全性,在蜜罐技术与互联网安全威胁研究领域具有较大的影响力。

1. Dionaea 低交互式蜜罐简介

Dionaea(捕蝇草) 低交互式蜜罐(http://dionaea.carnivore.it) 是Honeynet Project的开源项目,起始于Google Summer of Code 2009,是Nepenthes(猪笼草)项目的后继。Honeynet Project 是成立于 1999 年的国际性非盈利研究组织,致力于提高因特网的安全性,在蜜罐技术与互联网安全威胁研究领域具有较大的影响力。

Dionaea蜜罐的设计目的是诱捕恶意攻击,获取恶意攻击会话与恶意代码程序样本。它通过模拟各种常见服务,捕获对服务的攻击数据,记录攻击源和目标 IP、端口、协议类型等信息,以及完整的网络会话过程,自动分析其中可能包含的 shellcode 及其中的函数调用和下载文件,并获取恶意程序。

有别于高交互式蜜罐采用真实系统与服务诱捕恶意攻击,Dionaea 被设计成低交互式蜜罐,它为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟。这样设计的好处是安装和配置十分简单,蜜罐系统几乎没有安全风险,不足之处是不完善的模拟会降低数据捕获的能力,并容易被攻击者识别。

2. Dionaea 的整体结构和工作机制 Dionaea是运行于Linux上的一个应用程序,将程序运行于网络环境下,它开放Internet上常见服务的默认端口,当有外来连接时,模拟正常服务给予反馈,同时记录下出入网络数据流。网络数据流经由检测模块检测后按类别进行处理,如果有 shellcode 则进行仿真执行;程序会自动下载 shellcode 中指定下载或后续攻击命令指定下载的恶意文件。从捕获数据到下载恶意文件,整个流程的信息都被保存到数据库中,留待分析或提交到第三方分析机构。

3. Dionaea 蜜罐安装过程 Dionaea 目前版本是 0.1.0,采用源码安装。软件运行依赖于以下库:libev,libglib,libssl,liblcfg,libemu,python,sqlite,readline,cython,lxml,libudns,libcurl,libpcap。

安装过程详见 http://dionaea.carnivore.it/#compiling,需要注意的是安装 Python-3.2 时注意按说明修改 setup.py 以确保 zlib 库能正确安装。

安装时要注意依赖库成功安装,否则 Dionaea 可能不能正常工作。

安装详细过程:

OS:ubuntu 12.04 (32-bit)

# 安装依赖
apt-get update
apt-get isntall aptitude 
aptitude install libudns-dev libglib2.0-dev libssl-dev libcurl4-openssl-dev libreadline-dev libsqlite3-dev python-dev libtool automake autoconf build-essential subversion git-core flex bison pkg-config

其余的依赖,必须从源代码安装,我们将安装到路径/opt/dionaea,所以请确保该目录存在,并允许读写权限。

mkdir /opt/dionaea
cd /opt/dionaea

安装其他依赖

liblcfg

git clone git://git.carnivore.it/liblcfg.git liblcfg
cd liblcfg/code
autoreconf -vi
./configure --prefix=/opt/dionaea
make install
cd ..
cd ..

libemu

git clone git://git.carnivore.it/libemu.git libemu
cd libemu
autoreconf -vi
./configure --prefix=/opt/dionaea
make install
cd ..

libnl

apt-get install libnl-3-dev libnl-genl-3-dev libnl-nf-3-dev libnl-route-3-dev

libev

wget http://dist.schmorp.de/libev/Attic/libev-4.04.tar.gz
tar xfz libev-4.04.tar.gz
cd libev-4.04
./configure --prefix=/opt/dionaea
make install
cd ..

Python 3.2

wget http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz
tar xfz Python-3.2.2.tgz
cd Python-3.2.2/
./configure --enable-shared --prefix=/opt/dionaea --with-computed-gotos --enable-ipv6 LDFLAGS="-Wl,-rpath=/opt/dionaea/lib/ -L/usr/lib/i386-linux-gnu/"
make
make install
cd /opt/dionaea/bin
ln python3.2 /usr/bin/python3
cd ..

sqlite 3.3.7

wget http://www.sqlite.com.cn/Upfiles/source/sqlite-3.3.7.tar.gz
tar xzf sqlite-3.3.7.tar.gz
cd sqlite-3.3.7
mkdir /home/sqlite-3.3.7
./configure --prefix=/home/sqlite-3.3.7
make && make install && make doc
cd /home/sqlite-3.3.7/bin/
ln sqlite3 /usr/bin/sqlite3

Cython

wget http://cython.org/release/Cython-0.15.tar.gz
tar xfz Cython-0.15.tar.gz
cd Cython-0.15
/opt/dionaea/bin/python3 setup.py install
cd ..

libpcap

wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
tar xfz libpcap-1.1.1.tar.gz
cd libpcap-1.1.1
./configure --prefix=/opt/dionaea
make
make install
cd ..

编译安装dionaea

git clone git://git.carnivore.it/dionaea.git dionaea
cd dionaea
autoreconf -vi
./configure --with-lcfg-include=/opt/dionaea/include/ 
      --with-lcfg-lib=/opt/dionaea/lib/ 
      --with-python=/opt/dionaea/bin/python3.2 
      --with-cython-dir=/opt/dionaea/bin 
      --with-udns-include=/opt/dionaea/include/ 
      --with-udns-lib=/opt/dionaea/lib/ 
      --with-emu-include=/opt/dionaea/include/ 
      --with-emu-lib=/opt/dionaea/lib/ 
      --with-gc-include=/usr/include/gc 
      --with-ev-include=/opt/dionaea/include 
      --with-ev-lib=/opt/dionaea/lib 
      --with-nl-include=/opt/dionaea/include 
      --with-nl-lib=/opt/dionaea/lib/ 
      --with-curl-config=/usr/bin/ 
      --with-pcap-include=/opt/dionaea/include 
      --with-pcap-lib=/opt/dionaea/lib/ 
make
make install

安装结束

4. Dionaea 使用方法

Dionaea 根据命令参数运行,可选择不同的运行环境、任务和筛选事件记录内容。配置文件则具体规定蜜罐运行后开启的模块,记录文件的保存位置和扩展功能的参数等信息。默认配置下 Dionaea 自动选择一个网络接口进行监听。

Dionaea 具体的命令格式如下:

dionaea [-c, --config=FILE] [-D, --daemonize] [-g, --group=GROUP]

[-G, --garbage=[collect|debug]] [-h, --help] [-H, --large-help] [-l, --log-levels=WHAT] [-L, --log-domains=WHAT] [-u, --user=USER] [-p, --pid-file=FILE] [-r, --chroot=DIR] [-V, --version] [-w, --workingdir=DIR]

选项的意义分别是:

-c:指定运行程序所使用的配置文件,默认下配置文件是/opt/dionaea/etc/dionaea.conf。 -D:后台运行。 -g:指定启动后切换到某个用户组,默认下保持当前组。 -G:收集垃圾数据,用于调试内存泄露。不能用于 valgrind 软件。 -h:帮助信息。 -H:帮助信息,包括默认值信息。 -l:选择事件记录级别,可以选择 all, debug, info, message, warning, critical, error 这些值,多选使用“,”做分隔,排除使用“-”。 -L:选择域,支持通配符“*”和“?”,多选使用“,”,排除使用“-”。 -u:指定启动后切换到某个用户,默认下保持当前用户。 -p:记录 pid 到指定文件。 -r:指定启动后切换根目录到指定目录,默认下不切换。 -V:显示版本信息。 -w:设定进程工作目录,默认下为/opt/dionaea。

例子:

切换到 cd /opt/dionaea/bin

# ./dionaea -l all,-debug -L '*'
# ./dionaea -l all,-debug -L 'con*,py*'
# ./dionaea -u nobody -g nogroup -r /opt/dionaea/ -w /opt/dionaea -p /opt/dionaea/var/dionaea.pid

5. 安装 DionaeaFR

DionaeaFR(https://github.com/RootingPuntoEs/DionaeaFR)是用于前端web展示Dionaea的数据。

安装详细过程:

ubuntu 12.04 默认已安装 python 2.7.3

切换到cd /opt/,下载DionaeaFR

git clone https://github.com/RootingPuntoEs/DionaeaFR.git

安装pip,django,nodejs

apt-get install python-pip
pip install Django
pip install pygeoip
pip install django-pagination
pip install django-tables2
pip install django-compressor
pip install django-htmlmin
pip install django-filter

django-tables2-simplefilter:

https://github.com/benjiec/django-tables2-simplefilter

    python setup.py install

SubnetTree:
    git clone git://git.bro-ids.org/pysubnettree.git
    python setup.py install

nodejs:

http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz

    tar xzvf node-v0.8.16.tar.gz
    cd node-v0.8.16
    ./configure
    make
    make install

npm install -g less
apt-get install python-netaddr

下载GeoIP 和 GeoLiteCity

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

解压GeoIP 和 GeoLiteCity

gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz

移动GeoIP 和 GeoLiteCity到 /opt/DionaeaFR/DionaeaFR/static

mv GeoIP.dat /opt/DionaeaFR/DionaeaFR/static
mv GeoLiteCity.dat /opt/DionaeaFR/DionaeaFR/static

修改SQLite路径

cd /opt/DionaeaFR/DionaeaFR

vim settings.py

第17行,SQLite路径更改为

/opt/dionaea/var/dionaea/logsql.sqlite

如果你安装dionaea的目录不在/opt/,那就find下。

find / -name logsql.sqlite ,把查找到的路径替换到17行中。

运行

cd /opt/DionaeaFR

python manage.py collectstatic
python manage.py runserver 0.0.0.0:8000

浏览器访问:http://你的IP:8000

6. 结束

低交互式蜜罐的普遍弱点,即对网络服务的模拟与真实服务存在差距,可能无法捕获某些对环境敏感的攻击,可以搭配其他专用服务蜜罐一起使用,来不断进行完善。

Kippo(SSH蜜罐开源软件)

Glastopf(Web应用攻击诱捕软件)

参考文档:

本文基本上参考代恒,诸葛建伟前辈下面这2篇文章。http://netsec.ccert.edu.cn/zhugejw/files/2011/09/Dionaea低交互式蜜罐介绍.pdf

http://netsec.ccert.edu.cn/zhugejw/files/2011/09/Dionaea低交互式蜜罐部署实践.pdf

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2016-07-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链

服务器被入侵了怎么办?

遇到服务器被黑,很多人会采用拔网线、封 iptables或者关掉所有服务的方式应急,但如果是线上服务器就不能立即采用任何影响业务的手段了,需要根据服务器业务情况...

2488
来自专栏FreeBuf

如何通过WIFI渗透企业内网?

介绍 黑盒渗透测试意味着白帽子对目标网络一无所知。模拟黑客攻击网络,并获取敏感信息。进一步,探索内网,识别内网中的漏洞,通过漏洞访问网络里的重要资源。 目的 在...

1968
来自专栏Netkiller

植入式攻击入侵检测解决方案

植入式攻击入侵检测解决方案 ---- 目录 1. 什么是植入式攻击? 2. 为什么骇客会在你的系统里面植入木马? 3. 什么时候被挂马? 4. 在那里挂马的? ...

2607
来自专栏菜鸟程序员

AVGater漏洞突破防病毒软件 影响大批知名杀毒软件 PoC已经公开

1215
来自专栏FreeBuf

我是如何黑掉英国间谍软件公司Gamma的

前几天,有黑客《入侵了英国间谍软件公司Gamma》。本文翻译自黑客自己公布的入侵指南。详细的介绍了从信息收集,到发现目标站点,以及进行源码审计,绕过waf注入,...

21610
来自专栏FreeBuf

HTTPS劫匪木马暴力升级:破坏ARK攻击杀软

目前,越来越多的网站开始注册证书,提供对HTTPS的支持,保护自己站点不被劫持。而作为对立面的流量劫持攻击,也开始将矛头对准HTTPS,其中最常见的一种方法便是...

2328
来自专栏java 成神之路

常见黑客渗透测试工具

1813
来自专栏安恒信息

盘点计算机遭受攻击的标志及补救措施

1.假冒杀毒消息    如果你收到假冒的反病毒警告信息,恶意软件已经利用未打补丁的软件(通常是JRE或一个Adobe产品)“占领”了你的系统。这些伪装的扫描会找...

3907
来自专栏信安之路

基于docker的蜜罐学习

低交互式蜜罐只是模拟出了真正操作系统的一部分,例如模拟一个FTP服务。虽然低交互式蜜罐容易建立和维护,但模拟可能不足以吸引攻击者,还可能导致攻击者绕过系统发起攻...

640
来自专栏FreeBuf

如何破解一台智能咖啡机

随着物理网的普及,其安全性尤其重要,近日有国外黑客破解一台智能咖啡机,下面就一起来看一下吧。 故事起因 最近一名意大利黑客Simone Margaritelli...

1885

扫描关注云+社区