关于shodan的安装和使用,传送门——> 渗透测试之Shodan的安装和使用

常用 Shodan 库函数

  • shodan.Shodan(key) :初始化连接API
  • Shodan.count(query, facets=None):返回查询结果数量
  • Shodan.host(ip, history=False):返回一个IP的详细信息
  • Shodan.ports():返回Shodan可查询的端口号
  • Shodan.protocols():返回Shodan可查询的协议
  • Shodan.services():返回Shodan可查询的服务
  • Shodan.queries(page=1, sort='timestamp', order='desc'):查询其他用户分享的查询规则
  • Shodan.scan(ips, force=False):使用Shodan进行扫描,ips可以为字符或字典类型
  • Shodan.search(query, page=1, limit=None, offset=None, facets=None, minify=True): 查询Shodan数据

先写一个简单的脚本,扫描 apache 的主机

import shodan    #导入shodan库
api=shodan.Shodan("cB9sXwb7l95ZhSJaNgcaO7NQpkzfhQVM") #指定API_KEY,返回句柄
try:
results=api.search('apache') #搜索apache,返回 JSON格式的数据
print(results)
print("Results found:%s"%results['total'])
for result in results['matches']:
print(result['ip_str']) #打印出ip地址
except shoadn.APIError,e:
print("Error:%s"%e)

返回的JSON格式的数据

{
'total': 8669969,
'matches': [
{
'data': 'HTTP/1.0 200 OK\r\nDate: Mon, 08 Nov 2010 05:09:59 GMT\r\nSer...',
'hostnames': ['pl4t1n.de'],
'ip': 3579573318,
'ip_str': '89.110.147.239',
'os': 'FreeBSD 4.4',
'port': 80,
'timestamp': '2014-01-15T05:49:56.283713'
},
...
]
}

我们也可以加上端口号,并且写入文件中,作为访问链接

import shodan

api=shodan.Shodan("cB9sXwb7l95ZhSJaNgcaO7NQpkzfhQVM")
def FindTarget():
try:
f=open("target.txt","w")
results=api.search('JAWS/1.0')
print("Results found:%s"%results['total'])
for result in results['matches']:
url=result['ip_str']+":"+str(result['port'])
print(url)
f.write(url)
f.write("\n")
f.close()
except shodan.APIError,e:
print("Error:%s"%e)
FindTarget()

最新文章

  1. HUD--递增数
  2. Third Day(上班第四天):Android开发环境配置问题相关
  3. elasticsearch agg
  4. js学习笔记7----return,arguments及获取元素样式
  5. 获取某个Group中所有对象的DisplayName
  6. BZOJ 2653 middle
  7. 用C#.NET调用Java开发的WebService传递int,double问题
  8. lintcode : 二叉树的层次遍历II
  9. RTP头结构解析
  10. 九度OJ 1480 最大上升子序列和 -- 动态规划
  11. 用C#实现生成PDF文档
  12. ASP.NET MVC企业级项目框架
  13. Linux下常用的压缩与解压命令
  14. setAction方法 Snackbar 右侧按钮可以被点击并处理一些事件
  15. Windows Phone 8.1开发:触控和指针事件2
  16. 清北学堂学习总结day2
  17. ES6学习路上的小学生,promise处理异步操作,简易原始起步之用。先能用,再深究!
  18. java001单词拼写
  19. hi3516a arm-hisiv300-linux-gcc jrtplib交叉编译
  20. CAP原则

热门文章

  1. CCF(元素选择器:50分):字符串+模拟
  2. POJ-1087(最大流+EK算法)
  3. [个人总结]pytorch中用checkpoint设置恢复,在恢复后的acc上升
  4. rest framework Views
  5. centos安装rar
  6. c语言跨文件调用函数中声明的变量
  7. OAuth2.0授权码模式实战
  8. GitlabCI/CD&Kubernetes项目交付流水线实践
  9. 面试准备——计算机网络(TCP的三次握手和四次挥手)
  10. HTML5和CSS3 PC端静态网页琐碎知识点