Blog

CTF Study Logs

Begin

  • Web安全
  • 逆向工程(Reverse)
  • 漏洞挖掘与漏洞利用(PWN、Exploit)
  • 密码学(Crypto)
  • 调查取证(Misc)
  • 移动安全(Mobile)

Misc

文件操作与隐写

文件类型识别

文件分离操作

  • binwalk
    • 分析文件:binwalk filename
    • 分离文件:binwalk -e filename
  • foremost
    • foremost filename -o dir
  • dd
    • 当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离。
  • 010 Editor
    • 打开文件 -> 选中右键 -> Selection -> Save Selection

文件合并操作

  • Linux:cat 合并的文件 > 输出的文件
  • Windows:copy /B 合并的文件 输出的文件

图片隐写

  • wbstego4工具:解密通过LSB加密的图片。
  • TweakPNG
    • 文件头正常却无法打开文件,使用TweakPNG修改CRC。
    • 有时CRC没有错误,但是图片高度或宽度发生错误,需要通过CRC计算出正确的高度或宽度。
  • Bftools:解密图片信息。
  • SilentEye:可以将文字或文件隐藏到图片的解密工具。
  • JPG图片加密
    • Stegdetect工具探测加密方式。
    • Jphide是基于最低有效位LSB的JPEG格式图像隐写算法。
    • Outguess一般用于解密文件信息。
    • F5一般用于解密文件信息。
  • 二维码处理
    • 补全
    • 反色

压缩文件处理

压缩文件分析

  • 伪加密:如果压缩文件是加密的,或文件头正常但解压缩错误,首先尝试文件是否为伪加密。ZIP文件是否加密是通过标识符来显示的,将其设置为00表示该文件未加密。成果解压则表示文件为伪加密。
    • 搜索504B0102后的第九第十位,将其设置为0000。
    • RAR文件由于有头部校验,使用伪加密时打开文件会报错,如果修改标志位后成功解压,说明是伪加密。找到第24个字节,该字节尾数为4表示加密,0表示未加密。
  • 暴力破解
    • ARCHPR
  • 明文攻击:指知道加密的ZIP中部分文件的明文内容,利用这些内容推测出密钥并解密ZIP文件的方法。
    • 有一个明文文件,压缩后CRC值与加密压缩包中的文件一致。
    • 明文文件的压缩算法需要和加密压缩包的压缩算法一致。
  • RAR:有时给出的RAR文件头部会故意错误导致无法识别,显示一个文件,修复后显示两个文件。
    • HEAD_CRC 2B 所有块或部分的CRC
    • HEAD_TYPE 1B 块类型
    • HEAD_FLAGS 2B 块标记
    • HEAD_SIZE 2B 块大小
    • ADD_SIZE 4B 可选结构 增加块大小

流量取证

  • 流量包修复
  • 协议分析
  • 数据提取

Wireshark

常用过滤命令
  • 过滤IP
    • ip.src eq x.x.x.x or ip.dst eq x.x.x.x
    • ip.addr eq x.x.x.x
  • 过滤端口
    • tcp.port eq 80 or udp.port eq 80
    • tcp.dstport == 80
    • tcp.srcport == 80
    • tcp.port >= 1 and tcp.port <= 80
  • 过滤协议
    • tcp/udp/arp/icmp/http/ftp/dns/ip…
  • 过滤MAC
    • eth.dst == xx-xx-xx-xx-xx-xx
  • 过滤包长度
    • udp.length == 26 指UDP本身固定长度8加上块数据包之和
    • tcp.len >= 7 指IP数据包(TCP下面那块数据),不包括TCP本身
    • ip.len == 94 除了以太网头固定长度14,其他都算ip.len,即从ip本身到最后。
    • frame.len == 119 整个数据包长度,从eth开始掉最后。
  • http模式过滤
    • http.request.method == “GET”
    • http.request.method == “POST”
    • http.request.url == “/img/logo.png”
    • http contains “GET”
    • http contains “HTTP/1.”
协议分级

Follow Stream

导出对象

导出分组字节流

无线流量包

  1. 用aircrack-ng检查cap包:aircrack-ng xxx.cap
  2. 跑字典进行握手包破解:aircarck-ng xxx.cap -w pass.txt

USB流量

  • 涉及键盘敲击、鼠标移动与点击、存储设备的明文传输通信、USB无线网卡网络传输内容等。

  • USB协议的数据部分在Leftover Capture Data域中。

  • 使用tshark可以将Leftover Capture Data数据单独复制出来。

  • 键盘:https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf

  • 鼠标:鼠标移动表现出连续性,与键盘的离散性不同。

  • 鼠标数据包的数据长度为4个字节,第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。

  • 鼠标流量分析:https://github.com/WangYihang/USB-Mouse-Pcap-Visualizer

HTTPS流量

HTTPS流量是经过TLS加密过的,需要导入key才能看到原始的HTTP流量。

密码学

密码学发展

算法

  • 对称加密算法:加密密钥和解密密钥相同。
    • DES, 3DES, IDEA, AES
  • 非对称加密算法:加密密钥和解密密钥不同。其中加密密钥可以公开,解密密码必须保密。
    • RSA, ECC, ElGamal
  • 摘要算法:也被称为哈希算法,常见的有MD5, SHA。

编码

  • ASCII
  • BASE64
  • URL编码:就是ASCII的十六进制,需要在前面加上%
  • Unicode:密文中有多个\uxxx
  • JS混淆

网络安全

信息收集

信息收集

  1. 扫描器扫描(IBM-AppScan、HP-WebInspect、启明星辰-天镜、安恒-明鉴、绿盟-WVSS/RSAS、其他-Namp等)
  2. DNS域传输漏洞(域名探测过程)
  3. 根据主域名获得二级、三级域名。
    • A NS MX记录
    • Bind版本号 区域传输
  4. DNS是最主要的服暴露信息的来源。
    • 收集DNS域名信息
    • 发现开放端口的主机
    • 发现子域名以及开放端口
    • DNS域名的注册信息
    • DNS服务器区域传输
dnsenum

fierce

dmitry

nmap

amap

netdiscover

arp-scan
❯ arp-scan --localnet
Interface: en0, type: EN10MB, MAC: 80:a9:97:23:a7:de, IPv4: 192.168.3.121
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.3.126	00:1c:42:aa:6b:5c	Parallels, Inc.

1957 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 1.864 seconds (137.34 hosts/sec). 1 responded
whois

nslookup
❯ nslookup qq.com
Server:		192.168.3.1
Address:	192.168.3.1#53

Non-authoritative answer:
Name:	qq.com
Address: 112.60.14.252
Name:	qq.com
Address: 111.33.167.71
❯ nslookup
> set type=mx
> qq.com
Server:		192.168.3.1
Address:	192.168.3.1#53

Non-authoritative answer:
qq.com	mail exchanger = 20 mx2.qq.com.
qq.com	mail exchanger = 30 mx1.qq.com.
qq.com	mail exchanger = 10 mx3.qq.com.

Authoritative answers can be found from:
dig
❯ dig qq.com

; <<>> DiG 9.10.6 <<>> qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26045
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;qq.com.				IN	A

;; ANSWER SECTION:
qq.com.			426	IN	A	112.60.14.252
qq.com.			426	IN	A	111.33.167.71

;; Query time: 15 msec
;; SERVER: 192.168.3.1#53(192.168.3.1)
;; WHEN: Sun May 05 17:13:40 CST 2024
;; MSG SIZE  rcvd: 56
反向解析
❯ dig +noall +answer -x 114.114.114.114
114.114.114.114.in-addr.arpa. 52 IN	PTR	114.114.114.114.in-addr.arpa.
trace

Maltego

ICP备案信息

https://icp.chinaz.com/

SSL查询

https://myssl.com/

APP信息提取

抓包、反编译来获取域名、IP地址、端口号等信息。

DNS更新记录解析

https://getdns.dnsdb.io/

通过Google与第三方网站收集

https://ctf-wiki.org/misc/recon/ https://www.zoomeye.org/

源码泄露
  • .git
  • .SVN
  • .DS_Store
  • WEB_INF/web.xml
  • 网络备份文件泄露.gz .rar .zip .tar.gz .bak .tar
  • Github泄露:配置信息、邮箱信息、KEY。
API信息泄露

接口未做限制。

社工
  • 利用社工库获取邮箱对应密码。
  • 社交媒体。
  • 任意邮箱发送:https://forum.butian.net/share/2089
工具
  • theHarvester
  • 7kbscan
指纹识别

指纹识别是指网站CMS指纹识别,在渗透测试过程我们会遇到各种各样的CMS建站,我们需要判断目标网站使用的到底是哪一个CMS。

常用的工具有Test404轻量CMS之别识别工具、plecost、cmscan、御剑WEB指纹识别工具、BlindElephant、FingerPrint、gwhatweb、TideFinger、Wappalyzer、指纹特征识别beta2-b0y等。

WAF识别

https://github.com/EnableSecurity/wafw00f

CDN识别

https://github.com/3xp10it/xcdn

CMDB

漏洞扫描

扫描原理
链路检测扫描

利用ping命令进行测试扫描检查网络连通性。

  • TTL=64:Windows 7/2008, Linux
  • TTL=128:Windows XP/2000/2002
  • TTL=255:可能是交换机、路由设备
端口检测扫描

利用telnet、nmap命令进行扫描检查网络端口信息。

OS检测扫描

利用nmap命令进行测试扫描检查网络系统信息时,利用TCP/IP协议栈指纹来识别不同的操作系统和设备。

弱口令探测

字典。

漏洞评估检测

对各种已知的漏洞进行检测。

技术分类

准备工作
  • 了解网络部署情况:了解哪些网络主机是可以进行扫描的,哪些网络主机是不可以进行扫描。
  • 扫描时间和方式
  • 定制好扫描策略
  • 防火墙是否开启
  • 企业服务是否配置了相关的安全策略,以防锁死:有些业务服务是由扫描探测锁定限制的,一旦扫描可能会造成业务中断,比如数据库业务。
扫描工具
  • Web扫描工具:AWVS、AppScan、Netspark、绿盟科技WVSS、安恒明鉴扫描器
  • 系统扫描工具:天境、nessus、nmap(端口扫描)
  • 其它扫描工具:Burp、Xray扫描器

漏洞利用

MSF框架

Linux安全加固

身份鉴别

/etc/login.defs 文件定义了与/etc/passwd/etc/shadow配套的用户限制设置。

如果/etc/shadow有相同的选项,则以/etc/shadow的设置为准。

/etc/passwd 文件中每个用户都有一个对应的记录行,记录了这个用户的一些基本属性。

/etc/shadow 文件包含用户的密码信息,只有root用户拥有读权限。

访问控制

/etc/ssh/sshd_config

/etc/bashrc 为每一个运行bash shell的用户执行此文件。

/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时。该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

/etc/hosts.deny hosts.allow控制可以访问本机的IP地址,hosts.deny控制禁止访问本机的IP。如果两个文件的配置有冲突,以hosts.deny为准。

安全审计

/etc/rsyslog.conf 系统日志管理,配置安全日志的完备性。

资源控制

防止快捷键关机。

入侵防范

关闭不必要的服务。

References