# 漏洞加固报告

## 1. 漏洞点名称
SQL 注入漏洞
此漏洞属于**SQL 注入类型漏洞**,关键特征包括:
- 用户输入直接拼接到 SQL 查询语句中,缺乏参数化处理。
- 攻击者可通过构造恶意输入绕过认证逻辑或执行恶意查询。

---

## 2. 漏洞代码

if (isset($_POST['login'])) {
    $uname = str_replace('\'', '', urldecode($_POST['un']));
    $pass = str_replace('\'', '', urldecode($_POST['ps']));
    $run = 'select * from auth where pass=\'' . $pass . '\' and uname=\'' . $uname . '\'';
    $result = mysqli_query($conn, $run);
    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        echo "You are allowed<br>";
        $_SESSION['logged'] = true;
        $_SESSION['admin'] = $row['username'];
        header('Location:panel.php', true, 302);
    } else {
        echo "<script>alert('Try again');</script>";
    }
}


---

## 3. 漏洞产生的危害
1. SQL 注入的威胁**:
- 攻击者可通过构造恶意输入绕过认证机制,例如使用 `' OR '1'='1`。
- 攻击者可能读取、修改或删除数据库中的敏感数据。

2. **潜在风险**:
- 数据库被完全控制,可能导致数据泄露或篡改。
- 攻击者可能通过数据库权限进一步攻击服务器或网络。

3. **业务影响**:
- 用户账户信息泄露或被篡改。
- 整体系统的可用性和完整性受到威胁。

---

## 4. 漏洞产生的原因以及修复思路

### 漏洞产生的原因
1. 用户输入未经过安全处理,直接拼接到 SQL 查询语句中。
2. 缺乏参数化查询或预处理机制来防止注入。

### 修复思路
1. **使用参数化查询**:
- 通过 `mysqli` 或 `PDO` 的预处理语句绑定用户输入,避免拼接查询语句。

2. **输入过滤与输出编码**:
- 使用过滤函数清理输入,例如 `filter_var`。
- 对输出使用适当的转义,防止其他漏洞(如 XSS)。

3. **强化用户认证逻辑**:
- 添加密码哈希存储机制(例如 `password_hash` 和 `password_verify`)。
- 限制失败登录尝试,防止暴力破解。

---

## 5. 漏洞修复后代码截图

### 修复后的代码
```php
if (isset($_POST['login'])) {
$uname = trim($_POST['un']);
$pass = trim($_POST['ps']);

// 使用参数化查询防止 SQL 注入
$stmt = $conn->prepare('SELECT * FROM auth WHERE uname = ? AND pass = ?');
$stmt->bind_param('ss', $uname, $pass);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "You are allowed<br>";
$_SESSION['logged'] = true;
$_SESSION['admin'] = $row['username'];
header('Location: panel.php', true, 302);
exit();
} else {
echo "<script>alert('Try again');</script>";
}
}
```

### 修复后的增强措施
1. **使用密码哈希存储和校验

// 注册用户时
$hashed_pass = password_hash($pass, PASSWORD_BCRYPT);

// 登录验证时
if (password_verify($pass, $row['pass'])) {
    // 验证通过
}


2. 限制登录尝试次数
通过记录用户登录尝试次数,防止暴力破解攻击。

---

## 关键词
#SQL注入 #参数化查询 #安全编码 #认证漏洞 #漏洞修复
### searchsploit 与 Nmap 联合使用指南

searchsploit 可以与 Nmap 工具结合,快速从 Nmap 的扫描结果中提取可能的漏洞利用信息。Nmap 扫描到的服务和版本信息会被传递给 `searchsploit`,从而定位相关漏洞。

---

#### 使用步骤

1. 使用 Nmap 扫描目标
使用 Nmap 的 -sV 选项进行服务版本检测,并将结果保存为 XML 格式:
   nmap -sV -oX nmap_results.xml <target>
   

示例:
   nmap -sV -oX nmap_results.xml 192.168.1.1
   


2. 使用 `searchsploit` 分析 Nmap 扫描结果
通过 --nmap 选项,将 Nmap 的 XML 文件输入到 `searchsploit`:
   searchsploit --nmap nmap_results.xml
   

示例输出:
   Services matching "Apache 2.4.29":
     - Apache HTTP Server 2.4.29 - Path Traversal
       https://www.exploit-db.com/exploits/12345
   


3. 进一步验证漏洞
确认漏洞的适用性,分析是否符合目标系统的实际配置。

---

#### 示例场景

假设我们扫描一个目标主机:
nmap -sV -oX scan.xml 192.168.1.10


扫描结果存储在 `scan.xml`,然后运行:
searchsploit --nmap scan.xml


#### 结合 -v 查看更多详细信息
如果需要更详细的输出,可以加上 -v 参数:
searchsploit --nmap scan.xml -v


---

#### 注意事项
1. 服务版本准确性
Nmap 的版本检测可能会不准确,建议手动确认目标服务版本。

2. 结果筛选
searchsploit 的输出可能包含一些与目标不相关的漏洞,需手动检查。

3. 不依赖漏洞数据库的完整性
searchsploit 使用的是本地 Exploit-DB 数据库,可能不是最新的。建议定期更新:
   searchsploit -u
   


---

#### 整体流程
1. 使用 Nmap 检测服务和版本信息。
2. 将扫描结果保存为 XML 文件。
3. 使用 searchsploit --nmap 解析结果,提取可能的漏洞利用。

---

#### 关键词
#searchsploit #Nmap #漏洞扫描 #渗透测试 #Exploit-DB
### searchsploit 命令使用说明

searchsploit 是 Exploit-DB 提供的命令行工具,用于搜索和管理本地存储的漏洞利用代码。

#### 用法
searchsploit [选项] 关键词1 [关键词2] ... [关键词N]


#### 示例
# 搜索包含关键词 "afd", "windows", "local" 的漏洞利用
searchsploit afd windows local

# 搜索指定漏洞编号 39446 的路径
searchsploit -p 39446

# 搜索带有严格匹配 "Apache Struts 2.0.0" 的结果,并排除 PoC 和 DOS 的内容
searchsploit -s "Apache Struts 2.0.0" --exclude="(PoC)|/dos/"

# 按 CVE 号进行搜索
searchsploit --cve 2021-44228


---

#### 选项说明
##### 搜索选项:
1. `-c, --case`
执行区分大小写的搜索(默认情况下不区分大小写)。

2. `-e, --exact`
精确匹配搜索内容和顺序,且仅匹配漏洞标题(隐含 -t 选项)。

3. `-s, --strict`
严格搜索输入值,禁用模糊搜索(不会匹配版本范围)。

4. `-t, --title`
仅搜索漏洞标题(默认同时搜索标题和文件路径)。

5. `--exclude="term"`
从结果中排除指定值(可用 | 分隔多个值)。

6. `--cve`
根据 CVE 编号进行搜索。

##### 输出选项:
1. `-j, --json`
以 JSON 格式显示搜索结果。

2. `-p, --path`
显示漏洞利用的完整路径,并尝试将路径复制到剪贴板。

3. `-v, --verbose`
提供更详细的输出信息。

4. `-w, --www`
显示 Exploit-DB.com 的在线链接,而不是本地路径。

5. `--disable-colour`
禁用搜索结果中的高亮显示。

##### 非搜索选项:
1. `-m, --mirror`
将指定漏洞编号的漏洞利用代码复制到当前目录。

2. `-x, --examine`
使用 $PAGER 查看指定漏洞利用的内容。

3. `-u, --update`
更新本地 Exploit-DB 数据库。

##### 自动化选项:
1. `--nmap`
解析 Nmap 的 XML 输出文件,匹配服务版本中可能的漏洞利用。

---

#### 输出示例
1. 常规搜索
   kali@kali:~$ searchsploit afd windows local
   ---------------------------------------------------------------------------------------- -----------------------------------
   Exploit Title                                                                          |  Path
   ---------------------------------------------------------------------------------------- -----------------------------------
   Microsoft Windows (x86) - 'afd.sys' Local Privilege Escalation (MS11-046)               | windows_x86/local/40564.c
   ...
   


2. 显示漏洞路径
   kali@kali:~$ searchsploit -p 39446
   Exploit: Microsoft Windows 7 (x86) - 'afd.sys' Dangling Pointer Privilege Escalation (MS14-040)
      URL: https://www.exploit-db.com/exploits/39446
     Path: /path/to/exploitdb/exploits/windows_x86/local/39446.py
   Copied EDB-ID #39446's path to the clipboard
   


---

#### 关键词
#searchsploit #Exploit-DB #漏洞利用搜索 #渗透测试工具
### getsploit 命令使用说明

getsploit 是一个用于搜索和下载漏洞利用工具的命令行工具。

#### 用法:
getsploit [选项]


#### 选项说明:
1. -h, --help
显示帮助信息并退出。

2. -t, --title
仅搜索漏洞利用的标题(默认会搜索描述和源代码)。

3. -j, --json
将搜索结果以 JSON 格式展示。

4. -m, --mirror
将搜索结果中的漏洞利用文件复制到以查询名称命名的子目录中。

5. -c COUNT, --count=COUNT
限制搜索结果的数量,默认值为 10。

6. -l, --local
在本地数据库中执行搜索,而不是在线搜索。

7. -u, --update
更新 getsploit.db 数据库(会下载到脚本所在路径)。

---

#### 示例命令:
1. 搜索特定漏洞:
   getsploit apache
   

2. 只搜索标题:
   getsploit -t apache
   

3. 将结果保存到本地文件夹:
   getsploit -m apache
   

4. 更新本地漏洞数据库:
   getsploit -u
   


---

#### 关键词
#getsploit #漏洞利用工具 #命令行工具 #渗透测试
### Nikto 命令行选项概述

Nikto 是一个广泛使用的 web 服务器扫描工具,提供了多种扫描选项以进行不同类型的测试。以下是常用选项的简要说明:

#### 常见选项:
- -ask+: 提示是否提交更新数据。可以选择 yes`、`no 或 `auto`。
- -check6: 检查 IPv6 是否可用,默认会连接到 `ipv6.google.com`。
- -Cgidirs+: 指定扫描的 CGI 目录,可以设置为 `none`、`all` 或自定义目录(如 `/cgi/`)。
- -config+: 使用指定的配置文件。
- -Display+: 设置显示输出的详细程度。选项包括:
- `1` 显示重定向
- 2 显示接收到的 Cookie
- 3 显示所有 200/OK 响应
- V 显示详细输出
- -evasion+: 设置编码技术,用于绕过防火墙或代理,支持多种编码方式,如随机 URI 编码、目录自引用等。
- -followredirects: 跟随 3xx 重定向。
- -Format+: 设置输出格式,可以选择 csv`、`json`、`xml 等。
- -host+: 指定目标主机或 URL。
- -output+: 设置输出文件(默认为当前目录)。
- -Plugins+: 指定要运行的插件列表(默认运行所有插件)。
- -Tuning+: 设置扫描调优选项,可以指定关注特定的漏洞类别(如 SQL 注入、命令执行等)。

#### 网络相关选项:
- -ssl: 强制使用 SSL 模式进行连接。
- -useproxy: 使用指定的代理进行请求。
- -vhost+: 设置虚拟主机(用于 Host 请求头)。
- -timeout+: 设置请求的超时时间(默认 10 秒)。

#### 扫描相关选项:
- -port+: 设置扫描端口(默认为 80)。
- -mutate+: 启用额外的文件名猜测方法,例如尝试猜测密码文件名。
- -maxtime+: 设置每个主机的最大测试时间。
- -nointeractive: 禁用交互式功能,适用于自动化脚本。

#### 调试与输出:
- -dbcheck: 检查数据库和其他关键文件的语法错误。
- -output+: 设置结果输出文件,支持多种格式,如 txt`、`html`、`csv 等。
- -Pause+: 在测试之间暂停指定时间。

#### 安全相关:
- -Tuning+: 调整扫描目标的侧重点,如 XSS、SQL 注入等。

### 示例命令:
nikto -h http://example.com -o result.html -ssl -Tuning 4


### 关键词
#Nikto #web安全 #扫描工具 #漏洞扫描 #网络安全
# 简练的渗透测试文件命名规范

为了实现简洁高效的文件命名,可以缩减字段长度,同时保留关键信息,突出目标、步骤和结果,以下是优化后的命名规范:

---

## 1. 命名的基本结构
<目标标识>_<步骤缩写>_<内容描述>_<日期>.<文件格式>

- 目标标识**:用 IP 地址、域名或简短代号表示目标。
- **步骤缩写**:用固定缩写表示操作阶段,如 `RE`(信息收集)、`PE`(提权)、`EX`(漏洞利用)、`LM`(横向移动)、`DC`(解密)。
- **内容描述**:简要说明文件内容,如工具名称、数据类型。
- **日期**:避免冲突和区分时间。

---

## 2. **常见步骤的缩写和命名示例


### 1) 信息收集(Reconnaissance, `RE`)
- 命名结构:

  <目标>_RE_<内容描述>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_RE_ports_1121.txt` (端口扫描结果)
- target_RE_subdomains_1121.txt (子域名枚举结果)
- 192.168.1.1_RE_banner_1121.txt (服务探测结果)

---

### 2) 提权(Privilege Escalation, `PE`)
- 命名结构:

  <目标>_PE_<方法或工具>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_PE_kernel_1121.log` (内核漏洞提权日志)
- 192.168.1.1_PE_suggester_1121.txt (提权建议工具输出)
- 192.168.1.1_PE_token_1121.dmp (提取的用户 Token)

---

### 3) 漏洞利用(Exploitation, `EX`)
- 命名结构:

  <目标>_EX_<漏洞编号或工具>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_EX_cve-2021-1234_1121.log` (CVE 利用日志)
- 192.168.1.1_EX_payload_1121.bin (生成的 Payload 文件)
- target_EX_rce_1121.log (远程代码执行日志)

---

### 4) 横向移动(Lateral Movement, `LM`)
- 命名结构:

  <源IP>_<目标IP>_LM_<方法>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_192.168.1.2_LM_passhash_1121.log` (Pass-the-Hash 攻击日志)
- 192.168.1.1_192.168.1.3_LM_rdp_1121.log (RDP 横向移动日志)
- 192.168.1.1_192.168.1.4_LM_smb_1121.txt (SMB 横向移动记录)

---

### 5) 数据提取与解密(Decryption, `DC`)
- 命名结构:

  <目标>_DC_<描述>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_DC_hashdump_1121.txt` (密码哈希提取)
- target_DC_creds_1121.txt (解密的凭据)
- 192.168.1.1_DC_ssl_1121.log (SSL 解密流量)

---

### 6) 数据收集(Data Collection, `DT`)
- 命名结构:

  <目标>_DT_<数据描述>_<日期>.<文件格式>
  

- 示例:
- `192.168.1.1_DT_files_1121.zip` (收集的文件)
- target_DT_creds_1121.txt (提取的凭证)
- 192.168.1.1_DT_dbs_1121.sql (数据库导出文件)

---

### 7) 报告生成(Reporting, `RP`)
- 命名结构:

  <目标>_RP_<类型>_<日期>.<文件格式>
  

- 示例:
- `target_RP_summary_1121.pdf` (渗透测试总结报告)
- 192.168.1.1_RP_full_1121.docx (完整测试报告)
- target_RP_incident_1121.xlsx (事件分析报告)

---

## 3. 常用的命名缩写表

| 步骤 | 缩写 | 说明 |
|------------|-------|--------------------|
| 信息收集 | RE | Reconnaissance |
| 提权 | PE | Privilege Escalation |
| 漏洞利用 | EX | Exploitation |
| 横向移动 | LM | Lateral Movement |
| 解密 | DC | Decryption |
| 数据提取 | DT | Data Collection |
| 报告生成 | RP | Reporting |

---

## 4. 简化文件夹分类建议
创建简单的文件夹分类管理:
/project/
├── RE/   # 信息收集
│   └── target_RE_ports_1121.txt
├── PE/   # 提权
│   └── 192.168.1.1_PE_kernel_1121.log
├── EX/   # 漏洞利用
│   └── 192.168.1.1_EX_payload_1121.bin
├── LM/   # 横向移动
│   └── 192.168.1.1_192.168.1.2_LM_passhash_1121.log
├── DC/   # 数据提取与解密
│   └── target_DC_creds_1121.txt
├── RP/   # 报告生成
│   └── target_RP_summary_1121.pdf


---

## 关键词总结
#渗透测试 #文件命名 #简练命名 #提权 #漏洞利用 #横向移动 #解密 #报告生成
### searchsploit 使用方法

searchsploit 是一个非常强大的工具,用于快速在 Exploit-DB 中搜索已知漏洞和利用代码。以下是它的基本使用方法:

#### 1. 基本搜索
你可以通过关键字或软件名称来搜索漏洞:

searchsploit <keyword>

例如,要搜索与 apache 相关的漏洞:

searchsploit apache


#### 2. 搜索并显示详细信息
使用 -v 选项可以显示更详细的漏洞信息:

searchsploit -v <keyword>


#### 3. 搜索特定漏洞类型
可以根据漏洞类型、平台等过滤搜索结果。例如,查找与 Linux 相关的漏洞:

searchsploit -t linux <keyword>


#### 4. 使用正则表达式
searchsploit 支持正则表达式,用于进行更灵活的搜索:

searchsploit -e '<regex>'


#### 5. 更新 Exploit-DB 数据库
使用 -u 选项可以更新本地 Exploit-DB 数据库:

searchsploit -u


#### 6. 输出格式
可以通过 -o 选项指定输出文件,将搜索结果保存到文件:

searchsploit -o result.txt <keyword>


#### 7. 查找 Exploit 文件的路径
每个漏洞都有一个文件路径,可以通过以下命令直接查找漏洞文件:

searchsploit -p <exploit_id>


例如,要查看 ID 为 12345 的漏洞详细信息:

searchsploit -p 12345


### 总结

searchsploit 是一个用于从 Exploit-DB 数据库中快速搜索漏洞和利用代码的命令行工具,支持关键字搜索、类型过滤、正则表达式等功能。

### 关键词
#searchsploit #漏洞 #ExploitDB #渗透测试 #命令行
### Nikto 与 Metasploit Framework 结合使用

NiktoMetasploit Framework 结合使用可以实现更加全面的 Web 应用漏洞分析和渗透测试。通过将 Nikto 扫描的结果导入到 Metasploit 中,你可以利用 Metasploit 的漏洞利用功能进一步进行攻击和渗透测试。下面是 Nikto 和 Metasploit 结合使用的几种方法。

#### 1. Nikto 扫描结果导入 Metasploit
Nikto 的扫描结果可以导出为 XML 或其他格式,然后通过 Metasploit 的 db_import 命令将其导入到数据库中。

步骤:
1. 使用 Nikto 扫描目标网站并将结果保存为 XML 格式:
   nikto -h http://example.com -o nikto_scan.xml -Format xml
   


2. 启动 Metasploit Framework:
   msfconsole
   


3. 导入 Nikto 扫描结果:
   db_import /path/to/nikto_scan.xml
   


4. 导入后,Metasploit 会将 Nikto 扫描中发现的漏洞、端口、服务等信息存储到数据库中。你可以通过 hosts`、`services`、`vulns 等命令查看扫描结果。例如:
   hosts
   services
   vulns
   


5. 之后,你可以根据这些信息选择合适的漏洞利用模块进行攻击。

#### 2. 使用 Metasploit 的 `auxiliary/scanner/http/nikto` 模块
Metasploit 提供了一个 auxiliary/scanner/http/nikto 模块,可以直接在 Metasploit 中运行 Nikto 扫描,而无需独立使用 Nikto 工具。这种方式能将 Nikto 的扫描功能集成到 Metasploit 内部进行漏洞分析。

步骤:
1. 启动 Metasploit:
   msfconsole
   


2. 加载 auxiliary/scanner/http/nikto 模块:
   use auxiliary/scanner/http/nikto
   


3. 配置目标地址:
   set RHOSTS http://example.com
   


4. 配置其他参数,如端口、扫描选项等:
   set RPORT 80
   set THREADS 10
   


5. 运行扫描:
   run
   


6. Metasploit 会运行 Nikto 扫描并显示结果。扫描结果与 Nikto 输出类似,但在 Metasploit 环境中进行管理和利用会更加方便。

#### 3. 结合漏洞利用
通过将 Nikto 扫描结果导入到 Metasploit 后,你可以利用 Metasploit 的漏洞利用模块进一步对目标进行攻击。例如,如果 Nikto 检测到某个常见的漏洞(如 XSS、SQL 注入等),你可以搜索并选择相应的漏洞利用模块。

步骤:
1. 使用 search 命令查找可能的漏洞利用模块:
   search type:exploit xss
   


2. 选择相应的漏洞利用模块并配置目标:
   use exploit/unix/webapp/sqli_example
   set RHOSTS http://example.com
   set RPORT 80
   run
   


通过这种方式,Nikto 扫描的结果和 Metasploit 中的漏洞利用模块结合使用,可以实现自动化的漏洞发现和渗透测试。

### 总结
1. **Nikto 导入 Metasploit**:通过将 Nikto 的扫描结果导出并导入到 Metasploit 中,结合 Metasploit 的数据库进行漏洞利用。
2. **Metasploit 自带的 nikto 模块**:直接使用 Metasploit 内部的 auxiliary/scanner/http/nikto 模块进行扫描。
3. **漏洞利用**:结合 Nikto 扫描结果与 Metasploit 的漏洞利用模块进行更深入的渗透测试。

这种结合使用可以帮助你更高效地进行 Web 应用的漏洞扫描、分析和利用。

#Nikto #Metasploit #Web漏洞扫描 #渗透测试 #漏洞利用 #KaliLinux
### Nikto 使用方法

Nikto 是一款开源的 Web 服务器扫描工具,专门用于检测 Web 服务器中的安全漏洞。它可以检测常见的漏洞、配置问题、过时的软件版本等。下面是 Nikto 的基本使用方法:

#### 1. 安装 Nikto
在 Kali Linux 中,Nikto 通常已经预装。如果没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install nikto


#### 2. 基本扫描命令
Nikto 的最基本用法是扫描一个目标网站:
nikto -h <target_url>

例如,扫描 `http://example.com`:
nikto -h http://example.com

这个命令将检查目标网站的常见漏洞和配置问题。

#### 3. 扫描 HTTPS 网站
如果目标网站使用 HTTPS,Nikto 会自动检测并使用 HTTPS 协议进行扫描:
nikto -h https://example.com


#### 4. 扫描特定端口
如果 Web 服务器不是运行在默认的 80 或 443 端口,你可以通过 -p 选项指定端口号。例如,扫描 8080 端口:
nikto -h http://example.com -p 8080


#### 5. 指定扫描插件
Nikto 可以通过插件来检测特定的漏洞或问题,使用 -Plugins 选项查看可用插件:
nikto -h <target_url> -Plugins


#### 6. 使用代理进行扫描
如果你希望通过代理服务器进行扫描,可以使用 -proxy 参数:
nikto -h http://example.com -proxy http://127.0.0.1:8080

这将通过本地代理(127.0.0.1:8080)扫描目标网站。

#### 7. 生成报告
Nikto 可以将扫描结果输出到文件中,支持多种格式,如 HTML、XML、CSV 等:
nikto -h http://example.com -o output.html -Format htm

这将把扫描结果保存为 HTML 格式。

#### 8. 扫描多个目标
如果你有多个目标,可以通过 -list 参数指定一个包含目标 URL 的文件,Nikto 将会对文件中的每个目标进行扫描:
nikto -h <target_list.txt>


#### 9. 检查特定漏洞
你也可以使用 -Tuning 参数来指定扫描的漏洞类型。比如,使用 -Tuning 2 来扫描服务器的技术细节信息:
nikto -h http://example.com -Tuning 2


### 示例:
1. 扫描 http://example.com 并输出为 HTML 文件:
   nikto -h http://example.com -o scan_report.html -Format htm
   


2. 使用代理服务器进行扫描:
   nikto -h http://example.com -proxy http://127.0.0.1:8080
   


3. 扫描指定端口 8080 的服务器:
   nikto -h http://example.com -p 8080
   


### 主要参数:
- `-h`:指定目标 URL 或 IP 地址。
- `-p`:指定端口。
- `-o`:指定输出文件。
- `-Format`:指定报告格式(`htm`、`csv`、`xml`等)。
- `-Tuning`:选择扫描的漏洞类型。
- `-proxy`:指定代理服务器。
- `-list`:从文件中读取多个目标。

Nikto 是一款功能强大且易于使用的工具,非常适合快速发现 Web 服务器的安全漏洞。

#Nikto #Web漏洞扫描 #KaliLinux #Web安全 #漏洞检测
### 使用 Nmap 进行目录扫描(基于字典)

Nmap 本身并不内置专门用于目录扫描的功能,但可以通过 http-enum 脚本与字典结合,进行目录扫描。

### 使用 http-enum 脚本扫描目录

1. **指定字典文件**:
http-enum 脚本支持通过 --script-args 参数传递字典文件来进行目录扫描。字典文件应该是一个包含潜在目录名称的文本文件(例如,`dir-2000.txt`)。

2. **命令格式**:
你可以使用以下命令进行目录扫描:
   nmap -p 80 --script http-enum --script-args http-enum.paths=/path/to/your/dictionary.txt 192.168.5.233
   


- `-p 80`:扫描目标主机的 80 端口。
- --script http-enum`:使用 Nmap 的 `http-enum 脚本。
- `--script-args http-enum.paths=/path/to/your/dictionary.txt`:指定字典文件路径。
- `192.168.5.233`:目标主机的 IP 地址。

### 配置字典文件
你可以使用一些常见的字典文件,比如 `dir-2000.txt`、`common.txt` 或者你自定义的字典文件。

#### 示例:
假设你有一个字典文件 dir-2000.txt`,并且你将其放置在 /home/kali/dir-2000.txt` 路径下,命令如下:
nmap -p 80 --script http-enum --script-args http-enum.paths=/home/kali/dir-2000.txt 192.168.5.233


### 扫描结果
Nmap 会根据字典中的目录列表,扫描每一个可能的目录并尝试访问,如果找到有效的目录,会在结果中显示出来。

### 注意事项
- http-enum 脚本会尝试请求每个目录并根据 HTTP 响应码判断是否存在该目录。例如,响应 200 表示目录存在,而 404 表示目录不存在。
- 扫描时,如果目标站点的目录结构比较复杂,或者存在很多目录,这个扫描可能会比较慢。

### 示例输出
如果扫描成功,输出可能如下所示:
Nmap scan report for 192.168.5.233
Host is up (0.0010s latency).

PORT   STATE SERVICE
80/tcp open  http
| http-enum:
|   /admin/: Found directory
|   /images/: Found directory
|   /uploads/: Found directory
|   /login/: Found directory
|_  /assets/: Found directory

Nmap done: 1 IP address (1 host up) scanned in 8.92 seconds


### 总结
使用 nmaphttp-enum 脚本配合字典文件,可以高效地扫描目标网站的潜在目录。确保字典文件路径正确,且脚本已根据需求进行配置。

### 关键词
#Nmap #http-enum #目录扫描 #字典扫描 #漏洞扫描
### Nmap 导出 XML,然后在 Metasploit 中导入

Nmap 可以将扫描结果导出为 XML 格式,Metasploit 可以通过 db_import 命令导入这些 Nmap 的扫描结果。这个过程可以帮助您将 Nmap 扫描得到的结果直接存储到 Metasploit 的数据库中,方便后续分析和利用。

### 步骤 1:用 Nmap 执行扫描并导出 XML

首先,使用 Nmap 执行扫描并将结果保存为 XML 文件。您可以使用以下命令执行 Nmap 扫描:

nmap -p 80 --script vuln -T4 -oX nmap_results.xml 192.168.5.233


- -oX nmap_results.xml 选项指定将扫描结果导出为 XML 文件。
- --script vuln 用于运行漏洞扫描脚本。

### 步骤 2:将 Nmap XML 文件导入 Metasploit

完成扫描后,使用 Metasploit 的 db_import 命令导入 Nmap 导出的 XML 文件。首先确保 Metasploit 已连接到数据库,然后执行以下命令:

msf6 > db_import /path/to/nmap_results.xml


- /path/to/nmap_results.xml 替换为您的实际文件路径。
- Metasploit 会解析 Nmap 导出的 XML 文件,并将结果导入数据库,包括主机、服务、漏洞等信息。

### 步骤 3:验证导入的数据

导入完成后,您可以通过 Metasploit 的 hosts`、`servicesvulns 等命令来查看数据库中的信息:

msf6 > hosts
msf6 > services
msf6 > vulns


### 示例

假设您已经在 192.168.5.233 上运行了 Nmap 扫描并导出了 XML 文件,接下来将其导入 Metasploit 数据库:

1. 执行 Nmap 扫描并导出 XML:

   nmap -p 80 --script vuln -T4 -oX nmap_results.xml 192.168.5.233
   


2. 导入 XML 文件到 Metasploit:

   msf6 > db_import /path/to/nmap_results.xml
   


3. 验证导入数据:

   msf6 > hosts
   msf6 > services
   msf6 > vulns
   


### 注意事项

- 确保 Nmap 执行时使用了合适的脚本来检测漏洞,否则扫描结果可能没有包含您需要的漏洞信息。
- 如果扫描结果太大或复杂,可能需要查看 Metasploit 的日志以确认导入是否成功。
- 确保在运行 db_import 命令时 Metasploit 正在连接到数据库,您可以使用 db_status 检查数据库连接状态。

### 关键词
#Nmap #Metasploit #db_import #XML #漏洞扫描 #导入扫描结果 #数据库
# 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 #漏洞扫描 #安全工具
这个 nmap 扫描结果表明目标主机 192.168.153.130 上的端口 22 和 80 是开放的,分别提供 SSH 和 HTTP 服务。以下是详细分析:

- **端口 22 (SSH)**:开放且正在运行 SSH 服务。
- **端口 80 (HTTP)**:开放且正在运行 HTTP 服务,扫描结果显示几个与安全相关的信息:
- **PHPSESSID Cookie**:未设置 httponly 标志,可能使会话信息更易受到 XSS 攻击。
- **内部 IP 泄露**:HTTP 服务泄露了内部 IP 地址 `127.0.1.1`,可能暴露内部网络结构。
- **潜在目录**:`/images/` 目录可能包含敏感或有趣的文件,并且目录列表已启用,可能带来信息泄露风险。
- **Web 应用漏洞**:没有发现 CSRF、存储型 XSS 或 DOM 型 XSS 漏洞

- **MAC 地址**:目标主机使用 VMware 虚拟机环境。

总的来说,目标主机有一些潜在的安全隐患,如会话标志未正确设置、内部 IP 泄漏以及可能暴露的目录列表。
#nmap #漏洞扫描 #SSH #HTTP #安全漏洞
nmap 收集信息:

### 1. 快速全端口扫描

sudo nmap --min-rate 10000 -p- 192.168.153.130
   

- 功能**:扫描目标 IP 地址(192.168.153.130)上的所有端口(1-65535)。
- **选项**:
- `--min-rate 10000`:设置最小扫描速率,每秒发送最少 10000 个数据包,加快扫描速度。
- `-p-`:扫描所有端口。
- **用途**:适用于需要快速发现目标主机上开放端口的场景。

### 2. **TCP 全连接扫描 + 服务版本识别 + 操作系统识别 + 默认脚本扫描


sudo nmap -sT -sV -sC -O -p 22,80 192.168.153.130
   

- 功能**:对目标 IP 地址执行 TCP 连接扫描(全连接),并同时执行服务版本识别、操作系统识别和默认的漏洞扫描脚本。
- **选项**:
- `-sT`:TCP 连接扫描(通过完整的三次握手连接目标主机端口)。
- `-sV`:服务版本识别,查找目标主机上运行的服务版本。
- `-sC`:执行 nmap 默认脚本(例如检测已知漏洞、配置问题等)。
- `-O`:操作系统识别。
- `-p 22,80`:仅扫描端口 22 和 80。
- **用途**:适用于详细的信息收集和漏洞识别,尤其是对常见的服务(如 SSH、HTTP)进行深度分析。

### 3. **UDP 扫描


sudo nmap -sU -p 22,80 192.168.153.130
   

- 功能**:对目标 IP 地址执行 UDP 扫描,扫描端口 22 和 80。
- **选项**:
- `-sU`:执行 UDP 扫描(与 TCP 扫描不同,UDP 扫描不会建立连接,通常较慢)。
- `-p 22,80`:扫描端口 22 和 80(通常这两个端口是 TCP 服务,但此命令是通过 UDP 扫描的)。
- **用途**:用于检测目标主机上的 UDP 服务,特别是在 UDP 协议上常用的服务。

### 4. **漏洞扫描


sudo nmap --script=vuln -p 22,80 192.168.153.130
   

- **功能**:对目标 IP 地址执行漏洞扫描,检查端口 22 和 80 是否存在已知的漏洞。
- **选项**:
- `--script=vuln`:启用 nmap 的漏洞扫描脚本(检查已知漏洞)。
- `-p 22,80`:扫描端口 22 和 80。
- **用途**:用于检测目标主机是否存在已知的安全漏洞,尤其适用于评估目标主机的安全性。

### 总结:
- **快速扫描**(第一个命令)适用于快速检测目标主机上开放的端口。
- **详细扫描**(第二个命令)用于获得目标的服务版本、操作系统信息和潜在漏洞。
- **UDP 扫描**(第三个命令)专门用于检测 UDP 协议上的服务,适用于识别不常见的 UDP 服务。
- **漏洞扫描**(第四个命令)通过漏洞脚本检查目标的已知漏洞,帮助识别潜在的安全风险。

这些命令可以帮助网络安全人员全面了解目标主机的开放端口、服务版本、操作系统信息,以及可能存在的安全漏洞。
#nmap #网络扫描 #漏洞扫描 #服务识别 #端口扫描
 
 
Back to Top