Python中shodan模块的使用
2024-10-12 11:32:10
关于shodan的安装和使用,传送门——> 渗透测试之Shodan的安装和使用
常用 Shodan 库函数
shodan.Shodan(key)
:初始化连接APIShodan.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()
最新文章
- HUD--递增数
- Third Day(上班第四天):Android开发环境配置问题相关
- elasticsearch agg
- js学习笔记7----return,arguments及获取元素样式
- 获取某个Group中所有对象的DisplayName
- BZOJ 2653 middle
- 用C#.NET调用Java开发的WebService传递int,double问题
- lintcode : 二叉树的层次遍历II
- RTP头结构解析
- 九度OJ 1480 最大上升子序列和 -- 动态规划
- 用C#实现生成PDF文档
- ASP.NET MVC企业级项目框架
- Linux下常用的压缩与解压命令
- setAction方法 Snackbar 右侧按钮可以被点击并处理一些事件
- Windows Phone 8.1开发:触控和指针事件2
- 清北学堂学习总结day2
- ES6学习路上的小学生,promise处理异步操作,简易原始起步之用。先能用,再深究!
- java001单词拼写
- hi3516a arm-hisiv300-linux-gcc jrtplib交叉编译
- CAP原则