美文网首页Zabbix
用于探测主机web端口和对应内容的脚本

用于探测主机web端口和对应内容的脚本

作者: Your7Maxx | 来源:发表于2021-05-14 09:36 被阅读0次

最近的测试项目中,由于目标的资产太庞大,3000+个IP,端口扫描情况也是多的难以下手,我首先先人工大概过了一遍敏感端口,一遍下来明显吃不消,这样的人力排查既费时又费力,还存在疏漏,所以写了个脚本,针对web进行内容进行探测,减少了人工确认的工作。

import nmap
import requests
import multiprocessing
from bs4 import BeautifulSoup

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138    Safari/537.36'}
def scan_port(ip):
    nm=nmap.PortScanner()
    tmp=nm.scan(ip,'80','-sS -Pn')
    #print(tmp['scan'].items())
    #print('**'*10)
    for host,result in tmp['scan'].items():
        #print(host)
        #print(result['tcp'])
        if result['status']['state'] == 'up':
            for port in result['tcp']:
                if result['tcp'][port]['state'] == 'open':
                    print('ip: '+f'\033[35m{host}\033[0m'+' TCP端口号:'+str(port)+' state:'+result['tcp'][port]['state'] + ' service: '+result['tcp'][port]['name'])
                    get_content(host)

                    '''
                    print('状态:' + result['udp'][port]['state'])
                    print('原因:' + result['udp'][port]['reason'])
                    print('额外信息:' + result['udp'][port]['extrainfo'])
                    print('名字:' + result['udp'][port]['name'])
                    print('版本:' + result['udp'][port]['version'])
                    print('产品:' + result['udp'][port]['product'])
                    print('CPE:' + result['udp'][port]['cpe'])
                    print('脚本:' + result['udp'][port]['script'])
                    '''

def get_content(host):
    response = requests.get('http://' + host, headers=headers,verify=False)
    response.encoding = response.apparent_encoding
    soup = BeautifulSoup(response.text, 'lxml')
    if soup.title == None:
        print('content:'+f'\033[35m{response.text}\033[0m')
    else:
        print('content:' + f'\033[35m{soup.title.string}\033[0m')

if __name__ == '__main__':
     iplist=open("ipList.txt","r")
     for ip in iplist:
        ip=ip.strip('\n')
        scan_port(ip)
    print("All of the IP have been scanned ,Task Done")

效果如下:


image.png

其实还可以加上协程等方式提高脚本的运行速度,脚本有待改进,目前能用就行。

相关文章

  • 用于探测主机web端口和对应内容的脚本

    最近的测试项目中,由于目标的资产太庞大,3000+个IP,端口扫描情况也是多的难以下手,我首先先人工大概过了一遍敏...

  • Bizarre Adventure Sticky Fingers

    资产探测 IP探测 端口探测 开放22,53,80,5355端口,80端口为Web页面,没找到有价值的内容,扫一波...

  • 内网渗透-信息收集

    00 信息收集的方向 主机存活探测 主机端口开放情况 主机服务探测 主机操作系统探测 网段分布情况 漏洞信息探测 ...

  • CewlKid:Vulnhub

    资产探测 存活IP探测 开放端口探测 开放22,80,8080端口,80端口为apache页面,8080Web页面...

  • 网络安全扫描器:Nmap for mac

    Nmap for mac是一款开放源代码的网络探测和安全审核的工具。用于网络探索,安全审计,主机监控,端口扫描和其...

  • 「Docker」配置Nginx反向代理

    功能需求 同一主机上有多个web项目,需要将不同的宿主机端口绑定到对应域名 解决方案 宿主机可以直接配置Nginx...

  • Linux脚本进阶学习笔记

    1、编写脚本实现传入进程pid,查看对应进程/proc下CPU、内存指标 2、编写脚本实现每分钟检查一个主机端口是...

  • nmap 使用

    基本上我的nmap扫描就是为了能够探测某台主机开放的端口和某个端口是否开放,做个记录 nmap -Pn www.b...

  • shell实现端口监控、日志清理、服务监控

    1.通用类脚本 2.端口监控脚本 3.主机状态监控 日志清理压缩脚本

  • Ready(升级完整shell,容器逃逸)

    服务探测 开放端口 详细端口信息 web robots.txt 在这个页面确认gitlab版本为:11.4.7 搜...

网友评论

    本文标题:用于探测主机web端口和对应内容的脚本

    本文链接:https://www.haomeiwen.com/subject/udixjltx.html