3
@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>   || _ | j | _d| _x"t|j D ]}|| | j|< q$W 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jd| d |  |dkrJ| jjd| d  d S | jj|}|}|| jkrhd S d| j|< tjj	 }| j
jdddkr| j
d g|_| jjd	 x| jD ]}| j rd S |d
 | }	| jj|	| jkrqy|j|	d}
W n( tk
r } z
g }
W Y d d }~X nX x~|
D ]v}|jj jd
}| j j|r`td|| j|}| j| ntd|| j|}| j| td|	| j|}| j| q W qW d 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   sN    







zsfp_dnscommonsrv.handleEvent)r0   
__module____qualname____doc__r   optdescsr   r'   dictr   r   r   r=   r   r   r   r   r      sB   	r   )dns.resolverr"   sflibr   r   r   r   r   r   r   <module>   s   