diff --git a/404-error.html b/404-error.html new file mode 100644 index 0000000..88b42d5 --- /dev/null +++ b/404-error.html @@ -0,0 +1,61 @@ + + + + + + + + 404 • d3vyce.fr + + + + + + + + + + + + + + + + +
+
+
+
+ +

404 Not Found

+

The requested URL was not found on this server !

+
+ +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/admin.html b/admin.html new file mode 100644 index 0000000..be48dc8 --- /dev/null +++ b/admin.html @@ -0,0 +1,45 @@ + + + + + + + + Admin Panel • d3vyce.fr + + + + + + + + + + + + + + + + + +
+
+
+
+

Admin Panel

+
+
+ +
+
+ +
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/assets/doc/CA-2022.pdf b/assets/doc/CA-2022.pdf new file mode 100644 index 0000000..695e69a Binary files /dev/null and b/assets/doc/CA-2022.pdf differ diff --git a/assets/doc/Jr-penetration-tester.pdf b/assets/doc/Jr-penetration-tester.pdf new file mode 100644 index 0000000..68489b9 Binary files /dev/null and b/assets/doc/Jr-penetration-tester.pdf differ diff --git a/assets/doc/Junos.pdf b/assets/doc/Junos.pdf new file mode 100644 index 0000000..4ee0c24 Binary files /dev/null and b/assets/doc/Junos.pdf differ diff --git a/assets/doc/Offensive-Pentesting.pdf b/assets/doc/Offensive-Pentesting.pdf new file mode 100644 index 0000000..c54f4c2 Binary files /dev/null and b/assets/doc/Offensive-Pentesting.pdf differ diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000..c8fc7e2 Binary files /dev/null and b/assets/favicon.ico differ diff --git a/assets/img/error.png b/assets/img/error.png new file mode 100644 index 0000000..6e00344 Binary files /dev/null and b/assets/img/error.png differ diff --git a/assets/img/profil.png b/assets/img/profil.png new file mode 100644 index 0000000..63444b9 Binary files /dev/null and b/assets/img/profil.png differ diff --git a/assets/img/profil_about.png b/assets/img/profil_about.png new file mode 100644 index 0000000..0dda851 Binary files /dev/null and b/assets/img/profil_about.png differ diff --git a/assets/img/projet/Homelab-1.png b/assets/img/projet/Homelab-1.png new file mode 100644 index 0000000..5f825b0 Binary files /dev/null and b/assets/img/projet/Homelab-1.png differ diff --git a/assets/img/projet/Homelab-2.png b/assets/img/projet/Homelab-2.png new file mode 100644 index 0000000..bb5dfc3 Binary files /dev/null and b/assets/img/projet/Homelab-2.png differ diff --git a/assets/img/projet/Homelab-3.png b/assets/img/projet/Homelab-3.png new file mode 100644 index 0000000..c027c7a Binary files /dev/null and b/assets/img/projet/Homelab-3.png differ diff --git a/assets/img/projet/Homelab-4.png b/assets/img/projet/Homelab-4.png new file mode 100644 index 0000000..b04091d Binary files /dev/null and b/assets/img/projet/Homelab-4.png differ diff --git a/assets/img/projet/Python-game-1.png b/assets/img/projet/Python-game-1.png new file mode 100644 index 0000000..261557a Binary files /dev/null and b/assets/img/projet/Python-game-1.png differ diff --git a/assets/img/projet/Python-game-2.png b/assets/img/projet/Python-game-2.png new file mode 100644 index 0000000..b150e8e Binary files /dev/null and b/assets/img/projet/Python-game-2.png differ diff --git a/assets/img/projet/Site-d3vyce-1.png b/assets/img/projet/Site-d3vyce-1.png new file mode 100644 index 0000000..517301a Binary files /dev/null and b/assets/img/projet/Site-d3vyce-1.png differ diff --git a/assets/img/projet/Site-d3vyce-2.png b/assets/img/projet/Site-d3vyce-2.png new file mode 100644 index 0000000..f612305 Binary files /dev/null and b/assets/img/projet/Site-d3vyce-2.png differ diff --git a/assets/img/projet/Site-d3vyce-3.png b/assets/img/projet/Site-d3vyce-3.png new file mode 100644 index 0000000..c55e360 Binary files /dev/null and b/assets/img/projet/Site-d3vyce-3.png differ diff --git a/assets/img/projet/Site-d3vyce-4.png b/assets/img/projet/Site-d3vyce-4.png new file mode 100644 index 0000000..4939c27 Binary files /dev/null and b/assets/img/projet/Site-d3vyce-4.png differ diff --git a/assets/img/projet/Writeup-ctf-1.png b/assets/img/projet/Writeup-ctf-1.png new file mode 100644 index 0000000..7f31252 Binary files /dev/null and b/assets/img/projet/Writeup-ctf-1.png differ diff --git a/assets/img/projet/Writeup-ctf-2.png b/assets/img/projet/Writeup-ctf-2.png new file mode 100644 index 0000000..426e43b Binary files /dev/null and b/assets/img/projet/Writeup-ctf-2.png differ diff --git a/assets/img/projet/Writeup-ctf-3.png b/assets/img/projet/Writeup-ctf-3.png new file mode 100644 index 0000000..266e14a Binary files /dev/null and b/assets/img/projet/Writeup-ctf-3.png differ diff --git a/css/mouse.css b/css/mouse.css new file mode 100644 index 0000000..5fd0b37 --- /dev/null +++ b/css/mouse.css @@ -0,0 +1,171 @@ +/* Mouse scroll animation */ +*, *:before, *:after { + -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; + } + + .mouse_scroll { + display: block; + width: 24px; + height: 100px; + position: absolute; + bottom: 0; + } + + .m_scroll_arrows + { + display: block; + width: 5px; + height: 5px; + -ms-transform: rotate(45deg); /* IE 9 */ + -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */ + transform: rotate(45deg); + + border-right: 2px solid white; + border-bottom: 2px solid white; + margin: 0 0 3px 4px; + + width: 16px; + height: 16px; + } + + .unu + { + margin-top: 1px; + } + + .unu, .doi, .trei + { + -webkit-animation: mouse-scroll 1s infinite; + -moz-animation: mouse-scroll 1s infinite; + animation: mouse-scroll 1s infinite; + + } + + .unu + { + -webkit-animation-delay: .1s; + -moz-animation-delay: .1s; + -webkit-animation-direction: alternate; + + animation-direction: alternate; + animation-delay: alternate; + } + + .doi + { + -webkit-animation-delay: .2s; + -moz-animation-delay: .2s; + -webkit-animation-direction: alternate; + + animation-delay: .2s; + animation-direction: alternate; + + margin-top: -6px; + } + + .trei + { + -webkit-animation-delay: .3s; + -moz-animation-delay: .3s; + -webkit-animation-direction: alternate; + + animation-delay: .3s; + animation-direction: alternate; + + + margin-top: -6px; + } + + .mouse { + height: 42px; + width: 24px; + border-radius: 14px; + transform: none; + border: 2px solid white; + top: 170px; + } + + .wheel { + height: 5px; + width: 2px; + display: block; + margin: 5px auto; + background: white; + position: relative; + + height: 4px; + width: 4px; + border: 2px solid #fff; + -webkit-border-radius: 8px; + border-radius: 8px; + } + + .wheel { + -webkit-animation: mouse-wheel 0.6s linear infinite; + -moz-animation: mouse-wheel 0.6s linear infinite; + animation: mouse-wheel 0.6s linear infinite; + } + + @-webkit-keyframes mouse-wheel{ + 0% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(6px); + -ms-transform: translateY(6px); + transform: translateY(6px); + } + } + @-moz-keyframes mouse-wheel { + 0% { top: 1px; } + 25% { top: 2px; } + 50% { top: 3px;} + 75% { top: 2px;} + 100% { top: 1px;} + } + @-o-keyframes mouse-wheel { + + 0% { top: 1px; } + 25% { top: 2px; } + 50% { top: 3px;} + 75% { top: 2px;} + 100% { top: 1px;} + } + @keyframes mouse-wheel { + + 0% { top: 1px; } + 25% { top: 2px; } + 50% { top: 3px;} + 75% { top: 2px;} + 100% { top: 1px;} + } + + @-webkit-keyframes mouse-scroll { + + 0% { opacity: 0;} + 50% { opacity: .5;} + 100% { opacity: 1;} + } + @-moz-keyframes mouse-scroll { + + 0% { opacity: 0; } + 50% { opacity: .5; } + 100% { opacity: 1; } + } + @-o-keyframes mouse-scroll { + + 0% { opacity: 0; } + 50% { opacity: .5; } + 100% { opacity: 1; } + } + @keyframes mouse-scroll { + + 0% { opacity: 0; } + 50% { opacity: .5; } + 100% { opacity: 1; } + } \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..052c961 --- /dev/null +++ b/css/style.css @@ -0,0 +1,263 @@ +@charset "UTF-8"; + +/* Color */ +:root { + --dark-1: #041C32; + --dark-2: #04293A; + --dark-3: #064663; + --accent: #F6AE2D; +} + +.bg-dark-1 { + background-color: var(--dark-1); +} + +.bg-dark-2 { + background-color: var(--dark-2); +} + +.bg-dark-3 { + background-color: var(--dark-3); +} + +.text-accent { + color: var(--accent); +} + +.text-white-65 { + color: rgba(255, 255, 255, 0.65) !important; +} +/* ------------ */ + +html { + height: 100%; + scroll-padding-top: calc(4.5rem - 1px); +} + +body { + font-family: 'Roboto', sans-serif; + overflow: overlay; + width: 100%; + height: 100%; +} + +/* Link */ +a { + text-decoration: none; + color: rgba(255, 255, 255, 0.65); +} + +a:hover { + color: var(--accent); +} +/* ------------ */ + +/* Button */ +.btn { + border-radius: 30px; + font-size: 20px; + font-weight: 500; + overflow: hidden; + border-color: var(--accent); + background-color: var(--accent); + color: white; +} + +.btn.mod { + width: 33%; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn:hover { + background-color: var(--accent); + border-color: var(--accent); + color: white; + transition: all 0.3s ease; +} + +.btn:focus { + background-color: var(--accent); + border-color: var(--accent); + color: white; +} + +.btn span { + cursor: pointer; + display: inline-block; + position: relative; + transition: 0.5s; +} + +.btn span:after { + content: '\00bb'; + position: absolute; + opacity: 0; + top: 0; + right: -20px; + transition: 0.5s; +} + +.btn:hover span { + padding-right: 25px; +} + +.btn:hover span:after { + opacity: 1; + right: 0; +} +/* ------------ */ + +.page-section { + padding: 4rem; +} + +.badge:hover { + background-color: white; + color: black; +} + +.modal-content { + background-color: var(--dark-2); +} + +/* Header Section */ + +@media (min-width: 992px) { + header.masthead { + height: 100vh; + min-height: 40rem; + padding-top: 4.5rem; + padding-bottom: 0; + } + header.masthead p { + font-size: 1.15rem; + } + header.masthead h1, header.masthead .h1 { + font-size: 3rem; + } +} +@media (min-width: 1200px) { + header.masthead h1, header.masthead .h1 { + font-size: 3.5rem; + } +} + +@media screen and (max-width: 1200px) { + header.masthead { + height: 100vh; + } + + .head-row { + align-content: center; + } +} + +/* About Section */ +.about { + background-color: var(--dark-2); +} + +/* Skills Section */ +.skills { + background-color: var(--dark-1); +} + +.skill .i { + color: var(--accent); + background-color: var(--accent); +} + +/* Projects Section */ +.projects { + background-color: var(--dark-2); + width: 100%; + padding-left: 10px; + padding-right: 10px; +} + +.project { + background-color: var(--dark-3); + margin: 2rem; + padding-left: 0; + border-radius: 6px; + box-shadow: 0 6px 10px rgba(0,0,0,.08), 0 0 6px rgba(0,0,0,.05); + transition: .3s transform cubic-bezier(.155,1.105,.295,1.12),.3s box-shadow,.3s -webkit-transform cubic-bezier(.155,1.105,.295,1.12); + cursor: pointer; +} + +.project:hover { + transform: scale(1.05); + box-shadow: 0 10px 20px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06); +} + +.project img { + max-width:100%; + padding: 0; +} + +.project-image { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.project-text { + position: relative; + padding-top: 1rem; + padding-right: 1rem; +} + +.project-icon { + position: absolute; + bottom: 0; + left: 0; + justify-content: center; +} + +/* Footer Section */ +.footer { + background-color: var(--dark-1); +} + +.fa.test { + font-size: 22px; + padding: 2rem; + padding-bottom: 0rem; + color: #7e7e7e; +} + +.fa.test:hover { + color: var(--accent); +} + +.social{ + margin-bottom: 2rem; +} +/* ------------------------------------- */ + +.text-white-75 { + color: rgba(255, 255, 255, 0.75) !important; +} + +.divider { + height: 0.2rem !important; + max-width: 3.25rem; + margin: 1.5rem auto; + background-color: var(--accent); + opacity: 1; +} + +/* Scrollbar */ +::-webkit-scrollbar { + width: .45rem; +} +::-webkit-scrollbar-thumb { + background-color: rgba(255, 255, 255, 0.5); + border-radius: 3px; +} +::-webkit-scrollbar-track{ + background: transparent; +} \ No newline at end of file diff --git a/css/timeline.css b/css/timeline.css new file mode 100644 index 0000000..4646cd2 --- /dev/null +++ b/css/timeline.css @@ -0,0 +1,27 @@ +.timeline-with-icons { + border-left: 1px solid hsl(0, 0%, 90%); + position: relative; + list-style: none; +} + +.timeline-with-icons .timeline-item { + position: relative; +} + +.timeline-with-icons .timeline-item:after { + position: absolute; + display: block; + top: 0; +} + +.timeline-with-icons .timeline-icon { + position: absolute; + left: -48px; + background-color: var(--dark-3); + border-radius: 50%; + height: 31px; + width: 31px; + display: flex; + align-items: center; + justify-content: center; +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..d95a639 --- /dev/null +++ b/index.html @@ -0,0 +1,562 @@ + + + + + + + + Home • d3vyce.fr + + + + + + + + + + + + + + + + + + + +
+
+
+
+ ... +
+

d3vyce

+
+
+

Hi 👋, Welcome to my Site!

+

Developer, CTF Player, Homelab, 3D Printing

+
+ +
+
+ +
+
+ +
+
+

About Me

+
+
+
+ ... +
+
+
+

Hi, I'm Nicolas S aka d3vyce. I am a network and cybersecurity engineer living in France. I've always been passionate about computer science and technology, and over the years I've developed my skills in various fields such as programming, cybersecurity, infrastructure, networks, ... In addition to my master degree in networks and security, I love CTF and I have a homelab at home to continue my learning and experiment new things.

+
d3vyce - Nicolas. S
+
+
+
+
+
+
+
+
+
    +
  • + + + +
    Engineering internship: Network Design Architect
    +

    2019/2022

    +

    + Multi-technology collection capacity planning. Study and management of network evolution (collection, xDSL, Fiber, Backbone). Technical deliverables, pre-sales and OSM technical support. +

    +
  • + +
  • + + + + +
    Master's degree in Networks and Cybersecurity
    +

    2019/2022

    +

    + +

    +
  • + +
  • + + + + +
    Optimization and Monitoring of an enterprise network
    +

    2019

    +

    + Upgrade and documentation of network equipment, implementation of a monitoring and automatic alert solution. +

    +
  • + +
  • + + + + +
    Two-year University degree in Networks and Telecommunications
    +

    2017/2019

    +

    + +

    +
  • +
+
+
+
+
+ +
+
+

Skills

+
+
+
+
+

Programming

+

Hi, I'm Nicolas S aka d3vyce. I am a network and cybersecurity engineer living in France. I've always been passionate about computer science and technology, and over the years I've developed my skills in various fields such as programming, cybersecurity, infrastructure, networks, ...

+

+ C + C# + Python + Bash + HTML + CSS + PHP + JS + MySQL +

+
+
+
+

Cybersecurity

+

Hi, I'm Nicolas S aka d3vyce. I am a network and cybersecurity engineer living in France. I've always been passionate about computer science and technology, and over the years I've developed my skills in various fields such as programming, cybersecurity, infrastructure, networks, ...

+

+ Kali + OWASP + Injection + Metasploit + Hydra + Hashcat +

+
+
+
+

Networking

+

Hi, I'm Nicolas S aka d3vyce. I am a network and cybersecurity engineer living in France. I've always been passionate about computer science and technology, and over the years I've developed my skills in various fields such as programming, cybersecurity, infrastructure, networks, ...

+

+ Wireguard + MPLS + BGP + Firewall + OPNsense + WDM +

+
+
+
+
+
+
+

Certification

+ +
+
+
+

Challenge

+
+

leHACK 2022 - Paris

+

404 CTF 2022 - Online

+

Cyber Apocalypse CTF 2022 - Online

+

TRACS CTF 2021 (Team Get-Pwned) - CentraleSupélec

+
+
+
+
+
+ + TryHackMe + +
+
+ + HackTheBox + +
+
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/js/admin.js b/js/admin.js new file mode 100644 index 0000000..e69de29 diff --git a/js/script.js b/js/script.js new file mode 100644 index 0000000..d374411 --- /dev/null +++ b/js/script.js @@ -0,0 +1,52 @@ +//Init + $(document).ready(function(){ + init(); + }); + + function init(){ + //Auto margin calculator + var navbarHeight = $("nav").height(); + var paddingTop = parseInt($("nav").css('padding-top')); + var paddingBottom = parseInt($("nav").css('padding-bottom')); + $('#main-content').css('margin-top', (navbarHeight + paddingTop + paddingBottom) + 'px'); + + //Ripple + var ripples = document.querySelectorAll('.ripple'); + for (var i = 0; i < ripples.length; i++) { + ripples[i].addEventListener('mousedown', rippleEffect, false); + } + + function rippleEffect(e){ + var width = this.clientWidth; + var height = this.clientHeight; + var rect = this.getBoundingClientRect(); + var posX = e.clientX - rect.left; + var posY = e.clientY - rect.top; + var size = Math.max(width, height); + var effect = document.createElement('DIV'); + effect.className = 'effect'; + effect.style.width = size + 'px'; + effect.style.height = size + 'px'; + effect.style.top = posY - size/2 + 'px'; + effect.style.left = posX - size/2 + 'px'; + + this.appendChild(effect); + var parent = this; + + setTimeout(function() { + parent.removeChild(effect); + }, 750); + } + + //Prevent horizontal scroll of page using keyboard + $(window).keydown(function(e){ + if(e.which == 37 || e.which == 39){ + e.preventDefault(); + } + }); + + //Scroll hide image + $(window).scroll(function () { + $(this).scrollTop() > 50 ? $('#scroll').fadeOut() : $('#scroll').fadeIn() + }); + } \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..26b4d70 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Allow: / \ No newline at end of file diff --git a/social.html b/social.html new file mode 100644 index 0000000..7806abc --- /dev/null +++ b/social.html @@ -0,0 +1,61 @@ + + + + + + + + Social • d3vyce.fr + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + \ No newline at end of file