目录

mms协议

大工UDP协议

工控蜜罐日志分析

隐信道数据安全分析

工控安全取证

MDNS协议介绍

简单流量分析

S7COMM协议分析

恶意软件后门分析


mms协议

纵横网络靶场社区

MMS简介

MMS(Manufacturing Message Specification)中文翻译为制造报文规范,在介绍MMS之前我们先简单科普一下IEC61850标准。

IEC61850是电力系统自动化领域唯一的全球通用标准,而本文主要介绍的MMS就是运用在IEC61850标准站控层和间隔层之间,MMS通过对实际设备进行面向对象建模方法,实现了网络环境下不同制造设备之间的互操作。在2015年前MMS在电力系统远动通信协议中并未应用,但是IEC61850标准将其引入电力自动化领域,将其核心ACSI服务直接映射到MMS标准

由于MMS是由ISO技术委员会184(TC184)开发和维护的一种涉及用来在设备或程序之间传送实时数据和监督信息的信息传递系统的国际标准,它的定义如下。

每个设备中必须存在一组标准对象(standard objects),可以执行如,读写事件信令(event signaling)等操作。

VMD是主要对象,诸如变量,域,日志,文件等都属于VMD范围内。

在客户端和服务器站之间有一组用来监视或控制上述对象的一组标准信息。

一组用于在传输时将信息映射到位和字节的编码规则。

说完MMS的定义后,我们来看一看MMS的协议栈。其实早在1990年就已经根据ISO / IEC 9506-1和ISO / IEC 9506-2两个标准进行了标准化,但是由于OSI的实施不是很简单,所以这个原始版本并没有流行。现在流行的MMS是于1999年波音公司根据互联网协议创建的全新版本。以下是新版MMS堆栈。

wireshark打开流量包,过滤mms协议,但是并没有发现flag的内容

在tcp 流里发现了一张图片

base64编码转图片即可发现flag

大工UDP协议

udp协议

UDP是传输层的协议,功能即为在IP的数据报服务之上增加了最基本的服务:复用和分用以及差错检测。

UDP提供不可靠服务,具有TCP所没有的优势

搜索flag 然后追踪udp协议

hex解码得flag

工控蜜罐日志分析

打开是个日志文件

让分析ip

网上抄了个脚本

import fileinput
import re
import os
import shutil
def readIp():with open(r'honeypot.log', 'r') as f:for line in f.readlines():result2 = re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',line) #匹配ip正则表达式if not result2 == []:result = result2[0] + '\n'with open('ip.txt', 'a+') as w:w.write(result)
def setIp():#去重a=0readDir = "ip.txt"writeDir = "newip.txt"#newlines_seen = set()outfile = open(writeDir, "w")f = open(readDir, "r")for line in f:if line not in lines_seen:a+=1outfile.write(line)lines_seen.add(line)print(a)outfile.close()
def readDns():with open(r'newip.txt', 'r') as g:for i in g.readlines():com=os.popen('nslookup %s'%i)comm=com.read()if comm.find('NXDOMAIN')==-1:print (comm)
if __name__ == '__main__':readIp()setIp()readDns()

隐信道数据安全分析

隐信道数据安全分析文件,安全人员怀疑间谍通过某种private的方

打开010分析

12+n加起来有32个

换算一下有4个字节

看一下字节的值

发现不是0就是1猜测一下是二进制转换

从前八个测试一下

二进制转十进制是70,70的ascii码是大写字母F

然后在网上抄了个脚本转换顺手学习一下

from binascii import *
with open('flag-woody.mp3','rb')as f:
init_mpeg_hdr=0x1c1b8
mpeg_data_block=0x0
flag=''
while True:
next_mpeg_hdr=init_mpeg_hdr+mpeg_data_block
f.seek(next_mpeg_hdr)#读取开始的偏移量也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
bin_data=bin(int(hexlify(f.read(4)),16))[2:] #hexlify 返回的二进制数据的十六进制
flag+=bin_data[23]
mpeg_data_block+=0x414e
if int(str(next_mpeg_hdr),16) >len(f.read()):
break
for i in range(0,len(flag),8):
try:
res_flag=chr(int(flag[i:i+8],2))#二进制转十进制 转ascii码
print(res_flag,end="")
except:
pass

工控安全取证

下载下来是个日志文件,但打开是乱码

使用file命令一下发现是pacp文件于是修改文件后缀然后拉进wireshark

开始分析

发现扫描之前ping了一下 192.168.0.9 对192.168.0.99发起扫描

第一次扫描

第二次扫描

第三次扫描

第四次扫描

尝试提交

flag{155989}

隐藏的黑客

附件打开是一堆php木马

和一个流量包

MDNS协议介绍

mDNS multicast DNS , 使用5353端口,组播地址 224.0.0.251。在一个没有常规DNS服务器的小型网络内,可以使用mDNS来实现类似DNS的编程接口、包格式和操作语义。MDNS协议的报文与DNS的报文结构相同,但有些字段对于MDNS来说有新的含义。

每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少。mDNS的域名与普通DNS的域名是通过后缀.local区分开来的。如果一台终端需要访问一个mDNS域名,他就会向局域网内发送组播,询问该域名的IP是多少。

例如:

一个设备接入网络,首先查询名称是否冲突,并通告当前服务器信息

冲突检测结束后,发送MDNS通告,通知其它设备更新DNS缓存

其它设备对该域名访问时,会发起MDNS查询

在 tcp.stream eq 11发现一个1.php

0xc5c9595135a7b=L3Zhci93d3cvaHRtbC8=&pass=@ini_set("display_errors", "0");@set_time_limit(0);function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "cc1a3";echo @asenc($output);echo "2ff0e";}ob_start();try{$D=base64_decode($_POST["0xc5c9595135a7b"]);$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R=" ".$T." ".@filesize($P)." ".$E."

";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};}catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();

在http里找 发现一个 webshell的zip文件

转换成原始数据放在010里创建文件

把PK开头前面的去掉就可以打开了还有后面五个字节

需要密码,联想到另一个文件中一堆php文件

猜测这是密码,于是爬取密码进行爆破

使用正则表达式匹配,把密码列出来

import sysimport osimport ret2=[]for i in os.listdir("/home/kali/桌面/upload"):with open ("/home/kali/桌面/upload/"+i,"r") as f:t1=re.findall("\[(.*?)\]",f.readline())[0]print(t1)with open ("/home/kali/桌面/upload/pa.txt","a+") as w:w.write(t1+"\n")

然后字典爆破

解压出来是一个PHP文件,我们echo 一下看输出来是什么

尝试用flag{}包裹提交

9a72c3d5e74f6051bb3b3590fa9319fe

简单流量分析

打开wireshark拉进去分析

发现都是ICMP

什么是ICMP呢?

ICMP协议是一个网络层协议。
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。
所以我们就需要一种协议来完成这样的功能–ICMP协议。

具体了解ICMP协议详解_honeyCR的博客-CSDN博客_icmp

根据题目过滤ICMP包分析异常行为

发现每个data包里都有一串字符串,用base64解码出来是混乱的,请求包里的跟返回包的数据是一样的

脑洞:data长度的是ascii码十进制,然后转换成数字字母然后base64解码得flag

tshark网络分析利器:Tshark - 简书

tshark -r fetus* -Y 'ip.src_host=="192.168.3.73"' -e data -T fields > 1.txt

得到flag

奇怪的文件

解压开了是三个文件

part1、part2、part3分别对应的是ZIP压缩包的压缩源文件数据区、压缩源文件目录区和压缩源文件目录结束标志。每个文件前面添加504B然后按顺序和到一起

crc文件修复,crc值可以在第二个里面找到

之后就可以当作压缩包打开了,如下是正确的md5值

之后打开压缩包发现有加密于是爆破,要不知道是七位密码估计要爆破很久

密码是GyxXaq9

解压之后

zip格式压缩包主要由三大部分组成:数据区、中央目录记录区(也有叫核心目录记录)、中央目录记录尾部区,数据区缺失的CRC跟中央目录记录区缺失的刚好可以互补,这题熟悉zip文件结构才能好做

图片并没有直接给flag,接着分析图片

把图片拉进010分析发现末尾比较特别

新建一个文件把反着的部分复制到里面然后用脚本使其正过来

python脚本(脚本参考大佬写的)

from binascii import *with open('t00', 'rb') as f:
hex_data = hexlify(f.read())[::-1]
with open('t5.zip', 'wb') as f1:
for i in range(0, len(hex_data), 2):
data = hex_data[i: i+2][::-1]
f1.write(unhexlify(data))

解压出来是这样,pyc后缀,pyc反编译,在线编译网站python反编译 - 在线工具

​
#!/usr/bin/env python# visit python反编译 - 在线工具 for more information# Version: Python 3.6import randomimport base64import sysdef KeyGenerate():random.seed(10)keyseed = ''for i in range(12):x = random.randint(32, 127)keyseed += chr(x)return base64.b64encode(keyseed.encode('utf-8')).decode('utf-8')def enc(key, file):count = 0f = open(file, 'rb')f1 = open('encrypted', 'wb')for now in f:for nowByte in now:newByte = nowByte ^ ord(key[count % len(key)])count += 1f1.write(bytes([newByte]))if __name__ == '__main__':key = KeyGenerate()enc(key, sys.argv[1])​

打印下key

key相同 ,加密为异或加密,跟根据message XOR key XOR key==message

那么我们只要再异或一次即可还原

简单改一下脚本

import random
import base64
import sys#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.6import random
import base64
import sysdef KeyGenerate():
random.seed(10)
keyseed = ''
for i in range(12):
x = random.randint(32, 127)
keyseed += chr(x)return base64.b64encode(keyseed.encode('utf-8')).decode('utf-8')def dnc(key):
count=0
f=open("D:\pythonProject8\gongkong\\t5\encrypted","rb")
f1=open("flag","wb+")
for i in f:
for nowByte in i:
newByte=nowByte^ord(key[count%len(key)])
count+=1
f1.write(bytes([newByte]))if __name__ == '__main__':
key = KeyGenerate()
#print(key)
dnc(key)
# enc(key, sys.argv[1])

打开分析png文件,修改后缀名打开

打开之后效果如下,还是没有flag 看WEB说有LSB隐写于是下载工具

工具地址https://github.com/livz/cloacked-pixel

需要配好库

不知道怎么找到密码的,直接抄WP了

密码:U!lSb29

看出flag为flag{2ceuagIha7v8mlfod9uas1d86wqer0}

S7COMM协议分析

下载下来是一个流量包

S7COMM协议

s7comm就是西门子为了它生产的PLC之间、SCADA与PLC之间的通信而设计的专属协议。S7协议的TCP/IP实现依赖于面向块的ISO传输服务。S7协议被封装在TPKT和ISO-COTP协议中,这使得PDU(协议数据单元)能够通过TCP传送。

打开之后降序排列,然后点开第一个进行hex转码

flag{is_not_real}

组态软件分析

修改文件名改成zip

打开发现有密码,但有部分文件确没有加密

恶意软件后门分析

不太会,照着网上WP打的

flag{}包裹提交

参考文章

纵横靶场工控安全wp:奇怪的文件。_C1ovd的博客-CSDN博客_纵横网络靶场社区 奇怪的文件

纵横网络靶场社区-隐藏的黑客_梵歆的博客-CSDN博客_纵横网络靶场社区 黑客

[纵横网络靶场社区]简单流量分析_末初mochu7的博客-CSDN博客

纵横网络靶场刷题记录相关推荐

  1. hackme2靶场刷题记录

    文章目录 写在前面 nmap扫一下端口 渗透开始! 登陆后的sql注入 有回显的注入 XSS漏洞 注册时的漏洞 登录时是否存在sql注入? 拿到管理员权限 文件上传漏洞 SSTI 提权! 总结 最最最 ...

  2. 工控安全,纵横网络靶场部分WP(一)

    纵横网络靶场部分 wp 前言 最近有了misc.二进制.web的一些基础后,准备开始工控安全的一些题目学习.目前做了几道靶场题目,发现主要题型还是和modbus等工控协议相关的流量分析.misc相关等 ...

  3. BZOJ刷题记录---提高组难度

    BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...

  4. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  5. CTFShow web入门题刷题记录

    CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...

  6. 重走长征路---OI每周刷题记录---9月6日 2014

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  7. 【信息技术刷题记录】 04 Office相关操作及计算机网络知识篇

    刷题记录 Office相关操作及计算机网络知识 写在前面:此系列文章只为参加知识竞赛时的记录 对题目提出一些自己的想法 有啥不对的地方还望谅解和指正 不胜感激 第四次记录 一.Offic相关操作 A. ...

  8. 重走长征路---OI每周刷题记录---6月14日 2014

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  9. 重走长征路---OI每周刷题记录---4月12日 2015

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

最新文章

  1. opencv java match_Java OpenCV-从knnMatch提取匹配项
  2. Linux上新建用户及赋权操作
  3. 深度探索C++ 对象模型(2)-类的对象的内存大小_2
  4. python基础-字典(8)
  5. 销售单据条件价格明细表
  6. springboot学习笔记(三)
  7. Oracle 11g创建Interval分区表
  8. Oracle打开虚拟机闪退,虚拟机上启动Oracle服务为什么自动停止,怎么处理?
  9. thinkphp小技巧
  10. linux ssh 插件,玩转VSCode插件之Remote-SSH的使用情况
  11. SQL Server 2005高可用性之镜像功能
  12. 使用安全json parser防止json注入
  13. Pycharm汉化使用教程
  14. 6-15 基于顺序表的直接选择排序 (10分)
  15. 你的个税APP还好么?从个税APP看并发
  16. 解锁pdf文件,删除pdf密码
  17. 【初识 JQMobile 小小总结】
  18. python闲鱼监控_推荐一个可玩的爬虫开源项目-闲鱼部分我已经测试过
  19. 贤鱼的刷题日常【c++动态规划】4978:宠物小精灵之收服
  20. 微信运动如何读取小米手环的数据

热门文章

  1. TcaplusDB君 · 行业新闻汇编(四
  2. Global Translator
  3. 什么是图形加速卡(一)
  4. <clint>() 的线程安全性
  5. 易语言加载js html本地,超文本浏览框直接加载HTML代码 不用写出到本地 不用连网...
  6. douphp mysql版本_【公众号+小程序】DouPHP模块化企业网站管理系统版本号v1.6 – 最新版本 无后门 亲测...
  7. 2021地理信息技术与应用技能大赛比赛试题
  8. 郑州达内:互联网寒冬来袭,IT职业教育如何度过?
  9. ImageNet历届冠军作品、keras了解
  10. 超好看的辅助网站html源码 记事本修改即可