小恶魔女友在线观看OVA百度云

The current browser does not support JavaScript, please set your browser to allow JavaScript
号中号共享会员VIP帐号
File Name:&&&&
琉璃神社 ★ [Hisasi] 小悪..
File Size:&&&&241.25 MB
Username:&&&&hacg
&&&&&&&& If miss used, please
Upload Time:&&&& 19:43:06
You are not logged in!,&&&&&Not sign up?
Speed unlimited
VIP accelerate
Normal speed
No accelerate
Save time:10%~50%
Save time:0%
Support download toolsResume aborted downloads
Support download tools
VIP accelerate
Normal speed
No accelerate
Save time:10%~50%
Save time:0%
Support download tools ,Resume aborted downloads
Support download tools
Account &:&&
Password&:&&
Remember me&&&&&
Not registered
&Sign Up&&
&Registry Complete&img src=&/v2-bb9c0b599d7f7bbd30caf0b5e4f07725_b.jpg& data-rawwidth=&818& data-rawheight=&381& class=&origin_image zh-lightbox-thumb& width=&818& data-original=&/v2-bb9c0b599d7f7bbd30caf0b5e4f07725_r.jpg&&&h2&引言&/h2&&p&多线程混淆是一种让软件具备不确定性的一种反分析方法,它主要是利用了操作系统时间分片和多线程机制,由于线程间共享程序内存,每个线程的不同仅在于寄存器、堆栈以及线程局部存储(TLS),因此可以让一个线程替另一个线程执行任务。举例而言,假设A、B两个线程,A线程需要执行一个函数,函数功能是进书房随机取一本书,函数返回这本书的指针。如果用线程B替换线程A,那么可以这样设计。首先线程A进入函数,然后告诉线程B,我进来了,线程B让线程A等待,然后线程B替线程A取书,然后交给线程A,线程A拿到书后继续执行,线程B则空转等待。&/p&&h2&意义&/h2&&p&前面绕一个大弯,让一个线程替代另一个线程去执行一段代码,这样做有什么意义呢?单纯从执行效率上讲当然是没有任何意义的,而且会带来很多开销,但是站在软件保护的角度上看就非常有意义了,下面分别站在A线程和B线程的角度进行具体分析。&/p&&ul&&li&对于A线程来说,它不需要管哪个线程具体负责执行,A甚至不需要知道这个函数干了些什么,它只需要等返回结果,这种功能分离的机制非常类似于基于网络的软件保护方法。就是我将输入给你,然后等待返回结果,把中间过程看成是一个黑盒子。&/li&&li&对B线程而言,其执行可以具有不确定性,前面用B线程代替了A线程的执行,这是最简单的一个例子。但如果B不是一个线程,而是一个线程池呢,每次A进入到函数时就从线程池中随机取一个空闲的线程作为执行线程,则每次的执行线程是不确定的,调试器难以自动跟踪随机选取的线程。&/li&&/ul&&h2&运行时多态性&/h2&&p&实际上多线程混淆技术的核心思想就是使软件具备&b&运行时的多态性&/b&。简单解释何为运行时多态性,首先解释何为&b&多态性&/b&。多态性是软件保护的一种机制,常用于恶意软件的自我保护中,恶意软件通过将自己的代码改变,但是又保持原有功能完全不变,从而改变自身的某些特征以躲避杀毒软件的查杀。可见多态性就是软件对自己进行等价变形,但传统的多态性是静态的,软件执行后在内存中并不会随着运行的过程而自我变形,一般软件是执行开始阶段或程序关闭前,才会重新生成新的“变形”程序。而运行时多态性是指软件在运行的过程中可以自我变形或可以实现路径多态性。&/p&&p&软件运行时多态性可以通过多线程混淆来实现(当然还有其它的方法,本文不展开)。由于线程数可以任意指定,执行线程可以随机选取,理论上当有&img src=&/equation?tex=m& alt=&m& eeimg=&1&&块代码和&img src=&/equation?tex=n& alt=&n& eeimg=&1&&个执行线程时,路径的可能性共有为&img src=&/equation?tex=n%5Em& alt=&n^m& eeimg=&1&&种。&/p&&h2&具体实现&/h2&&p&由于实现细节有些繁琐,这里仅给出代码流程。多线程混淆的思想是比较容易理解的,我们将多态性中用来具体执行的线程记为&b&工作线程&/b&,而原线程记为&b&用户线程,&/b&则具体可以分8步。&/p&&ol&&li&用户线程将必要信息告诉工作线程调度器,具体而言需要将所有寄存器和执行代码的起始位置保存到栈,同时需要讲此时的栈顶位置即esp的值,自己的线程Handle告诉工作线程调度器,然后自己进行空循环,等待操作系统切换线程;&/li&&li&工作线程调度器分配一个空闲的工作线程,并将用户线程传来的信息告诉该线程;&/li&&li&工作线程首先根据Handle暂停用户线程,防止自己在执行的过程中改变了堆栈会影响用户线程的执行;&/li&&li&工作线程保存自己原来的状态,即将所有寄存器的值入栈,保存自己的esp的位置。接着根据用户线程传来的esp,将自己的栈切换到目标栈的位置,然后根据用户线程保存在栈中的寄存器的值,将自己的寄存器的值设置为跟用户线程完全相同;&/li&&li&工作线程跟踪栈中保存的执行代码起始位置,跳转到该处开始执行;&/li&&li&工作线程执行完毕后保存所有寄存器到栈,并切换回自己的栈;&/li&&li&工作线程恢复用户线程的执行;&/li&&li&用户线程根据工作线程保存在栈中的寄存器将自己的寄存器的状态更新,然后继续往后执行。&/li&&/ol&&h2&小结与展望&/h2&&p&前面提到了用多个线程替待一个线程的执行,工作线程执行完毕后最终还会返回到用户线程,这种策略是替身机制,其实还有其它的策略,比如用多线程完全取代一个线程,即工作线程执行完后不返回用户线程而且继续往前执行,或者将用户线程也纳入到线程池中,这种策略类似于接力跑。&/p&&p&代码运行时多态性的思想是软件保护研究的前沿领域,其本质和核心是为了增加了程序的复杂度,当程序的复杂度高到现有硬件条件无法遍历分析时,保护就算取得了成效。传统的静态混淆技术难以抵抗动态分析,静态混淆是预置了很多混淆项,但这些预置的混淆代码具有固定的控制流,不可能在量级上提高程序的复杂度。而传统的动态混淆技术又仅做了程序的动态加解密。无论是自生成代码技术还是自修改代码技术,很多论文中仅提到了将明文窗口大小减小,比如采用更细粒度的分片方式等,或者让明文窗口的时间缩短,比如加入冲突锁定,一旦代码冲突解锁则立即释放明文代码。这些传统的动态混淆思路距离真正的混淆还有很远的距离。&/p&&p&代码执行时多态性才是真正的解决途径,如果采用接力跑机制,对于每一个线程而言,其执行的代码都是不确定的,其调度是由操作系统指定的,具有不可预料性。最重要的是,由于其多样化程度可以指数级上升,因此可以用较少的代价换取较高的复杂度。&/p&
引言多线程混淆是一种让软件具备不确定性的一种反分析方法,它主要是利用了操作系统时间分片和多线程机制,由于线程间共享程序内存,每个线程的不同仅在于寄存器、堆栈以及线程局部存储(TLS),因此可以让一个线程替另一个线程执行任务。举例而言,假设A、B…
【剧透慎点】&br&〖二刷后更新〗&img data-rawwidth=&1280& data-rawheight=&1280& src=&/v2-cf244cbc9cbe_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-cf244cbc9cbe_r.jpg&&&br&又是自己一个人去看了第二遍哈哈哈哈哈。不得不说在大学城看氛围好多了,除了前两排都坐满了人。&br&索隆绝对是人气担当,一出场在黄金雨中沉睡,即使什么也没做我都听见一堆女生倒吸一口气,等到他拔刀斩杀之时,更是尖叫声无数。&br&散场之后很想和海报合个影的,可是不好意思让路人帮我拍,就只能拍个海报就算啦&img data-rawwidth=&1280& data-rawheight=&1707& src=&/v2-f0cbb341e5603bcf6ced_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-f0cbb341e5603bcf6ced_r.jpg&&&br&看完的第二天发现大学城的电影院已经下映了这部剧场版(T_T) 这次的票房还没破亿呢&br&虽然票房在我们看来不算理想,但是尾田他们那边似乎觉得挺不错的。&b&下图是尾田亲笔写的中文信,没错,亲笔。&/b&隔着屏幕都能感受到诚意十足。&br&&img data-rawwidth=&720& data-rawheight=&1020& src=&/v2-486b9fedaa76a97b7ebb42_b.jpg& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-486b9fedaa76a97b7ebb42_r.jpg&&&br&&br&微博上有很多人感慨这次票房未能破亿(日本票房折合人民币三亿元),我个人感觉倒是不必唱衰中国市场。&br&首先,前期宣传不足。很多人应该都是莫名其妙得知双十一海贼上映。当时还有博主以为是假消息呢。&br&其次是排片率不高,这个大家不难发现的吧,11月12月各种大片轮番上阵,也是有一定冲击的。&br&最后,其实真的没必要和日本比票房。剧场版在日本上映了一个多月。长期关注海贼资讯博的人应该有映像当时宣传造势做得特别好,连尾田这几乎不接受采访的人都上电视宣传去了。光是这点我们就没法和人家比。&br&&br&总之,不必纠结票房的事啦,爱过就好。&br&&br&---------以下是原答案--------&br&&br&终于看完啦!年度最佳反赌片~&br&&img data-rawwidth=&590& data-rawheight=&332& src=&/v2-dad4abb37c4de46ad3b9158_b.jpg& class=&origin_image zh-lightbox-thumb& width=&590& data-original=&/v2-dad4abb37c4de46ad3b9158_r.jpg&&&br&第一次在大荧幕上观看海贼王剧场版,心情有些微妙,电影开始播放的时候,有些不真实感。总之挺激动的\(≧▽≦)/&br&看了一下票房实时数据,发现这次剧场版打破了大陆引进日漫的零时票房记录。有了相对比较乐观的票房,以后引进也不会有太大困难了。&br&&br&如果满分是10分,我给《GOLD》打8.5分。节奏紧凑、结构完整、特效酷炫、着装时尚等等,加上个人对onepiece的偏爱,最终给出这个分数。&br&&br&简单说一下我的个人想法&br&&br&&b&一、《GOLD》完整的故事线&/b&&br&为了宣传剧场版,官方往往会出特别篇等和剧场版有关的动画,整个完整的故事线如下:&br&1.路飞一行人离开德雷斯罗萨,此时悬赏金已上涨&br&&img data-rawwidth=&1280& data-rawheight=&910& src=&/v2-e01f2cb4d2ce82aeb88324_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-e01f2cb4d2ce82aeb88324_r.jpg&&&br&2.漫画第811话封面,外出采购,所着服装和特别篇开场一致。应该发生在特别篇之前。左上角采购衣物篮子里的衣服,是小短片和剧场版开头里穿的服装。&br&&img data-rawwidth=&1280& data-rawheight=&916& src=&/v2-ead9d85168e1fafd9d53c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-ead9d85168e1fafd9d53c_r.jpg&&&br&3.《特别篇黄金之心》打败宝藏猎人,获得前往格兰特索罗娱乐城的永久指针。在这里,剧场版boss及其手下悉数登场,娜美和卡丽娜的羁绊也由此回忆。&br&&img data-rawwidth=&704& data-rawheight=&980& src=&/v2-5aa0dd83d68c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&/v2-5aa0dd83d68c_r.jpg&&&br&4.和7-11合作出的10分钟小短片。时间大概是到达娱乐城前一小时的船上生活。(贴心地附上观看地址 &a href=&///?target=http%3A////9805%3Fuicode%3DmoduleID%3Dfeed%26featurecode%3Dmid%3D9805%26luicode%3D_status_id%3D9805%26rid%3D0_0_0_lfid%3D8841%26sourcetype%3Dpage%26lcardid%3D& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&//3&/span&&span class=&invisible&&805?uicode=&moduleID=feed&featurecode=&mid=9805&luicode=&_status_id=9805&rid=0_0_0_9349455&lfid=8841&sourcetype=page&lcardid=&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)&br&&br&5.进入主线,剧场版《GOLD》&br&&br&6.第777券中,完善了大boss特索罗的童年,以及他的过往,包括他的恋人斯特拉,他是从明哥那里获得的黄金果实等等。地址如下,是talkop论坛的(&a href=&///?target=http%3A///forum.php%3Fmod%3Dviewthread%26tid%3D2546%26extra%3Dpage%253D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/forum.ph&/span&&span class=&invisible&&p?mod=viewthread&tid=2546&extra=page%3D1&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)&br&&br&以上结合起来看,会帮助你发掘整部电影中更深层的东西。&br&&br&&u&另,注意,电影中,正义联盟=革命军 ,航海家=海贼 ,警察=海军,cp0=西皮零,这是翻译上的不同&/u&。&br&&br&&b&二、故事结构&/b&&br&简单的说,就是路飞一行人想在赌场赢一把不料被暗算,伙伴遭遇危险最后得救打败boss的故事。中间穿插了两个女人的友谊、大boss纠葛的过往、各种打酱油的角色。&br&&br&先说一下打酱油的角色。萨博和革命军,应该是为了救同伴(黄金监狱里那个怪怪的老头子)而来;赤犬和现cp0的路奇,cp为护送天龙人而来。&br&&img data-rawwidth=&720& data-rawheight=&560& src=&/v2-85c6a4b5f841ac1ec9573d_b.jpg& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-85c6a4b5f841ac1ec9573d_r.jpg&&&br&虽然出场很短,对话很少但是他们也占了不少时间,对故事结构的完整性造成了一定冲击。这是我非常无语的一点。&br&&br&剧场版在日播出时,就有观众质疑,为什么索隆被抓之后,草帽一伙和他没有太多对话,难道是大家都不关心他吗?&br&尾田事后在访谈里表示很无奈,他有设置大家关心索隆的环节,但是被cut掉了,导演认为一伙人已经很熟了不需要通过如此来表现感情。&u&“那么至少让山治说一句担心他的话吧”这&/u&个想法也被否决了。因为时长不够。&br&&br&连主角团说几句关心话的时间都没有了,却给酱油团安排了不少时间。我明白萨博、路奇都是人气角色,有他们的出场可以吸引一部分观众。可是他们并不是整个故事必须的啊。&br&&br&剧场版首先它是一部电影,情节必须完整,至少能让对原作了解不多的观众看得懂。相信许多不熟悉原著剧情的人对路奇和萨博出场的情节会感到奇怪,好像少了这部分,也不太影响主线剧情啊。&br&&br&最后来说说大boss的过往。以往两部剧场版都有交代清楚boss们的过往(即使并不复杂)。这次特索罗的过去如此复杂却只用几个画面飘过。如果不是我看过777卷,我绝对不知道原来特索罗的过去这么悲惨。&br&&img data-rawwidth=&535& data-rawheight=&715& src=&/v2-edd59a82f9d67ff68e442cd_b.jpg& class=&origin_image zh-lightbox-thumb& width=&535& data-original=&/v2-edd59a82f9d67ff68e442cd_r.jpg&&&br&很多观众只看到了特索罗的变态,却无法得知他的从前造就了他的过去。如果能用更多的时间,去讲述特索罗的过去,剧情上效果会更棒。&br&&br&另外一条支线,娜美和卡丽娜的恩恩怨怨倒是说得很清楚。主线剧情也相对完整。&br&&br&&b&二、路飞和娜美&/b&&br&说说主角团里表现突出的两个人物吧。&br&1.路飞&img data-rawwidth=&570& data-rawheight=&570& src=&/v2-6501b47cdae_b.jpg& class=&origin_image zh-lightbox-thumb& width=&570& data-original=&/v2-6501b47cdae_r.jpg&&&br&从最开始的东海篇,他的运气一直非常非常好。在处刑台快被杀却被从天而降的闪电拯救。如果说运气也是一种实力,那么路飞的实力确实爆表。&br&如果没有人干预的话,草帽一伙应该能凭着运气大赚一笔。&br&&br&路飞在意伙伴这一点人尽皆知,这次的电影也表现得淋漓尽致,为了救索隆拼尽全力。&br&&br&还有,路飞不会说谎也不擅长演戏。船上另外一个比较纯良的,是索隆,也不太会演戏。这次剧情里安排他们俩都不知道计划,合情合理。毕竟,让两个不会演戏的人来配合演出,太为难他们了。&br&&br&2.娜美&img data-rawwidth=&570& data-rawheight=&570& src=&/v2-808cd53ee94e4e8be1032_b.jpg& class=&origin_image zh-lightbox-thumb& width=&570& data-original=&/v2-808cd53ee94e4e8be1032_r.jpg&&&br&前两次剧场版,尾田都会给娜美很多戏份。这次还给她加了一段羁绊。&br&&br&虽然娜美只是船上的航海士,但是几乎每次事关大家未来的决定她都会参与决策甚至由她决定。&br&这次剧场版也不例外,先从vip室撤离的缓兵之计、和卡丽娜联手的计划都是由她做出。&br&&br&对了,我才不会告诉你,大陆放映的剧场版,在实施拯救计划之时,把卡丽娜用胸部色诱护卫的情节删了 (^▽^) &br&&img data-rawwidth=&489& data-rawheight=&300& src=&/v2-a46d8ea5a29c08cd21dc8_b.jpg& class=&origin_image zh-lightbox-thumb& width=&489& data-original=&/v2-a46d8ea5a29c08cd21dc8_r.jpg&&&br&&br&乔巴曾经夸奖娜美“男子气概满满”,从某些方面来说,娜美干脆利落的勇气的确不输男子。&br&希望那些说娜美不是《onepiece》女主的人消停一下,戏份十足人气又高,这样的娜美不是女主谁是?&br&&br&整场电影看完,我只记得娜美的一句台词:&b&教你们一件事,我们家没有钱。&/b&&br&&br&&b&三、特索罗&/b&&br&这次的大boss据说人气特别高,周边产品卖得很好。&img data-rawwidth=&720& data-rawheight=&405& src=&/v2-77d32e298a5ae9c1cb4ab72bb4f0dac5_b.jpg& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-77d32e298a5ae9c1cb4ab72bb4f0dac5_r.jpg&&&br&特索罗和明哥一样,外表骚气十足,穿着夸张,耳朵上带着令人瞩目的星星耳环。&b&除了左手无名指之外,&/b&都戴满了金戒指。&br&说到星星,大家不难发现,整个黄金城,到处都是星星元素。因为建造这座城池的主人,&b&心底深处,有一颗星。&/b&&br&&img data-rawwidth=&720& data-rawheight=&960& src=&/v2-28a241bdd78a5c4d6fa47f3e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-28a241bdd78a5c4d6fa47f3e_r.jpg&&&br&特索罗从小喜欢唱歌,梦想成为明星。然而他父亲是个酒鬼,母亲不允许他唱歌,家境贫穷使得他成了一个偷偷摸摸的小混混。&br&有一天,他在人类交易所前唱歌,被关在笼子里的斯特拉(拉丁文意思是“星星”)因父亲赌博而被卖到交易所,相似的命运,让两人惺惺相惜,堕入爱河。&br&&br&特索罗决定改过自新,每天不眠不休的工作,以换取金钱买下斯特拉。在那充满疲惫的三年里,斯特拉的笑容是他唯一的慰藉。&br&&img data-rawwidth=&720& data-rawheight=&432& src=&/v2-2d7f0e8e052ac8f06c98666acd6e373b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-2d7f0e8e052ac8f06c98666acd6e373b_r.jpg&&&br&就在他快要存到足够的钱之时,天龙人买下了斯特拉。特索罗拼死反抗然而无效,还被带到玛丽乔亚为奴。天龙人禁止他笑。「如果有钱,就不会发生这种事了」见识过权贵的丑恶,特索罗对于金钱更加执着了。&br&&br&斯特拉说「我总有一天会被买走,但他们买不走我的心」「这三年,我从心底感到幸福」??&i&特索罗的世界是没有太阳的,遇见斯特拉之后,黑暗的生命中有了些许光亮。但天龙人却这点微弱的光亮都剥夺了。&/i&&br&&br&可以说,现在的特索罗,是有童年阴影、少年时的悲惨遭遇、被天龙人虐待的过往而造就的。&br&虽然满城尽是星耀,但能够佩戴星星的只有他;&br&&i&因为曾被禁止笑容,所以没有人可以在得到他允许前笑;&br&因为过去沦为奴隶,那么现在就要让更多人变成自己的奴隶;&br&因为吃过没钱的苦,如今对金钱就特别执着。&/i&&br&&img data-rawwidth=&533& data-rawheight=&300& src=&/v2-b102fd698837defa5e7882f3ccea1715_b.jpg& class=&origin_image zh-lightbox-thumb& width=&533& data-original=&/v2-b102fd698837defa5e7882f3ccea1715_r.jpg&&&br&特索罗的干部,芭卡拉,和斯特拉有些相似,都是中分的发型,笑起来面容也相像。可是她却只能佩戴月亮耳环。&b&星星是恒星,被行星围绕着;月亮是卫星,只能围绕着行星。&br&对特索罗来说,斯特拉是无法替代、永恒的存在。&/b&&br&&b&【倾一世情,建一座城,念一段缘&/b&】&br&这样的反派,我没办法讨厌,只有深深的感慨。&br&&br&最后的对决中,特索罗挟持了娜美来威胁路飞&br&“这个女孩信任着你”。&br&恍惚间,他从路飞大喊“放开她”的声音中,想到了当年的自己。&br&而他却已变成曾经自己厌恶的那种人。&br&可怜又可恨。&br&&br&&b&四、关于「7」&/b&&br&有没有玩过老虎机的童鞋呢?当屏幕中出三个并排的7时,说明你中头奖啦~&img data-rawwidth=&1111& data-rawheight=&411& src=&/v2-c2c8eec570f1e285fa2af_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1111& data-original=&/v2-c2c8eec570f1e285fa2af_r.jpg&&&br&这次剧场版也多次出现数字7&br&在黄金监狱的革命军老头子,脸上画有数字7。他自称是赌徒,对于爱好赌博的人来说,7代表lucky;&br&&br&电影最后,乌索普用一部老虎机打败了运气果实。他把一台老虎机搬到芭卡拉身边,她用硬币扔出了头奖777,花光了所有的运气,所以接下来就被乌索普打中啦~&br&&br&剧场版在日本上映时,随票赠送《777》卷,里面的内容是关于剧场版里的各种设定。&br&&br&&b&五、有趣的细节&/b&&br&「彩蛋」:大家应该看到不少老熟人&br&1.在博彩机前走过的海格力斯儿,也就是乌索普的师傅。823话封面写到【仍未回到播音列岛】。所以是回岛前先去赌场玩一把?&img data-rawwidth=&941& data-rawheight=&1006& src=&/v2-059acc9d3f88e66f10f3a65c3ddfde49_b.jpg& class=&origin_image zh-lightbox-thumb& width=&941& data-original=&/v2-059acc9d3f88e66f10f3a65c3ddfde49_r.jpg&&&br&2.cp7拉面拳法的那个人在求婚。&br&3.阿布萨罗姆,透明果实人,现在在报社工作,出现在餐厅,正吃饭。&br&4.sbs中的桃兔中将出现在vip室,据说她是大将候选人,&br&5.熊猫人在打拳击。&br&其他的我看看二刷还能不能看出来。&br&&br&2.娜美的钱包是粉色带有“N”字形吊坠的,还装饰有珍珠,一看就很贵。&br&&br&3.op世界里,没有汽油没有高科技,所以车子的动力是乌龟。红外线灯则被设定成猫头鹰。&br&&br&4.在坐上乌龟车时,路飞照例坐在车头,弗兰奇照例坐在罗宾身旁。&br&&br&5.路飞乔巴他们在试衣服时,罗宾用果实能力帮他们把乱扔的衣服整理好&br&&br&6.吃饭时大家点的都是小份牛排,只有路飞点的是超大份。&br&&img data-rawwidth=&1707& data-rawheight=&1280& src=&/v2-e1b95fe583eab2261eeaec2b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&/v2-e1b95fe583eab2261eeaec2b_r.jpg&&&br&&br&7.小小的吐槽一下,特索罗的手下,特别耐打的抖M男,总是缠着索隆不放,估计是索隆打得他特别爽?黄金触手(略恶心)每次缠着人的时候,我都以为自己走错片场在看小h漫。&br&&br&其他的细节我二刷再看看能不能看出来。&br&&br&&b&六、其他&/b&&br&作为一个女生我其实不太关注打斗场景,但仔细对比,发现这次剧场版的打斗确实没有《FILM Z》精彩,索隆和山治的打斗还没看过瘾就结束了。不过酷炫的特技为打斗增分不少。尤其是萨博vs路奇,火拳太帅了!&br&&img data-rawwidth=&715& data-rawheight=&556& src=&/v2-5fdcecfbc6db17c4ed1fb_b.jpg& class=&origin_image zh-lightbox-thumb& width=&715& data-original=&/v2-5fdcecfbc6db17c4ed1fb_r.jpg&&&br&&br&另外,这次的剧场版总给我一种看好莱坞间谍大片的感觉,画面酷炫,音乐带感,情节起伏跌宕,人物穿着也特别好看。&br&&br&明星们的配音效果,比起z来要好得多。不会有违和感。想到z里面的艾因还是觉得配得怪怪的。&br&&br&总之,从各个方面看来,《GOLD》绝对是一部好电影,如果能把更多镜头分给主角团、把特索罗的故事讲清楚些,就更完美啦。&br&还有好多细节没有挖掘出来,二刷走起( ?????????????)&br&&br&附上我悲催的观影过程&br&鉴于双十一要回家要钱买买买,9号我就包袱款款离开了学校。&br&想着家里有门禁,绝对不可能看点映,就打算上午或下午去看。&br&结果&br&我做梦也没有想到我家这个十八线小城镇的电影院居然只有两场放映,而且一场是英语一场是国语(?????﹏?????)&br&还好朋友告诉我新开的电影院有一场可以看,而且是原声的,不然我真是哭死。&img data-rawwidth=&1707& data-rawheight=&1280& src=&/v2-f9ef3cc5bd586d1149f50c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&/v2-f9ef3cc5bd586d1149f50c_r.jpg&&进到新开的电影院,又是和尚又是奥巴马又是金四胖把俺这个土包子吓死了~不过双十一当天买票送爆米花真是太爽了。&br&看的时候后面的两男生一直说话,问他的小伙伴为什么乌索普悬赏金变成了两亿,人家都封神了你还在这儿影响他人观影。&br&最后,国际惯例晒票根。&br&&img data-rawwidth=&1280& data-rawheight=&1707& src=&/v2-1e8cad598fa708eb0c5fc_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-1e8cad598fa708eb0c5fc_r.jpg&&珍爱生命,远离赌博(o??????o?)
【剧透慎点】 〖二刷后更新〗 又是自己一个人去看了第二遍哈哈哈哈哈。不得不说在大学城看氛围好多了,除了前两排都坐满了人。 索隆绝对是人气担当,一出场在黄金雨中沉睡,即使什么也没做我都听见一堆女生倒吸一口气,等到他拔刀斩杀之时,更是尖叫声无数…
个人非常喜欢Roguelike(后面简称RL),也关注了很多年,下面说说我看到的趋势和理解。&br&&br&&b&趋势:&/b&&br&&ul&&li&个人认为RL在Indie游戏井喷的拐点应该是2008年的&i&Spelunky&/i&,融合了RL与Platformer(平台跳跃),并且有着优秀的游戏画面与简洁的操作,之后“RL元素+简化操作+图形画面”的模式,真正带动了RL的新发展。&br&&/li&&li&之前的RL有着出色的游戏深度,但是因为上手非常复杂,只局限在了小众的硬核玩家群体里,我想更多人当时像我一样,是在瞻仰&i&Dwarf Fortress&/i&逆天的子系统,而非自己玩吧。&br&&/li&&li&而之后或者同一时间出现的&i&Dungeon of Dredmor&/i&, &i&FTL&/i&, &i&MineCraft&/i&, &i&The Binding of Issac, Rogue Legacy&/i&等等等等(实在太多了),基本上都延续了&RL元素+简化操作+图形界面&的模式,下面简单分析分析为什么能连续成功。&br&&/li&&/ul&&br&&b&理解:&/b&&br&&ul&&li&游戏设计其实一直有一个世界性难题:开发者怎么通过有限的设计时间,换取玩家更多(乃至无限)的体验时间?其中最核心的问题是Replay Value(重玩价值,&a href=&///?target=https%3A///en/Replay_value& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Replay value&i class=&icon-external&&&/i&&/a&),而自古以来RL的核心就是Replay Value。&br&&/li&&li&RL做到Replay Value,在我看来有核心点是关于系统的(下面不谈经常能搜索到的Berlin Interpretation(&a href=&///?target=http%3A///index.php%3Ftitle%3DBerlin_Interpretation& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Berlin Interpretation&i class=&icon-external&&&/i&&/a&)对RL定义,只说自己的理解,包含了对很多RL变种的理解):&/li&&ul&&li&游戏世界被一种密集、复杂的交互体系链接在了一起。玩家与场景、道具、敌人等等系统之间有着密集的交互。这一来意味着玩家的每一次操作或选择,真正能影响这个世界的元素,在这个世界都被赋予了“意义”,让每次玩都有价值;二来子游戏元素与规则之间的随机、组合爆炸过程,复杂了玩法空间,每次玩又有着不同的体验。&/li&&li&例子的话可以参看Spelunky的道具(&a href=&///?target=http%3A///wiki/Items& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Items - Spelunky Wiki&i class=&icon-external&&&/i&&/a&),充满了各种和场景、敌人交互的方式。也可以是MineCraft里的地形生成,每次生存的体验都截然不同。与此同时,MC的每个地块又都能交互,每一个渲染出来的三角形在游戏都被赋予了玩法意义。&/li&&li&另外,很巧的是Zelda也是如此设计的(&a href=&///?target=http%3A//zhi.hu/osoS& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《塞尔达传说》系列为何评价如此之高? - Freelancer 的回答&i class=&icon-external&&&/i&&/a&)。我想,这个是因为游戏开发早期工具受限、或机能受限、或者独立游戏成本受限时,“内容创建”这个游戏开发的核心功能是受限的,怎么在有限的内容中赋予更多的玩法意义,成为了早期各种游戏的设计核心,而这一点,或许也是历史对现在的一份馈赠吧。&/li&&/ul&&li&然后是早期RL的弊病了,复杂的操作、不直观的反馈是问题所在。其实RL已经把游戏系统打造的够复杂多变有趣,却因为上手与学习系统的问题,把大量的玩家拒之门外,成为了早期小众硬核玩家才会喜欢的游戏。而这,正是&i&Spelunky&/i&这类游戏诞生之后,通过“简化操作+图形界面”尝试去解决掉的问题,也让RL走向了更广的受众,并开始在Indie游戏里大量涌现。&/li&&li&关于RL的现在。其实据我看,现在RL已经是Indie的主流了。另外下面有一篇很有趣LOL团队对RL的理解与应用的文章,见文章最后。&/li&&li&关于RL的未来。我个人认为,游戏设计一面是构建复杂丰富的系统,一面是对系统的认知过程符合人的认知规律(&a href=&///?target=http%3A//zhi.hu/nDKI& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何思考游戏的本质? - Freelancer 的回答&i class=&icon-external&&&/i&&/a&),而RL与其各种变种走的就是这种思路。或许未来最关键的不是RL与哪种游戏类型结合会成为主流,而是哪家的RL能符合上面两点吧。或许我说的也完全不对,只是个人观点。&/li&&/ul&&br&&b&一些关于RL好玩的东西&/b&:&br&RL与其变种,还有些其他好玩词汇例如Roguelike-like, Roguelite, Procedural Death Labyrinth等等,有兴趣可以自己查查&br&&a href=&///?target=http%3A///archives/roguelike-dossier& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Roguelike 到底是啥&i class=&icon-external&&&/i&&/a&,覆盖了RL与其变种的发展状况,一个喜欢玩游戏与做独立游戏的Steam好友写的,每次说起来RL必引用~&br&&a href=&///?target=http%3A///play/1022120/Level-Up-Your-Game-The& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GDC Vault - Level Up Your Game: The Untapped Potential of Roguelikes&i class=&icon-external&&&/i&&/a&,今年GDC演讲时LOL的团队对RL元素的剖析与应用&br&&a href=&///?target=http%3A///id/zqxinran/games/%3Ftab%3Dall& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Steam Community :: zqxinran :: Games&i class=&icon-external&&&/i&&/a&,“包神”,一个steam好友,RL大爱,写过大量RL评测文章,出过大量RL视频都可以搜索到,顺带宣传下~&br&&br&PS:我为啥会花费两个小时写下这一堆,我也不清楚。。。或许是对RL的爱吧。。。感谢带来很多欢乐的Dungeon of Dredmor~
个人非常喜欢Roguelike(后面简称RL),也关注了很多年,下面说说我看到的趋势和理解。 趋势: 个人认为RL在Indie游戏井喷的拐点应该是2008年的Spelunky,融合了RL与Platformer(平台跳跃),并且有着优秀的游戏画面与简洁的操作,之后“RL元素+简化操作+图…
&img src=&/v2-327fb6cd93a64d30f15f232b143fc1e2_b.jpg& data-rawwidth=&1024& data-rawheight=&678& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/v2-327fb6cd93a64d30f15f232b143fc1e2_r.jpg&&&ol&&li&&a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Talking Machines&i class=&icon-external&&&/i&&/a&:由 Harvard 的一位机器学习课程的教授和一位记者共同创办,主题主要集中在机器学习方面。&/li&&li&&a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andreessen Horowitz’s a16z podcast&i class=&icon-external&&&/i&&/a&:Andreessen Horowitz 公司本身就是一家硅谷最顶尖的风投公司,其投资过 Facebook, Instagram, Twitter, Airbnb 等知名公司。他家的播客绝对值得一听。&br&&/li&&li&&a href=&/?target=https%3A///product-hunt& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Product Hunt Radio&i class=&icon-external&&&/i&&/a&:Product Hunt 是一个供用户分享和发现产品的网站,加入了 Y Combinator,并接受过上面提到的 Andreessen Horowitz 的投资。播客主要是由创始人 Ryan Hoover 和不同嘉宾聊投资、科技的那些事。&/li&&li&&a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Partially Derivative&i class=&icon-external&&&/i&&/a&:两位数据科学家每期喝着啤酒跟你聊数据科学。&br&&/li&&li&&a href=&/?target=https%3A///oreilly-radar& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The O’Reilly Data Show Podcast&i class=&icon-external&&&/i&&/a&:O'Reilly 应该每个程序员都听说过。这档播客就是由 O'Reilly Media 官方推出的,内容多是数据科学和大数据方面的。&br&&/li&&li&&a href=&/?target=http%3A//www.wired.co.uk/podcasts& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Wired.co.uk podcast&i class=&icon-external&&&/i&&/a&:由美国著名媒体 &a href=&/?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WIRED&i class=&icon-external&&&/i&&/a& 推出,专注于科技对文化、经济和政治的影响。&/li&&li&&a href=&/?target=http%3A///hwpod& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hello World&i class=&icon-external&&&/i&&/a&:内容主要面向程序员,嘉宾都是经验丰富的开发人员。&br&&/li&&li&&a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Stacey Higginbotham’s Internet of Things podcast&i class=&icon-external&&&/i&&/a&:著名女性博主 &a href=&/?target=https%3A///gigastacey& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Stacey Higginbotham&i class=&icon-external&&&/i&&/a& 的播客,主要关注物联网和科技行业的发展与趋势。&br&&/li&&li&&a href=&/?target=https%3A///exponentfm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Exponent&i class=&icon-external&&&/i&&/a&:由 blog &a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Stratechery&i class=&icon-external&&&/i&&/a& 的创办者 &a href=&/?target=https%3A///benthompson& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Ben Thompson&i class=&icon-external&&&/i&&/a& 和作家 &a href=&/?target=https%3A///jamesallworth& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&James Allworth&i class=&icon-external&&&/i&&/a& 共同创立,每一期的谈话都非常有深度。&br&&/li&&li&&a href=&/?target=http%3A///tag/what-to-think/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&What to Think — VentureBeat’s podcast!&i class=&icon-external&&&/i&&/a&:由美国科技资讯网站 VentureBeat 推出,采访过 John McAfee, Walter Isaacson(为 Steve Jobs 写传记的那位), Tim Draper 等大佬。&br&&/li&&/ol&&br&&blockquote&大家要是也有什么推荐的 podcast,可以在评论中留下。: )&/blockquote&&p&原文:&a href=&/?target=http%3A////10-tech-podcasts-you-should-listen-to-now/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&10 tech podcasts you should listen to now.&i class=&icon-external&&&/i&&/a&&/p&
:由 Harvard 的一位机器学习课程的教授和一位记者共同创办,主题主要集中在机器学习方面。:Andreessen Horowitz 公司本身就是一家硅谷最顶尖的风投公司,其投资过 Facebook, Instagram, Twitter, Air…
&img src=&/2fdafcd61ccb4a9f4f30_b.png& data-rawwidth=&1092& data-rawheight=&614& class=&origin_image zh-lightbox-thumb& width=&1092& data-original=&/2fdafcd61ccb4a9f4f30_r.png&&&p&直接从blog中copy了一份,图丢失了,懒得一张一张上传了,blog原文在这里:&a href=&/?target=http%3A//www.xsec.io//how-to-develop-a-honeypot.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&xsec.io//how-to&/span&&span class=&invisible&&-develop-a-honeypot.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&h2&自制蜜罐&/h2&&h3&背景&/h3&&p&生产系统的内网部署蜜罐后可以监控到黑客对内网的探测及攻击行为,方便安全工程师第一时间发现被入侵并及时止损,防止出现公司重要数据被窃取却浑然不然的情况。 所以我们有必要在重要业务的内网机房部署蜜罐。&/p&&h3&需求&/h3&&ol&&li&第一时间发现攻击者&/li&&li&攻击行为及指纹记录、识别&/li&&li&覆盖到全部的协议及端口&/li&&/ol&&p&目前市面上已经有许多商业或开源的蜜罐系统,如&a href=&/?target=https%3A///paralax/awesome-honeypots& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&awesome-honeypots&i class=&icon-external&&&/i&&/a&中收集了大量的开源的蜜罐系统, 但是这些开源的蜜罐系统存在以下问题:&/p&&ol&&li&安装、部署比较复杂、繁琐,学习成本高&/li&&li&自定义或扩展功能的成本高&/li&&li&覆盖不到全部的协议及端口&/li&&li&开发进度滞后,没有覆盖到最新的redis、elastic、stuct2等漏洞的利用的监控&/li&&/ol&&p&所以我们有必要自己开发一套易于部署、覆盖全端口全协议及最新漏洞的蜜罐系统。&/p&&h2&蜜罐架构图&/h2&&ol&&li&Agent&ol&&li&记录攻击log并发送到server中&/li&&li&按照策略将攻击流量转到后端server&/li&&li&定期更新policy&/li&&/ol&&/li&&li&Server:&ol&&li&接收来自各agent的攻击log&/li&&li&通过策略判断是否需要报警&/li&&li&攻击log及报警log保存、备份&/li&&/ol&&/li&&li&Backend&ol&&li&利用docker构建常见的各服务&/li&&li&攻击行为记录、指纹识别&/li&&/ol&&/li&&li&Policy server&ol&&li&Agent和server的策略管理&/li&&/ol&&/li&&/ol&&h2&Agent的实现&/h2&&p&Agent利用iptables记录了对Agent所有端口的tcp及udp协议的访问log,并用iptables将请求按policy指定的规则转到了后端的攻击行为识别服务器中。&/p&&h3&iptables基础&/h3&&p&netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:&/p&&ol&&li&网络地址转换(Network Address Translate)&/li&&li&数据包内容修改&/li&&li&包过滤的防火墙功能&/li&&/ol&&p&真正实现防火墙功能的是处于内核级的netfilter,iptables是应用层的netfilter的管理工具,netfilter与iptables在linux操作系统中的位置及角色如下图所示:&/p&&p&Netfilter提供了数据包的5个Hook Point,当有数据通过这些位置时,钩子就会触发,从而可以调用我们自定义的函数,这5个挂载点分别为:&/p&&ul&&li&NF_IP_PRE_ROUTING&/li&&li&NF_IP_LOCAL_IN&/li&&li&NF_IP_FORWARD&/li&&li&NF_IP_LOCAL_OUT&/li&&li&NF_IP_POST_ROUTING&/li&&/ul&&p&Netfilter所设置的规则是存放在内核内存中的,而 iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。&/p&&p&这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。&/p&&p&iptables内置了4个表,即Filter表、Nat表、Mangle表和Raw表,分别用于实现包过滤、网络地址转换、包重构(修改)和数据跟踪处理。&/p&&p&这几个表的优先顺序为Raw -& Mangle -& Nat -& Filter。 iptables表和链的结构如下图所示:&/p&&h4&iptables中的规则表(table)&/h4&&ol&&li&Raw表有两个链:OUTPUT、PREROUTING,作用为决定数据包是否被状态跟踪机制处理&/li&&li&Mangle表有五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD,作用为修改数据包的服务类型、TTL、并且可以配置路由实现QOS&/li&&li&Nat表有三个链:PREROUTING、POSTROUTING、OUTPUT,作用为用于网络地址转换&/li&&li&Filter表有三个链:INPUT、FORWARD、OUTPUT,作用为数据包过滤&/li&&/ol&&h4&iptables中的规则链接(chain)&/h4&&ol&&li&INPUT——进来的数据包应用此规则链中的策略。&/li&&li&OUTPUT——外出的数据包应用此规则链中的策略。&/li&&li&FORWARD——转发数据包时应用此规则链中的策略。&/li&&li&PREROUTING——对数据包作路由选择前应用此链中的规则,所有的数据包进来的时侯都先由这个链处理。&/li&&li&POSTROUTING——对数据包作路由选择后应用此链中的规则,所有的数据包出来的时侯都先由这个链处理。&/li&&/ol&&h4&iptales中的数据流&/h4&&p&iptables中的数据流可以总结为以下3句话:&/p&&ol&&li&发往本地的包,数据流向为:PREROUTING -& INPUT&/li&&li&发往其他地址的包,数据流向为:PREROUTING -& FORWARD -& POSTROUTING&/li&&li&从本地发出的包的数据流向为: OUTPUT -& POSTROUTING&/li&&/ol&&h4&iptables规则管理&/h4&&h4&iptables命令参数&/h4&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&&span class=&o&&[&/span&-t 表名&span class=&o&&]&/span&:该规则所操作的哪个表,可以使用filter、nat等,如果没有指定则默认为filter
-A:新增一条规则,到该规则链列表的最后一行
-I:插入一条规则,原本该位置上的规则会往后顺序移动,没有指定编号则为1
-D:从规则链中删除一条规则,要么输入完整的规则,或者指定规则编号加以删除
-R:替换某条规则,规则替换不会改变顺序,而且必须指定编号。
-P:设置某条规则链的默认动作
-nL:-L、-n,查看当前运行的防火墙规则列表
chain名:指定规则表的哪个链,如INPUT、OUPUT、FORWARD、PREROUTING等
&span class=&o&&[&/span&规则编号&span class=&o&&]&/span&:插入、删除、替换规则时用,--line-numbers显示号码
&span class=&o&&[&/span&-i&span class=&p&&|&/span&o 网卡名称&span class=&o&&]&/span&:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出
&span class=&o&&[&/span&-p 协议类型&span class=&o&&]&/span&:可以指定规则应用的协议,包含tcp、udp和icmp等
&span class=&o&&[&/span&-s 源IP地址&span class=&o&&]&/span&:源主机的IP地址或子网地址
&span class=&o&&[&/span&--sport 源端口号&span class=&o&&]&/span&:数据包的IP的源端口号
&span class=&o&&[&/span&-d目标IP地址&span class=&o&&]&/span&:目标主机的IP地址或子网地址
&span class=&o&&[&/span&--dport目标端口号&span class=&o&&]&/span&:数据包的IP的目标端口号
-m:extend matches,这个选项用于提供更多的匹配参数,如:
-m state --state ESTABLISHED,RELATED
-m tcp --dport 22
-m multiport --dports 80,8080
-m icmp --icmp-type 8
&-j 动作&:处理数据包的动作,包括ACCEPT、DROP、REJECT等
&/code&&/pre&&/div&&h3&利用shell实现一个demo&/h3&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&&span class=&ch&&#!/bin/bash&/span&
:&span class=&s&&&&BLOCK&/span&
&span class=&s&&Copyright (c) 2016 www.xsec.io&/span&
&span class=&s&& - User: netxfly&x@xsec.io&&/span&
&span class=&s&& - Date: &/span&
&span class=&s&&Permission is hereby granted, free of charge, to any person obtaining a copy&/span&
&span class=&s&&of this software and associated documentation files (the &Software&), to deal&/span&
&span class=&s&&in the Software without restriction, including without limitation the rights&/span&
&span class=&s&&to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&/span&
&span class=&s&&copies of the Software, and to permit persons to whom the Software is&/span&
&span class=&s&&furnished to do so, subject to the following conditions:&/span&
&span class=&s&&The above copyright notice and this permission notice shall be included in&/span&
&span class=&s&&all copies or substantial portions of the Software.&/span&
&span class=&s&&THE SOFTWARE IS PROVIDED &AS IS&, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&/span&
&span class=&s&&IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&/span&
&span class=&s&&FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&/span&
&span class=&s&&AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&/span&
&span class=&s&&LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&/span&
&span class=&s&&OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&/span&
&span class=&s&&THE SOFTWARE.&/span&
&span class=&s&&BLOCK&/span&
&span class=&nv&&WHITELIST_IPs&/span&&span class=&o&&=(&/span&1.1.1.1.1 111.111.111.111 222.222.222.222&span class=&o&&)&/span&
&span class=&nv&&WHITELIST_PORTS&/span&&span class=&o&&=&/span&&span class=&s2&&&88,96,99,55522&&/span&
&span class=&nv&&BACKEND&/span&&span class=&o&&=&/span&&span class=&s2&&&10.10.10.10&&/span&
&span class=&nv&&ATTACK_IP&/span&&span class=&o&&=&/span&&span class=&s2&&&9.9.9.9.9&&/span&
&span class=&nv&&ATTACK_IP1&/span&&span class=&o&&=&/span&&span class=&s2&&&9.9.9.9.0/24&&/span&
&span class=&nv&&UNREAL_TARGET&/span&&span class=&o&&=&/span&&span class=&s2&&&220.181.112.244:80&&/span&
&span class=&c1&&# set ip_forward&/span&
&span class=&k&&function&/span& set_ip_forward&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/sysctl -w net.ipv4.ip_forward&span class=&o&&=&/span&1
&span class=&o&&}&/span&
&span class=&c1&&# delete custom iptables chain&/span&
&span class=&k&&function&/span& delete_policy&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X HONEYPOT
/sbin/iptables -t nat -X FIREWALL_IN
/sbin/iptables -t nat -X FIREWALL_OUT
/sbin/iptables -t filter -F
/sbin/iptables -t filter -X WHITELIST
&span class=&o&&}&/span&
&span class=&c1&&# init iptables chain&/span&
&span class=&k&&function&/span& init_policy&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/iptables -t nat -N HONEYPOT
/sbin/iptables -t nat -A PREROUTING -j HONEYPOT
/sbin/iptables -t filter -N WHITELIST
/sbin/iptables -t filter -A INPUT -j WHITELIST
/sbin/iptables -t nat -N FIREWALL_IN
/sbin/iptables -t nat -A PREROUTING -j FIREWALL_IN
/sbin/iptables -t nat -N FIREWALL_OUT
/sbin/iptables -t nat -A POSTROUTING -j FIREWALL_OUT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -t nat -A HONEYPOT -i eth0 -p tcp -m state --state NEW,ESTABLISHED,RELATED -j LOG --log-prefix &span class=&s2&&&iptables:&&/span&
&span class=&o&&}&/span&
&span class=&c1&&# set white policy(ip white)&/span&
&span class=&k&&function&/span& set_white_policy&span class=&o&&()&/span&
&span class=&o&&{&/span&
&span class=&k&&for&/span& ip in &span class=&nv&&$WHITELIST_IPs&/span&
&span class=&k&&do&/span&
/sbin/iptables -t filter -A WHITELIST -s &span class=&nv&&$ip&/span& -j DROP
&span class=&k&&done&/span&
&span class=&o&&}&/span&
&span class=&c1&&# set honeypot policy(ports white)&/span&
&span class=&k&&function&/span& set_honeypot_policy&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/iptables -A HONEYPOT -t nat -i eth0 -p tcp -m multiport ! --dport &span class=&nv&&$WHITELIST_PORTS&/span& -j DNAT --to-destination &span class=&nv&&$BACKEND&/span&
/sbin/iptables -A HONEYPOT -t nat -i eth0 -p udp -m multiport ! --dport &span class=&nv&&$WHITELIST_PORTS&/span& -j DNAT --to-destination &span class=&nv&&$BACKEND&/span&
&span class=&c1&&# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&/span&
&span class=&o&&}&/span&
&span class=&c1&&# start honeypot&/span&
&span class=&k&&function&/span& StartHoneypot&span class=&o&&()&/span&
&span class=&o&&{&/span&
set_ip_forward
init_policy
set_white_policy
set_honeypot_policy
&span class=&o&&}&/span&
&span class=&c1&&# stop honeypot&/span&
&span class=&k&&function&/span& StopHoneypot&span class=&o&&()&/span&
&span class=&o&&{&/span&
delete_policy
&span class=&o&&}&/span&
&span class=&k&&function&/span& showHelp&span class=&o&&()&/span&
&span class=&o&&{&/span&
&span class=&nb&&echo&/span& &span class=&s2&&&Usage: [sudo] ./honeypot.sh
[OPTIONS]&&/span&
&span class=&nb&&echo&/span& &span class=&s2&&&Options:&&/span&
&span class=&nb&&echo&/span& -e &span class=&s2&&&\t-h | --help\t\t show this help&&/span&
&span class=&nb&&echo&/span& -e &span class=&s2&&&\t-start
\t\t start honeypot&&/span&
&span class=&nb&&echo&/span& -e &span class=&s2&&&\t-stop
\t\t stop honeypot&&/span&
&span class=&o&&}&/span&
&span class=&c1&&# Check if user is root&/span&
&span class=&o&&[&/span& &span class=&k&&$(&/span&id -u&span class=&k&&)&/span& !&span class=&o&&=&/span& &span class=&s2&&&0&&/span& &span class=&o&&]&/span& &span class=&o&&&&&/span& &span class=&o&&{&/span& &span class=&nb&&echo&/span& &span class=&s2&&&Must run as root, exit1111...&&/span& &&span class=&p&&&&/span&2&span class=&p&&;&/span& &span class=&nb&&exit&/span& 1&span class=&p&&;&/span& &span class=&o&&}&/span&
&span class=&k&&while&/span& &span class=&nb&&true&/span& &span class=&p&&;&/span& &span class=&k&&do&/span&
&span class=&k&&case&/span& &span class=&s2&&&&/span&&span class=&nv&&$1&/span&&span class=&s2&&&&/span& in
-h&span class=&p&&|&/span&--help&span class=&o&&)&/span&
showHelp&span class=&p&&;&/span&
&span class=&nb&&echo&/span& &span class=&s2&&&&&/span&
&span class=&nb&&exit&/span& 0
&span class=&p&&;;&/span&
-start&span class=&p&&|&/span&--start&span class=&o&&)&/span&
&span class=&nb&&echo&/span& &span class=&s2&&&start honeypot&&/span&&span class=&p&&;&/span&
StartHoneypot&span class=&p&&;&/span&
&span class=&nb&&exit&/span& 0
&span class=&p&&;;&/span&
-stop&span class=&p&&|&/span&--stop&span class=&o&&)&/span&
&span class=&nb&&echo&/span& &span class=&s2&&&stop honeypot&&/span&&span class=&p&&;&/span&
StopHoneypot&span class=&p&&;&/span&
&span class=&nb&&exit&/span& 0
&span class=&p&&;;&/span&
*&span class=&o&&)&/span&
&span class=&c1&&# echo &invalid option. $1&&/span&
showHelp&span class=&p&&;&/span&
&span class=&nb&&exit&/span& 1
&span class=&p&&;;&/span&
&span class=&k&&esac&/span&
&span class=&k&&done&/span&
&span class=&k&&function&/span& policy_reset&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/iptables -t nat -F FIREWALL_IN
/sbin/iptables -t nat -F FIREWALL_OUT
iptables -t nat -A FIREWALL_OUT -o eth0 -j MASQUERADE
&span class=&o&&}&/span&
&span class=&c1&&# # douzhuanxingyi&/span&
&span class=&k&&function&/span& douzhuanxingyi&span class=&o&&()&/span&
&span class=&o&&{&/span&
iptables -t nat -A FIREWALL_IN
-s &span class=&nv&&$ATTACK_IP&/span& -j DNAT --to-destination &span class=&nv&&$ATTACK_IP&/span&
&span class=&o&&}&/span&
&span class=&k&&function&/span& jinghuashuiyue&span class=&o&&()&/span&
&span class=&o&&{&/span&
/sbin/iptables -t nat -A FIREWALL_IN -i eth0 -p tcp -m tcp --dport 1:65535 -s &span class=&nv&&$ATTACK_IP1&/span& -j DNAT --to-destination &span class=&nv&&$UNREAL_TARGET&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&h4&demo代码解读&/h4&&ol&&li&set_ip_forward函数将net.ipv4.ip_forward设为了1,这样才能开启linux的数据转发功能。&/li&&li&init_policy中利用-N指令新建了不同的chain,目的是为了在将同类的操作放到同一个链中,防止在操作规则的过程中影响到其他的iptables规则。&/li&&li&set_white_policy为设置白名单,来自白名单的请求直接drop掉,不会转到后端服务器;&/li&&li&set_honeypot_policy为设置蜜罐的转发规则,除了服务器管理、监控外的其他端口外的其他请求全部转到后端&/li&&li&douzhuanxingyi使用了金庸武侠小说《天龙八部》中武功名,指将攻击者的攻击全部反弹回去&/li&&li&jinghuashuiyue是使用了动画片《死神》中蓝染的斩魄刀的名字:(幻觉系最强斩魄刀),指将攻击者的所有请求转到一个伪造的地址中,误导攻击者。&/li&&li&在使用了DNAT后,需要在POSTROUTING链中设置SNAT,每条规则都需要设置,操作麻烦且容易出错,用-j MASQUERADE可以自动完成这些操作&/li&&/ol&&h3&golang实现最终的agent&/h3&&p&相比python来说,golang写的程序无任何依赖,直接编译为一个二进制文件就能执行,所以我们选择了golang。 agent的功能为:&/p&&ol&&li&支持配置,配置文件中为策略的URL,转发数据的网卡名&/li&&li&定期从策略服务器中拉取最新的策略并应用&/li&&li&将syslog发送到后端的server中&/li&&/ol&&p&发送syslog到后端服务器的功能无需开发,centos 6默认全部为rsyslog,只需配置下rsyslog便可将日志发送到后端server, 配置完需重启rsyslog服务/etc/init.d/rsyslog restart,配置参数如下:&/p&&div class=&highlight&&&pre&&code class=&language-basemake&&&span&&/span&&span class=&err&&[root@honeypot_agent01&/span& &span class=&err&&agent]&/span&&span class=&c&&# cat /etc/rsyslog.d/iptables.conf &/span&
&span class=&err&&:&/span&&span class=&nf&&msg,contains,&iptables&
@@111.111.111.111&/span&&span class=&o&&:&/span&514
&/code&&/pre&&/div&&p&111.111.111.111 为蜜罐的server,514为端口,@@表示以TCP发送log,@表示以UDP发送数据 建议全部使用TCP,个别网络的ACL导致tcp不通时可以使用udp。&/p&&p&agent的定期运行配置在cronta中,每1分钟更新一次策略&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&[root@honeypot_agent01 agent]# crontab -e
*/1 * * * *
/data/honeypot/agent/honeypot_agent
&/code&&/pre&&/div&&p&Agent的部分代码如下:&/p&&div class=&highlight&&&pre&&code class=&language-go&&&span&&/span&&span class=&c1&&// Get forward policy && white list&/span&
&span class=&kd&&func&/span& &span class=&nx&&GetPolicy&/span&&span class=&p&&()&/span& &span class=&p&&(&/span&&span class=&nx&&p&/span& &span class=&nx&&Policys&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span& &span class=&kt&&error&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&nx&&resp&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span& &span class=&o&&:=&/span& &span class=&nx&&http&/span&&span class=&p&&.&/span&&span class=&nx&&Get&/span&&span class=&p&&(&/span&&span class=&nx&&Url&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&nx&&err&/span& &span class=&o&&!=&/span& &span class=&kc&&nil&/span& &span class=&p&&{&/span&
&span class=&nx&&log&/span&&span class=&p&&.&/span&&span class=&nx&&Fatal&/span&&span class=&p&&(&/span&&span class=&nx&&err&/span&&span class=&p&&)&/span&
&span class=&p&&}&/span&
&span class=&nx&&body&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span& &span class=&o&&:=&/span& &span class=&nx&&ioutil&/span&&span class=&p&&.&/span&&span class=&nx&&ReadAll&/span&&span class=&p&&(&/span&&span class=&nx&&resp&/span&&span class=&p&&.&/span&&span class=&nx&&Body&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&nx&&err&/span& &span class=&o&&!=&/span& &span class=&kc&&nil&/span& &span class=&p&&{&/span&
&span class=&nx&&log&/span&&span class=&p&&.&/span&&span class=&nx&&Fatal&/span&&span class=&p&&(&/span&&span class=&nx&&err&/span&&span class=&p&&)&/span&
&span class=&p&&}&/span&
&span class=&nx&&json&/span&&span class=&p&&.&/span&&span class=&nx&&Unmarshal&/span&&span class=&p&&(&/span&&span class=&nx&&body&/span&&span class=&p&&,&/span& &span class=&o&&&&/span&&span class=&nx&&p&/span&&span class=&p&&)&/span&
&span class=&nx&&resp&/span&&span class=&p&&.&/span&&span class=&nx&&Body&/span&&span class=&p&&.&/span&&span class=&nx&&Close&/span&&span class=&p&&()&/span&
&span class=&k&&return&/span& &span class=&nx&&p&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span&
&span class=&p&&}&/span&
&span class=&c1&&// set iptables&/span&
&span class=&kd&&func&/span& &span class=&nx&&SetIptables&/span&&span class=&p&&(&/span&&span class=&nx&&policy&/span& &span class=&nx&&Policys&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&c1&&// InitPolicy()&/span&
&span class=&nx&&white_ip_policy&/span& &span class=&o&&:=&/span& &span class=&nx&&policy&/span&&span class=&p&&.&/span&&span class=&nx&&Whiteip&/span&
&span class=&c1&&// set white policy&/span&
&span class=&k&&for&/span& &span class=&nx&&_&/span&&span class=&p&&,&/span& &span class=&nx&&white_ip&/span& &span class=&o&&:=&/span& &span class=&k&&range&/span& &span class=&nx&&white_ip_policy&/span& &span class=&p&&{&/span&
&span class=&nx&&fmt&/span&&span class=&p&&.&/span&&span class=&nx&&Println&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&,&/span& &span class=&s&&&-i&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-s&&/span&&span class=&p&&,&/span& &span class=&nx&&white_ip&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&DROP&&/span&&span class=&p&&)&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&,&/span& &span class=&s&&&-i&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-s&&/span&&span class=&p&&,&/span& &span class=&nx&&white_ip&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&DROP&&/span&&span class=&p&&).&/span&&span class=&nx&&Output&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&span class=&nx&&fmt&/span&&span class=&p&&.&/span&&span class=&nx&&Println&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&,&/span& &span class=&s&&&-i&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-p&&/span&&span class=&p&&,&/span& &span class=&s&&&tcp&&/span&&span class=&p&&,&/span& &span class=&s&&&-m&&/span&&span class=&p&&,&/span& &span class=&s&&&multiport&&/span&&span class=&p&&,&/span& &span class=&s&&&!&&/span&&span class=&p&&,&/span& &span class=&s&&&--dports&&/span&&span class=&p&&,&/span& &span class=&nx&&strings&/span&&span class=&p&&.&/span&&span class=&nx&&Join&/span&&span class=&p&&(&/span&&span class=&nx&&policy&/span&&span class=&p&&.&/span&&span class=&nx&&Whiteport&/span&&span class=&p&&,&/span& &span class=&s&&&,&&/span&&span class=&p&&),&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&DNAT&&/span&&span class=&p&&,&/span& &span class=&s&&&--to-destination&&/span&&span class=&p&&,&/span& &span class=&nx&&policy&/span&&span class=&p&&.&/span&&span class=&nx&&Backend&/span&&span class=&p&&)&/span&
&span class=&nx&&ret&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span& &span class=&o&&:=&/span& &span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&,&/span& &span class=&s&&&-i&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-p&&/span&&span class=&p&&,&/span& &span class=&s&&&tcp&&/span&&span class=&p&&,&/span& &span class=&s&&&-m&&/span&&span class=&p&&,&/span& &span class=&s&&&multiport&&/span&&span class=&p&&,&/span& &span class=&s&&&!&&/span&&span class=&p&&,&/span& &span class=&s&&&--dports&&/span&&span class=&p&&,&/span& &span class=&nx&&strings&/span&&span class=&p&&.&/span&&span class=&nx&&Join&/span&&span class=&p&&(&/span&&span class=&nx&&policy&/span&&span class=&p&&.&/span&&span class=&nx&&Whiteport&/span&&span class=&p&&,&/span& &span class=&s&&&,&&/span&&span class=&p&&),&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&DNAT&&/span&&span class=&p&&,&/span& &span class=&s&&&--to-destination&&/span&&span class=&p&&,&/span& &span class=&nx&&policy&/span&&span class=&p&&.&/span&&span class=&nx&&Backend&/span&&span class=&p&&).&/span&&span class=&nx&&Output&/span&&span class=&p&&()&/span&
&span class=&nx&&fmt&/span&&span class=&p&&.&/span&&span class=&nx&&Println&/span&&span class=&p&&(&/span&&span class=&nx&&ret&/span&&span class=&p&&,&/span& &span class=&nx&&err&/span&&span class=&p&&)&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&POSTROUTING&&/span&&span class=&p&&,&/span& &span class=&s&&&-o&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&MASQUERADE&&/span&&span class=&p&&).&/span&&span class=&nx&&Output&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&span class=&c1&&// set ipv4.ip_forward&/span&
&span class=&kd&&func&/span& &span class=&nx&&SetIp_forward&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&nx&&cmd&/span& &span class=&o&&:=&/span& &span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/sysctl&&/span&&span class=&p&&,&/span& &span class=&s&&&-w&&/span&&span class=&p&&,&/span& &span class=&s&&&net.ipv4.ip_forward=1&&/span&&span class=&p&&)&/span&
&span class=&nx&&cmd&/span&&span class=&p&&.&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&cmd&/span& &span class=&p&&=&/span& &span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/sysctl&&/span&&span class=&p&&,&/span& &span class=&s&&&-p&&/span&&span class=&p&&)&/span&
&span class=&nx&&cmd&/span&&span class=&p&&.&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&span class=&c1&&// Init iptables policy&/span&
&span class=&kd&&func&/span& &span class=&nx&&InitPolicy&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&c1&&// set honeypot chain in nat table&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-N&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-F&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&PREROUTING&&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&,&/span& &span class=&s&&&-i&&/span&&span class=&p&&,&/span& &span class=&nx&&interfaceName&/span&&span class=&p&&,&/span& &span class=&s&&&-p&&/span&&span class=&p&&,&/span& &span class=&s&&&tcp&&/span&&span class=&p&&,&/span& &span class=&s&&&-m&&/span&&span class=&p&&,&/span& &span class=&s&&&state&&/span&&span class=&p&&,&/span& &span class=&s&&&--state&&/span&&span class=&p&&,&/span& &span class=&s&&&NEW,ESTABLISHED,RELATED&&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&LOG&&/span&&span class=&p&&,&/span& &span class=&s&&&--log-prefix&&/span&&span class=&p&&,&/span& &span class=&s&&&iptables &&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&c1&&// set white list chain in filter table&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-N&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-F&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-A&&/span&&span class=&p&&,&/span& &span class=&s&&&INPUT&&/span&&span class=&p&&,&/span& &span class=&s&&&-j&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&span class=&c1&&// Delete Policy&/span&
&span class=&kd&&func&/span& &span class=&nx&&DeletePolicy&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&c1&&// Flush rule&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-F&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-F&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&c1&&// delete chain&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&nat&&/span&&span class=&p&&,&/span& &span class=&s&&&-X&&/span&&span class=&p&&,&/span& &span class=&s&&&HONEYPOT&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&nx&&exec&/span&&span class=&p&&.&/span&&span class=&nx&&Command&/span&&span class=&p&&(&/span&&span class=&s&&&/sbin/iptables&&/span&&span class=&p&&,&/span& &span class=&s&&&-t&&/span&&span class=&p&&,&/span& &span class=&s&&&filter&&/span&&span class=&p&&,&/span& &span class=&s&&&-X&&/span&&span class=&p&&,&/span& &span class=&s&&&WHITELIST&&/span&&span class=&p&&).&/span&&span class=&nx&&Run&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&span class=&c1&&// Start Agent&/span&
&span class=&kd&&func&/span& &span class=&nx&&Start&/span&&span class=&p&&(&/span&&span class=&nx&&p&/span& &span class=&nx&&Policys&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&nx&&Stop&/span&&span class=&p&&()&/span&
&span class=&c1&&// set ip forward&/span&
&span class=&nx&&SetIp_forward&/span&&span class=&p&&()&/span&
&span class=&c1&&// create iptables chain&/span&
&span class=&nx&&InitPolicy&/span&&span class=&p&&()&/span&
&span class=&c1&&// set iptables rule&/span&
&span class=&nx&&SetIptables&/span&&span class=&p&&(&/span&&span class=&nx&&p&/span&&span class=&p&&)&/span&
&span class=&p&&}&/span&
&span class=&c1&&// Stop Agent&/span&
&span class=&kd&&func&/span& &span class=&nx&&Stop&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&c1&&// clean iptables rule and chain&/span&
&span class=&nx&&DeletePolicy&/span&&span class=&p&&()&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&h2&Server的实现&/h2&&p&蜜罐server使用&a href=&/?target=http%3A//gopkg.in/mcuadros/go-syslog.v2& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&gopkg.in/mcuadros/go-sy&/span&&span class=&invisible&&slog.v2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&包实现了一个rsyslog server,将每条收到的rsyslog进行格式化,然后判断是否在白名单中,如果不在白名单中,然后对攻击数据进行计数(超过一定的时间后再开始从0开始计数), 如果在规定的时间内超过配置的报警的次数后就不会再报了,防止短时间内产生大量的垃圾邮件。&/p&&p&比如可以把策略设为:同一个来源的攻击者,3分钟内只发1封报警邮件,报警策略的代码如下:&/p&&div class=&highlight&&&pre&&code class=&language-go&&&span&&/span&&span class=&c1&&// check if send alarm mail&/span&
&span class=&kd&&func&/span& &span class=&nx&&AlarmPolicy&/span&&span class=&p&&(&/span&&span class=&nx&&redisConfig&/span& &span class=&nx&&RedisConfig&/span&&span class=&p&&,&/span& &span class=&nx&&sysLog&/span& &span class=&kd&&map&/span&&span class=&p&&[&/span&&span class=&kt&&string&/span&&span class=&p&&]&/span&&span class=&kd&&interface&/span&&span class=&p&&{})&/span& &span class=&p&&(&/span&&span class=&nx&&isAlarm&/span& &span class=&kt&&bool&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&nx&&client&/span& &span class=&o&&:=&/span& &span class=&nx&&redis&/span&&span class=&p&&.&/span&&span class=&nx&&NewClient&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&nx&&redis&/span&&span class=&p&&.&/span&&span class=&nx&&Options&/span&&span class=&p&&{&/span&
&span class=&nx&&Addr&/span&&span class=&p&&:&/span&
&span class=&nx&&fmt&/span&&span class=&p&&.&/span&&span class=&nx&&Sprintf&/span&&span class=&p&&(&/span&&span class=&s&&&%s:%d&&/span&&span class=&p&&,&/span& &span class=&nx&&redisConfig&/span&&span class=&p&&.&/span&&span class=&nx&&Host&/span&&span class=&p&&,&/span& &span class=&nx&&redisConfig&/span&&span class=&p&&.&/span&&span class=&nx&&Port&/span&&span class=&p&&),&/span&
&span class=&nx&&Password&/span&&span class=&p&&:&/span& &span class=&nx&&redisConfig&/span&&span class=&p&&.&/span&&span class=&nx&&Password&/span&&span class=&p&&,&/span& &span class=&c1&&//
password set&/span&
&span class=&nx&&DB&/span&&span class=&p&&:&/span&
&span class=&nx&&redisConfig&/span&&span class=&p&&.&/span&&span class=&nx&&Db&/span&&span class=&p&&,&/span&
&span class=&c1&&// use default DB&/span&
&span class=&p&&})&/span&
&span class=&nx&&src&/span&&span class=&p&&,&/span& &span class=&nx&&ok&/span& &span class=&o&&:=&/span& &span class=&nx&&sysLog&/span&&span class=&p&&[&/span&&span class=&s&&&src&&/span&&span class=&p&&].(&/span&&span class=&kt&&string&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&nx&&ok&/span& &span class=&p&&{&/span&
&span class=&nx&&bRet&/span&&span class=&p&&,&/span& &span class=&nx&&_&/span& &span class=&o&&:=&/span& &span class=&nx&&client&/span&&span class=&p&&.&/span&&span class=&nx&&Exists&/span&&span class=&p&&(&/span&&span class=&nx&&src&/span&&span class=&p&&).&/span&&span class=&nx&&Result&/span&&span class=&p&&()&/span&
&span class=&k&&if&/span& &span class=&nx&&bRet&/span& &span class=&p&&{&/span&
&span class=&nx&&client&/span&&span class=&p&&.&/span&&span class=&nx&&HIncrBy&/span&&span class=&p&&(&/span&&span class=&nx&&src&/span&&span class=&p&&,&/span& &span class=&s&&&times&&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&)&/span&
&span class=&c1&&// client.Expire(src, time.Duration(redisConfig.Duration)*time.Minute)&/span&
&span class=&p&&}&/span& &spa

我要回帖

更多关于 小恶魔女友2 的文章

 

随机推荐