Category Archives

24 Articles

cloudflare-partner-cli: using CNAME on cloudflare

0   147 转为繁体

中文版本

This is a CLI program that let you set CNAME to use Cloudflare using the partner program.

Both Python2.x and Python3.x is supported. No extra library is needed.

To use Chinese menu, set environment variable LANG to use UTF-8 (for example, zh_CN.UTF-8).

Usage

  1. Apply for partner program at https://www.cloudflare.com/partners/.
  2. Clone this repository or download script.
  3. Run python ./cloudflare-partner-cli.py.
  4. Enter your host_key. You can get it here.
  5. Enter the account you use to manage domains (your personal account, not partner login account). User key is stored in .cfhost.
  6. Follow the instructions on screen.

Note

  • Value of resolve_to has to be DNS record (for example: google.com) instead of IP address.

cloudflare-partner-cli: 使用CNAME方式接入Cloudflare

0   864 转为繁体

English Version

使用Cloudflare partner功能用CNAME方式接入cloudflare。

你可以使用Python2.x或者Python3.x。无需安装任何依赖。

如需使用中文菜单,请将环境变量的LANG设置为使用UTF-8 (比如zh_CN.UTF-8)。

使用方法

  1. 申请Cloudflare partner计划 https://www.cloudflare.com/partners/ 。
  2. clone本项目或者直接下载脚本
  3. 运行 python ./cloudflare-partner-cli.py
  4. 输入 host_key。可以从这里获得。
  5. 输入要用来管理域名的账号 (你的个人账号,不是partner账号)。账户信息保存在.cfhost文件中。
  6. 按照屏幕提示操作。

注意

  • 源站地址必须为DNS记录,如google.com,不能填写IP地址。

 

解密shc生成的mips架构二进制文件

0   670 转为繁体

SHC 是一个将shell脚本加密成二进制文件的脚本。使用随机生成的密钥对shell脚本进行RC4加密放到一个全局变量中(编译后存在data段),然后在运行时解密。

这个解密脚本修改自UnSHc,使之能解密MIPS架构的二进制文件。原始的版本只支持x86/x64指令集,与MIPS指令集的汇编和调用方式略有不同。

目前有一个偏移量(DATASEGBASE)是硬编码的,由于MIPS的addui使用相对地址,这个值用于和相对地址相加得到变量的绝对地址。暂时还没搞懂是怎么来的,但是可以通过IDA的反汇编得到。

辛酸历程

 

Read More

Solve Xposed module list become empty on Android 6.0 Marshmallow

0   55 转为繁体

中文版本

Recently I found module list in Xposed become empty after I upgrade my Nexus5 to 6.0.1 (M4B30Z, Dec 2016). And all the modules are not activating. So I open logcat and see the following:

Rovo89 said on a xda post that this file should be created if any module is activated. But somehow it didn’t do so on my Nexus5. So I create one myself and set correct permission (0644) and uid (you can run the Xposed Installer app and check the uid through ps |grep xposed). Then I reboot and check logcat again:

Looks like it’s still not working.

Then I realise that Android started to set SELinux to enforce from Lollipop (5.0) so this should be the problem. (We can use dmesg|grep audit to check if the problem really related to SELinux. ) I compared a random file under /data/data to the file we just created:

So all we need to do is to change this conf/modules.list to u:object_r:app_data_file:s0:c512,c768 as well

restorecon is a applet shipped with toybox, we can also use chcon to manually set SELinux context.

解决Android 6.0 Marshmallow中Xposed的模块列表为空

4   3355 转为繁体

English Version

升级Nexus5 到6.0.1 (M4B30Z, Dec 2016)之后,Xposed的模块列表变成空的了,所有的模块也都失效了。没有xposed,怎么种庄稼。于是我打开logcat看了一眼。

rovo89在xda的QA帖中说一般情况下这个文件会在启用任意一个模块后创建。然而现在它并没有被创建。于是我去建了一个,然后chmod 644以及chown到应用到uid(可以通过启动应用之后ps|grep xposed查看uid,形如u0_a??),重启了一下,再瞄了一眼logcat。

好像哪里不对

想起来Android从萝莉棒开始SELinux就是enforce了,所以大概是这个问题。(我们可以通过dmesg|grep audit来查看被SELinux过滤的各种奇怪操作。)于是看了一下默认的文件context和我们刚创建的文件的context:

那么我们把这个conf/modules.list也改成u:object_r:app_data_file:s0:c512,c768这个context好了

restorecon是toybox中带的一个applet,我们也可以用chcon来手动更改context。

被害妄想症如何保护服务器安全

15   2309 转为繁体

自从有次过海关的时候电脑被TSA开包检查硬盘还掉下来了之后,我的被害妄想症就越来越没救了。

这篇文章假设有人可以物理接触你的电脑,以及你所在的网络不可信,这种情况下应该怎么保护你的服务器数据安全。

 

  • 使用代理登录SSH以隐藏服务器IP。如果有多台服务器,选择一个位置最近的做跳板机,加密它的文件系统(OpenVZ再见)。设置另外机器的hosts.deny和hosts.allow为仅允许跳板机IP登录;如果使用不支持tcpwrapper的服务如dropbear,需手动设置iptables。
  • 登录跳板机的方式要和登录另外机器的方式不同。
    • 使用密码+google authenicator登录跳板机,然后通过公钥登录别的机器。设置跳板机的sudo需要密码,且设置为不同于当前账户的密码;方法是在/etc/passwd中添加一行toor:x:0:0:root:/root:/usr/sbin/nologin,使用passwd修改toor的密码,在/etc/sudoers中添加一行Defaults        runas_default=toor, runaspw。
    • 使用密钥A登录跳板机,使用另一个密钥B登录别的机器。密钥B应保存在本地,通过ssh-agent转发到跳板机。不同设备上的密钥B可以设置不同的passphrase。dropbear不支持ed25519,而ecdsa据都市传说可能存在NSA的后门。
  • 每三个月更换一次密钥。
  • 保证密钥的passphrase的强度;不使用任何云服务保存密码和密钥;如果实在记性太差,在本地AES加密一次,然后做好伪装(比如将二进制密文附到图片文件之后或压缩文件之前,[密文|!Rar…] 或 [\xFF\xD8…\xFF\xD9|密文])。
  • 设置fail2ban。
  • 监控跳板机/var/log/wtmp中的登录IP。
  • 如果没有必要,关闭SSH和其他各类开放端口。
  • 所有明文服务尽可能走tls。如果客户端支持SNI,配置假证书以防止被猜测域名。可以使用lua-resty-sniproxy

欢迎交流