ChinaMoe

2016年9月22日

好似莫比乌斯环一般,走过一路又回到了起点。

既然选择了远方,便只顾风雨兼程。

ChinaMoe

2016年9月16日

第一次说出这样的话…
好像又被拒绝了呢。

不过就算只有这样才能挽回,也是值得的。
若是不能挽回,

H-Worm 校内传播报告

事件起因

据说是由某历史老师从国外带回,在校园内广泛传播,阶梯教室、图书馆等公共计算机成为其重灾区,且 360 无法清除该恶意脚本。

样本分析

样本名

fuck girlMagazines +18 (3).vbs

类别

Virus.Vbs.Crypt.C

行为分析

将设备内所有文件移动到 360SANDBOX 隐藏目录,并为全部文件在原位置建立快捷方式。当用户访问文件时,会先通过快捷方式执行脚本,再访问真实文件来迷惑用户。

脚本代码

源文件:fuck girlMagazines +18 (3)
经过两次 Base64 Decode 以及 ASCII 码替代混淆,我们得到了原始脚本。(感谢 RuanXingZhi 协助解析脚本)

通过阅读源码我们发现,这是一款功能齐全的远控脚本,提供了上传/下载/CMD等多种功能。
脚本作者:houdini
连接域名:mmoohhaammeedd.no-ip.biz
监听端口:12
感染特征:免费动态域名+非知名的端口+“/is-ready”

我们拿到了 H-Worm 控制端,界面很美观,功能很强大,还可以自身更新、卸载,赞。
事后(2016-8)我们通过查阅发现,2016-7-1 360 发布了关于 H-Worm 的漏洞报告(H-WORM:简单而活跃的远控木马),其中提到了以下 C&C 服务器地址,建议各网络管理员拉黑处理。

处理方法

禁用 Autorun.inf,删除 *.lnk,选择主流安全软件。

参考文献

[1]Fireeye – Now you see me H-Worm by Houdini

后记

2014/12/26 本文发布
2014/12/** 学校网络中心称此问题无法解决
2016/08/11 更新内容与脚本

艺术节

2015的尾声还未唱响,却又再次过上了6月初那种夜不归宿熬夜后期的生活。

12月5日 定剧本
12月6日 录音
12月7日 推翻之前剧本内容,重新录音,直到第二天凌晨3点
12月8日 推翻之前剧本内容,重新录音,直到第二天凌晨3点半
12月9日 微调音频,合音排练
12月10日 一等奖第五名(最后一名),总分高实第一。
累,并快乐着。
没有之前的千辛万苦与泪水,哪来的苦尽甘来与荣耀!
12月7日 排练路上
12月7日 集体合影12月7日 露宿电视台合影12月9日 凌晨剪辑
12月9日 杀青

psb (1)

学农

没想到,第一次和同学们一起庆祝生日,竟是在班级的散伙饭上。
经历完7天充满着欢笑与泪水的农村生活体验,扑面而来的是紧接着的高二分班和一个迷惘的假期。一部分文科生离去了,而更多新同学加入了,就像月饼说的,“人没有少 就好像TA们离开之后的缺口被自动遗忘然后修补”,留给我们更多的则是感伤。即使是现在,空间和班群里还是寂静无声,没有往日的喧闹,只有一片无边的沉默。
感觉不开心不开心不开心(;′⌒`)

从长沙出发

从长沙出发


在宁乡四中

在宁乡四中


宁乡的傍晚

宁乡的傍晚

真是日了doge,我盼星星盼月亮盼了一年多的支付宝实名验证居然需要银行卡…
总之不能好好的和阿里玩耍了(。・_・)/~~~

不过,
回到家后,咱收到了父母的生日礼物(๑•̀ㅂ•́)و✧
Phantom3 Professional 4k!感动得一塌糊涂。心情算是平复了一些,总之开心就好~
然而相机好像出了点小问题返厂更换了

OpenShift

Windows上的一种更快捷的搭建OpenShift开发环境的方式

00 为什么会有这个教程

第一次使用OpenShift的服务时,是Shuenhoy手把手教我的…当时英文很弱,连PuTTYGen的“Please generate some randomness by moving the mouse over the blank area”提示都没有看懂,以至于耗费了半个小时还没有创建密钥。按照官方的方法去下载个Ruby for Windows环境然后再去配置Git和RHC,再去用RHC配置OpenShift账户而创建SSH密钥是一件特别麻烦并且耗费时间的事情,所以自己摸索出了一个直接用Git Bash来创建密钥的途径。

01 下载并安装Git for Windows

Git for Windows项目已经搬移到了Git for Windows – GitHub上,点击Download Button即可下载已经封装好的.exe安装包。

02 生成SSH Publice key(公钥)和Private key(私钥)

在Git Bash中,执行ssh-keygen创建公钥和私钥。
注意:不要修改路径,也不要填写此处的密码,留空就好。
完毕后,在路径C:/Users/本地账户名/.ssh/中,找到id_rsa(这是私钥)和id_rsa.pub(这是公钥)。将id_rsa.pub复制,在OpenShift账户中新建一个公钥,名称随意,保存即可,此时就可以用Git Bash中的ssh命令进行连接。
当你看到“Welcome to OpenShift shell”的字样时,恭喜你,成功了!

Git Bash下的OpenShift Shell欢迎界面

Git Bash下的OpenShift Shell

//这Git Bash功能齐全得像BusyBox一样…

03 在其他SSH客户端上连接OpenShift Shell

  • 对于PuTTY,请从PuTTY官网[传送门]下载putty以及puttygen。由于putty所使用的私钥和一般私钥格式略微不同,所以我们必须使用PuTTYGen来转换密钥(在平时,我们也可以使用PuTTYGen来创建密钥)。
    打开PuTTYGen,点击Conversion(转换)下的Import Key来导入一般私钥,点击Save Private Key保存putty专用的私钥到任意位置。
    在PuTTY的Connection(连接)-SSH(SSH连接)-Auth(验证)-Authentication parameters(验证参数)中导入Private key(私钥)即可。
  • 对于其他客户端,如Android SSH Client,直接导入id_rsa(私钥)即可。

04 通过OpenShift SSH Shell获取正确上网姿势

正向代理

ssh -L [客户端IP或省略]:[客户端端口]:[服务器侧能访问的IP]:[服务器侧能访问的IP的端口] [[email protected]] -p [服务器ssh服务端口(默认22)]

反向代理

ssh -R [服务器IP或省略]:[服务器端口]:[客户端侧能访问的IP]:[客户端侧能访问的IP的端口] [[email protected]] -p [服务器ssh服务端口(默认22)]

Socket代理

ssh -D [本地IP或省略]:[本地端口] [[email protected]] -p [服务器ssh服务端口(默认22)]
对于使用Chromium内核的浏览器,安装一个叫做SwitchySharp的自动化代理设置变更插件就能很好的玩耍了。
//例如针对*.google.*走Socket5隧道,其他的URL则直接连接,实现局部代理。

05 自动连接和防断线

可以编写一个批处理操作
ssh -D 8080 [email protected]
1.bat

2015高三毕业年鉴制作花絮

 隔开页-顶格-无背景-已改

导语

你曾说
春花秋月何时才能了
可这满园花开放
什么季节已不重要

6月4日

中午和月饼在电视台审稿,拿着一份几天前的印刷样品和上午出来的样品进行校对,结果几天前就圈出提醒的人名登记错误他们仍然没有修改,各个班级照片页的人员介绍的文字也大小不一…这个设计师一定不是处女座。乙方并没有提供PSD源文件,我们只好打电话给设计要PSD。作为一个“优秀”的设计师,他居然没留PSD!!!运 营 爆 破 !
愤怒的Dragon谢爆炸了,一个电话Call给王经理:“今晚要是没搞好我明天就换公司。”把可怜的高设计吓得早生华发,不得不踩着人字拖跑到电视台改稿。

在Dragon谢的强烈要求下,我们决定在电视台通宵奋战。
11:50,又渴又饿,公姐姐早已回家,小卖部也早已关门,我和月饼两人只能饥肠辘辘地审着成堆的稿子。
12点,月饼她已经去Happy谢的床上睡了,我还在改着卷首和卷尾。

6月5日

1点,又累又困,躺倒沙发上睡下。
2点,被蚊子咬醒,打开编辑间的灯,月饼还没醒= =。
2点半,把月饼闹醒,起床继续审稿。
3点半,已经饿得头重脚轻,打电话给KFC,下班了;Mcdonald,下班了;必胜客,下班了;美团外卖,没菜了qwq。
5点半,班级资料页全部审核完毕,《山丘》洗脑中。
06:20,将宿舍铃声设置为《山丘》、《金鱼花火》,然后去食堂买了早餐。
反正是连着两天的劳技课,并没有什么作业…不过整个人很虚就是了。

6月5日

嗯,基本没什么动态。

6月6日

月饼去广西“修身养性”了,还带走了仅有的校对稿。我只能凭着她发来的渣画质图片来修改之前的稿件。

6月7日

怒刷一天数学卷子,整个人都不好了orz。
为老师们标记上了名字,修改了一些文本编辑错误。

6月8日

早上一直睡到10:50才起床..Orz
然后看到月饼几十个未接电话,整个人都炸了。
晚上改到23:30,除了英语组之外终于定稿了qwq。

6月9日

大餐

就这样离开

就这样,离开了信息组orz
感谢给予我帮助与教导的hzwer,lwher,是你们告诉了我什么是坚持。
感谢教授算法的LXY、PTY、HZC,带给了我对算法的兴趣与向往。
感谢一路上替我”掐着秒表”的许老师,李老师。
感谢激励我的金牌爷Dash和省队爷Lyc还有传说般的征哥。

Oh,就是这样。

2014-09-30 to 2015-05-19 233 Days,谢你们相随。

心系OI,从未离开。

NOIP 2015再见
QQ图片20150217123340
我的maya Accelerator都退组了…谁能撑起数论一片天?

DNS

DNS放大攻击原理及实现

原理

一般的DNS查询是基于UDP(53)的,具有源不可验证性。(相反的,TCP协议是三步握手连接,所以是可以信任的)
而当我们伪装一个src = '192.168.1.2',dst = '192.168.1.1'的DNS Query时,192.168.1.1将返回Respone给192.168.1.2。所以,我们可以通过伪装大量这样的Query,通过拥有高带宽的DNS服务器对src发起攻击。

然而,事实上,这就是普通的UDP攻击,但它与之的新特性是,DNS放大攻击的危害更大。传统的UDP攻击效果取决于攻击者的攻击带宽,而新型的DNS放大攻击取决于DNS服务器的带宽。(在这种关系下,DNS服务器既是攻击者,也是受害者)

比如我们向某递归DNS 服务器发送一个类型为ANY的域名查询请求(64 byte),然后收到了820 byte的Respone。

[email protected]:~#dig any isc.org @61.187.***.***
;; Truncated, retrying in TCP mode.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> any isc.org @61.187.***.***
;; global options: +cmd
;; Got answer:
;; ->>HEADER< ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 10

;; QUESTION SECTION:
;isc.org. IN ANY

;; ANSWER SECTION:
isc.org. 40 IN A 149.20.64.69
isc.org. 7030 IN NS sfba.sns-pb.isc.org.
isc.org. 7030 IN NS ord.sns-pb.isc.org.
isc.org. 7030 IN NS ns.isc.afilias-nst.info.
isc.org. 7030 IN NS ams.sns-pb.isc.org.
isc.org. 7030 IN SOA ns-int.isc.org. hostmaster.isc.org. 2015050900 7200 3600 24796800 3600
isc.org. 7030 IN MX 10 mx.pao1.isc.org.
isc.org. 7030 IN MX 10 mx.ams1.isc.org.
isc.org. 7030 IN TXT "v=spf1 a mx ip4:204.152.184.0/21 ip4:149.20.0.0/16 ip6:2001:04F8::0/32 ip6:2001:500:60::65/128 ~all"
isc.org. 7030 IN TXT "$Id: isc.org,v 1.1979 2015-05-04 19:31:54 jquale Exp $"
isc.org. 40 IN AAAA 2001:4f8:0:2::69
isc.org. 7030 IN NAPTR 20 0 "S" "SIP+D2U" "" _sip._udp.isc.org.
isc.org. 7030 IN SPF "v=spf1 a mx ip4:204.152.184.0/21 ip4:149.20.0.0/16 ip6:2001:04F8::0/32 ip6:2001:500:60::65/128 ~all"

;; ADDITIONAL SECTION:
sfba.sns-pb.isc.org. 7030 IN A 149.20.64.3
sfba.sns-pb.isc.org. 7030 IN AAAA 2001:4f8:0:2::19
ord.sns-pb.isc.org. 7030 IN A 199.6.0.30
ord.sns-pb.isc.org. 7030 IN AAAA 2001:500:71::30
ams.sns-pb.isc.org. 7030 IN A 199.6.1.30
ams.sns-pb.isc.org. 7030 IN AAAA 2001:500:60::30
mx.pao1.isc.org. 3430 IN A 149.20.64.53
mx.pao1.isc.org. 3430 IN AAAA 2001:4f8:0:2::2b
mx.ams1.isc.org. 3430 IN A 199.6.1.65
mx.ams1.isc.org. 3430 IN AAAA 2001:500:60::65

;; Query time: 12 msec
;; SERVER: 61.187.***.***#53(61.187.***.***)
;; WHEN: Sun May 10 10:03:15 2015
;; MSG SIZE rcvd: 820

由于DNS查询请求通常为无连接的UDP类型,所以攻击者只要使用1G的伪造源地址DNS查询流量,理论上就可能获得超过50G的UDP流量,并且可以控制其流向导引到攻击目标。对于拥有成千上万台被控主机的僵尸木马网络来说,发出几个G乃至数十G的DNS查询流量并不困难,而开放式递归服务器在全球数量超过千万台,并且这些服务器接入带宽往往较高。如果控制每台 DNS只产生 30M的应答攻击流量(太大的 DNS流量会被管理员发现并可能影响服务器正常工作),那么只需要1万台就可以达到300G DDoS流量攻击的效果。
——上海交通大学网络信息中心

危害

  • 伪造的src主机会收到大量的Respone造成拒绝响应
  • 目标DNS服务可能瘫痪,且上级DNS服务器进行递归查询,可能会耗尽资源

筛选

放大倍数越大,DNS放大攻击的效果越明显,显然,我们需要通过寻求一些域名记录较多的域名进行查询,如 isc.org, GitHub.com, Google.com, Logdown.com, SourceForgenet,当然,一些较常用的,可能已经被列入DNS查询白名单的域名也是很好的选择,如 Baidu.com, Gov.cn之类的。

实现

由于Python简单上手模块多,所以我们选择Python作为我们的开发语言。(这就是为什么那么多EXP都用Python的缘故吧)

此时,src主机就会收到case条DNS Respone。

进阶

  • 参考DNS协议报文格式,发送类型为ANY的Query试试
  • 尝试索引 *.3322.org, *.oicp.net, *.eicp.net, *.xicp.net进行递归查询防止被ban

常用DNS服务器

OneDNS 112.124.47.27
OpenerDNS 42.120.21.30
aliDNS 223.5.5.5,223.6.6.6
114DNS 114.114.114.114,114.114.115.115
114DNS安全版 114.114.114.119,114.114.115.119
114DNS家庭版 114.114.114.110,114.114.115.110(推介)

防治

w3m_1

Raspberry 2 体验笔记

最近 Raspberry 官方源很慢,便换用国内的软件源。
#编辑源
nano /etc/apt/source.list
#添加ustc的源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian wheezy main contrib non-free rpi
#更新软件源
apt-get update
#更新软件包
apt-get upgrade

另外发现几个好玩的文本浏览器
#w3m 和图片浏览支持
apt-get install w3m w3m-img
#lynx
apt-get lynx

使用方法
w3m http://tap-io.com
lynx http://tap-io.com

w3m_2
按键操作:
Q 退出
B 返回
V 切换显示模式(文字/HTML源码)
S 选择标签
{ 向上翻页
} 向下翻页
K 上
J 下

tips:只有在Xterm下才能显示图片!若中文显示异常,Ctrl+鼠标右键选中Large即可。