2014-12-15
by klion
0x01 shodan 是什么 :
1 2 3 4 5 6 7
| 同样是搜索引擎,但它并不像谷歌,bing...那样,只单单针对web 中的各类html数据进行爬取 shodan 是基于各类在线网络设备的旗标的全网搜索 如,各类边界网络摄像头,路由器,交换机... ,中间件服务[如,各类web服务器,数据库,分布式中间件,文件共享服务等...] 默认只能看到一部分搜索结果,具体是多少条已经忘记了 可能需要付点费才能看到更多的搜索结果,同样它也提供查询api,这就非常方便按照我们自己的扫描需求定制脚本 在渗透一些特定的网络设备或者自己手握0day批量打的时候还是非常好使的,俗称"工控设备渗透" ...
|
0x02 那,我们到底可以用它来干些什么呢
1 2 3 4 5 6
| 利用0day实施大规模批量入侵,前提是不要把自己的0day撞到别人的蜜罐里面去了,否则就可惜了 全网批量统计所有感染有某一数据特征的后门,可以专门用来检测某种定向攻击 批量扫描各种中间件的高危错误配置及能被远程利用的各类已知漏洞,也就是说完全可以把它当成一个高级的漏洞扫描器来用 批量探测各种弱口令 批量抓各种shell [ 不仅限于webshell,backdoor ... ]等…… ...
|
0x03 关于shodan本身的更多详情,请直接参考其官方站点 [注册个账号是必须的]:
0x04 跟google hacking一样,shodan也有一套属于自己的语法规则,下面是shodan 内置的几个简单过滤器:
1 2 3 4 5 6 7 8
| city: 城市,貌似只支持英文,而且不是能是简称,如,TOKYO,Hong Kong,Seoul... country: 指定国家或地区后缀,比如:cn,us,jp,tw,br,ph,vn,hk... hostname: 指定主机名,其实就是目标域名[域名如果是子域还需要在前面加个.] net: 指定网络范围,可以是单个ip或者cidr格式的ip段 os : 指定操作系统 centOS,win32,red hat,suse 等... port: 指定端口,HTTP (80),FTP (21),SSH (22),SNMP (161),SIP (5060)等... product: 指定具体的产品名称,如,各类web服务器,数据库服务器,网络设备名称等... ...
|
0x05 下面是一些简单的搜索实例:
1 2 3 4 5 6 7 8 9
| 搜集某个城市的特定设备 [这里暂以不同类型的web服务器为例] 标识 [自己可以事先多收集一些常见的软件和设备标识]: Microsoft-IIS/5.0 city:"TOKYO" 可逐个尝试能否直接写shell Microsoft-IIS/6.0 city:"Seoul" 可逐个尝试能否直接 RCE Microsoft-IIS/7.5 city:"Hong Kong" apache city:"Nagoya" Apache/2.2.27 city:"Nagoya" Tomcat city:"Seoul" 可逐个尝试能否直接 RCE cisco city:"Osaka" tplink city:"nanjing"
|
1 2 3 4 5 6
| 搜索特定版本的操作系统及端口: os:"linux" net:"72.34.62.0/24" os:"windows" net:"195.40.91.0/24" Apache city:"Hong Kong" port:"8080" product:"Apache Tomcat/Coyote JSP engine" Apache city:"Seoul" port:"8080" hostname:".polyu.edu.hk" os:"windows"
|
1 2 3 4 5 6
| 搜索指定国家地域特定类型的工具服务 (还是那句话,多搜集一些高质量的工具banner): product:"tomcat" net:"158.132.18.0/24" product:"apache" net:"158.132.18.0/24" product:"iis" net:"158.132.18.0/24" port:"8080" jboss country:CN port:"8080" jboss country:IN
|
1 2 3 4 5 6
| 扫描指定网段内的所有特定数据库服务器: product:"Mysql" net:"140.117.13.0/24" port:"3306" port:"1433" net:"78.131.197.0/24" port:"5432" net:"77.55.149.0/24" port:"1521" net:"78.143.192.0/12" port:"1521" city:"Osaka"
|
1 2 3 4 5
| 搜索特定远程管理终端端口: os:"windows" port:"3389" net:"107.160.1.0/24" os:"linux" port:"22" net:"107.160.1.0/24" os:"linux" port:"23" net:"107.160.1.0/24" os:"linux" port:"23" net:"87.124.0.0/15"
|
1 2 3
| 搜索ftp / tftp : port:"21" net:"107.160.1.0/24" port:"69" net:"218.242.16.0/24"
|
1 2 3 4 5 6 7 8 9 10
| 在某个城市中搜索指定的端口,操作系统及在线网络设备: city:"Hong Kong" port:"69" city:"Hong Kong" port:"3389" city:"Hong Kong" port:"22" city:"Hong Kong" port:"23" city:"Hong Kong" port:"3306" city:"Hong Kong" port:"110" city:"Hong Kong" os:"windows" city:"Hong Kong" product:"cisco" city:"Hong Kong" port:"8080"
|
1 2 3 4 5 6 7 8 9 10 11
| 搜索指定国家的特定设备,端口,服务器: port:"23" country:CN port:"1433" country:CN port:"3389" country:CN tplink country:CN huawei country:CN netcam country:CN country:CN net:"115.225.113.0/24" port:"22" country:CN router admin login country:HK hacked by country:HK
|
1 2 3
| 搜缺省密码: "default password" city:"Hong Kong" country:CN "default password"
|
1 2
| 搜exp[其实,就是把exploit上的东西扒下来]: https://exploits.shodan.io/welcome
|
1 2
| 搜索各类漏洞摄像头: netcam net:"187.189.82.0/24"
|
1
| 批量搜集一些开源web程序,尝试0day批量利用:
|
1
| 针对某个端口,批量搜集感染了某种数据标志的木马:
|
1
| 批量搜集一些经典漏洞尝试利用,比如:iis,tomcat,jboss... RCE,心脏滴血,bash远程执行,等等……:
|
0x06 下面是一些常见的默认用户名密码,可以尝试撞撞运气:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ACTi: admin/123456 or Admin/123456 Axis (traditional): root/pass, Axis (new): requires password creation during first login Cisco: No default password, requires creation during first login Grandstream: admin/admin IQinVision: root/system Mobotix: admin/meinsm Panasonic: admin/12345 Samsung Electronics: root/root or admin/4321 Samsung Techwin (old): admin/1111111 Samsung Techwin (new): admin/4321 Sony: admin/admin TRENDnet: admin/admin Toshiba: root/ikwd Vivotek: root/<blank> WebcamXP: admin/ <blank>
|
1 2 3 4 5
| 关于shodan 的入门用法到这里基本就差不多了,建议大家如果真的想用好,可以付点费自己写脚本,当然,你也可以直接用别人提供好的py shodan库 国内利用此api衍生出来的工具还是蛮多的,这里就不一一细说了 总之来讲,批量抓shell效果还是非常不错的 从上面我们也不难发现,利用的核心还是各种特征 [banner] 质量加上你自己的想象力,因为它直接决定了你的命中率 ...
|
0x07 另外,再介绍两个国内的小工具站,使用非常简单,纯图形化的,这里就不细说了:
1 2 3
| https://www.punkspider.org/ 在线web漏洞扫描 http://ics.zoomeye.org/ 基于shodan实现 ...
|
0x08 最后再提下bing(目前已经费掉了,很多人的C段旁站工具想必都是基于此api写的),下面是常见使用方法:
1
| ip:ip地址 它就会把这个ip所对应的所有域名都列出来
|
0x09 基于此api的各种C段旁站工具编写原理:
1 2 3 4
| 编写过程其实也很简单,就是把bing搜索的结果格式化截取输出一下 不过,在此之前你需要事先去bing申请一下搜索用的api 去微软的开发者中心申请一个即可 如果旁站能想通,那么C段也只不过是把254台机器在线的ip又轮训一遍而已,我想你应该懂了
|
0x10 一点小结:
关于google和shodan的用法,大概就介绍到这里了,使用都比较简单,基本就是几个过滤器来回的组装,随意的根据自己的实际需求拼装特征,说道底,还是看大家的想象力和对现有信息特征的敏感度,大家也看到了,如果完全手工的话,确实挺累的,为什么不写成自动化的脚本来帮我们完成呢,当然,这类的工具也有很多现成的,不过并不是按照咱们的想法来的,所以,最好自己动手……不过在写脚本之前,自己首先要能熟练使用才是,这样写出来的工具杀伤力才能更大些,当然,关于这类web搜索引擎所能产生的渗透效果的强弱,主要是还是看搜索引擎对目标收录的多少,如果目标站点建立的时间比较长,而且各大搜索引擎的收录量也比较好的话,这时候你利用谷歌固然成效显著,但如果一个站点刚建立不久,谷歌收录量也非常少,这时谷歌对你来讲也许就只是个摆设,这里说到的内容可能还只是各个搜索引擎利用的冰山一角,更多更强大的功能,还要靠大家一起来慢慢挖掘,对了,最后再说明一点,用这些搜索引擎的时候,最好全程挂上vpn,推荐美国的,原因大家应该都明白,自家人对自家人的限制几乎是最少的,不要问我为什么不介绍百度没办法,太不堪(原因大家都懂……)
0x10 一点心得:
一般我们在搜索引擎上搜集目标信息的时候,首先,应该直奔一些比较高危的漏洞特征,比如能快速getshell的,比如,默认账号密码,进去以后就只可以直接传shell的,此外,如果目标有支持jsp脚本的机器,我们首先就应该从jsp开始入手,因为jsp程序的权限一般都非常高,几乎是服务器的管理员权限,所以我们平时在搜集信息过程中,也尽量先找一些最好能直取权限的信息,孰轻孰重,自己心里一定要有分寸,这样可以避免我们做太多的无用功,当然,如果你手上有个开源的web程序未公开的0day,然后配合类似的搜索引擎利用,那结果可想而知,反正我们利用各种搜索引擎的最终目的无非就是想尽快找个目标边界先进去……