3
@6^A                 @   s<   d dl mZmZmZ ddddgddiZG dd	 d	eZd
S )    )
SpiderFootSpiderFootPluginSpiderFootEventzhosts-file.net Malicious Hosts_hphostslistdomainz(http://hosts-file.net/download/hosts.txt)idtypechecksurlc               @   sd   e Zd ZdZdddddZddddZd	Ze fd
dZdd Z	dd Z
dd Zdd Zdd Zd	S )sfp_hostsfilenetzhosts-file.net Malicious Hosts:Investigate,Passive:Reputation Systems::Check if a host/domain is malicious according to hosts-file.net Malicious Hosts.T   )r   checkaffiliatescheckcohostscacheperiodzApply checks to affiliates?z?Apply checks to sites found to be co-hosted on the target's IP?z,Hours to cache list data before re-fetching.)r   r   r   Nc             C   s8   || _ | j | _x"t|j D ]}|| | j|< qW d S )N)sftempStorageresultsr   keysopts)selfsfcuserOptsopt r   ;/var/www/spiderfoot.crq.systems/modules/sfp_hostsfilenet.pysetup0   s    
zsfp_hostsfilenet.setupc             C   s
   dddgS )NINTERNET_NAMEAFFILIATE_INTERNET_NAMECO_HOSTED_SITEr   )r   r   r   r   watchedEvents<   s    zsfp_hostsfilenet.watchedEventsc             C   s
   dddgS )NMALICIOUS_INTERNET_NAME!MALICIOUS_AFFILIATE_INTERNET_NAMEMALICIOUS_COHOSTr   )r   r   r   r   producedEventsB   s    zsfp_hostsfilenet.producedEventsc       	      C   s  d}|dkr | j j|| jd }x\ttj D ]J}t| d }||koXt| d dkr0t }t| d }| j jd| | jjd	d
|d< |d d kr| j j	|| jd | jd d}|d d kr| j j
d| d d S | j jd| |d  t|d tkrt|d |d< |dkrLd| d |d krL| j j|d | d  |S d| d |d kr0| j j|d | d  |S q0W d S )N r   _internettldsr   r	   r   r   sfmal_r   r   content_fetchtimeout
_useragent)timeout	useragentzUnable to fetch Fz
127.0.0.1	
z
 found in z list.)r   
hostDomainr   r   	malchecksr   dictcacheGetgetfetchUrlerrorcachePutr	   strdebug)	r   r   target
targetType	targetDomcheckciddatar   r   r   r   resourceListG   s0      zsfp_hostsfilenet.resourceListc             C   s|   xvt tj D ]f}t| d }||kr|t| d kr| jjd| d | d |  t| d dkr| j|||S qW d S )Nr   r
   zChecking maliciousness of z (z) with: r	   r   )r   r/   r   r   r7   r>   )r   
resourceIditemTyper8   r;   r<   r   r   r   
lookupItemg   s    zsfp_hostsfilenet.lookupItemc             C   sF  |j }|j}|j}| jjd| d |  || jkrL| jjd| d  d S d| j|< |dkrr| jjdd rrd S |d	kr| jjd
d rd S xtt	j
 D ]}t	| d }| j| r|dkrd}|dkrd}|d	krd}|dkrd}| j rd S | j|||}	|	d k	r|d | d d |	 d }
t||
| j|}| j| qW d S )NzReceived event, z, from z	Skipping z, already checked.Tr   r   Fr   r   r   r   r   r!   r"   r#   z [z]
z<SFURL>z</SFURL>)r   r   r   )	eventTypemoduler=   r   r7   r   r   r2   r   r/   r   checkForStoprA   r   __name__notifyListeners)r   event	eventNamesrcModuleName	eventDatar;   r<   typeIdevtTyper   textevtr   r   r   handleEvents   s@    


zsfp_hostsfilenet.handleEvent)rE   
__module____qualname____doc__r   optdescsr   r0   r   r    r$   r>   rA   rO   r   r   r   r   r      s    r   N)sflibr   r   r   r/   r   r   r   r   r   <module>   s   
