LINUX下的远端主机登入 校园网络注册 网络数据包转发和捕获

第一部分:LINUX 下的远端主机登入和校园网注册

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

校园网内目的主机远程管理登入程序

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

本程序为校园网内远程登入,管理功能,该程序分服务器端和客户端两部分:服务器端为remote_server_udp.py

客户端分为单播客户端和广播客户端:

单播客户端client_unicast.py 广播客户端client_broadcast.py

1.单播客户端为根据net.info文件中的网络记录遍历目标网段中的所有IP,向其发送UDP封包。

net.info中记录了目标网络中的一个样例IP和目标网段的子网掩码,修改该文件可以更改目标网段。

在该部分中采用了多线程机制,这里采用了100个以内的线程,提高了遍历的速度。同时采用了信号中断机制,这里这样是模仿了以广泛应用的成熟网络协议模式,分批次向每个IP发包,如果超时将会有信号中断来中断主程序。当主程序受到应答包后同时采用了修改标志位的方式,终止子线程的发包(这里主要是借鉴了操作系统中的算法设计)。

2.广播客户端采用了UDP向本网段中所有IP地址发送广播。

3.服务器端加入了服务器开启,关闭,及客户请求连接的日志记录功能,在/etc/local.rc中加入了服务器开机自动启动项,可实现服务器开机自动启动功能。同时该服务器端采用了signal信号中断功能,可以在该服务器端被强制中断及关闭时将其事件记录到日志中。

*该程序中主要是实现了网络应答功能,这里我们暂称该协议为“ devil may cry ”应答。该协议主要分为应答和回应两部分。应答部分为 hello devil,回应部分为 devil may cry

同时为防止网络内有人恶意攻击服务器端,在服务器端加入了CPU利用率限制功能,该功能可以有效防止泛洪攻击对服务器端的CPU利用率拖拽,防止服务器端因为攻击而死机。

代码展示:

服务器端:remote_server_udp.py

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

客户端:同一网段下  广播包client_broadcast.py

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

不同网段下 扫描目标网段目标端口:client_unicast.py

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

目标网段配置文件:net.info

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

登入日志文件:remote_log.log

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

二. 校园网注册

该程序的主入口程序为run.py

该程序实现了辽宁大学校园网网关的登入,login.py。辽宁大学校园网网关的查询,state.py。辽宁大学校园网网关的登出, logout.py。用户帐号信息存储文件,user.dat。

login.py  代码

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

logout.py 代码

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

state.py 代码:

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

用户配置文件: user.dat

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

运行效果图:

远端登入:

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

远端校园网注册:

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

第三部分:LINUX  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

第一步:网桥的建立

安装 桥接工具 bridge-utils

1)安装:apt-get install bridge-utils

2)创建一个网桥接口:

brctl addbr br0

将两块已有的网卡添加到网桥:

brctl addif br0 eth0

brctl addif br0 eth1

将两块网卡IP设置为0,它们已经不再需要了:

ifconfig eth0 0.0.0.0

ifconfig eth1 0.0.0.0

给新网桥设置一个IP:

ifconfig br0 222.26.28.254

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

将网卡IP设置为0.0.0.0。将两块已有的网卡添加到网桥,此时这两个网卡工作于混杂模式,所以不需要IP了,因为网桥是工作在链路层的。

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

抓取包的16进制表示

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

客户端为小米手机Android系统

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

由于编码问题,汉字等显示为乱码

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

校园网网关返回的页面

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

查看到COOKIE

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

使用第三方工具解析:

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

利用tcpdump工具捕获数据包,并保存

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。

tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

常用参数介绍:

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

(2)-i eth0 : 只抓经过接口eth0的包

(3)-t : 不显示时间戳

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包

(5)-c 100 : 只抓取100个数据包

(6)dst port ! 22 : 不抓取目标端口是22的数据包

(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

使用数据包分析工具,分析出学号4031431968的校园网网络密码

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

使用第三方分析工具NMAP

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

1.目的为只分析哲理楼207实验室内电脑,所以将动态获取IP改为静态获取IP

2.查看该机eth0网卡配置,验证加入207实验室子网是否成功

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

3.扫描207实验室内的主机(TCP  SYN半连接方式)

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

4.要分析的主机 222.26.28.73,直观判断为LINUX系统

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

要分析的主机 222.26.28.122,直观判断为MICROSOFT系统

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

要分析的主机 222.26.28.228,无法直观判断,没有一个TCP端口是关闭的,也没有一个端口关闭的,全部是过滤的。说明可以建立TCP连接,发送数据包无应答。

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

已经知道的自己的服务器(公共配置的LENOVO台式),对比作用

对于无法判断的222.26.28.228主机进行深入判断

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

深入OS系统指纹码仍然无法判断,采取社会理论判断

要分析的主机和已经知道的主机IP,MAC配置

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

IP尾号为250的为已知主机,考虑MAC的前段码,可以判断73为LENOVO的台式主机,OS为UBUNTU14.04

LINUX下的远端主机登入 校园网络注册  网络数据包转发和捕获

再次深入分析MAC厂家

可以判断228主机为一台TP-LINK牌的路由器。

上一篇:[Docker]Docker与Linux ip_forward数据包转发


下一篇:Linux内核二层数据包接收流程