U
    @6^                     @   s,   d dl Zd dlmZmZ G dd deZdS )    N)SpiderFootPluginSpiderFootEventc                   @   sx   e Zd ZdZi Zi ZdZddddddd	d
dddddddddddddddddgZe fddZ	dd Z
d d! Zd"d# ZdS )$sfp_dnscommonsrvzdDNS Common SRV:Footprint,Investigate,Passive:DNS::Attempts to identify hostnames through common SRV.Nz
_ldap._tcpz
_gc._msdcsz_ldap._tcp.pdc._msdcsz_ldap._tcp.gc._msdcsz_kerberos._tcp.dc._msdcsz_kerberos._tcpz_kerberos._udpz_kerberos-master._tcpz_kerberos-master._udpz_kpasswd._tcpz_kpasswd._udpz	_ntp._udpz	_sip._tcpz	_sip._udpz	_sip._tlsz
_sips._tcpz
_stun._tcpz
_stun._udpz_stuns._tcpz
_turn._tcpz
_turn._udpz_turns._tcpz_jabber._tcpz_xmpp-client._tcpz_xmpp-server._tcpc                 C   s:   || _ |  | _d| _t| D ]}|| | j|< q"d S )NDNS)sftempStorageevents__dataSource__listkeysopts)selfsfcuserOptsopt r   ;/var/www/spiderfoot.crq.systems/modules/sfp_dnscommonsrv.pysetupC   s
    
zsfp_dnscommonsrv.setupc                 C   s   ddgS )NINTERNET_NAMEDOMAIN_NAMEr   r   r   r   r   watchedEventsL   s    zsfp_dnscommonsrv.watchedEventsc                 C   s   ddgS )Nr   AFFILIATE_INTERNET_NAMEr   r   r   r   r   producedEventsR   s    zsfp_dnscommonsrv.producedEventsc                 C   s  |j }|j}|j}| jd| d |  |dkrJ| jd| d  d S | j|}|}|| jkrhd S d| j|< tj	 }| j
dddkr| j
d g|_| jd	 | jD ]}|  r d S |d
 | }	| j|	| jkrqz||	d}
W n( tk
r } zg }
W 5 d }~X Y nX |
D ]v}|j d
}|  |r^td|| j|}| | ntd|| j|}| | td|	| j|}| | qqd S )NzReceived event, z, from r   z	Ignoring z, from self.T
_dnsserver z'Iterating through possible SRV records..SRVr   r   ZDNS_SRV)	eventTypemoduledatar   debug
hashstringr   dnsresolverResolverr   getnameservers	commonsrvcheckForStopqueryBaseExceptiontargetto_textrstrip	getTargetmatchesr   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDataeventDataHashparentEventresZsrvnameZanswerseaZ	tgt_cleanevtr   r   r   handleEventV   s`    



  
 zsfp_dnscommonsrv.handleEvent)r1   
__module____qualname____doc__r   optdescsr   r(   dictr   r   r   r>   r   r   r   r   r      sD   '	r   )dns.resolverr#   sflibr   r   r   r   r   r   r   <module>   s   