熟悉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插件是一个实践性很强的过程,随着实践经验的积累,你会逐渐掌握更多高级功能的开发技巧。


相关文章
|
1月前
|
SQL 缓存 监控
熟悉kali(二)
熟悉kali(二)
|
2月前
|
监控 安全 Linux
如何利用Kali Linux进行网站渗透测试:最常用工具详解
如何利用Kali Linux进行网站渗透测试:最常用工具详解
122 6
|
6月前
|
Linux KVM 虚拟化
kali 简单入门
kali 简单入门
|
Linux 网络安全 数据安全/隐私保护
|
Web App开发 Linux 测试技术