在centos建立你自己的Passive DNS收集系統(tǒng)

目錄

一 :名詞解釋

二:安裝前的環(huán)境搭建

三:安裝Bro

四:安裝配置mysql

五: 運(yùn)行Bro

一.名詞解釋

什么是被動(dòng)DNS(Passive DNS)诡渴?

根據(jù)isc.org的描述赶熟,被動(dòng)DNS最初于2004年由Florian Weimer發(fā)明,旨在對抗惡意軟件压怠。根據(jù)其定義芥映,遞歸域名服務(wù)器會(huì)響應(yīng)其接收到的來自其它域名服務(wù)器的請求信息溅话,然后對響應(yīng)信息進(jìn)行記錄并將日志數(shù)據(jù)復(fù)制到中央數(shù)據(jù)庫當(dāng)中。

從實(shí)踐的角度出發(fā)盅称,收集與分析被動(dòng)DNS(Passive DNS)數(shù)據(jù)能夠幫助我們識(shí)別惡意站點(diǎn)并對抗釣魚及惡意軟件肩祥。這到底意味著什么呢?實(shí)際上缩膝,這就是一個(gè)存儲(chǔ)了大量DNS解析數(shù)據(jù)的歷史數(shù)據(jù)庫混狠。這意味著你可以查詢到某一域名曾經(jīng)解析過的IP地址。即使這一域名已經(jīng)從域名服務(wù)器中移除了疾层,你也可以查詢到相關(guān)的信息檀蹋。

當(dāng)接收到查詢請求時(shí),域名服務(wù)器會(huì)首先檢查自身緩存以及權(quán)威數(shù)據(jù)以獲取請求所需的內(nèi)容云芦。如果解析內(nèi)容尚不存在俯逾,則會(huì)進(jìn)一步查詢r(jià)oot域名服務(wù)器作為參考直到找出能夠提供相關(guān)查詢結(jié)果的驗(yàn)證域名服務(wù)器,最后查詢其中的驗(yàn)證域名服務(wù)器來進(jìn)行結(jié)果檢索舅逸。值得注意的是桌肴,大部分的被動(dòng)DNS數(shù)據(jù)會(huì)在“高于”檢索域名服務(wù)器的位置被立即捕獲。

這也就意味著琉历,被動(dòng)DNS數(shù)據(jù)大多由來自互聯(lián)網(wǎng)上驗(yàn)證域名服務(wù)器的參考與查詢結(jié)果構(gòu)成(當(dāng)然坠七,其中也包含部分錯(cuò)誤信息)。這部分?jǐn)?shù)據(jù)擁有時(shí)間戳旗笔,經(jīng)過重復(fù)數(shù)據(jù)刪除與壓縮彪置,而后被復(fù)制到中央數(shù)據(jù)庫內(nèi)以備歸檔與分析。需要注意的是蝇恶,整個(gè)流程捕捉到的是服務(wù)器到服務(wù)器之間的通信內(nèi)容拳魁,而非來自存根解析器并指向遞歸域名服務(wù)器的查詢內(nèi)容。

我們?yōu)槭裁匆褂帽粍?dòng)DNS撮弧?

當(dāng)我們需要進(jìn)行事件響應(yīng)調(diào)查時(shí)潘懊,你就會(huì)發(fā)現(xiàn)被動(dòng)DNS是非常有用的姚糊。

各類企業(yè)都會(huì)采用不同的數(shù)據(jù)庫來容納被動(dòng)DNS“傳感器”所發(fā)來的上傳數(shù)據(jù)。目前人氣最高且最為知名的當(dāng)數(shù)Farsight Security公司所打造的被動(dòng)DNS數(shù)據(jù)庫——DNSDB授舟。在這一DNSDB中包含有多年以來由全世界范圍內(nèi)所有傳感器收集而來的數(shù)據(jù)救恨。對被動(dòng)DNS數(shù)據(jù)庫進(jìn)行查詢能夠提供大量極具實(shí)用價(jià)值的信息。舉例來說释树,大家可以通過查詢被動(dòng)DNS數(shù)據(jù)庫來查找與某一網(wǎng)站相關(guān)聯(lián)的DNS查詢記錄肠槽,或者自某一時(shí)間開始該網(wǎng)站曾經(jīng)使用過哪些域名服務(wù)器,又或者另有哪些其它區(qū)域在使用同一套域名服務(wù)器奢啥。更進(jìn)一步來講秸仙,大家也可以選擇某個(gè)已知的惡意IP地址,并查詢各被動(dòng)DNS傳感器最近映射至該IP地址的全部相關(guān)域名服務(wù)器扫尺。

被動(dòng)DNS::客戶端-不同的服務(wù)器

被動(dòng)DNS::客戶端可以支持不同的被動(dòng)DNS服務(wù)器:

l?? BFK.de

l?? Mnemonic

l?? PassiveDNS.cn

l?? CIRCL

l?? VirusTotal

l?? PassiveTotal

l?? DNSDB

二.安裝前的環(huán)境搭建

依賴關(guān)系

1.在開始之前,Bro需要安裝以下庫和工具:

Libpcap (http://www.tcpdump.org)

OpenSSL libraries (http://www.openssl.org)

BIND8 library

Libz

Bash (for BroControl)

Python 2.7 or greater (for BroControl)

2.從源代碼構(gòu)建Bro炊汤,需要以下額外的依賴關(guān)系:

CMake 2.8 or greater (http://www.cmake.org)

Make

C/C++ compiler with C++11 support (GCC 4.8+ or Clang 3.3+)

SWIG (http://www.swig.org)

Bison (GNU Parser Generator)

Flex (Fast Lexical Analyzer)

Libpcap headers (http://www.tcpdump.org)

OpenSSL headers (http://www.openssl.org)

zlib headers

Python

3.要安裝所需的依賴項(xiàng)正驻,可以使用:

RPM/RedHat-based Linux: ?sudo yum install cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel python-devel swig zlib-devel ?(#管理員模式下安裝下列軟件,安裝時(shí)保證網(wǎng)絡(luò)的穩(wěn)定抢腐。)

4.可選依賴關(guān)系

如果在構(gòu)建時(shí)找到它們姑曙,Bro可以使用一些可選的庫和工具:

C ++ Actor Framework(CAF)版本0.14(http://actor-framework.org

LibGeoIP(用于地理位置分配IP地址)

sendmail(啟用Bro和BroControl發(fā)送郵件)

curl(由實(shí)現(xiàn)活動(dòng)HTTP的Bro腳本使用)

gperftools(tcmalloc用于提高內(nèi)存和CPU使用率)

jemalloc(http://www.canonware.com/jemalloc/

PF_RING(僅限Linux,請參閱群集配置

ipsumdump(用于trace-summary;http://www.cs.ucla.edu/~kohler/ipsumdump

三.安裝Bro

1.具體命令如下:

>?yum update?&&?apt-get?upgrade

>?yum install?cmake?make?gcc?g++?flex?bison?libpcap-dev/ ? ? ?(因?yàn)榍懊嬉呀?jīng)將環(huán)境搭建好了迈倍,所以這里可以自己運(yùn)行)

/libgeoip-dev?libssl-dev?python-dev?zlib1g-dev

/libmagic-dev?swig2.0

>?wget https://www.bro.org/downloads/release/bro-2.4.1.tar.gz ? ? (#從 xxx網(wǎng)站下載安裝包)

>?tar?-xvzf?bro-2.4.1.tar.gz ?(#解壓壓縮包)

>?cd?bro-2.4.1 (#進(jìn)入目錄)

> ./configure --prefix=/nsm/bro? (#configure伤靠,這一步一般用來生成 Makefile,為下一步的編譯做準(zhǔn)備啼染,你可以通過在 configure 后加上參數(shù)來對安裝進(jìn)行控制宴合,比如代碼:./configure –prefix=/nsm/bro意思是將該軟件安裝在 /nsm/bro 下面,執(zhí)行文件就會(huì)安裝在/nsm/bro/bin(而不是默認(rèn)的 /usr/local/bin),資源文件就會(huì)安裝在/nsm/bro/share(而不是默認(rèn)的/usr/local/share)迹鹅。同時(shí)一些軟件的配置文件你可以通過指定 –sys-config= 參數(shù)進(jìn)行設(shè)定卦洽。有一些軟件還可以加上 –with、–enable斜棚、–without阀蒂、–disable 等等參數(shù)對編譯加以控制,你可以通過允許 ./configure –help 察看詳細(xì)的說明幫助弟蚀。)

> make? (#make蚤霞,這一步就是編譯,大多數(shù)的源代碼包都經(jīng)過這一步進(jìn)行編譯(當(dāng)然有些perl或python編寫的軟件需要調(diào)用perl或python來進(jìn)行編譯)义钉。如果 在 make 過程中出現(xiàn) error 昧绣,你就要記下錯(cuò)誤代碼(注意不僅僅是最后一行),然后你可以向開發(fā)者提交 bugreport(一般在 INSTALL 里有提交地址)捶闸,或者你的系統(tǒng)少了一些依賴庫等滞乙,這些需要自己仔細(xì)研究錯(cuò)誤代碼奏纪。)

> make install (#make insatll,這條命令來進(jìn)行安裝(當(dāng)然有些軟件需要先運(yùn)行 make check 或 make test 來進(jìn)行一些測試)斩启,這一步一般需要你有 root 權(quán)限(因?yàn)橐蛳到y(tǒng)寫入文件)序调。)

>?export?PATH=/nsm/bro/bin:$PATH?

2.現(xiàn)在我們可以開始運(yùn)行Bro了:

>broctl

[BroControl]install

[BroControl]start

[BroControl]status


四.安裝配置mysql

1、配置YUM源

MySQL官網(wǎng)中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/

# 下載mysql源安裝包shell> wgethttp://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安裝mysql源shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查mysql源是否安裝成功

shell> yum repolist enabled| grep "mysql.*-community.*"

看到上圖所示表示安裝成功

2兔簇、安裝MySQL

shell>yum install mysql-community-server

3发绢、啟動(dòng)MySQL服務(wù)

shell> systemctl start mysqld

4、開機(jī)啟動(dòng)

shell> systemctl enable mysqldshell> systemctl daemon-reload

5垄琐、修改root默認(rèn)密碼

mysql安裝完成之后边酒,在/var/log/mysqld.log文件中給root生成了一個(gè)默認(rèn)密碼。通過下面的方式找到root默認(rèn)密碼狸窘,然后登錄mysql進(jìn)行修改:

shell> grep'temporary password'/var/log/mysqld.log

shell>mysql-uroot-pmysql>ALTER USER'root'@'localhost'IDENTIFIEDBY'MyNewPass4!';

或者

mysql>setpasswordfor'root'@'localhost'=password('MyNewPass4!');

注意:mysql5.7默認(rèn)安裝了密碼安全檢查插件(validate_password)墩朦,默認(rèn)密碼檢查策略要求密碼必須包含:大小寫字母、數(shù)字和特殊符號(hào)翻擒,并且長度不能少于8位氓涣。否則會(huì)提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯(cuò)誤,如下圖所示:

通過msyql環(huán)境變量可以查看密碼策略的相關(guān)信息:

mysql> show variableslike'%password%';

validate_password_policy:密碼策略陋气,默認(rèn)為MEDIUM策略? validate_password_dictionary_file:密碼策略文件劳吠,策略為STRONG才需要? validate_password_length:密碼最少長度? validate_password_mixed_case_count:大小寫字符長度,至少1個(gè)? validate_password_number_count :數(shù)字至少1個(gè)? validate_password_special_char_count:特殊字符至少1個(gè)上述參數(shù)是默認(rèn)策略MEDIUM的密碼檢查規(guī)則巩趁。

共有以下幾種密碼策略:

策略檢查規(guī)則

0 or LOWLength

1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters

2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

MySQL官網(wǎng)密碼策略詳細(xì)說明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

修改密碼策略

在/etc/my.cnf文件添加validate_password_policy配置痒玩,指定密碼策略

# 選擇0(LOW),1(MEDIUM)议慰,2(STRONG)其中一種蠢古,選擇2需要提供密碼字典文件validate_password_policy=0

如果不需要密碼策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password =off

重新啟動(dòng)mysql服務(wù)使配置生效:

systemctl restart mysqld

6别凹、添加遠(yuǎn)程登錄用戶

默認(rèn)只允許root帳戶在本地登錄便瑟,如果要在其它機(jī)器上連接mysql,必須修改root允許遠(yuǎn)程連接番川,或者添加一個(gè)允許遠(yuǎn)程連接的帳戶到涂,為了安全起見,我添加一個(gè)新的帳戶:

mysql>GRANTALLPRIVILEGESON*.*TO'用戶名'@'%'IDENTIFIEDBY'密碼'WITHGRANT OPTION;

7颁督、配置默認(rèn)編碼為utf8

修改/etc/my.cnf配置文件践啄,在[mysqld]下添加編碼配置,如下所示:

[mysqld]character_set_server=utf8init_connect='SET NAMES utf8'

重新啟動(dòng)mysql服務(wù)沉御,查看數(shù)據(jù)庫默認(rèn)編碼如下所示:

默認(rèn)配置文件路徑:配置文件:/etc/my.cnf? 日志文件:/var/log//var/log/mysqld.log? 服務(wù)啟動(dòng)腳本:/usr/lib/systemd/system/mysqld.service? socket文件:/var/run/mysqld/mysqld.pid

8.接下來屿讽,我們創(chuàng)建一個(gè)數(shù)據(jù)庫使用:

>?mysql?-u?root?-p

mysql>?CREATE?DATABASE?pdns;

五: 運(yùn)行Bro

我們還需要安裝其他的一些第三方庫,首先我們需要安裝‘pip’

>?wget?https://bootstrap.pypa.io/get-pip.py

>?python?get-pip.py

接下來我們安裝,Bottle庫伐谈,像下面這樣:

>?pip?install?bottle

并且用apt安裝SQLAlchemy:

>?sudo?yum install?python-sqlalchemy

我們可以讓bro-pdns啟動(dòng)了…首先阻星,我們用git下載bro-pnd挠日,沒有的話可以yum安裝:

yum-getinstall?git

>git?clonehttps://github.com/JustinAzoff/bro-pdns.git

接下來唱捣,把bro-pdns文件夾移動(dòng)到’/nsm/bro/share/bro/site’路徑下赊堪,然后打開’/nsm/bro/share/bro/site’路徑下的’local.bro’文件,添加下面這句內(nèi)容:

@load./bro_pdns

redef?PDNS::uri?="mysql://root:password@localhost/pdns";

其中password要改成數(shù)據(jù)庫的密碼履澳。然后嘶窄,我們需要運(yùn)行`broctl?deploy`重啟整個(gè)系統(tǒng),并且把新的腳本導(dǎo)入到Bro ?距贷。設(shè)置下HTTP?API柄冲,這樣的話,你就可以直接調(diào)用API來獲取domain和IP

BRO_PDNS_DB=mysql://root:pass@localhost/pdns/nsm/share/bro/

site/bro-pdns/bro_pdns.py?serve

好了忠蝗,配置好后现横,我們就可以正式開始使用它了。你想查詢一個(gè)站點(diǎn)的信息阁最,你可以向api傳遞你要查詢的域名戒祠,就能查到結(jié)果了:

>?curl?http://localhost:8081/dns/www.youtube.com

很顯然,用任何你想要查詢的IP或者域名替換掉www.youtube.com闽撤,就可以了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末得哆,一起剝皮案震驚了整個(gè)濱河市脯颜,隨后出現(xiàn)的幾起案子哟旗,更是在濱河造成了極大的恐慌,老刑警劉巖栋操,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闸餐,死亡現(xiàn)場離奇詭異,居然都是意外死亡矾芙,警方通過查閱死者的電腦和手機(jī)舍沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剔宪,“玉大人拂铡,你說我怎么就攤上這事〈腥蓿” “怎么了感帅?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長地淀。 經(jīng)常有香客問我失球,道長,這世上最難降的妖魔是什么帮毁? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任实苞,我火速辦了婚禮豺撑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘黔牵。我一直安慰自己聪轿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布荧止。 她就那樣靜靜地躺著屹电,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跃巡。 梳的紋絲不亂的頭發(fā)上危号,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音素邪,去河邊找鬼外莲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兔朦,可吹牛的內(nèi)容都是我干的偷线。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼沽甥,長吁一口氣:“原來是場噩夢啊……” “哼声邦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摆舟,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤亥曹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后恨诱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體媳瞪,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年照宝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛇受。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厕鹃,死狀恐怖兢仰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剂碴,我是刑警寧澤把将,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站汗茄,受9級特大地震影響秸弛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一递览、第九天 我趴在偏房一處隱蔽的房頂上張望叼屠。 院中可真熱鬧,春花似錦绞铃、人聲如沸镜雨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荚坞。三九已至,卻和暖如春菲盾,著一層夾襖步出監(jiān)牢的瞬間颓影,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工懒鉴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诡挂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓临谱,卻偏偏與公主長得像璃俗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子悉默,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容