zoukankan      html  css  js  c++  java
  • 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

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

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

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

    登入日志文件:remote_log.log

    二. 校园网注册

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

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

    login.py  代码

    logout.py 代码

     

    state.py 代码:

    用户配置文件: user.dat

     

    运行效果图:

    远端登入:

     

    远端校园网注册:

     

     

     

     第三部分: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

     

     

     

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

     

    抓取包的16进制表示

    客户端为小米手机Android系统

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

    校园网网关返回的页面

    查看到COOKIE

    使用第三方工具解析:

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

     

     

    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的校园网网络密码

     

    使用第三方分析工具NMAP

     

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

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

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

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

     

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

     

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

     

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

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

     

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

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

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

    再次深入分析MAC厂家

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

  • 相关阅读:
    poj 1080 ——Human Gene Functions——————【最长公共子序列变型题】
    hdu 2845——Beans——————【dp】
    nyoj 214——单调递增子序列(二)——————【二分搜索加dp】
    nyoj 104——最大和——————【子矩阵最大和】
    nyoj 10——skiing————————【记忆化搜索】
    >>8) & 0xFF中的 >> 和 &0xFF 的作用
    C语言中的左移与右移 <<, >> 位运算
    ByPass Mode(略过模式或旁路模式)
    C语言&C++ 中External dependencies
    xor 和 or 有什么区别
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/7244244.html
Copyright © 2011-2022 走看看