jslinux-deobfuscated-network

13 篇文章 0 订阅
10 篇文章 0 订阅
基础知识
查看网络包

tcpdump -i eth0 -e -v -l
tcpdump -i eth0 -e -v -l -w a.pcap

a.pcap给wireshark用

这个是必要的
转发三步走:
1.配置Linux系统的ip转发功能

echo 1 >/proc/sys/net/ipv4/ip_forward

2.iptables转发:

iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE

3.开启混杂模式:
ip link set br1 promisc on


防止环路

#brctl stp br1 on
#brctl stp br1 off


##########################################
服务端(配置ip)
ip link set tap1 up
ifconfig tap1 inet 10.0.2.1

客户端
ip link set eth0 up
ifconfig eth0 inet 10.0.2.100
(配置默认路由)
route add default gw 10.0.2.1 dev eth0

测试
ping 192.168.128.1
echo 8.8.8.8 > /etc/resolv.conf
ping www.baidu.com


刚连websocket的时候
01:00:5e:00:00:01 dev eth0 self permanent
是组播地址

jslinux中的代码走向

FileReader.onload
net_handler
pc.serial2.send_chars(str);
pc.net0.receive_packet(data);

######################################
原理:
1.linux上建立br桥,桥用ipv4的转发和外网相通
2.py_websocket建立服务,每次连接时建立一个tap设备绑定到br上
3.web端用websocket连到py_websocket的服务上,
4.websocket的客户端用FileReader的onload特性(文件读取成功完成时触发)
接受消息pc.net0.receive_packet(data);
传入linux内核

定义net0的时候发现,linux向外发送消息是
ai定义了send_packet_func绑定自定义pi,
pi里面调用tuntap_sendData(withPrefix);
向websocket服务发送消息

最终实现
[color=red]
linux--->js(net0)--->filereader--->websocket--->服务(tap设备)---br网桥-->互联网
[/color]

########################
操作步骤


下载

git clone http://github.com/killinux/jslinux-deobfuscated-network

随便放在nginx等web服务器中跑起来

cd websocketstuntap/
按照launch.sh中的操作:
设置ip转发
echo 1 >/proc/sys/net/ipv4/ip_forward 

设置桥,和给桥设置ip

brctl addbr br1
brctl stp br1 on
ifconfig br1 10.0.2.1 netmask 255.0.0.0 up

设置桥的混杂模式
ip link set br1 promisc on


#给桥设置dhcp的server,连这个桥的自动获取ip,这步骤不是必须

#dnsmasq --strict-order --except-interface=lo --interface=br1 --listen-address=10.0.2.1 --bind-interfaces --dhcp-range=10.0.2.100,10.0.2.254 --conf-file="" --pid-file=/var/run/qemu-dhcp-br1.pid --dhcp-leasefile=/var/run/qemu-dhcp-br1.leases --dhcp-no-override


设置ip转发,让vm中的网络能通外网

iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE


设置虚拟python环境,防止污染本机python

#virtualenv mysite
#source mysite/bin/activate
#pip install mod_pywebsocket


启动websocket服务

python -m mod_pywebsocket.standalone -d . --log-level=info -p 3000


js/network-websockets.js
中的代码连到websocket的server
例子代码
[url]http://killinux.com/jslinux-deobfuscated-network/[/url]


jslinux中的网络已经和服务器在一个网络了
虚拟ip 10.0.2.0段
网关 10.0.2.1 是服务器的桥br1
可以尝试
ping www.baidu.com
ping www.google.com


[img]http://dl2.iteye.com/upload/attachment/0123/0483/cb62b94f-a12c-3f57-b706-4e354de177c3.png[/img]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值