Shodan1:
须知
本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若有人因此作出任何危害网络安全的行为,后果自负,与本人无关。
:严禁用Shodan干违法乱纪的事情,如果有人学习本篇文章后做出破坏法律的事情一律与本人无关,本篇文章只用作学习途径使用。也希望你们不要干坏事
网站:
Shodan Search Engine
基本介绍:
原理:
优缺点:
功能:
Kali安装shodan
一些国家代码:
使用:
search命令的使用:
shodan search --limit 10 --fields ip_str country:cn port:3389
上面这条命令有一个错了,看你能不能看出来
深色是color
3389端口通常是一个Windows远程桌面服务的一个端口。
shodan search --limit 10 --fields ip_str country:jp "has_vuln:true"
如果你用has_vuln扫到漏洞了也一定不要去随便瞎打,法无授权不可为,没有给你授权你打的话,然后给什么东西弄没了,别人追责的话是要负法律责任的。上面这条指令就是扫描日本的哪些网站有漏洞。这里随便找了一个IP就不放出来了
那么我这是随便扫的,如果我想要指定一个cve来练手该怎么找呢,通过情况下可以
shodan search --limit 10 --fields ip_str country:jp port "has_vuln:CVE-2020-0601"
但是可能不是很准确,那么接下来CVE的指纹特征也即是16进制特征就可以派上用场了,Shodan2里面写了
host指令:
shodan host ip_addr
Shodan2
如何去查cve的一个漏洞
这里以cve-2019-0708为例。
我们可以通过下面这样一条命令来通过Shodan来搜索哪些服务器有着这样的一个漏洞。
shodan search --limit 10 --fields ip_str country:jp port "\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"
上面这个字符串就是cve-2019-0708的一个16进制字符串的一个特征,类似于一个指纹的一个东西。
(是不是没有敲对,好像没搜索到)
cve-2019-0807简述
那么什么是cve-2019-0708呢,就是一个Windows远程桌面服务的一个漏洞。通过利用远程桌面的3389端口,RDP协议进行攻击,从而导致机器蓝屏瘫痪。当然首先要搜索她是否开放了这个端口。现在的电脑主机很多都是不开放这个端口的。而且该漏洞的影响范围也不是很大
该漏洞只影响旧版本的Windows系统,包括:
Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows 2003、Windows XP。
Windows 8和Windows 10及之后版本不受此漏洞影响。
你要说这个漏洞没用的话那可未必,毕竟可能有些地方现在还在用win7的操作系统,比如你的学校机房。还有一些虚拟机之类的。不过你在打之前首先得测试一下他的主机是否存活也就是是否还能不能进行连接。如何开启这个服务
cve-2019-0807原理
该漏洞是通过检查用户的身份验证,导致可以绕过认证不用任何交互,直接通过rdp协议进行连接发送恶意代码执行命令到服务器中去。那么这是如何绕过的
存在漏洞的远程桌面服务器,在接收到特殊数据包时会释放一个内部信道 MS_T120 的控制结构体,但并未将指向该结构体的指针删除(有点pwn里面uaf的味道),而且在远程桌面连接结束之后还会调用 MS_T120 结构体内的一个函数指针,若攻击者可通过远程发送数据重新占据被释放的 MS_T120,并为结构体内的函数指针赋恰当的值,即可实现远程命令执行。
Shodan3
实例
先来讲一讲vnc空密码连接这条搜索端口的指令
shodan search --limit 10 --fields ip_str "authentication disabled" country:jp port:5900
然后我们进vnc工具里面直接输入shodan的搜出来的ip随便连几个看看
还是有点害怕的,第二个连出来好像是一个正在用软件在工作,有点害怕,不过我没动什么东西,估计也不会怎么无聊对我溯源吧。当然你们也不要随便去瞎搞
然后再学一学count的指令
shodan count ' "\x03\x00\x00\x0b\x06\x0d\x00\x00\x124\x00" '
这个指令就是搜索一个这个16进制特征的漏洞,不过为什么我的是0呢?不应该啊,应该是哪里出了问题
shodan也是有识别蜜罐的一个功能的,我们看看怎么来使用
shodan honeyscore ip
然后这个就是他的一个检测的一个指令,但是有时候可能会不灵啊。然后还可以用。还可以用--history查看网站的一个历史
shodan myip;shodan host ip --history
来查看自己的指令,不过我这看起来怎么怪怪的,算了先不管了
对了那个vnc空密码的指令的ip集合我们还可以把它下载下来
//下载shodan download --limit 30 ip_str "authentication disabled" country:jp port:5900//解压shodan parse --fields ip_str '/home/kail/Desktop/ip_str.json.gz' >vnc.txt
然后就可以通过这两条指令把带有vnc空密码连接的漏洞存放在vnc.txt文档里面。
Shodan4
实例
然后在这里我们再学一条指令
shodan search --limit 10 --fields ip_str,port http.title:hacked by country:cn
这条指令的意思就是去查看一些已经被黑掉了的网站,相信懂一点前端知识的同学应该知道这个,title在html里面就是代表标题的意思,然后我们这里搜出来好多个ip。打开一个看看
可以看到这个网站已经被黑了,被别人挂了一个黑页,还骄傲的挂上了自己的名字(),不知道被抓住的话会不会老实
其实了解title的同学的话这条命令还可以再发散一下自己的思维,联想一些其他的更多的页面相关的一个东西
然后这条指令还可以精确到城市
shodan search --limit 10 --fields ip_str,port http.title:hacked by country:cn city:beijing
然后不止hackedby,我们还可以搜mysql之类的
shodan search --limit 10 --fields ip_str,port http.title:mysql
然后还有查看23端口弱口令的一个命令
shodan search --limit 10 --fields ip_str,port http.title:mysql
其实上面这些都大差不差,你们知道每个字符代表的是什么含义就可以了,然后自己还可以创新玩出一些新花样
shodan search --limit 10 --fields ip_str,port "cisco-authorized port:23,88"
Shodan5
实例
然后在这里我们先介绍一个shodan搜网段的一个命令
shodan search --limit 10 -fields ip_str.port net:208.99.84.0/24
这是搜索在以上网段下的一个ip,相当于搜索和这个ip临近的ip有哪些。然后我们还可以搜索一些组织的ip地址
shodan search --limit 10 --fields ip_str.port org:nas.gov
这个--fields ip_str.port就是过滤信息的,如果不输入这个的话则会有很多一些我们可能不需要的信息出来,通过这条指令我们可以过滤其他的信息,只显示出他的ip信息及其端口信息。
hr然后我们还可以找一些网址所在组织的ip地址,或许在一些溯源方面有用?
shodan search --limit 10 --fields ip_str.port hostname:google
然后这条指令我觉得是比较重要的,可以用这条指令去打一些日本的登陆网站去练一下手(开玩笑的)
shodan search --limit 10 --fields ip_str.port country:jp http.html:login
r=然后还可以这个shodan还可以查waf,这里以安全狗为例。总之http.都用法还待探索
shodan search --limit 10 --fields ip_str.port country:jp http.waf:safedoge
然后我们再来看一个Mongodb的一个未授权登录的一个命令
shodan search --limit 10 --fields ip_str "MongoDB server information -authentication" port:27017
这个命令不知道为什么搜索不到一个ip,然后我就去网上查了一些资料发现Mongdb后面的db也需要大写才可以搜到IP不然搜不到.然后连上了大多也就只有一种这样的信息
基本上能连上的数据库都不是什么很重要的信息,如果是什么公司的重要信息的话什么防护都不做,那也只能说他们公司的安全人员挺厉害的,或者说他们可能没有安全人员。当然就算连上了也最好不要去乱改,或者乱删一些什么东西,以免给自己带来一些不必要的麻烦。
须知:
注意:严禁用Shodan干违法乱纪的事情,如果有人学习本篇文章后做出破坏法律的事情一律与本人无关,本篇文章只用作学习途径使用。也希望你们不要干坏事
然后再来看看这条指令
shodan search --limit 10 --fields ip_str "X-Jenkins" OR "Set-cookie:JSESSIONID" http.title:"Dashboard"
这是什么意思呢?首先我们需要知道jenkins是什么。上谷歌或者微软搜一下,或者问chatgpt也可以,我在这里简单介绍一下
“Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)流程的管理。它被广泛用于软件开发和 DevOps 环境中,帮助团队自动化构建、测试、部署等软件开发任务,从而提高开发效率和软件质量。 ”
这是GPT的解释,我们现阶段只需要了解他是一个和软件开发和项目构建管理,网站构建的一个工具就行了。
然后上面那条shell命令就是查找HTTP响应头中包含X-Jenkins字段的服务。X-Jenkins是Jenkins(一个流行的开源自动化服务器)在其HTTP响应头中常见的字段,通常用于识别Jenkins实例。
Shodan6
讲讲shodan的可视化界面
看起来挺酷炫的,果然还是web更偏向黑客一些,pwn的话。。。。感觉不适合从一开始就学。然后在这里我们也可以输入一些用shodan命令行的指令
这是之前说过的一个3389开放端口的命令,那么可能有人要问了,既然我可以用这个图形化界面了,还学什么linux shell命令,这个问题当你用图形化界面之后再用终端就知道了。
然后shodan还可以一个监视的功能,可以指定一个ip然后对他进行定期监视,如果这个ip所指向的网站更新了什么,或者改动了什么的话就会第一时间发邮件通知你,当然或许也可以指定自己的ip来看看自己的网站有没有被搞。
左上角这里有一个Monitor模块点进去就可以开始添加你要监视的域或者ip了。下面是一个监视ip的例子
下面的这个Notification Services是自己的一个邮箱信息,我自己的就不在里面放出来了。如果你想在下面多添加一点邮箱的话,那么可以在
Setting这里设置,然后再点这个ADD即可
当然这个监视我们也可以通过在终端里面调用shodan实现,下面是其他的指令
然后这里再讲一个nslookup的使用,这个主要是用来查看网站有没有开CDN的一个手段用起来也挺简单的。直接cmd打开命令行再nslookup +域名就可以了,然后如果返回的东西有多个ip的话基本上可以确定他是开了一个CDN的,那么关于如何绕过CDN的话我们后面也行会介绍一下
Shodan7
最后我们来讲一讲shodan的一些命令及其一些端口,然后给他做一个总结
shodan info
可以看到这条命令是我们的一个查看我们自己查询和扫描的一个剩余次数,由于我这个不是高级会员,所以一个月的次数有一点少,不过但是对我这种不是经常用的人来说也足够了。当然如果你觉得太少了的话可以去买一个高级会员,也不是很贵一顿饭钱而已
shodan domain 域名
然后这条命令可以用来查看域名的一个相关情况。当然查询域名的话不一定要shodan,之前在信息收集的时候也讲了很多工具。这个到时候自己看看就行
然后我们再来说说shodan的原理,我们在实现shodan host ip 或者shodan --search ..............什么反正上面说过的命令时,我们获取到的ip信息它并不是一个实时的信息。什么意思呢?shodan他其实有一个数据库,然后我们再搜素一些什么MongoDB未授权,或者vnc空密码连接的时候。我们获取到的ip并不是一个实时的ip信息,而且shodan他们那么之前已经扫到过的有漏洞的服务器,然后他们把ip丢到数据库里面,然后我们搜索的时候,就在数据库里面查找匹配。
那么可能有人要说了,那我想要获取一个实时的信息要怎么做?
用scan命令进行一个实时的扫描即可
shodan scan submit ip地址shodan scan list //查看扫描信息
那么可能就会有人问了,这个操作对服务器的压力大吗?会不会导致封ip,这个可以自己想一想。或者上网找一点资料
GPT对shodan扫描是否会封ip的解释
使用 Shodan 进行扫描(shodan scan
)通常不会对目标服务器造成过大压力,导致服务器封禁IP。原因如下:
何时可能导致封IP?
尽管Shodan的扫描通常不会直接引发目标服务器封禁IP,但如果你自行使用Shodan的搜索结果进行进一步的扫描(例如,使用Shodan发现一个IP地址并进行深度扫描),那么可能会遇到以下问题:
针对单个目标的高频扫描: 如果你针对某个IP地址进行高频的、深度的扫描(例如使用工具如Nmap进行端口扫描、服务指纹识别等),而且扫描频率过高,可能会引起目标服务器的反应,触发防火墙或入侵检测系统的警报,最终导致IP被封禁。 使用Shodan API进行批量扫描: 如果你通过Shodan的API获取大量的IP地址,并且在短时间内对这些IP进行扫描,可能会对某些目标网络造成较大负担,尤其是当你使用非常高频的扫描时,这有可能被目标服务器识别为恶意行为,导致IP封禁。 滥用Shodan服务: Shodan自身的API存在调用频率限制,如果你违反了Shodan的使用条款(如过度使用API,或者进行非法扫描),你可能会被Shodan封禁账户,但这与目标服务器无关。如何避免被封禁IP:
避免过度扫描: 如果你从Shodan获取了目标IP地址,确保你的扫描不会过于频繁或高强度。定期进行小范围、低频率的扫描,以避免引起目标服务器的警觉。 遵守Shodan的使用规定: 使用Shodan时,确保遵循其使用政策,避免滥用API或过度扫描。对于任何扫描活动,务必保持合法和道德。 使用VPN或代理: 如果你需要扫描特定目标,可以考虑使用VPN或代理来隐藏你的IP地址,这样即使某些扫描导致了封禁,也不会直接影响到你的本地IP。 进行授权的安全测试: 最重要的是,如果你进行的是渗透测试或安全审计,确保你有合法授权对目标进行扫描。如果没有授权,未经允许的扫描可能构成非法行为,并导致目标封禁或法律责任
然后我们再来学最后一个指令
shodan stats --facets ssl.version country:cn has_ssl:true http
这条命令主要就是起到一个统计中国使用了ssl的一个ip数量。
好了shodan的命令我这里虽然展示的不是很多,不过最重要的是自己学会使用一些国家(country),漏洞,版本,port。http.html什么的一些参数的灵活搭配。
然后最后我们再来说一下有哪些常见的端口
mysql:3306//mysql数据库服务信息HTTP:80HTTPS:443FTP:43SSH:22SMTP:25POP3:110IMAP:143DNS:53PostgreSQL数据库服务:5432远程桌面协议(RDP):3389TFTP:69NetBIOS端口:137-139端口67-68:DHCP
最后讲讲谷歌语法
本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。
严禁用Shodan干违法乱纪的事情,如果有人学习本篇文章后做出破坏法律的事情一律与本人无关,本篇文章只用作学习途径使用。也希望你们不要干坏事
最后在结尾再感谢一下泷羽Sec带来的课程,大家如果也想学习的话可以直接在b站搜泷羽sec,然后对这个计划感兴趣的话也可以关注一下他们的公众号,名字也是泷羽sec。