当前位置: 当前位置:首页 > 综合 > linux渗透正文

linux渗透

作者:娱乐 来源:时尚 浏览: 【大 中 小】 发布时间:2026-10-17 06:16:59 评论数:

拿到一台Linux靶机,第一件事不是掏漏洞扫描器,是看它开了什么端口、跑了什么服务。nmap -sS -sV -p- 扫一遍,结果比任何教科书都直观。我见过太多人上来就翻CVE列表,连对面是Apache还是Nginx都没确认。这不是渗透,这是碰运气。

端口扫完,接下来是服务指纹。比如扫出22端口开着OpenSSH 7.4,心里就有数了——这个版本存在用户名枚举漏洞(CVE-2018-15473)。用auxiliary/scanner/ssh/ssh_enumusers跑一下,能列出系统里有哪些用户。别小看这个,拿到用户名列表,后面爆破或者钓鱼就有靶子了。

Web服务是重头戏。80或443端口开着,先看HTTP响应头里的Server字段。如果显示Apache/2.4.49,直接上CVE-2021-41773路径穿越。curl --path-as-is http://target/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd 一把梭,能读文件就能拿shell。这个漏洞我复现过不下十次,成功率极高,原因就是很多运维根本没升级。有个细节:如果目标开了CGI,还能直接RCE。echo '' > shell.php 然后利用穿越写进去,访问一下就弹shell。简单粗暴。

数据库端口3306或者5432暴露在外,别急着上hydra。先试试空密码或者弱口令。mysql -h target -u root -p 回车直接进,这种案例在内部测试环境里一抓一大把。进去了就找web目录的绝对路径,写个UDF提权或者直接select into outfile写webshell。前提是secure_file_priv没限制。我遇到过一台CentOS 7,MySQL 5.7,secure_file_priv是空值,直接into outfile写shell到/var/www/html,三分钟结束战斗。

拿到低权限shell之后,提权才是分水岭。很多人卡在这一步。先跑一遍枚举脚本,LinEnum或者linux-exploit-suggester。重点关注SUID文件、计划任务、内核版本。比如内核是4.4.0-116,直接上CVE-2017-16995,编译一个exp就提权到root。或者找SUID的nmap,老版本nmap --interactive能执行!sh。还有更隐蔽的:/etc/passwd可写,直接openssl passwd生成一个root密码哈希追加进去。这些手法不新鲜,但管用。

横向移动看内网。一台机器拿下,翻~/.ssh/known_hosts、~/.bash_history、config文件里的数据库连接串。我曾在某台跳板机的history里翻到mysql -h 10.0.0.5 -u admin -pPassw0rd,直接连到核心库。还有一次,/home/user/.ssh/id_rsa没加密,拿这个私钥直接ssh到另外三台机器。所以渗透完记得清痕迹,不然蓝队顺着你的路径反向摸回来。

最后说个真实案例。某次授权测试,目标是一台Ubuntu 18.04,只开了80和22。Web是WordPress,插件目录遍历拿到wp-config.php,里面有数据库密码。登录phpMyAdmin,通过SQL写shell到插件目录,然后反弹shell。内核是4.15.0,用CVE-2019-13272提权到root。整个过程没有用任何0day,全是已知漏洞加配置疏忽。渗透的本质不是炫技,是耐心和信息收集。你比别人多看一眼配置文件,多试一个弱口令,结果可能完全不同。

Linux渗透没有银弹。工具会过时,漏洞会修补,但人的疏忽永远存在。把基础打牢,比背一百个exp有用。