mirror of https://github.com/MISP/misp-training
154 lines
4.4 KiB
TeX
154 lines
4.4 KiB
TeX
|
% DO NOT COMPILE THIS FILE DIRECTLY!
|
||
|
% This is included by the other .tex files.
|
||
|
|
||
|
\lstdefinelanguage{json}{
|
||
|
basicstyle=\ttfamily\footnotesize,
|
||
|
numbers=left,
|
||
|
numberstyle=\ttfamily\footnotesize,
|
||
|
stepnumber=1,
|
||
|
numbersep=8pt,
|
||
|
showstringspaces=false,
|
||
|
breaklines=true,
|
||
|
frame=lines,
|
||
|
backgroundcolor=\color{background},
|
||
|
literate=
|
||
|
*{0}{{{\color{numb}0}}}{1}
|
||
|
{1}{{{\color{numb}1}}}{1}
|
||
|
{2}{{{\color{numb}2}}}{1}
|
||
|
{3}{{{\color{numb}3}}}{1}
|
||
|
{4}{{{\color{numb}4}}}{1}
|
||
|
{5}{{{\color{numb}5}}}{1}
|
||
|
{6}{{{\color{numb}6}}}{1}
|
||
|
{7}{{{\color{numb}7}}}{1}
|
||
|
{8}{{{\color{numb}8}}}{1}
|
||
|
{9}{{{\color{numb}9}}}{1}
|
||
|
{:}{{{\color{punct}{:}}}}{1}
|
||
|
{,}{{{\color{punct}{,}}}}{1}
|
||
|
{\{}{{{\color{delim}{\{}}}}{1}
|
||
|
{\}}{{{\color{delim}{\}}}}}{1}
|
||
|
{[}{{{\color{delim}{[}}}}{1}
|
||
|
{]}{{{\color{delim}{]}}}}{1},
|
||
|
}
|
||
|
|
||
|
\begin{frame}[t,plain]
|
||
|
\titlepage
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}
|
||
|
\frametitle{Context}
|
||
|
\begin{itemize}
|
||
|
\item You receive emails with IoC's inside
|
||
|
\item How to create an event out of it?
|
||
|
\item Create event manually and copy paste
|
||
|
\item $\to$ This works once or twice
|
||
|
\item Forwarding the email would be nice
|
||
|
\item $\to$ mail\_to\_misp
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}
|
||
|
\frametitle{Features: Email handling}
|
||
|
\begin{itemize}
|
||
|
\item Extraction of URLs and IP addresses and port numbers
|
||
|
\item Extraction of hostnames from URLs
|
||
|
\item Extraction of hashes (MD5, SHA1, SHA256)
|
||
|
\item DNS expansion
|
||
|
\item Subject filters
|
||
|
\item Refanging of URLs ('hxxp://...')
|
||
|
\item ... and more
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}
|
||
|
\frametitle{Features: Support MISP features}
|
||
|
\begin{itemize}
|
||
|
\item Add tags automatically
|
||
|
\item Ignore 'whitelisted' domains
|
||
|
\item Configurable list of attributes not to enable the IDS flag
|
||
|
\item DNS expansion
|
||
|
\item Automatically create 'external analysis' links based on filter list (e.g. VirusTotal, malwr.com)
|
||
|
\item Automatically filter out attributes that are on a server side warning list
|
||
|
\item Support for value sighting
|
||
|
\item ... and more
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}
|
||
|
\frametitle{Implementation}
|
||
|
\begin{itemize}
|
||
|
\item Legacy
|
||
|
\begin{itemize}
|
||
|
\item Email $\to$ Apple Mail $\to$ Mail rule $\to$ AppleScript
|
||
|
\item[] $\to$ AppleScript $\to$ mail\_to\_misp $\to$ PyMISP $\to$ MISP
|
||
|
\item[]
|
||
|
\item Email $\to$ Thunderbird $\to$ Mail rule $\to$ filterscript $\to$
|
||
|
\item[]thunderbird\_wrapper $\to$ mail\_to\_misp $\to$ PyMISP $\to$ MISP
|
||
|
\end{itemize}
|
||
|
\item[]
|
||
|
\item Postfix and others
|
||
|
\begin{itemize}
|
||
|
\item Email $\to$ mail\_to\_misp
|
||
|
\end{itemize}
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}[fragile]
|
||
|
\frametitle{Installation}
|
||
|
\begin{itemize}
|
||
|
\item mail\_to\_misp
|
||
|
\begin{enumerate}
|
||
|
\item \texttt{git clone git://github.com/MISP/mail\_to\_misp.git}
|
||
|
\item Install dependencies - See Github site
|
||
|
\end{enumerate}
|
||
|
\item[]
|
||
|
\item MTA (Postfix or alike)
|
||
|
\begin{enumerate}
|
||
|
\item Setup a new email address in the aliases file (e.g. /etc/aliases)
|
||
|
\item[] \texttt{misp\_handler: "|/path/to/mail\_to\_misp.py -"}
|
||
|
\item Rebuild the DB
|
||
|
\item[] \texttt{sudo newaliases}
|
||
|
\item Configure mail\_to\_misp\_config.py
|
||
|
\begin{lstlisting}[basicstyle=\tiny]
|
||
|
misp_url = 'http://127.0.0.1/'
|
||
|
misp_key = 's5jPWCIud36Z8XHgsiCVI7SaL1XsMTyfEsN45tTe'
|
||
|
misp_verifycert = True
|
||
|
body_config_prefix = 'm2m'
|
||
|
...
|
||
|
...
|
||
|
\end{lstlisting}
|
||
|
\end{enumerate}
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
\begin{frame}[fragile]
|
||
|
\frametitle{Exercise: mail\_2\_misp.py}
|
||
|
\begin{itemize}
|
||
|
\item Bonus: \texttt{https://github.com/MISP/mail\_to\_misp\_test}
|
||
|
\begin{lstlisting}[basicstyle=\tiny]
|
||
|
./mail_to_misp.py -r mail_to_misp_test/simple_forward.eml
|
||
|
\end{lstlisting}
|
||
|
\item Bonus: Fake-SMTPD spamtrap
|
||
|
\begin{lstlisting}[basicstyle=\tiny]
|
||
|
./fake_smtp.py
|
||
|
|
||
|
telnet 127.0.0.1 2526
|
||
|
Trying 127.0.0.1...
|
||
|
Connected to 127.0.0.1.
|
||
|
Escape character is '^]'.
|
||
|
220 misp Python SMTP 1.1
|
||
|
helo misp
|
||
|
250 misp
|
||
|
mail from: mikel
|
||
|
250 OK
|
||
|
rcpt to: m2m
|
||
|
250 OK
|
||
|
data
|
||
|
354 End data with <CR><LF>.<CR><LF>
|
||
|
|
||
|
\end{lstlisting}
|
||
|
\end{itemize}
|
||
|
\end{frame}
|
||
|
|
||
|
|
||
|
|