您正在查看: Other-经验分享 分类下的文章

WSL中设置DNS

由于公司gitlab搬到了vpn内,虽然Windows运行了Vpn软件,并在对应的VPN网卡上设置了域DNS,但是WSL走的子系统单独的DNS,所以虽然能ping通gitlab所在服务器IP,但是无法解析gitlab对应的域名。

设置WSL子系统DNS

1. 启动WSL,进入目录,创建wsl.conf
bash
cd ~/../../etc
sudo vim wsl.conf
sudo touch wsl.conf
2. 将这些行添加到wsl.conf中
[network]
generateResolvConf=false
3. 退出WSL,关闭WSL
exit
wsl --shutdown

此时,由于有了wsl.conf,run/resolvconf应该不再存在,并且将不再被创建

4. 删除现有的符号链接文件
cd ~/../../etc
sudo rm resolv.conf
5. 创建一个新的resolv.conf
sudo vim resolv.conf
sudo touch resolv.conf
将自己的DNS,添加到resolv.conf
nameserver 8.8.8.8 // 用您喜欢的功能名称服务器替换8.8.8.8。
重启WSL
exit
wsl --shutdown
再次启动WSL
bash

此时WSL解析内网域名就OK了

参考

https://github.com/microsoft/WSL/issues/5256#issuecomment-666545999

dfuse-eosio eosq 如何自定义网络

修改dfuse.yaml,添加eosq-api-endpoint-url

start:
  args:
  - abicodec
  - apiproxy
  - blockmeta
  - booter
  - dashboard
  - dgraphql
  - eosq
  - eosws
  - merger
  - mindreader
  - relayer
  - search-archive
  - search-forkresolver
  - search-indexer
  - search-live
  - search-router
  - statedb
  - tokenmeta
  - trxdb-loader
  flags: 
    apiproxy-nodeos-http-addr: :9888
    blockmeta-eos-api-upstream-addr: :9888
    eosws-nodeos-rpc-addr: :9888
    eosq-api-endpoint-url: http://39.106.103.152:8080
    common-chain-core-symbol: "8,RES"
    common-chain-id: cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f

参考

https://github.com/dfuse-io/dfuse-eosio/issues/204

Ubuntu 开启防火墙/开启端口

查看本地端口开启情况

sudo ufw status
状态: 激活

至                          动作          来自
-                          --          --
80                         ALLOW       Anywhere
8001                       ALLOW       Anywhere
80 (v6)                    ALLOW       Anywhere (v6)
8001 (v6)                  ALLOW       Anywhere (v6)

关闭防火墙

sudo ufw disable
防火墙在系统启动时自动禁用
sudo ufw status
状态:不活动

开启防火墙,允许访问特定端口

~ sudo ufw enable 
在系统启动时启用和激活防火墙
sudo ufw allow 81
规则已添加
规则已添加 (v6)

sudo ufw status
状态: 激活

至                          动作          来自
-                          --          --
80                         ALLOW       Anywhere
8001                       ALLOW       Anywhere
81                         ALLOW       Anywhere
80 (v6)                    ALLOW       Anywhere (v6)
8001 (v6)                  ALLOW       Anywhere (v6)
81 (v6)                    ALLOW       Anywhere (v6)

不允许访问特定端口

sudo ufw deny 81
规则已更新
规则已更新 (v6)

sudo ufw status
状态: 激活

至                          动作          来自
-                          --          --
80                         ALLOW       Anywhere                  
8001                       ALLOW       Anywhere                  
81                         DENY        Anywhere                  
80 (v6)                    ALLOW       Anywhere (v6)             
8001 (v6)                  ALLOW       Anywhere (v6)             
81 (v6)                    DENY        Anywhere (v6)

gobfuscate的混淆原理

近期,在看360net lab发布的一篇文章Blackrota, a heavily obfuscated backdoor written in Go时,看到了go语言的混淆手段,在文章中,攻击者使用开源的混淆工具gobfuscate对语言的源代码进行混淆,在对混淆之后的代码进行编译,以提高分析的难度。

根据gobfuscate的描述,gobufuscate会在源码级别混淆如下的数据:

  1. 包名
  2. 全局变量名
  3. 函数名
  4. 类型名
  5. 方法名

我们使用如下的代码来测试以下gobfuscate的混淆:

package main

import(
    "fmt"
    "io/ioutil"
    "net/http"
)
var url = "https://www.baidu.com/";
func httpget() string {
    client := &http.Client{}
    req, _ := http.NewRequest("GET",url,nil)
    req.Header.Set("Connection","Keep-Live")
    res,err := client.Do(req)
    if err != nil{
        fmt.Println("do error\n")
        return "NULL"
    }
    defer res.Body.Close()
    body,err := ioutil.ReadAll(res.Body)
    return string(body)
}
func main(){

    var body = httpget()
    fmt.Println(string(body))
}

首先gobfuscate生成的二进制文件符号是被抹除掉的:

使用go_parser对生成的二进制文件的符号进行解析,可以发现其源代码路径也被混淆了,但是源代码的文件名并没有被混淆。


函数名使用随机字符串混淆了。

对于每一个字符串,都会产生一个对用的解密函数,使用xor会字符串进行混淆。

转载自:https://mp.weixin.qq.com/s/X0iLtov4bH-HY4nhwo-zQQ