Skip to content

Commit 048961f

Browse files
authored
Added phishing analyzer integration doc (#8)
* Added phishing analyzer integration doc * Applied most of requests * Added image of investigation * Added phishing investigation image in static folder * Fixed images in visualizer table
1 parent 2b2472e commit 048961f

File tree

3 files changed

+37
-9
lines changed

3 files changed

+37
-9
lines changed

docs/IntelOwl/advanced_usage.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,16 @@ table, th, td {
126126
<td><code>PhoneInfoga_scan</code></td>
127127
<td><a href="https://github.com/sundowndev/phoneinfoga/tree/master">PhoneInfoga</a> is one of the most advanced tools to scan international phone numbers. It allows you to first gather basic information such as country, area, carrier and line type, then use various techniques to try to find the VoIP provider or identify the owner. It works with a collection of scanners that must be configured in order for the tool to be effective. PhoneInfoga doesn't automate everything, it's just there to help investigating on phone numbers. <a href="#phoneinfoga">here</a></td>
128128
</tr>
129+
<tr>
130+
<td>Phishing Analyzers</td>
131+
<td>
132+
<ul>
133+
<li><code>Phishing_Extractor</code></li>
134+
<li><code>Phishing_Form_Compiler</code></li>
135+
</ul>
136+
</td>
137+
<td>This framework tries to render a potential phishing page and extract useful information from it. Also, if the page contains a form, it tries to submit the form using fake data. The goal is to extract IOCs and check whether the page is real phishing or not.</td>
138+
</tr>
129139
</table>
130140

131141
To enable all the optional analyzers you can add the option `--all_analyzers` when starting the project. Example:
@@ -171,7 +181,7 @@ pyintelowl_client.send_file_analysis_request(..., runtime_configuration=runtime_
171181

172182
#### PhoneInfoga
173183

174-
PhoneInfoga provides several [Scanners](https://sundowndev.github.io/phoneinfoga/getting-started/scanners/) to extract as much information as possible from a given phone number. Those scanners may require authentication, so they're automatically skipped when no authentication credentials are found.
184+
PhoneInfoga provides several [Scanners](https://sundowndev.github.io/phoneinfoga/getting-started/scanners/) to extract as much information as possible from a given phone number. Those scanners may require authentication, so they are automatically skipped when no authentication credentials are found.
175185

176186
By default the scanner used is `local`.
177187
Go through this [guide](https://sundowndev.github.io/phoneinfoga/getting-started/scanners/) to initiate other required API keys related to this analyzer.
@@ -193,6 +203,24 @@ Additionally, you can also (optionally) set the `output_type` argument.
193203

194204
- "to decimal": `[{"op": "To Decimal", "args": ["Space", False]}]`
195205

206+
#### Phishing Analyzers
207+
The framework aims to be extandable and provides two different playbooks connected through a pivot.
208+
The first playbook, named `PhishingExtractor`, is in charge of extracting useful information from the web page rendered with Selenium-based browser.
209+
The second playbook is called `PhishingAnalysis` and its main purposes are to extract useful insights on the page itself
210+
and to try to submit forms with fake data to extract other IOCs.
211+
212+
[XPath](https://www.w3schools.com/xml/xpath_intro.asp) syntax is used to find elements in the page. These selectors are customizable via the plugin's config page.
213+
The parameter `xpath_form_selector` controls how the form is retrieved from the page and `xpath_js_selector` is used to search
214+
for JavaScript inside the page.
215+
216+
A mapping is used in order to compile the page with fake data. This is due to the fact that most input tags of type "text"
217+
do not have a specific role in the page, so there must be some degree of approximation.
218+
This behaviour is controlled through `*-mapping` parameters. They are a list that must contain the input tag's name to
219+
compile with fake data.
220+
221+
Here is an example of what a phishing investigation looks like started from `PhishingExtractor` playbook:
222+
![img.png](./static/phishing_analysis.png)
223+
196224
## Analyzers with special configuration
197225

198226
Some analyzers could require a special configuration:

docs/IntelOwl/contribute.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ To do so, some utility classes have been made:
332332
<tr>
333333
<td class="tg-7n4c">VisualizablePage</td>
334334
<td class="tg-0pky">A single page of the final report, made of different <span style="font-weight:bold">levels</span>. Each page added is represented as a new tab in frontend.</td>
335-
<td class="tg-c3ow"><img alt="Visualizable Page example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizablePage_example.png"></td>
335+
<td class="tg-c3ow"><img alt="Visualizable Page example" src="./static/visualizablePage_example.png"></td>
336336
</tr>
337337
<tr>
338338
<td class="tg-7n4c">VisualizableLevel</td>
@@ -341,37 +341,37 @@ To do so, some utility classes have been made:
341341
<span class="tg-zh46">VisualizableHorizontalList</span>.
342342
The dimension of the level can be customized with the size parameter (1 is the biggest, 6 is the smallest).
343343
</td>
344-
<td class="tg-c3ow"><img alt="Visualizable Level example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableLevel_example.png"></td>
344+
<td class="tg-c3ow"><img alt="Visualizable Level example" src="./static/visualizableLevel_example.png"></td>
345345
</tr>
346346
<tr>
347347
<td class="tg-7n4c">VisualizableHorizontalList</td>
348348
<td class="tg-0pky">An horizontal list of visualizable elements. In the example there is an horizontal list of vertical lists.</td>
349-
<td class="tg-c3ow"><img alt="Visualizable Horizontal List Example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableHlist_example.png"></td>
349+
<td class="tg-c3ow"><img alt="Visualizable Horizontal List Example" src="./static/visualizableHlist_example.png"></td>
350350
</tr>
351351
<tr>
352352
<td class="tg-7n4c">VisualizableVerticalList</td>
353353
<td class="tg-0pky">A vertical list made of a name, a title, and the list of elements.</td>
354-
<td class="tg-c3ow"><img alt="Visualizable Vertical List Example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableVlist_example.png"></td>
354+
<td class="tg-c3ow"><img alt="Visualizable Vertical List Example" src="./static/visualizableVlist_example.png"></td>
355355
</tr>
356356
<tr>
357357
<td class="tg-7n4c">VisualizableTable</td>
358358
<td class="tg-0pky">A table of visualizable elements. In the example there is a table of base and vertical lists.</td>
359-
<td class="tg-c3ow"><img alt="Visualizable Table Example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableTable_example.png"></td>
359+
<td class="tg-c3ow"><img alt="Visualizable Table Example" src="./static/visualizableTable_example.png"></td>
360360
</tr>
361361
<tr>
362362
<td class="tg-7n4c">VisualizableBool</td>
363363
<td class="tg-0pky">The representation of a boolean value. It can be enabled or disabled with colors.</td>
364-
<td class="tg-c3ow"><img alt="Visualizable Bool example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableBool_example.png"></td>
364+
<td class="tg-c3ow"><img alt="Visualizable Bool example" src="./static/visualizableBool_example.png"></td>
365365
</tr>
366366
<tr>
367367
<td class="tg-7n4c">VisualizableTitle</td>
368368
<td class="tg-0pky">The representation of a tuple, composed of a title and a value.</td>
369-
<td class="tg-c3ow"><img alt="Visualizable Title example" src="https://raw.githubusercontent.com/intelowlproject/IntelOwl/master/docs/static/visualizableTitle_example.png"></td>
369+
<td class="tg-c3ow"><img alt="Visualizable Title example" src="./static/visualizableTitle_example.png"></td>
370370
</tr>
371371
<tr>
372372
<td class="tg-7n4c">VisualizableBase</td>
373373
<td class="tg-0pky">The representation of a base string. Can have a link attached to it and even an icon. The background color can be changed.</td>
374-
<td class="tg-0pky">The title above is composed by two `VisualizableBase`</td>
374+
<td class="tg-0pky">The title above is composed by two <code>VisualizableBase</code></td>
375375
</tr>
376376
</tbody>
377377
</table>
167 KB
Loading

0 commit comments

Comments
 (0)