欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jslinux-deobfuscated-network

程序员文章站 2022-07-08 16:45:45
...
基础知识
查看网络包
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服务发送消息

最终实现

linux--->js(net0)--->filereader--->websocket--->服务(tap设备)---br网桥-->互联网


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


下载
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
例子代码
http://killinux.com/jslinux-deobfuscated-network/


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


jslinux-deobfuscated-network
            
    
    博客分类: jslinux网络tapqemu jslinuxnetwork 
  • jslinux-deobfuscated-network
            
    
    博客分类: jslinux网络tapqemu jslinuxnetwork 
  • 大小: 46.4 KB
相关标签: jslinux network