|
拿Kali直接怼公网IP,外网十次有九次是渗透白忙活。剩下那一次,外网你还没扫完端口,渗透VPS提供商的外网反滥用邮件已经躺你邮箱里了。 很多人拿到Kali第一件事就是渗透开个终端敲nmap -sS 目标IP,扫完发现全是外网filtered,然后开始怀疑人生。渗透这很正常。外网外网渗透和你在虚拟机里打靶机完全是渗透两码事,靶机是外网给你开了所有门的练习场,真实外网是渗透一堵墙,墙上可能连条缝都没有。外网 先搞清楚你面对的渗透是什么 公网上的目标,绝大多数有防火墙。外网云服务商的安全组、CDN回源保护、WAF,这些东西叠在一起,你从外面看到的开放端口可能只有80和443。有人扫到一个22端口开着就兴奋得不行,结果连上去发现是蜜罐,或者SSH版本被改过,密码试三次直接IP封禁。 我自己的做法是先做被动信息收集。别急着扫,先去看。Shodan、Censys、FOFA这些搜索引擎能告诉你目标暴露了哪些服务,而且不会触发任何告警。有一次我帮朋友看他的服务器,Shodan上一查,3306端口对公网开放,MySQL版本还是5.7的老版本。他自己完全不知道。这种才是真正有价值的入口,比你拿nmap硬扫效率高一百倍。 代理链是必须的 裸奔做外网渗透等于自报家门。你的真实IP一旦出现在目标日志里,后面什么都别谈了。最基础的操作是挂Tor,但Tor慢且很多目标直接屏蔽Tor出口节点。更实际的做法是买几台不同地区的VPS做代理链,或者用proxychains配合socks5代理。 proxychains的配置文件在/etc/proxychains4.conf,把代理按顺序写进去就行。但注意,不是所有工具都能走代理。nmap的SYN扫描在proxychains下基本废掉,因为TCP三次握手走代理会有问题。这时候用nmap -sT做全连接扫描,虽然慢但能走代理。或者干脆把扫描任务放在代理VPS上执行,只把结果传回来。 Web入口仍然是主战场 外网渗透真正能打进去的点,八成在Web应用上。SQL注入、文件上传、SSRF、反序列化,这些漏洞靶场里练了无数遍,放到真实环境里考验的是你对业务逻辑的理解。 举个例子。某次遇到一个目标,主站是CDN加WAF,扫了半天没戏。后来发现他们有个测试子域名,解析到一个直接暴露的IP,上面跑着同样的应用但没接WAF。从那个子域名打进去,一个普通的文件上传就拿到了webshell。WAF不是万能的,资产梳理才是。很多公司主站防护做得很好,但边缘资产一塌糊涂——旧版CMS、忘记下线的测试环境、员工自己搭的GitLab,这些才是突破口。 拿到shell之后的事 假设你运气好,通过某个漏洞拿到了一个低权限shell。别急着提权,先看环境。很多云主机上的容器环境,你拿到的shell可能就在Docker里,宿主机根本碰不到。先跑id、uname -a、cat /proc/1/cgroup看看自己在哪。 如果是普通Linux主机,提权手法就那些:SUID、sudo配置错误、内核漏洞、计划任务。但真实环境里最容易被忽略的是配置文件里的凭据。数据库密码、API密钥、云服务商的AccessKey,这些东西泄露的后果比提权严重得多。我见过一个案例,Web目录下的.env文件没删,里面躺着AWS的密钥,直接用那个密钥接管了整个云账号。 外网渗透这事,技术占一半,耐心占另一半。大部分时间你都在做信息收集和等待,真正 exploit 的时间可能不到十分钟。那些电影里敲几下键盘就进五角大楼的画面,看看就行。 |