原github地址:https://github.com/RicterZ/genpAss/tree/master
根据个人信息生成具有中国特色的弱口令密码 需要的信息可以有:姓名,用户名,qq,邮箱,手机号,生日,公司
git clone https://github.com/RicterZ/genpAss
cd genpAss && python setup.py install
短参数 | 长参数 | 含义 |
---|---|---|
-n | –name | 姓名 |
-u | –uesr | 用户名 |
-q | QQ号 | |
-m | –mobile | 手机号 |
-b | -birthday | 生日 |
-c | –company | 公司 |
- | –csv | 读入用户列表 |
- | –with-dict | 和弱口令字典一起输出 |
-o | –output | 输出到一个json文件中 |
根据作者举的例子
genpass -n 王大锤 -u dachui dac -b 1993-12-21 -c baidu -m 13928182828 -q 818271273 -e wangdac@gmail.com
csv文件的格式是
name,email,birthday,username,mobile_phone,qq_number,company,
测试,ceshi@x.com,1995-01-03,test cece,18883866666,23591712,google,
大头,datou@x.com,1996-03-03,bighead,18883877777 18883899999,392912031,baidu,
弱口令规则位于genpAss/genpass/rules/combinations.py
当时为了课程《web安全》的实验,我添加了更加详细的规则,如下
# coding=utf-8
rules = [
'{qq}',
'{name}',
'{username}',
'{company}',
'{birthday}',
'{mobile}',
'{name}.',
'{name}!',
'{name}!0123',
'{name}123',
'{name}123!@#',
'{name}123.',
'{name}123@',
'{name}123!',
'{name}2008',
'{name}#123',
'{name}@123',
'{name}2014',
'{name}2015',
'{name}2016',
'{name}2017',
'{name}2018',
'{name}2019',
'{name}2020',
'{name}nb',
'{name}666',
'{name}_',
'{name}@2014',
'{name}@2015',
'{name}@2016',
'{name}@2017',
'{name}@2018',
'{name}@2019',
'{name}@2020',
'2017{name}',
'2018{name}',
'2019{name}',
'123{name}',
'123@{name}',
'123!{name}'
'{username}.',
'{username}!',
'{username}!0123',
'{username}123',
'{username}123!@#',
'{company}123',
'{company}1234',
'{company}12345',
'{company}2014',
'{company}2008',
'{company}#123',
'{company}@123',
'{company}@2014',
'{company}@2015',
'{company}@2016',
'{company}@2017',
'{company}@2018',
'{company}@2019',
'{company}@1q2w3e',
'{company}1q2w3e',
'1q2w3e4r{company}@2014',
'1q2w3e4r{company}@2015',
'1q2w3e4r{company}@2016',
'1q2w3e4r{company}@2017',
'1q2w3e4r{company}@2018',
'1q2w3e4r{company}@2019',
'{company}1q2w3e4r',
'{company}1q2w3e4r5t',
'{company}888',
'{company}666',
'{company}8888',
'QQ{qq}',
'qq{qq}',
'q{qq}',
'{qq}@{name}',
'{qq}.{name}',
'{username}@{company}',
'{username}#{company}',
'{name}@{company}',
'{name}#{company}',
'{name}{qq}',
'{name}{birthday}',
'{name}_{birthday}',
'{name}.{birthday}',
'{name}@{birthday}'
'{birthday}{name}',
'{birthday}_{name}',
'{birthday}.{name}',
'{name}{mobile}',
]
这是exampli gratia(”for example; for instance;such as”: 举例如)的缩写,这是exampli gratia(”for example; for instance;such as”: 举例如)的缩写。
I like quiet activities (e.g., reading)
这是et cetera(“and so forth; and the others; and other things; and the rest; and so on”:等等)的缩写。它放在列表的最后,表示前面的例子还没列举完,最后加个词“等等”。
I need to go to the store and buy some pie, milk, cheese, etc.
这是et alia(”and others; and co-workers”:等它人)的缩写。它几乎都是在列文献作者时使用,即把主要作者列出后,其它作者全放在et al. 里面。
人的场合用et al,而无生命的场合用etc.(et cetera)。 et后不要加“.”,因为et不是缩写。另外,与etc.不同,et al.的前面不要逗号。These results agree with the ones published by Pelon et al. (2002).
这是id est(“that is” , “in other words”:也就是)的缩写。目的是用来进一步解释前面所说的观点(不是像e.g.那样引入实例来形象化),意思是“那就是说,换句话说”。
There are three meals in the day (i.e., breakfast, lunch, and dinner)
这是videlicet( “namely”, “towit”, “precisely”, “that is to say”:即)的缩写,与e.g.不同,viz位于同位列表之前,要把它前面单词所包含的项目全部列出。
Each symbol represents one of the four elements, viz. earth, air, fire, and water.
指 subject to,受限制于…
Acronyms | Meaning | Description
– | – | –
FP | False PositiveNormal | traffic is detected as Intrusive
TP | True | PositiveIntrusive traffic is detected as Intrusive (Successful identification of attack)
FN | False | NegativeMalicious traffic is detected as Normal
TN | False | PositiveNormal traffic is detected as Normal (Successful identification of normal traffic)
ER | Errorrate | Misclassification rate of a classifier
DR | Detection Rate | Proportion of correctly classified intrusions to the actual size of attack class TPR True Positive Rate Its equivalent to Detection rate
Acc. | Accuracy | Denotes the total percentage of correctly classified intrusions
TeT/TeD | Testing Time | Time taken in testing phase
TT/TrD | Training Time | Time taken in Training phase TDR Total Detection Rate Percentage of total attack and normal class correctly detected NDR Normal Detection Rate Percentage of normal class that is correctly detected
ATD | Attack Detection rate | Percentage of attack class that is correctly detected
DDR | DoS Detection Rate | Percentage of DoS attack that is correctly detected
PDR | Probe Detection Rate | Percentage of Probe attack class that is correctly detected
FAR | False Alarm rate | It is the addition of FNR and FPR.
FPR | False Positive Rate | Proportion of incorrectly classified intrusions to the actual size of attack class
类型 | 内容 |
---|---|
标题 | Exploring Domain Name Based Features on the Effectiveness of DNS Caching |
时间 | 2017 |
会议 | ACM SIGCOMM Computer Communication Review |
DOI | 10.1145/3041027.3041032 |
引用 | Hao S, Wang H. Exploring domain name based features on the effectiveness of dns caching[J]. ACM SIGCOMM Computer Communication Review, 2017, 47(1): 36-42. |
文章的目的概括为:
使用决策树和随机森林构建的分类器可以达到85+%的正确率。
最终的策略使DNS缓存器的命中率提高了7%-8%,达到了92%-93%。 å
这篇文章的题目翻译成中文是《基于dns缓存有效性的域名特征研究》,其本质目的在于根据域名的特征将域名划分为两类:一次性域名(disposable domains/one-time-used domains/once-used domains)和可重用域名(reused domains),并且研究一种策略让DNS缓存器不再缓存一次性域名以提高性能。
文章中提到DNS是互联网中的一项基本的服务,所以其在互联网中的流量很少受到阻塞。于是在互联网上就发现了对DNS的滥用情况,这种滥用情况就是利用一次性域名来传递消息。这种一次性域名往往在使用一次后就不再使用了,但是DNS缓存器会在一定时间内(TTL)缓存这条记录。
其中一次性域名不一定是恶意域名,它广泛存在于各类服务提供商中,包括流行的搜索引擎、社交网络、CDN和安全公司。但由于此类域名的使用越来越多,所以DNS缓存将充满这种一次性域名,这就导致了DNS缓存的性能下降。
(此部分论文没讲,为自己收集的补充资料)
TTL即Time-To-Live,代表一条域名解析记录(RR)在DNS服务器中的存留时间
数据集来自于在特拉华大学(UD)和威廉与玛丽学院(WM)的DNS服务器上捕获的两周内的DNS查询日志。(移除了本地域名的查询)
数据集存在局限性:
作者为一次性域名总结了4个特征:
如下图所示,给出了一些一次性域名的例子,他们分别满足不同的特征,在最右侧分别表明该条域名满足哪几条特征。
对于特征是否有效的验证:
作者将数据集中提取的只出现过一次的域名标记为“一次性域名”。
可能存在某些不常见的域名因为只被查询了一次导致被误标记为“一次性域名”,但是考虑到某一个地区的网络用户在数千人左右,所以对实际情况影响不大,因为这个域名记录的缓存可能在下一次查询之前就已经被淘汰了。
作者分别使用决策树和随机森林构建分类器。
分类结果如图所示:
效果:
单独观察每个特征的表现: 结论:
作者基于djbdns进行修改实现了一个模拟的解析器程序,遵循标准的TTL模型(即不分配默认的最小ttl)。negative caching的记录时间取决于SOA记录的TTL值。 因为现代缓存器的内存管理策略复杂,所以作者没有设置时间间隔来清理内存,仅在达到缓存上限时才使用例如LRU的策略来进行替换。
关于RR的缓存数目:作者发现根据根据前人的研究DNS缓存的命中率应该在80%-87%之间。所以作者根据数集的大小和FIFO的策略进行实验发现,RR的缓存数目设置为10万,可以使命中率达到86%。 (这个值并不适用于ISP的DNS服务器,ISP服务器可能需要一个更大的值。)
实验效果最后如图所示
结论:
Chen Y , Antonakakis M , Perdisci R , et al. DNS Noise: Measuring the Pervasiveness of Disposable Domains in Modern DNS Traffic[C]// 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 2014.
这是在此文章之前研究一次性域名的一篇论文,研究的数据集规模更大,时间跨度更广,但没有进行分类。
这篇文章还有少许的改进地方,比如数据集的规模太小不具有代表性,或许可以选择更好的分类器。我在研讨课上汇报时,老师告诉我他们也进行一次性域名的分类,而且分类效果是高于这篇论文所声称的80%多的,能达到90%+。但我认为即使改进了也意义不大,因为这样简单的分类方法最终就可以让缓存命中率达到92%,那么再挑选更好的分类器能提升的幅度有限,可能还会花费更多的资源用于分类。
并且作者最后也指出:应该不会有人通过改变域名结构来规避分类器的规则,因为一次性的域名已经完成了通信任务,是否被缓存对他们来说不重要。
所以这个方向再去深度研究的意义已经不大了。
自用的命令总结,仅记录自己经常用到的以加深印象,遗忘的时候可以速查。
四个位置:
此步骤仅仅用于commit,即使输入一个不存在的邮箱也无所谓,但是push到github上以后,显示的也是那个错误的信息 如果设置为别人的邮箱,就会显示成别人commit的
git config --list
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
我这里因为有多个github账号需要管理,所以不能设置global的
git config --local user.email "you@example.com"
git config --local user.name "Your Name"
生成多个ssh密钥见-> 【Linux】生成多份SSH密钥的方法
ssh-keygen -t rsa -C "登录的邮箱"
ssh-add ~/.ssh/id_rsa
cat id_rsa.pub
ssh -T git@github.com
vim .git/config
将url的格式改为git@github.com:[仓库地址]
即可
git remote add origin git@github.com:jiangph2016/仓库名.git
git remote -v
git remote show origin
数据会到暂存区,需要再用merge来进行合并
git fetch
会把master分支推送到远程仓库上的master分支
git push origin master
git remote remove origin
分支名默认为master
git fetch origin [分支名]
get merge origin/[分支名]
或
git pull origin [远程分支名]:[本地分支名]
其中如果要操作的就是当前分支,那么[本地分支名可以不写]
即git pull = git fetch + git merge
git add .
git commit -m "update"
git push origin master
如果出现403错误,则vim .git/config
或git config --local -e
修改,增加用户名和密码
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://[用户名]:[密码]@github.com/[项目].git
.gitignore文件中加入希望被忽略的文件
可以使用通配符
因为手中的设备实在是太多了(一台Windows电脑、一台MacBook、一台iPad、一台安卓平板、三个安卓手机、一个iPhone……还有小爱同学和Kindle),都有上网的需求,而自己的ChinaUnicom账号一次只能供一台设备上网,到了晚上还很卡。校园网虽然支持的设备多,但流量有限(一个月只有10个G),所以想就搞个校园网的ipv6免流。
先说一下免流的原理: 校园网在使用之前需要登录个人账号,但是实际上在不登录账号的情况下是可以访问ipv4的局域网以及ipv6的公网。此目的本来是方便学生登录一些教育网资源的,比如谷歌学术这样的网站。但我们可以自己搭建一个同时支持ipv4/ipv6的双栈代理服务器,然后在自己的电脑上将所有ipv4的包转换成ipv6的包发给代理服务器,再由代理服务器转换成ipv4。
手中目前有两台服务器,一台是来自AWS的EC2,一台是来自阿里云的ECS。
思路是:
觉得只要有一台成功了就行,结果实际配起来发现麻烦不少,没想到ipv6的坑还挺多的,看来ipv6的普及还有很长的路要走啊。
我在自己的服务器上,通过修改配置文件获取到ipv6地址后,查看到的地址几乎都是以fe80开头.
查看了网上的一些文档,这种地址叫 链路本地单播地址,格式如下
其中1111,1110,1000,0000转换成16进制就是FE80。
这种地址的特点是
用于诸如自动地址配置、邻居发现或无路由器存在的单链路的寻址。 路由器不能将带有链路本地源地址或目的地址的任何包转发到其他链路上去
站点本地地址的格式如上图,其中1111,1110,1100,0000转换成16进制就是FEC0.
站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。路由器不应转发站点外具有站点本地源或目的地址的任何包
综上,两种本地单播地址(FE80或FEC0开头)都是无法被路由器转发的,前者是自动配置的,后者更像是用于局域网中的地址,都类似于ipv4中的私有地址。
这个就相当于一个公有地址了,虽然这个地址是几乎用不完的,但目前获得一个也并不容易。
想获取一个全球单播的地址,可以在tunnelbroker上申请一个隧道。
而我用阿里云的话可以直接申请参与双栈协议的公测,没想到申请提交后一天就邮件告诉我审核通过了。
于是我赶紧获取了一个ipv6地址,位置选在了华北2(北京)。地址的开头是2408
查了一下网上的说法,2408是来自联通的网络
电信是240e开头的(240e::/20)
移动是2409开头的(2409:8000::/20)
联通是2408开头的(2408:8000::/20)
参考文章:
本章的操作参考于:阿里云ecs开启支持ipv6
修改前
alias net-pf-10 off
options ipv6 disable=1
修改后
alias net-pf-10 off
options ipv6 disable=0
修改前
PEERNTP=no
NETWORKING_IPV6=no
修改后
PEERNTP=no
NETWORKING_IPV6=yes
添加 IPV6INIT 为 yes 和 IPV6_AUTOCONF 为 yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
修改前
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv4.conf.lo.arp_announce=2
修改后
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
创建脚本文件 ipv6.modules
vi /etc/sysconfig/modules/ipv6.modules
脚本内容
!/bin/sh
if [ ! -c /proc/net/if_inet6 ] ; then
exec /sbin/insmod /lib/modules/uname -r/kernel/net/ipv6/ipv6.ko
fi
授权:
chmod +x /etc/sysconfig/modules/ipv6.modules
使用 ifconfig
查看是否有inet6标识。
关于ipv6地址的获取可以自行查看tunnelbroker相关的使用方法。
使用ping6命令查看是否能ping通一些ipv6的网站(如ipv6.google.com,ipv6.baidu.com)
参考:https://zhuanlan.zhihu.com/p/62592140
手中正好有一个旧的安卓平板,型号是华硕Z8S,骁龙652的处理器,日常使用性能还可以。一般用来看看微信读书。
正好看到一篇文章讲的是用旧的安卓设备作为电脑的运行状态监控器。如下图所示。
于是我就自己动手也做了一遍,花费的时间比较长,大部分时间都用来定制自己的仪表盘了。先上图。
不足之处:仪表盘不支持放大,在高分辨率的屏幕上会显的很小(我这个屏幕分辨率是2048*1536,PPI挺高的了)
具体步骤如下:
所有安装包的下载地址如下:链接:https://pan.baidu.com/s/18pZblWO-uZx9VEWmlrKUag 提取码:6t4q
直接运行adb-setup.exe即可在电脑上装好adb命令。 然后用adb命令的话,也可以快捷的将apk文件安装到安卓设备上:
电脑上的Remote Panel直接双击安装,安装完后并没有界面,但后台运行了。
这个时候打开AIDA64,选择文件->设置 然后按照下图设置即可。
在LCD项目中,可以定制显示的项目
最后附上我的配置文件,点击导入即可使用。 点此下载配置文件