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牌的路由器。
LINUX下的远端主机登入 校园网络注册 网络数据包转发和捕获的更多相关文章
- 细说Linux下的虚拟主机那些事儿
细说Linux下的虚拟主机那些事儿 我们知道Linux操作系统是目前在服务器上应用广泛的操作系统.在Linux操作系统下的虚拟主机是不是就是我们常说的Linux虚拟主机呢?其实从专业方面说并不是,它是 ...
- Linux显示目前与过去登入系统的用户相关信息
Linux显示目前与过去登入系统的用户相关信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ last youhaido pts/0 :0 Sat Jan 2 ...
- Linux下Apache虚拟主机配置
Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...
- linux下使用tc(Traffic Control) 流量控制命令模拟网络延迟和丢包
目录 TC案例 TC常用命令 TC安装 TC原理介绍 TC规则 TC操作原理 TC命名规则 TC单位 TC命令 TC案例 如何使用tc模拟网络延迟和丢包 修改网络延时: sudo tc qdisc ...
- Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份
Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何 ...
- [Docker]Docker与Linux ip_forward数据包转发
背景 今天在一台新虚拟机上需要临时启动一个consul服务,安装Docker后使用docker启动,但是在执行启动命令后发现docker有一个警告: WARNING: IPv4 forwarding ...
- linux下如何查看主机的外网ip地址
在linux下如果我们使用的是nat方式上网.通过ifconfig命令查看到的ip地址往往是内网地址 那么如何查看主机在互联网上使用的公网IP呢?我们可以在命令行下使用curl命令实现这个功能. [r ...
- linux ssh远程免密码登入
首先登入一台linux服务器,此台做为母机(即登入其他linux系统用这台做为入口):执行一行命令生成key文件:ssh-keygen -t rsa 2 在母机上,进入/roo/.ssh目录,找到id ...
- Linux下SSH命令使用方法详解(摘自网络)
备注:检查自己的linux系统中是否已经安装了某一些软件的命令: rpm -qa | grep 软件名 例如 rpm -qa | grep vsftpd 1.查看SSH客户端版本 有的时候需要确认 ...
随机推荐
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
一.使用poi解析excel文档 注:全部采用poi接口进行解析,不需要区分xls.xlsx格式,不需要判断文档类型. poi中的日期格式判断仅支持欧美日期习惯,对国内的日期格式并不支持判断,怎么办? ...
- Canvas学习系列一:初识canvas
最近你开始在学习canvas,打算把学习canvas的整个学习过程当中的一些笔记与总结记录下来,如有什么不足之处还请大神们多多指出. 1. 认识canvas Canvas元素的出现,可以说开启的Web ...
- win8安装sql2008及设置登陆名问题
1. .net3.5安装 使用win8系统自带的升级功能无法成功安装.其实Windows8安装文件中已经集了.Net3.5, (1)此时只需要使用虚拟光驱加载Windows8 ...
- Linux常见命令(二)
随着Linux应用的扩展许多同学开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力.Li ...
- node.js零基础详细教程(6):mongodb数据库操作
第六章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- sleep()方法和wait()方法之间有什么差异?
sleep()方法用被用于让程序暂停指定的时间,而wait()方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的notify()或者nofifyAl()方法 主要的区别是,wait()释放 ...
- 表连接查询的顺序和where子句条件的前后顺序会影响sql的性能么
有好多时候,我们常听别人说大表在前,小表在后,包括现在好多百度出来的靠前的答案都有说数据库是从右到左加载的,所以from语句最后关联的那张表会先被处理.如果三表交叉,就选择交叉表来作为基础表.等等一些 ...
- AngularJS高级程序设计读书笔记 -- 控制器篇
作用域组成了一个能够用于在控制器之间形成通信的体系结构. 1. 控制器和作用域的基本原理 控制器就像领域模型与视图之间的纽带, 他给视图提供数据与服务, 并且定义了所需的业务逻辑, 从而将用户行为转换 ...
- Redis中的数据对象
redis对象 redis中有五种常用对象 我们所说的对象的类型大多是值的类型,键的类型大多是字符串对象,值得类型大概有以下几种,但是无论哪种都是基于redisObject实现的 redisObjec ...
- Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署
样例视频:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd IP: 192.168.2.61 部署容器:apache ...