2016年4月

kali on raspberry emergence mode when start

今天尝试在 Raspberry 上面安装 Kali ARM 版本, 遇到每次重启都不能自动进入系统,都卡在进入系统之前的验证,验证消息说:现在是 emergency mode, 请输入root的密码,然后systemctl reboot 或看log, 或 ctr + d 继续,然后进入default mode, 不过以后每次重启 还是要进入这个 maintenance emergence mode, 这样直接导致不接键盘和屏幕,无法进入系统。

google 之后, 发现这可能是sd卡有文件错误,比如它写入的时候出问题了, 或者是运行中突然掉电,最搞笑的是在一个问答里面, 有个印度人说在印度 经常断电是一种很常见的问题。
这个帖子给了一个解释: Getting emergency mode screen on boot up every time

所以 根本问题是SD 卡有问题了, 需要修复。
如何修复

  1. windows 上面可以格式化,但是因为已经装了个系统,所以window上面无法看到未分派的空间,需要额外软件修复分区问题 然后在格式化;
  2. linux 上面比较简单 先umount 那个设备 umount /dev/sdc, 然后格式化 mkfs.vfat /dev/sdc
    参见: linux格式化U盘

Mastering Kali LInux Wireless pentesting [读书笔记]

  1. 最常见WIFI 协议
    802.11.png
  2. 2.4G 包含14个频道,从1(2412), 2(2417), ... 13(2472), 14(2477),北美只用1到11, 其他国家最多用到13, 几乎没有国家用到14。 都是由本国政府规定可以用那个。
  3. 5G 频道更多,分布更广,一般从 36(5180 MHz) 到 165(5825), 还有从7(4915) 到195.
  4. Adapter 的4种模式
  5. managed mode 最常见模式,只从它对应的AP接收信号,忽略其它的;
  6. ad-hoc mode 点对点通信用,必然蓝牙
  7. monitor mode passive 模式,接收一切信号,不管是不是给自己的;
  8. master mode 配置当前adapter为AP,比如设置成一个虚假的WIFI访问点
  9. 802.11 的配置模式
  10. Infrastructure 模式,一般的AP 模式
  11. ad-hoc 模式 点对点 模式 很少见
  12. 802.11 frame 类型
  13. management frame
  14. control frame
  15. data frame
  16. 网络加密类型
  17. Open
  18. WEP Wired Equivalent Privacy
  19. WPA/WPA2 Wi-Fi Protected Access 安全标准 802.11i,从兼容过度的Temporal Key Integrity Protocol(兼容WEP的硬件) 到
  20. WPA2 是802.11i的完全实现,使用AES(Advanced Encryption Standard) 加密
  21. WPA/WPA2
  22. 分为 WPA Personal 和 WPA Enterprise
  23. WPA Personal 又被称为: WPA Pre Shared Key (PSK)
  24. WPA Enterprise 需要 RADIUS server on the network to authenticate the clients
  25. WPA PSK 需要最少8个ASCII码的字符作为key, 这个key又称作 Pre-shared Master Key (PMK)
  26. 通过PMK生成 Pairwise Transient Keys (PTK) 在一个session期间加密数据
  27. 即使攻击者拥有PMK,也不能破解其它client和AP的数据,因为它没有PTK.要捕获PTK必须在它们握手期间获得.
  28. 字典攻击 WPA 捕获client 和 AP的握手包,然后用密码字典破解
  29. 打开monitor 模式
    ifconfig wlan3 down
    iwconfig wlan3 mode monitor
    ifconfig wlan3 up
  30. airodump-ng -w mydump -c 6 wlan3 //开始dump,一旦捕获握手,就显示在右上
  31. aircrack-ng mydump.cap -c pwddict.txt //用字典破解
  32. 使用彩虹表加速破解

Unicode 字符集 和 UTF 编码

  1. Unicode 是字符集, 类似ASCII 码有127字符, Unicode 已经包含17个planes, 每个plane包含65536个代码点(code point)
  2. UTF 是Unicode字符集的编码, 就是Unicode 字符集在磁盘的表示, 参考这篇很不错的文章 十分钟搞清字符集和字符编码
  3. Windows 和 Java 默认使用 UTF-16, Web 默认使用 UTF-8
  4. UTF-8 兼容ASCII
  5. 非英文域名 即 IDNs 要使用 Punycode 去转. 尽管你的URL的域名部分是 新华网.中国 或 %E6%96%B0%E5%8D%8E%E7%BD%91.%E4%B8%AD%E5%9B%BD (encodeURI("新华网.中国")的结果) 在去到DNS 解析的时候, 都是翻译为 Punycode 去做DNS 查询的
  6. Unicode 要区分 字符, codepoint, UTF 编码后的值 如 : 田 的codepoint 是30000 (0x7530), UTF-8 编码后是: E794B0 (使用 encodeURI("田") 得到)

JavaScript 数字 字符 转换

  1. 数字进制转换
    (10).toString(8) //10进制到8进制
    (077).toString() //8进制到10进制
    (0x11).toString(8) //16进制到8进制
    (0x11).toString(10) //16进制到10进制
    (0x11).toString(2) //16进制到2进制
    (0x11).toString(3) //16进制到3进制

    3进制转换为16进制
    parseInt("122", 3).toString(16); 先要转换为10进制, 然后再通过10进制转换为16进制

  2. 字符-数字 转换
    String.charCodeAt()
    String.fromCharCode()
    String.prototype.charAt()
    String.fromCodePoint()
    String.prototype.codePointAt()

浏览器 同源策略

  1. 3个关键点 scheme, host, port in URL. IE 浏览器有一点点特殊: https://en.wikipedia.org/wiki/Same-origin_policy
  2. Same Origin Policy 只是禁止读取返回的信息, 并不禁止发送请求, 所以其实请求已发出,浏览器以及收到,只是发现不符合这个策略而终止. prelight 可以通过2步, 来避免发出真正的请求. 也就是有的文档提到的 禁止读, 不禁止写.
  3. 正因为不禁止发出请求, 所以同源策略不能阻止 CSRF 和 clickjacking;
  4. 尽管有同源策略,不同的网站还是可以通过link 相互关联, 跨站使用img, CSS, Javascript, 常见适用同源策略的是AJAX 请求,iframe 等;
  5. 尽管通过同源策略限制了 AJAX, 但是有些时候要需要跨站资源共享, 所以就有了 CSRS (Cross Site Resource Sharing)相关的http header;
  6. 同源策略的内容
  7. IE 浏览器的特殊之处: a: trust zone 里面的可以任意跨域, b: 端口号 不用来区分跨域. 这些都是非标准
  8. 可以通过 document.domain="company.com" 来让多个子domain之间或子domain 与父domain 之间实现跨域(同时端口号被设置为null);
  9. 如何绕过同源策略 详细文档
  10. CSRS
  11. JSONP
  12. window.postMessage Cross-document messaging
  13. 同一个主域下如果协议和端口一样, 可以通过设置 window.domain 来处理(只能从长到短)
  14. WebSocket
  15. window.name 传递
  16. 如何避免跨站写?
  17. CSRF token
  18. 如何防止跨站读?
  19. 使你的资源不可被嵌入(img, CSS, JavaScript): 更改资源 Content-Type, 使用动态CSRF token;
  20. 跨站的请求不能定制 HTTP header, 不跨站的则可以.