熟悉kali

简介: 熟悉kali

image.png

Ls、cd、cat、more、tail、cp、rm、top、ps、grep、ifconfig、netstat、awk、sort、fdisk、mount、dmesg、find、whereis.Echo、vi

这些是Linux系统中的常见命令,它们各自有不同的用途:

ls:列出目录内容,可以显示文件和目录的信息。

cd:改变当前工作目录,允许你在文件系统中导航。

cat:显示或合并文件内容,常用于查看文本文件。

more:分页显示文件内容,适合查看大型文件。

tail:显示文件的末尾部分,通常用于监控日志文件。

cp:复制文件或目录。

rm:删除文件或目录(使用时需谨慎)。

top:显示当前系统的进程状态和资源使用情况,实时更新。

ps:显示当前运行的进程信息。

grep:在文件中搜索匹配特定模式的行。

ifconfig:配置和显示网络接口信息。

netstat:显示网络连接、路由表、接口统计信息等。

awk:强大的文本处理工具,可以处理行和字段。

sort:对文件中的行进行排序。

fdisk:磁盘分区管理工具,用于创建、删除和修改分区。

mount:挂载文件系统,使你可以访问存储设备上的数据。

dmesg:显示内核消息,常用于启动过程中的错误诊断。

find:查找文件系统中的文件或目录,基于各种条件。

whereis:查找命令、源代码或手册页的位置。

echo:输出字符串到标准输出或文件,常用于脚本中。

vi:一个强大的文本编辑器,用于创建和修改文本文件。

这些命令是Linux系统管理员和用户的日常工作中不可或缺的工具。

image.png

碰到有url的加密 ,使用urlencode -d

如何写shell脚本

基本语法

1. 注释

单行注释使用#开头。

# 这是一条注释


2. 变量

定义变量时,不需要声明类型,直接赋值即可。

使用变量时,需要在变量名前加$符号。

name="John"
echo $name


3. 命令替换

使用反引号`或$()包围命令,可以将命令的输出作为值赋给变量。

currentTime=`date`
currentTime=$(date)

4. 条件判断

使用if语句进行条件判断。

if [ condition ]; then
    # commands
elif [ another_condition ]; then
    # more commands
else
    # even more commands
fi


5. 循环

for循环。

for i in {1..5}; do  
    echo $i
done


while循环。
count=1
while [ $count -le 5 ]; do
    echo $count
    count=$((count + 1))  
done


6. 函数

定义函数。

function_name() {
    # function body
}


调用函数。

function_name


进阶技巧

1. 数组

定义数组。

array=(item1 item2 item3)


访问数组元素。

echo ${array[0]}


2. 字符串操作

字符串长度。

str="Hello, World!"  
echo ${#str}


子字符串。

substr=${str:7:5}  
echo $substr


3. 正则表达式

使用grep、sed、awk等工具处理正则表达式。

# 使用grep匹配文本
echo "Hello, World!" | grep -o '[A-Za-z]*'


4. 文件操作

检查文件是否存在。

if [ -e filename ]; then
    echo "File exists"  
fi


读取文件内容。

while IFS= read -r line; do  
    echo "$line"
done < filename


5. 调试脚本

使用set -x开启调试模式。

#!/bin/bash
set -x
echo "Debugging mode on"


6. 信号处理

使用trap命令捕捉信号。

#!/bin/bash
trap 'echo "Signal caught"' SIGINT
sleep 10


7. 脚本参数

使用$1, $2, ... 访问脚本参数。

#!/bin/bash
echo "First argument: $1"
echo "Second argument: $2"

.

8. 环境变量

设置环境变量。

export VARNAME=value


使用环境变量。

echo $VARNAME


这些是Shell脚本的一些基本和进阶语法。编写复杂的脚本时,你可能还需要了解更多的概念和技术,如管道、重定向、进程控制等。不断实践和学习将帮助你成为一名熟练的Shell脚本开发者。

题外话

写一个burp插件

编写Burp Suite插件使用Python,你需要借助于Burp Suite的Extender API,特别是其对Java和Python交互的支持功能。从Burp Suite 2.0开始,它原生支持Python插件开发。以下是一个简单的指南,介绍如何开始编写一个基本的Python Burp插件。

准备工作

安装Jython: 因为Burp Suite是用Java编写的,它通过Jython(Python的Java实现)来运行Python插件。确保你已经安装了Jython。你可以从 Jython官网下载并安装适合你系统的版本。

设置Burp Suite: 确保你的Burp Suite版本支持Python插件。打开Burp Suite,进入“Extender”标签页,点击“Options”,确保“Python environment”已被正确设置,并且路径指向你的Jython安装目录。

创建Python插件: 创建一个新的Python文件,比如my_burp_plugin.py。这个文件将包含你的插件逻辑。

编写基本插件

下面是一个非常基础的示例插件,该插件简单地打印出通过Burp Suite发送的所有HTTP请求的URL。

1from burp import IBurpExtender, IHttpListener
2
3class BurpExtender(IBurpExtender, IHttpListener):
4    
5    def registerExtenderCallbacks(self, callbacks):
6        # 获取Burp提供的回调对象
7        self._callbacks = callbacks
8        self._helpers = callbacks.getHelpers()
9        
10        # 设置插件名
11        self._callbacks.setExtensionName("My Simple Python Burp Plugin")
12        
13        # 注册为HTTP监听器
14        callbacks.registerHttpListener(self)
15    
16    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
17        if messageIsRequest:
18            # 解码HTTP请求
19            request = self._helpers.analyzeRequest(messageInfo)
20            url = request.getUrl().toString()
21            print(f"[{toolFlag}] Request to: {url}")


部署插件

打包插件: 将你的Python脚本放在一个Burp Suite可以识别的目录下。通常,你可以直接在Burp Suite的Extender -> Options界面指定或添加Python插件的目录。

加载插件: 在Burp Suite的Extender标签页,点击“Add”按钮,然后从列表中选择你刚刚创建的.py文件。如果一切配置正确,你的插件应该会被加载并开始工作。

注意事项

确保熟悉Burp Suite的API文档,了解如何使用IBurpExtender,IHttpListener等接口。

开发复杂插件时,你可能需要处理更多细节,比如处理响应、动态修改请求、构建UI等。

考虑到性能和兼容性,对于高性能需求的插件,Java可能仍然是首选。

编写Burp插件是一个实践性很强的过程,随着实践经验的积累,你会逐渐掌握更多高级功能的开发技巧。


相关文章
|
24天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
16天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
20天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2577 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
18天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
3天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
2天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
163 2
|
20天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1576 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
22天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
977 14
|
4天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
221 2
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
734 9