diff --git a/content/_index.md b/content/_index.md
index 912b08f..2004b21 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -7,7 +7,7 @@ I write __short__ and clutterless aricles about:
- productivity
-[More info](/whoami), [disclaimer](whoami/disclaimer), [license](/whoami/license)
+[More info](/whoami), [Telegram](https://t.me/casualblog), [disclaimer](whoami/disclaimer), [license](/whoami/license)
diff --git a/content/hidden/phd2/abstract.md b/content/hidden/phd2/abstract.md
new file mode 100644
index 0000000..9d4d206
--- /dev/null
+++ b/content/hidden/phd2/abstract.md
@@ -0,0 +1,57 @@
++++
+Title = "Информация по докладу"
+hidden = true
++++
+
+# OpenSource и как написать свой первый хакерский инструмент?
+Другие названия:
+ - OpenSource и написание инструментов для хакеров
+
+
+
+### Время на доклад
+Суммарно = 30-40 минут
+5% - Введение
+10% - Что такое OpenSource?
+50% - Особенности написания хакерских утилит
+30% - Как писать программы, если вы не программист
+5% - Выводы
+?% - Q/A
+
+## Краткое описание
+
+Доклад про важность OpenSource в жизни пентестера и как новичкам начать писать программы с нуля.
+
+## В чём смысл доклада?
+
+Смотивировать хакеров больше писать OpenSource инструменты и выкладывать существующие.
+
+## Для кого? (цельевая аудитория)
+
+Для начинающих Red-Team хакеров/пентестеров.
+
+### Есть ли в докладе новая информация для аудитории?
+
+Потому что хоть и хакеры используют много OpenSource инструментов, при написании своих инструментов, они пишут инструменты и скрипты чисто для себя и под свои задачи, не делясь ими с миром.
+
+### Почему для аудитории полезно использовать на практике информацию из доклада?
+
+Хакер сможет написать свой первый хакерский инструмент. Хакер получит большую известность за счёт разработки своих утилит, а также получит развитие этих же утилит с помощью комьюнити. Следовательно и хакер узнает что-то новое.
+
+### Почему доклад интересен для аудитории?
+
+Потому что много начинающих хакеров хотят иметь свой собственный инструмент, который выполняет их нужды и облегчает им жизнь. Им будет интересно узнать как начать писать свою программу.
+
+### Почему доклад вдохновляет аудиторию?
+
+Потому что в нём рассказан пример человека, который пишит свой личный OpenSource хакерский инструмент, без обучения программированию
+
+### Почему доклад забавный?
+
+- есть шуточная лицензия для доклада, которая обязывает зрителей сделать шуточные вещи, о чём 99% людей узнают в конце доклада, если они не посмотрели о ней в начале доклада
+- есть несколько мемов из OpenSource комьюнити (+ оригинальный мем)
+- пример разработки Metasploit забавный из-за того как он влиял на мир и его создателя во время появления проекта
+
+## Какое взаимодействие с аудиторией:
+ - QR код на шуточную лицензию доклада и плот твист с шуточными требованиями для аудитории - для того, что бы показать важность ознакомления с лицензией
+ - Вопросы к аудитории, как бы они поступили на месте героев доклада, с объяснением логики - к примеру, во время описания разработки Metasploit, спрашивать пару человек из аудитории, как бы они поступили на месте Мура.
diff --git a/content/hidden/phd2/feedback.md b/content/hidden/phd2/feedback.md
new file mode 100644
index 0000000..9ebc77d
--- /dev/null
+++ b/content/hidden/phd2/feedback.md
@@ -0,0 +1,91 @@
++++
+Title = "Ваш фидбек"
+draft = false
+hidden = true
++++
+
+
+Оцените мой доклад!
+
+Вы можете оставить фидбек в вольной форме или ответить на следующие вопросы:
+ - На сколько доклад держит ваше внимание (интерес)? (от 1 до 10)
+ - На сколько доклад забавный?
+ - На сколько доклад мотивирующий?
+ - На сколько доклад познавательный? Много ли вы нового узнали?
+ - Какой вывод вы можете сделать из доклада?
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+## Контакты
+
+ + [Блог](https://blog.ca.sual.in/)
+ + [Блог в телеге](https://t.me/casualblog)
+ + [TG](https://t.me/AlexeyInfosec)
+ + [XMPP](xmpp://casual@pwned.life)
+
+## Материалы
+
+
+ - [Презентация](/hidden/PHD2_presentation.pptx)
+ - [Abstract](../abstract)
+ - [Транскрипция доклада](../trans)
+ - [Keypoints](../keypoints)
+ - [Лицензия доклада](../license)
diff --git a/content/hidden/phd2/keypoints.md b/content/hidden/phd2/keypoints.md
new file mode 100644
index 0000000..cebbaed
--- /dev/null
+++ b/content/hidden/phd2/keypoints.md
@@ -0,0 +1,527 @@
++++
+Title = "keypoints"
+hidden = true
++++
+
+(наверное не финальная версия)
+
+# Введение
+
+>старт
+
+>клик
+ - 70% не делятся прогами
+>клик
+ - замечательный мир, +1.3млн репозиториев, диски в хранилку
+
+# Whoami
+>клик
+
+ - Я Casual, независимый иследователь и топ-50 standoff365
+
+## Для кого, о чём и зачем этот доклад?
+>клик
+
+ - для начинающих хакеров, первый инструмент.
+ - А PRO выкладывать в OpenSource
+ - Цель заманить в OpenSource -> Free
+>клик
+ - лицензия доклада
+ - (интерактив) кто уже выкладывал что-то на github + расскажите
+
+# Что такое OpenSource и Free Software?
+>клик
+ - теория OSS ("4свободы"),
+>клик
+ - Free (4 важнейшие свободы)
+>клик
+ - OSS = Free?
+>клик
+ - не совсем
+
+## Идеология
+>клик
+
+ - OSI и FSF (free=свободная, не бесплатно)
+ - разница, 4свободы
+ - намерения разрабов OSS заменить ком. прод, Free - предоставить свободы
+ - калькулятор,
+>клик
+ - "нельзя просто так взять и модифицировать калькулятор"
+ - обход - root/прошивка
+ - "те у кого кастомный android можно пересчитать по пальцам в этом зале"
+ - (интерактив) У кого custom android? (11-ый, опусти руку)
+ - вендор-угнетатель, никакого OSS
+>клик
+ - root на Xiaomi + месяц
+ - если gnu GPLv3 - можно было бы обновить
+ - решение - поставить калькулятор как обычное приложение.
+ - но я не люблю ставить лишние приложения и не знать что установлено на моём устройстве.
+ - не новы случаи предустановленного бэкдора
+ - А где есть google services, google владеет телефоном
+>клик
+ - фотки на запрещёнку, доступ к смс и уведомлениям, удалённая блокировка или обнуление. "В общем"
+>клик
+ - "Literally 1984"
+ - Возвращаясь к Xiaomi, на флагманах просто нет кастомных прошивок
+
+# Лицензии
+>клик
+ - back to OpenSource, кратенько про licenses
+ - OpenSource = permissive/copyleft
+ - License - нужна для защиты разработчика
+ - permissive - база (4 свободы)
+ - permissive схожа с copyleft, но она не запрещает приватизацию
+>клик
+ - в случае с copyleft - компания обязаны выложить их программу в opensource с этой же лицензией
+
+# +/- for dev
+## +
+>клик
+ - совместная разработка = недопонимания
+>клик
+ - выложить прогу = сделать мир лучше.
+ - Столлман изменил весь мир сделав GNU/Linux таким каким мы его знаем
+>клик
+ - вы более узнаваемы в комьюнити = приглосы на events/work
+ - Мур попал в Rapid7 из-за metasploit
+>клик
+ - при устройстве на работу - будет круто иметь OSS.
+ - В моём прошлом собесе так было
+>клик
+ - делая OSS, get PRs => improve skills/pentest.
+ - Moore got better at writting exploits while working on metasploit
+>клик
+ - when code public - you write better. Это Эффект Хоторна
+
+# +/- for usr
+## -
+
+>клик
+ - there might be no user support, project may die in next month
+ - I have sent PR to one youtuber, but he abandoned project
+>клик
+ - downloading OSS without checking code = downloading cracked software
+ - latest big example - XZ (backdoor)
+>клик
+ - no one is responsible if something goes wrong and you loose your data
+>клик
+ - there might be no documentation for project
+ - Once I've found one specific library for python, but there wasn't almost any documentation,
+
+
+## +
+>клик
+ - free
+>клик
+ - you own program and you can do anything with it.
+ - Guy with FL-studio like programm couldn't install version which he bought 10y ago, bc online activation
+>клик
+ - user can check security
+ - XZ, secResearcher found backdoor, in proprietary software it could be not found at all
+>клик
+ - user customize entire program
+>клик
+ - any user can help dev with prj
+ - not only about code, also proposals, discussions, user support, documentation
+ - ProxmoxVE devs gets more fixes from users than from companies
+
+# Особенности написания хакерских утилит
+
+>клик
+ - example of how its to write cool tool
+>клик
+ - hero - H.D. Moore, Metasploit dev
+>клик
+ - in 90-ых M was 18, job as pentester
+ - at those times, hard to find exploits
+ - today we google "prod ver exploit"
+ - get exploit = search people in IRC chats
+>клик
+ - when PC of M was full of diff exploits = creation metasploit
+ - metasploit = select exploit, write input data, run
+ - (Interact) Imagine you are boss of infosec company, and your сотрудник shows program which can give ANYONE ability to hack ANY company. How would you do?
+ - In right hands - instrument to def many companies
+ - In wrong - cyberweapon
+ - When M shown to his boss - he was afrid of consicuences
+ - but he could get rid of M due to many active pentests
+ - In 2003 metasploit going OpenSource in metasploit.com
+ - =serious народное волнение, никто не остался в стороне
+ - M company
+ - his clients
+ - black hat hackers
+ - darknet hackers who write exploits
+ - other pentesters - they thought M steal theirs work releasing this simple tool
+ - all those who didn't liked -> try site hacks, DDoSs
+ - 1 hacker even hacked провайдера M, bc he couldn't hack site
+ - then they attack M = клевета, identity theft, anything you can think
+ - M's boss also got mail to fire M, bc what did M was unresponsible to their believe
+ - but M was getting more motivated by that
+ - Not only hackers were annoyed - vendors didn't wanted to have exploit in metasploit for their software
+ - M liked being attacker and target
+ - gov also didn't liked Metsplt - M had money for адвоката if he got in jail by night
+ - постепенно dev team = 200
+ - and In 2009, M had долги, стартап, беременная жена, rapid7 propose to buy Metasploit
+ - = we have openSource and Pro version. M got high paing job + company вступилась за него
+ - Now metasploit not only tool for pentesters, it's tought in schools.
+ - Программа Мура прошла сквозь ненависть всего мира к общепринятому стандарту.
+ - Сейчас Мур уволился из Rapid7 и у него своя компания.
+
+
+
+# Как писать программы, если вы не программист?
+>клик
+ - now i hope you think "OpenSource is cool"
+ - пройдёмся по курсу молодого боййца -> вы могли выйти готовыми начать писать свою программу
+
+
+
+## Язык программирования
+>клик
+ - про то на чём писать
+>клик
+ - холивар за язык программирования,
+>клик
+ - но самый крутой язык - английский. Помогает где угодно
+>клик
+ - а если не знаете - выберите GoLang
+ - только не показывайте друзьям их маскот
+
+
+### Как ему научиться
+>клик
+ - я не люблю монотонно учиться, учитесь...
+>клик
+ - пиша свой и читая чужой код, then you will learn
+ - если первый язык - то
+>клик
+ - 1. офф туториал как запустить
+ - 2. интерактивная экскурсия
+ - 3. туториал на примерах
+ - = отличная база
+
+
+
+
+# Как ~~программировать~~ гуглить
+>клик
+ - прогеры не пишут, прогеры...
+>клик
+ - звучит смешно, но - научитесь гуглить самостоятельно
+>клик
+>клик (Дабл)
+ - 1. на английском
+>клик
+ - 2. конструкция запроса
+>клик
+ - 3. нет ответа -> перефразируй, можно chatgpt, без ответа
+>клик
+ - 4. не проси помощи у знакомых и на форумах за 25м, научись
+
+
+
+## ОС
+>клик
+ - пара слов - используй GNU/Linux
+
+
+
+## Git и все-все-все
+>клик
+ - про git
+ - git - система контроля версий. откат до предыдущего сохранения
+ - кооперация. совмещение кода
+ - сервисы для доступа к git - gtihub, на него и грузим
+
+
+
+
+## Guidelines по созданию OpenSource проекта
+>клик
+ - как же сделать свой OpenSource
+>клик
+ - 0. регаемся
+>клик
+ - 1. создаём repo
+>клик
+ - 2.license - MIT=idk/GPL=free
+>клик
+ - 3. git clone
+ - if git clone SSH = error - no ssh key in GitHub
+>клик
+ - `ssh-keygen`, 3xEntr, cat key | copy
+>клик
+ - paste SSH pub key -> github. We can download (via SSH)/+update changes
+>клик
+ - 4. составьте план разработки
+>клик
+ - u need:
+ - write which functions prog have
+ - write which input
+ - devide funct to steps
+ - set proirity
+ - essential func
+ - additional
+ - enchantment
+ - for instance:
+ - i wannt prog to check DOS - compare server response time bofer atck and after (DOS Checker)
+>клик
+ - also in real time, with beautiful TUI
+>клик
+ - Plus custom headers
+>клик
+ - And POST if backend task
+>клик
+ - Also check requests - HTTP porxy
+>клик
+ - for accuracy - few requests, среднее время ответа
+>клик
+ - input we need:
+>клик
+ - url link
+>клик
+ - request type GET/POST (GET default)
+>клик
+ - request body for POST
+>клик
+ - link to Proxy
+>клик
+ - monitoring?
+
+>клик
+ - lets devide func to steps
+ - for DOS checker we need
+>клик
+ - get link from terminal
+>клик
+ - write to var
+>клик
+ - make GET to url
+>клик
+ - get response time
+>клик
+ - write to var
+>клик
+ - let user start attack, wait any button press
+>клик
+ - repeat GET and Response time and write to another var
+>клик
+ - compare vars, if 2x+ then attack successful
+
+>клик
+ - http proxy - get var from term. If not empty, set as Proxy in every request func
+>клик
+ - POST req + body - another func which sends POST with body from flag.
+>клик
+>клик (дабл)
+ - custom Header - if flag not empty - add to headers
+>клик
+ - monitoring mode - find libr for TUI. Imagine how it should look. И т.д.
+
+>клик
+ - and now priorities:
+>клик
+ - essential: DOS, Proxy
+>клик
+ - Add-ons: среднее время, POST
+>клик
+ - echancment: headers, monitoring
+
+>клик
+ - 5. dev from very basic
+ - just sit and do element which you want. Google may bless you
+ - if google give 0 => более мал. элементы
+ - when new feature, check that prog works.
+ - then upload changes to repo with `git add,commit,push`
+>клик
+ - but you will failure cuz Git don't know your email/nick, add them with suggested `git config`
+ - А, `git add` - new files to repo
+ - `git commit` - фиксирует изменения, to revert
+ - `git push` - upload to github, need to add SSH key, what we already did
+ - after that, local changes will appear in github
+>клик
+ - Напишите README
+ - README = txt describes proj. It's first thing that potential user will see in your tool.
+ - Readme should answer:
+>клик
+ + what project do?
+>клик
+ + Why is it helpful, which usecase
+>клик
+ + How to install and try it?
+>клик
+ + Which func exist and how to use them (documentation)
+ - And now about owncloud_bruteforcer
+
+
+
+
+## пример - owncloud_bruteforcer
+>клик
+ - In pentest I've found OwnCloud
+>клик
+ - owncloud - opensource cloud.
+ - after few login tries - i wasn't locked out, So I would make отчёт and get reward
+ - BUT i couldnt find prog with requirments
+ - for owncloud auth need:
+>клик
+ - CSRF token from body
+>клик
+ - Cookies from headers
+>клик
+ - specific client header
+ - I want write bruteforcer - auth with wordlist
+ - более того, with userlist
+ - in owncloud case, before auth, we nedd GET CSRF+cookie
+
+ - So idea is simple, we need
+### Идея
+>клик
+ - get input data via CLI
+>клик
+ - with ability to attack userlist,specified user,or default
+> пауза
+>клик
+ - Get CSRF+cookie, for that we need:
+>клик
+ - make GET to login page
+>клик
+ - with regexp get token from body
+>клик
+ - with regexp get cookie from headers
+ - and put them to variables
+>клик
+ - Use wordlist for attacking user
+ - and then try to auth
+>клик
+ - в цикле воркеры авторизуются паралельно
+>клик
+ - before each auth worker get new token+cookie
+>клик
+ - each worker get next password and try to auth with all parameters
+>клик
+ - worker checks if login was successful or not by response from server
+
+
+
+
+### Разработка
+>клик
+ - in dev, inconvinient if auth sucessful, by showing packet to Term, => add http proxy, to check auth
+>клик
+ - in dev, were bugs, a lot, that's the unexpected one:
+ - the point - I use channels, In go, Channel is used to transfer vars beetwen parallel OP
+ - you can think as tube which contain X vars, and they выстраиваются в очередь.
+ - after getting var out of chan, var dissapear, good in my case
+ - So what's the problem in this pseudocode?
+>клик
+ - You have 3 minutes, можете поднимать руку и высказывать предположение. Hint - bug will eat all RAM. Why?
+> 3m wait
+ - that's another hint - quick fix
+>клик
+>1m wait
+ - the problem - GC не успевает чистить, from vars in цикле.
+ - but in this case prog user 250MB RAM, not what I expect.
+ - Final решение..:
+> wait to read
+>клик
+ - so prog run background proc which add passes up to 1000, when free - add new
+ - next in parallel run bruteforcer
+ - not going far from bugs - lets talk about slow programming and cult of done
+ - because final solution - is faulty - everytime it reads again from disk. but я могу допустить этот баг
+ - so to bugs I have 2 варианта подхода
+ - Slow Proggraming and manifesto Cult of Done
+ - What's SlowProgr? - It's when you prog to Заниматься творичиство and get удовольствие. You slowly, methodically, try to решить кусок кода эфф. решением. много получают кайф от этого.
+ - 2nd var - follow manifest Cult of Done, it isn't aboud proggraming, but about do things faster. It's short and I like it, there is a part:
+>клик
+ - "2.Смиритесь: всё, что вы делаете – это "черновой вариант". Так проще завершить работу."
+ - expect that you will not complete, it will not have all func, code optimisation, full documentation
+>клик
+ - "3.Этапа "редактирования" не существует."
+ - if you expect to basically write basic func and then optimise them - you will not do it OR it will take much time. Write good solution right away
+>клик
+ - "7.Сделав что-то, можно про это забыть."
+ - написали программу? Забудьте про её поддержку. У вас и так достаточно проектов над которыми вам нужно работать.
+>клик
+ - "8.Смейтесь над совершенством. Оно скучно и мешает вам завершить результат."
+ - хоть я и перфекционист, но вы никогда не закончите проект, если будете делать его идеальным
+>клик
+ - "10.Поражение тоже считается завершённостью. Совершайте ошибки."
+ - если у вас не вышло написать программу, то вы всё ещё в выйгрыше, вы узнали что-то новое и в следующий раз сделаете лучше.
+
+ - Какой подход лучше - решать исключительно вам.
+ - What was more unexpected - how owncloud reacts. Besides creating bruteforcer, I wrote DOS. When I tested in lab 100% CPU
+>клик
+>small wait
+ - I tell ablout bugs so you understand errors = normal. they make you better. do mistakes
+ - you can check prog in this QR + that's how it works
+>клик
+>30s wait
+
+
+
+
+# Выводы
+>клик
+ - резумируем доклад. Вы сегодня узнали:
+>клик
+ - Узнали про OpenSource, виды лицензий и Free Software
+>клик
+ - Узнали что будет если написать революционный хакерский инструмент
+>клик
+ - узнали как сделать свой первый OpenSource проект, а это:
+>клик
+ - сделать Git репозиторий,
+>клик
+ - составить план разработки,
+>клик
+ - выставить приоритеты для функций программы,
+>клик
+ - разделить их на самые малые шаги,
+>клик
+ - и начать писать
+
+
+
+
+
+## Community track блиц
+>клик
+ - А теперь небольшой Community track блиц:
+>клик
+ - 1) Чего не хватает в современных профессиональных сообществах?
+ - openness. pentesters don't share their methodology and when use them. Especially in short form. I lack it so I write my own and will share in blog
+>клик
+ - 2) Представь, что проекты, которые ты описал в докладе не были созданы. Как бы ты решал исходную задачу?
+ - i talked about metasploit,git,golang+owncloud_bruteforcer
+ - metasploit made ИБ. if no history changes - I would use exploit-db - same exploits
+ - no git - collaboration hell. I would use nextcloud + btrfs snaps
+ - No go - write in C++/python -> Rust
+ - no owncloud_bruteforcer - I would write script with curls.
+>клик
+ - 3) Какой open source проект тебе хотелось бы создать если будет больше времени/ресурсов?
+ - I already write this prog, but due to доклад он на паузе, Ruina - моя автоматизация Recon'a для пентеста. Как допишу до v1 вкину в блог
+
+
+ - Вы можете оставить фидбек для меня, а также найти транскрипцию доклада, и материалы к ней по QR коду далее
+
+
+
+
+## Final
+>клик
+ - И раз уж вы все досмотрели этото доклад до конца, вы обязаны выполнять условия лицензии, я зачитаю несколько из секции 7.
+ - Будьте этичными хакерами
+ - Делитесь исходным кодом своих программ
+ - Позвоните маме и сделайте комплимент.
+
+> small wait
+
+> клик
+ - источники
+> клик
+ - Спасибо за внимание!
+> wait until applause fin
+> клик
+
+
diff --git a/content/hidden/phd2/license.md b/content/hidden/phd2/license.md
index 9be1be2..7daaa13 100644
--- a/content/hidden/phd2/license.md
+++ b/content/hidden/phd2/license.md
@@ -1,9 +1,9 @@
+++
+Title = "Лицензия доклада"
hidden = true
+++
-```txt
Attribution-ShareAlike 4.0 International
=======================================================================
@@ -27,36 +27,36 @@ and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
- Considerations for licensors: Our public licenses are
- intended for use by those authorized to give the public
- permission to use material in ways otherwise restricted by
- copyright and certain other rights. Our licenses are
- irrevocable. Licensors should read and understand the terms
- and conditions of the license they choose before applying it.
- Licensors should also secure all rights necessary before
- applying our licenses so that the public can reuse the
- material as expected. Licensors should clearly mark any
- material not subject to the license. This includes other CC-
- licensed material, or material used under an exception or
- limitation to copyright. More considerations for licensors:
- wiki.creativecommons.org/Considerations_for_licensors
+Considerations for licensors: Our public licenses are
+intended for use by those authorized to give the public
+permission to use material in ways otherwise restricted by
+copyright and certain other rights. Our licenses are
+irrevocable. Licensors should read and understand the terms
+and conditions of the license they choose before applying it.
+Licensors should also secure all rights necessary before
+applying our licenses so that the public can reuse the
+material as expected. Licensors should clearly mark any
+material not subject to the license. This includes other CC-
+licensed material, or material used under an exception or
+limitation to copyright. More considerations for licensors:
+wiki.creativecommons.org/Considerations_for_licensors
- Considerations for the public: By using one of our public
- licenses, a licensor grants the public permission to use the
- licensed material under specified terms and conditions. If
- the licensor's permission is not necessary for any reason--for
- example, because of any applicable exception or limitation to
- copyright--then that use is not regulated by the license. Our
- licenses grant only permissions under copyright and certain
- other rights that a licensor has authority to grant. Use of
- the licensed material may still be restricted for other
- reasons, including because others have copyright or other
- rights in the material. A licensor may make special requests,
- such as asking that all changes be marked or described.
- Although not required by our licenses, you are encouraged to
- respect those requests where reasonable. More considerations
- for the public:
- wiki.creativecommons.org/Considerations_for_licensees
+Considerations for the public: By using one of our public
+licenses, a licensor grants the public permission to use the
+licensed material under specified terms and conditions. If
+the licensor's permission is not necessary for any reason--for
+example, because of any applicable exception or limitation to
+copyright--then that use is not regulated by the license. Our
+licenses grant only permissions under copyright and certain
+other rights that a licensor has authority to grant. Use of
+the licensed material may still be restricted for other
+reasons, including because others have copyright or other
+rights in the material. A licensor may make special requests,
+such as asking that all changes be marked or described.
+Although not required by our licenses, you are encouraged to
+respect those requests where reasonable. More considerations
+for the public:
+wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
@@ -150,83 +150,83 @@ Section 2 -- Scope.
a. License grant.
- 1. Subject to the terms and conditions of this Public License,
- the Licensor hereby grants You a worldwide, royalty-free,
- non-sublicensable, non-exclusive, irrevocable license to
- exercise the Licensed Rights in the Licensed Material to:
+1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
- a. reproduce and Share the Licensed Material, in whole or
- in part; and
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
- b. produce, reproduce, and Share Adapted Material.
+ b. produce, reproduce, and Share Adapted Material.
- 2. Exceptions and Limitations. For the avoidance of doubt, where
- Exceptions and Limitations apply to Your use, this Public
- License does not apply, and You do not need to comply with
- its terms and conditions.
+2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
- 3. Term. The term of this Public License is specified in Section
- 6(a).
+3. Term. The term of this Public License is specified in Section
+ 6(a).
- 4. Media and formats; technical modifications allowed. The
- Licensor authorizes You to exercise the Licensed Rights in
- all media and formats whether now known or hereafter created,
- and to make technical modifications necessary to do so. The
- Licensor waives and/or agrees not to assert any right or
- authority to forbid You from making technical modifications
- necessary to exercise the Licensed Rights, including
- technical modifications necessary to circumvent Effective
- Technological Measures. For purposes of this Public License,
- simply making modifications authorized by this Section 2(a)
- (4) never produces Adapted Material.
+4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
- 5. Downstream recipients.
+5. Downstream recipients.
- a. Offer from the Licensor -- Licensed Material. Every
- recipient of the Licensed Material automatically
- receives an offer from the Licensor to exercise the
- Licensed Rights under the terms and conditions of this
- Public License.
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
- b. Additional offer from the Licensor -- Adapted Material.
- Every recipient of Adapted Material from You
- automatically receives an offer from the Licensor to
- exercise the Licensed Rights in the Adapted Material
- under the conditions of the Adapter's License You apply.
+ b. Additional offer from the Licensor -- Adapted Material.
+ Every recipient of Adapted Material from You
+ automatically receives an offer from the Licensor to
+ exercise the Licensed Rights in the Adapted Material
+ under the conditions of the Adapter's License You apply.
- c. No downstream restrictions. You may not offer or impose
- any additional or different terms or conditions on, or
- apply any Effective Technological Measures to, the
- Licensed Material if doing so restricts exercise of the
- Licensed Rights by any recipient of the Licensed
- Material.
+ c. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
- 6. No endorsement. Nothing in this Public License constitutes or
- may be construed as permission to assert or imply that You
- are, or that Your use of the Licensed Material is, connected
- with, or sponsored, endorsed, or granted official status by,
- the Licensor or others designated to receive attribution as
- provided in Section 3(a)(1)(A)(i).
+6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
- b. Other rights.
+b. Other rights.
- 1. Moral rights, such as the right of integrity, are not
- licensed under this Public License, nor are publicity,
- privacy, and/or other similar personality rights; however, to
- the extent possible, the Licensor waives and/or agrees not to
- assert any such rights held by the Licensor to the limited
- extent necessary to allow You to exercise the Licensed
- Rights, but not otherwise.
+1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
- 2. Patent and trademark rights are not licensed under this
- Public License.
+2. Patent and trademark rights are not licensed under this
+ Public License.
- 3. To the extent possible, the Licensor waives any right to
- collect royalties from You for the exercise of the Licensed
- Rights, whether directly or through a collecting society
- under any voluntary or waivable statutory or compulsory
- licensing scheme. In all other cases the Licensor expressly
- reserves any right to collect such royalties.
+3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
Section 3 -- License Conditions.
@@ -234,66 +234,66 @@ Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
- a. Attribution.
+a. Attribution.
- 1. If You Share the Licensed Material (including in modified
- form), You must:
+1. If You Share the Licensed Material (including in modified
+form), You must:
- a. retain the following if it is supplied by the Licensor
- with the Licensed Material:
+a. retain the following if it is supplied by the Licensor
+with the Licensed Material:
- i. identification of the creator(s) of the Licensed
- Material and any others designated to receive
- attribution, in any reasonable manner requested by
- the Licensor (including by pseudonym if
- designated);
+i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
- ii. a copyright notice;
+ii. a copyright notice;
- iii. a notice that refers to this Public License;
+iii. a notice that refers to this Public License;
- iv. a notice that refers to the disclaimer of
- warranties;
+iv. a notice that refers to the disclaimer of
+ warranties;
- v. a URI or hyperlink to the Licensed Material to the
- extent reasonably practicable;
+v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
- b. indicate if You modified the Licensed Material and
- retain an indication of any previous modifications; and
+b. indicate if You modified the Licensed Material and
+retain an indication of any previous modifications; and
- c. indicate the Licensed Material is licensed under this
- Public License, and include the text of, or the URI or
- hyperlink to, this Public License.
+c. indicate the Licensed Material is licensed under this
+Public License, and include the text of, or the URI or
+hyperlink to, this Public License.
- 2. You may satisfy the conditions in Section 3(a)(1) in any
- reasonable manner based on the medium, means, and context in
- which You Share the Licensed Material. For example, it may be
- reasonable to satisfy the conditions by providing a URI or
- hyperlink to a resource that includes the required
- information.
+2. You may satisfy the conditions in Section 3(a)(1) in any
+reasonable manner based on the medium, means, and context in
+which You Share the Licensed Material. For example, it may be
+reasonable to satisfy the conditions by providing a URI or
+hyperlink to a resource that includes the required
+information.
- 3. If requested by the Licensor, You must remove any of the
- information required by Section 3(a)(1)(A) to the extent
- reasonably practicable.
+3. If requested by the Licensor, You must remove any of the
+information required by Section 3(a)(1)(A) to the extent
+reasonably practicable.
- b. ShareAlike.
+b. ShareAlike.
- In addition to the conditions in Section 3(a), if You Share
- Adapted Material You produce, the following conditions also apply.
+In addition to the conditions in Section 3(a), if You Share
+Adapted Material You produce, the following conditions also apply.
- 1. The Adapter's License You apply must be a Casual
- license with the same License Elements, this version or
- later, or a BY-SA Compatible License.
+1. The Adapter's License You apply must be a Casual
+license with the same License Elements, this version or
+later, or a BY-SA Compatible License.
- 2. You must include the text of, or the URI or hyperlink to, the
- Adapter's License You apply. You may satisfy this condition
- in any reasonable manner based on the medium, means, and
- context in which You Share Adapted Material.
+2. You must include the text of, or the URI or hyperlink to, the
+ Adapter's License You apply. You may satisfy this condition
+ in any reasonable manner based on the medium, means, and
+ context in which You Share Adapted Material.
- 3. You may not offer or impose any additional or different terms
- or conditions on, or apply any Effective Technological
- Measures to, Adapted Material that restrict exercise of the
- rights granted under the Adapter's License You apply.
+3. You may not offer or impose any additional or different terms
+ or conditions on, or apply any Effective Technological
+ Measures to, Adapted Material that restrict exercise of the
+ rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
@@ -353,18 +353,18 @@ Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
- terminate automatically.
+ terminate automatically.
- b. Where Your right to use the Licensed Material has terminated under
- Section 6(a), it reinstates:
+b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
- 1. automatically as of the date the violation is cured, provided
- it is cured within 30 days of Your discovery of the
- violation; or
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
- 2. upon express reinstatement by the Licensor.
+ 2. upon express reinstatement by the Licensor.
- For the avoidance of doubt, this Section 6(b) does not affect any
+ For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
@@ -436,4 +436,4 @@ It's a modification of Creative Commons BY-SA 4.0
Creative Commons may be contacted at creativecommons.org.
-```
+
diff --git a/content/hidden/phd2/trans.md b/content/hidden/phd2/trans.md
new file mode 100644
index 0000000..66607ca
--- /dev/null
+++ b/content/hidden/phd2/trans.md
@@ -0,0 +1,719 @@
++++
+Title = "Транскрипция доклада"
+hidden = true
++++
+
+
+
+# Введение
+
+Знаете ли вы что около 70% хакеров не делятся со всеми своими личными программами и скриптами
+(скрин со стендофф чата)
+А представьте, какой был бы замечательный мир, если эти 70%, делились ими! На github'e сейчас находится 571,000 результатов по ключевому слову 'hack'. Делим эту цифру на 30 процентов, умножаем на 70% получаем прирост на 1,300,000 репозиториев! Заодно, так мы бы заставили Microsoft купить для Github ещё парочку дисков в хранилку.
+( (571000 / 30) × 70 ≈ 1,332,333 )
+(скриншот с github)
+
+
+
+## Whoami
+
+Привет, я Casual
+Независимый иследователь, и я находился в топ-50 хакеров на Standoff365
+(независимый иследователь = безработный :) )
+Подробней обо мне вы можете посмотреть в моём блоге
+
+
+
+
+(QR и ссылка на about me в блоге)
+
+
+(Алексей - Casual)
+
+
+
+## Для кого, о чём и зачем этот доклад?
+
+(
+ 1. Научить писать hack tools
+ 2. Заставить их выкладывать
+)
+
+Я сделал этот доклад для начинающих хакеров, которые хотят упростить себе жизнь и написать свой первый хакерский инструмент, который поможет вам легче и быстрее взламывать самые непростые штуки. А также замотивировать более опытных, распространить свои скрипты и программы в публичных git репозиториях.
+
+То есть моя цель в том, чтоб заманить вас в движение OpenSource, а если у вас и схожая идеология, то и в движение Free Software, но об этом позже
+
+
+У этого доклада есть лицензия, смотря этот доклад вы принимаете её. Подробнее вы можете узнать по QR коду.
+(Casual BY-SA 4.0 - QR код на лицензию в блоге)
+
+
+
+
+Кстати, поднимите руки те, кто уже выкладывал любые свои программы и скрипты на Github или ему подобные!
+А теперь, пожалуйста, скажите пару слов о них! (2-3 человека)
+
+
+# Что такое OpenSource и Free Software?
+
+И так, что такое OpenSource и Free Software?
+
+Открытое программное обеспечение (OpenSource Software) — программы с открытым исходным кодом.
+
+То есть это те программы, исходный код которых вы можете посмотреть, изменить, и распространять для любых целей.
+
+
+Свободное программное обеспечение (Free Software) - программы, которые делают то же самое, но уважают "важнейшие" свободы пользователя, кстати вот эти 4 свободы:
+(
+0. Свобода запускать программу для любых целей.
+1. Свобода изучать и изменять программу для ваших целей.
+2. Свобода распространять копии.
+3. Свобода распространять модифицированные версии.
+)
+Ничего не напоминает?
+
+Так это получается ( OpenSource = Free Software )?
+Не совсем. Разница кроется в идеологии программистов.
+
+( OpenSource != Free Software )
+
+
+
+
+
+
+## Идеология
+
+Тут кстати нужно упоминуть о двух сообществах.
+Open Source Initiative (OSI) - сообщество продвигающее OpenSource Software (OSS).
+А также -
+Free Software Foundation (FSF) - (Free, в переводе не "бесплатно", а "свободная") сообщество продвигающее Свободное ПО(Free software)
+
+
+А теперь о разнице OpenSource и Free. Помните те 4 свободы, которые о которых я сказал раньше?
+Что исходный код можно посмотреть, изменить, и распространять для любых целей.
+
+хоть и технически соблюдаются лицензией в OpenSource проектах, но соблюдение которых, может и не быть приоритетом самих программистов.
+
+Приоритет у OpenSource разработчиков, это сделать надёжный и эффективный инструмент, который, в какой-то мере, может заменить коммерческие аналоги.
+А приоритет у "Свободных" программистов, это предоставить пользователю упомянутые свободы, в процессе создания надёжного и эффективного инструмента.
+
+Всё ещё не совсем ясно в чём конкретно разница, но сейчас объясню.
+
+
+К примеру, калькулятор на Android от Google. Для него используется лицензия Apache 2.0. Она соблюдает свободы. Однако калькулятор на вашем телефоне - это не свободная программа. Даже если у вас AOSP версия андроида, то есть собраная из исходников, и ваш каклькулятор полностью неизменённая версия того самого калькулятора,
+(мем - вы не можете просто так взять и установить калькулятор)
+вы не можете просто так взять, изменить его код и обновить его на вашем телефоне. Вам буквально запрещено установить свою версию калькулятора поверх предустановленного. Да, это решается прошивкой телефона или получением root прав. Но. Тех, у кого AOSP версия андроида, или скажем LinageOS можно пересчитать по пальцам в этом зале. (Кстати, Поднимите руки те, у кого кастомные прошивки на телефоне (шутка - эй, ты, ты 11-ый, пожалуйста опусти руку, ты нарушаешь правила этого доклада :) )
+А там, где вендор правит маскарадом, ситуация куда хуже.
+Он вам может ставить тот же калькулятор, но модифицированный, и из-за изменений в коде и вы не получите исходники этого уже проприетарного калькулятора. А вот кстати так выглядит инструкция по получение Root на флагмане Xiaomi, кстати для этого вам нужно подождать месяц
+(Скрин xiaomi)
+Если бы калькулятор использовал GNU GPLv3 лицензию, то его можно было бы обновить на свою версию.
+
+
+Очевидное решение - поставить ваш кастомный калькулятор не вместо стокового, а как обычное приложение. Но мне оно не нравится, по причине того, что я не люблю когда установлены лишние приложении, но что больше я не люблю, так это факт того, что я не знаю что, установлено на моём телефоне. Не новы случае, когда бэкдор уже предустановлен на телефон. А в случае Google, то везде где есть их сервисы, они по сути владеют Вашим телефоном.
+(google don't be evil)
+ Они отправляют все ваши фотографии нейронке для провреки на запрещённый контент. У них доступ ко всем паролям от ваших сайтов. К вашим СМСкам и уведомлениям. Они могут обнулить или залочить ваш телефон в любой момент. В общем
+ (literally 1984)
+ А возвращаясь к Xiaomi, на их флагман просто нет кастомной прошивки.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Но вернёмся к OpenSource.
+
+## Лицензии
+
+
+ Тут нужно кратенько рассказать про лицензии
+
+Грубо говоря, для OpenSource у вас есть выбор использовать, либо Permissive, либо Copyleft лицензию.
+
+Лицензия нужна для защиты разработчика и его продукта.
+
+Permissive обеспечивает соблюдение свобод - исходный код можно посмотреть, изменить, и распространять для любых целей. Это к примеру MIT License.
+
+Permissive и Copyleft лицензии очень похожи. Однако ключевое отличие - Permissive не запрещает приватизировать код. Т.е. корпорация может воспользоваться кодом из вашей программы, изменить её, и это уже будет её код.
+
+(ah finally copyleft)
+
+В случае же CopyLeft лицензии, компании нужно будет выложить любую модификацию вашей программы в открытый доступ под этой же лицензией. Т.е. просто взять и построить коммерческий продукт с такой лицензией не выйдет.
+
+Пример CopyLeft лицензии - GNU GPLv3
+
+
+
+## плюсы/минусы для разработчика
+
+А теперь поговорим как изменится ваша жизнь, если вы выложите вашу программу или скрипт в OpenSource
+
+Минусы:
+ - Недопонимания - как и в любой совместной разработке, это общение с людьми, нужно быть готовым к разнице в восприятии и подходов
+
+Плюсы:
+ - Мотивация - Выложив программу в открытый доступ, Вы делаете мир лучше, это отлично мотивирует продолжать разработку. - Ричард Столлман, разрабатывал набор утилит GNU, чтоб все могли ими пользоваться. Его команда собрали то, какой мы видем GNU/Linux сейчас.
+
+ - Репутация - Вы становитесь более узнаваемым в комьюнити, вас могут приглашать на эвенты и предлагать работу. - К примеру H.D. Мур, создатель Metasploit благодаря своему инструменту попал на множество мероприятий и на пост главного исследователя в Rapid7.
+ - Портфолио - Если вы будете устраиваться на работу, это будет плюсом, если у вас будут OpenSource проекты. - Для примера далеко ходить не нужно, в моём прошлом собеседовании меня попросили скинуть профиль на github.
+ - Рост - Делая OpenSource проект, он будет получать изменения от других программистов, которые помогут вам вырости как специалисту и поднять уровень ваших навыкови кода. - Возвращаясь к Муру, он сильно прокачался в написании эксплоитов при работе над Metasploit.
+ - Качество кода - вы будете писать код будет качественно, если будете знать, что его может увидеть абсолютно любой, чем если бы написали на коленке для себя. - в психологии это называется Эффект Хоторна.
+
+
+
+## плюсы/минусы для пользователя
+
+А теперь про плюсы и минусы для пользователя
+
+Минусы:
+ - Поддержка - её может и не быть, а разработка проекта может закончиться через месяц. - Я так одному ютуберу, который выложил свой скрипт вкинул несколько улучшений, но он забросил проект.
+ - Безопасность - нет гарантии, что программа безопасна, скачивание OpenSource утилит не отличается от скачивания крякнутых программ, если вы конечно не прочитаете исходный код. - Недавний нашумевший пример - это библеотека XZ, которая почти поставила на все обновлённые системы бэкдор.
+ - Гарантии - если программа поведёт себя как-то не так и приведёт к потере данных, никто не будет нести за это ответственность, кроме самого пользователя
+ - Документация - Наличие, актуальность и точность документации также не гарантировано. - Помнится я нашёл одну очень специфичную библиотеку на Python, которая решала мою проблему, но как ей пользоваться, я узнал изучая её исходный код.
+
+Плюсы:
+ - Цена - бери и качай. Все OpenSource программы бесплатны для использования.
+ - Платформы - OSS зачастую поддерживает больше платформ, чем проприетарный софт. К примеру, Adobe намеренно не разрабатывает Linux версию Photoshop, хотя у них есть версия под MacOS. А условная Krita, есть на всех платформах, да и вроде даже на Android.
+ - Владение - то, что вы скачали, будет работать на любой другой схожей системе, эта программа принадлежит вам (в рамках лицензии) и у вас её не могут отнять. К примеру, у одного музыканта была прога по типу FL Studio, которую он купил в 10 лет назад. После этого вышло несколько новых версий которые сильно отличались от этой. Севрис онлайн активации отключили, а его комп поломался. И из-за этого он не смог активировать старую версию программы, а техподдержка отказалась помогать ему, не смотря, что лицензия продукта позволяла продолжать использовать старую версию. А ему нужна именно эта версия для его работы. В итоге у него отняли то, что он купил.
+ - Безопасность - Пользователь может сам удостовериться, что программа безопасна и соответствует заявлениям разработчиков или вашим нуждам - вспоминая пример про XZ - иследователь нашёл бэкдор, а в проприетарном софте, к примеру Windows, он бы и остался необноруженным какое-то время.
+ - Кастомизация - Пользователь может доработать программу, чтоб она соответсвовала его нуждам. - Не нравится цвет окошка? Подправьте его и пользуйтесь программой. Или вам не нравится какое-то навязчивое окошечко или настройки по умолчанию. Вы можете всё это изменить.
+ - Community - любой пользователь может помочь разработчику с проектом. И речь не только о написании кода, это также помощь с обсуждением и предложением новых функций, написанием документации, поддержкой пользователей, созданием отчётов о багах или тестах программы. Каждый может помочь в разработке, внезависимости от умений, и получить от этого новые навыки. - К примеру разработчики сервера виртуализации Proxmox, получает больше фидбека от пользователей, чем от компаний. А некоторые пользователи сами им скидывают как исправить их программу, и это не просто костыль, а прям кусок кода, который основательно фиксит проблему.
+
+
+
+
+
+# Особенности написания хакерских утилит
+
+А теперь я расскажу про пример, какого это писать крутой хакерский инструмент
+
+## OpenSource = суматоха в жизни
+
+И наш герой H.D. Мур, создатель и разработчик, легендарного хакерского инструмента - Metasploit
+
+### пример - Metasploit
+
+В 90-ых Муру было 18 лет, ему в этом возрасте предложили первую работу в ИБ, в частности пентестером.
+ Но в то время было сложно получить эксплоиты, это сейчас мы просто берём и пишим в гугле, программу, её версию и "exploit". А тогда их так просто было не получить, нужно было искать людей в IRC чатах
+ (IRC скрин)
+, у которых могли бы быть эти эксплоиты. И когда комп Мура был хаотично забит разными эксплоитами без организации и разными вариантами запуска, он решил объеденить все доступные ему эксплоиты в одну программу которую назвал Metasploit. Запустив её, вы можете выбрать эксплоит, ввести входные данные и запустить его.
+(вопрос к аудитории - А теперь вопрос к аудитории - представьте, вы босс компании по информационной безопасности, и ваш сотрудник показывает вам свою программу, которая может дать __любому__ возможность взломать любую компанию. Как бы вы поступили?)
+В правильных руках - это инструмент, который поможет защитить множество компаний от взломов, а в неправильных руках, это самое настоящие кибер-оружие. И когда Мур показал это своему нанимателю, он не особо поддерживал его инструмент, точнее, он боялся его. Компания не хотела быть связана с Metasploit и со всем, что делал Мур, но и в то же время они не могли от него избавиться, так как Мур выполнял большинство активных пентестов.
+
+И вот, в 2003 год, он начал распространять Metasploit бесплатно, более того, Open-Source, на сайте metasploit.com. И это сразу же вызвало серьёзное народное волнение, причём казалось, что никто не остался в стороне:
+ - компания на которую работал Мур,
+ - клиенты,
+ - black hat хакеры,
+ - хакеры с даркнета, которые пишут эксплоиты,
+ - другие пентестеры, потому что они считали, что Мур крадёт их работу, выпуская такой мощный и простой для использования инструмент.
+И много недовольных захотели положить его сайт. Попытки взлома, DDoS'ы, , всё дошло до того, что 1 хакер, у которого не получалось взломать сайт, взломал провайдера Мура. Под атаку попал не только сайт, но и сам Мур, у него пытались украсть личность, оклеветать его в сети, всё что можете представить. Успешно атаковать на Мура не выходило, вот и кто-то решил атаковать работодателя Мура.
+
+Боссу Мура приходили письма с требованием уволить Мура, за то, что он делал в нерабочее время, так как считали, что то, что он выкладывает эксплоиты, это безответственно. Но это лишь сподвигло Мура работать усерднее над своим инструментом.
+Но естевственно не только хакеры и покупатели былли недовольны, также были недовольны и вендоры, разработчики программ, для которых Мур выкладывал эксплоиты. И чтоб компания Мура могла работала с вендорами, они хотели, чтоб не было эксплоитов для их продуктов в Metasploit.
+
+Муру нарвилось всё это, ему нравилось быть как и быть в пентесте атакующим, так и целью атаки одновременно.
+
+Позже Мур добавил инструмент Meterpreter, который делал Metasploit практически вирусом
+И помимо хакеров, его инструмент не нравился правительству. Всё это время у него были в запасе деньги, на которые он нанял бы адвоката, если бы его ночью арестовали. Но ничего такого не произошло.
+
+Постепенно команда работающая над Metasploit - начала составлять 200 разработчиков
+И в 2009 году, когда у Мура были долги, стартап, который не приносил денег и беременная жена, компания Rapid7 предложила у него купить Metasploit. И в итоге мы имеем OpenSource версию Metasploit и проприетарную Pro версию. А Мур получил высокооплачиваюмую работу, а также компанию, которая вступилась за него и его проект.
+
+Теперь Metasploit не просто инструмент для пентестеров, а этому учат даже в школах! Программа Мура прошла сквозь ненависть всего мира к общепринятому стандарту.
+
+Сейчас Мур уволился из Rapid7 и у него своя компания.
+
+(Source https://darknetdiaries.com/episode/114/)
+
+
+
+# Как писать программы, если вы не программист?
+
+На этом этапе я надеюсь, что убедил вас, что OpenSource это круто. Но теперь нужно узнать, как влиться в OpenSource в качестве разработчика.
+Мы сейчас быстренько пройдёмся по курсу молодого бойца, чтоб выйдя с этого доклада вы уже были готовы начать писать свою программу.
+
+
+
+## Язык программирования
+
+Про то, на чём писать вашу прогу.
+
+Тут можно начать очередной холивар за язык программирования, но я скажу, что самый крутой язык будет - англисйкий! Он невероятно поможет в изучении практически чего угодно.
+
+
+
+А относительно языка программирования, если вы не знаете какой выбрать для написания пентестерских инструментов или у вас нет опыта, то выбирайте GoLang, или просто Go.
+Только не показывайте друзьям их маскот
+
+
+
+### Как ему научиться
+
+И как научиться Go?
+
+Мне не нравится сидеть и монотонно изучать язык по книге, по этому я считаю, чтоб научиться писать, нужно просто
+(just do it)
+ начать пробывать писать свой код и читать чужой, а в процессе вы изучите язык.
+
+Однако, если вы всё-же хотите посидеть и почитать, особенно, если вы до этого в жизни не видели программный код, то я советую:
+ 1. оффициальный туториал о том как запустить Go на вашем компьютере,
+ 2. затем интерактивную экскурсию по языку,
+ 3. и в заключении перейти к туториалу на основе примеров.
+Так вы получите отличную базу.
+(стрелочки от ссылке к ссылке)
+https://go.dev/doc/tutorial/getting-started
+https://go.dev/tour
+https://gobyexample.com/
+
+
+
+## Как ~~программировать~~ гуглить
+
+Если вы думаете, что крутые программисты, сидят и просто пишут код, то вы не правы, программисты пишут код примерно так:
+
+(Мем как пишут успешные программисты код - google)
+
+Хоть это и звучит смешно, но первым делом, нужно научиться гуглить самостоятельно. Я говорю это, потому что я встречал много людей которые не могут это делать.
+
+
+1. Гуглите на английском. Так куда больше шансов найти что ответ.
+2. Конструкция запроса, примерно такая "язык программирования, что вы хотите"
+
+
+3. Иногда вы не получите ответ, в таком случае вам нужно перефразировать вопрос, в крайнем случае вы можете обратиться к ChatGPT чтоб перефразировал для вас или. Но не используйте ChatGPT для получения самого ответа на ваш вопрос
+4. Не просите помощи на форумах и у знакомых, пока не потратили хотя бы 25 минут на поиск решения, вы должны научиться сами справлять с такими проблемами
+
+
+## ОС
+
+
+ И пару слов об вашей операционке. Я настаятельно рекомендую установить и начать осваиваться GNU/Linux. Также и в ней программировать.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Git и все-все-все
+
+А теперь про Git
+
+Git - это система контроля версий. Это программа позвоялет откатывать изменения в файлах до предыдущего их сохранения.
+Также она помогает работать нескольким людям над проектом. Т.е. она умеет совмещать изменения сделаные несколькими разработчиками.
+
+Есть сервисы, которые предоставляют доступ к git репозиториям, самый популярный - GitHub. На него мы и будем загружать наш проект
+
+
+
+
+
+
+## Guidelines по созданию OpenSource проекта
+
+
+
+Так как же сделать свой OpenSource проект?
+
+(сделать скрины к каждому элоементу)
+0. Зарегестрируйтесь на Github
+1. Создайте Git репозиторий
+2. Выберете лицензию
+ - MIT, если не знаете что выбрать
+ - GNU GPLv3, если вы хотите, чтоб ваш проект был свободным ПО
+3. Склонируйте репозиторий `git clone REPO_LINK`
+ Однако если мы склонируем по SSH ссылке, мы получим ошибку. Т.к. сам github говорит, что мы не добавили SSH ключ в наш аккаунт.
+ Нажимаем по ссылке, а пока идём в терминал и генерируем SSH ключ с помощью `ssh-keygen`, нажимаем 3 раза enter. Выводим публичный SSH ключ с помощью `cat` и копируем его.
+ Далее вставляем в наши SSH ключи на Github. После этого мы сможем скачивать репозитории по SSH и загружать изменения, что предотвратит проблемы в будущем.
+4. Составьте план разработки
+ Вам нужно:
+ - Запишисать какие функции должна выполнять программа
+ - Запишисать какие входные данные нужны для неё
+ - Разбейить эти функции на мельчайшие компоненты, шаги, который должны выполнить программа
+ - поставьте для них приоритеты:
+ - базовые/необходимые функции
+ - дополнительные функции
+ - улучшения
+ К примеру, изначальная идея:
+ "Я хочу написать программу, которая будет помогать определить работает ли DOS на сайт, то есть сравнить скорость ответа от веб сервера до того как я начну атаку и после (назовём это DOS Checker), а также было бы круто, если бы она делала это в реальном времени и с красивым интерфейсом. Также нужна возможность вставлять кастомные Header'ы и делать POST запросы, если мы ломаем что-то на бэкэнде. А также хочется иметь возможность проверить, правильно ли происходят запросы, так что нужна поддержка http proxy для перехвата запросов. И для точности измерений, пусть она делает несколько запросов и вычесляет среднее время ответа."
+
+ В качестве входных данных нам нужны: опрашиваемая URL страница, тип запроса GET/POST (по умолчанию GET), тело запроса (для POST), ссылка на http proxy и запускать ли в режиме мониторинга.
+
+ Теперь нужно разбить эти функции на мельчайшие шаги:
+ - DOS Checker:
+ - получить ссылку из терминала
+ - Записать её в переменную
+ - с помощью библеотеки, сделать GET запрос к ссылке
+ - получить из библеотеки время ответа
+ - записать в переменную
+ - дать пользователю запустить атаку, то есть будем ждать нажатия любой кнопки
+ - повторить процедуру
+ - сравнить перемынные, если время ответа увеличилось в 2 раза или больше, значит атака успешна
+ - http proxy
+ - получить переменную из флага терминала
+ - если переменная не пуста, значит устанавливаем её в качестве прокси в библеотеке во всех функциях
+ - POST запросы + тело запроса
+ - Сделать отдельную функцию, которая будет делать POST запросы, на вход принимать тело запроса
+ - если POST флаг присутсвует, то вместо функции GET запроса, отправляем POST запрос с переменной из фалга тела запроса
+ - кастомные header'ы
+ - если флаг не пустой, то добавить его в header'ы всех функций, которые делают запросы
+
+
+
+ - Режим мониторинга
+ - найти библеотеку для красивого отображения терминального интерфейса
+ - представить как оно должно выглядеть
+ - ...
+ А теперь приоритеты:
+ Необходимые функции:
+ - DOS Checker
+ - http proxy
+ Дополнительные функции:
+ - среднее время ответа
+ - POST запросы
+ Улучшения
+ - кастомные header'ы
+ - режим мониторинга
+5. Начните разрабатывать вашу программу начиная с базовых функций
+ Просто садитесь и старайтесь сделать тот элемент, которую вы хотите. Гугл вам в помощь. Если гугл не даёт вам нужных результатов, значит нужно разбить функцию на ещё более маленькие элементы.
+ и как привнесёте нужные изменения, проверьте, что прграмма функционирует как вы хотит. Затем загрузите изменеия в репозиторий с помощью комманд `git add . && git commit -am 'новая фича' && git push`.
+ Однако вы наверняка столкнётесь с тем, что git не знает кто вы, по этому он попросит вас добавить ваш email и имя командами `git config`.
+ А, `git add .` - добавляет новые файлы в репозиторий
+ `git commit -am 'новая фича'` - фиксирует сохранение измений, к которым можно потом вернуться
+ `git push` - загружает их на GitHub. Для этого нужно будет добавит SSH ключ вашего ПК в Github аккаунт, но мы уже это сделали.
+ После этого наши локальные изменения отобразятся на github.
+6. Напишите README
+ README, это простой текстовый файл, который описывает ваш проект, и это первое, что увидет потенциальный пользователь в вашем инструменте.
+ README должен ответить на вопросы
+ - Что делает проект?
+ - Почему он будет полезен, то есть какой usecase?
+ - Как мне установить и попробывать его?
+ - Какие есть функции и как ими пользоваться? То есть небольшная документация
+
+
+
+И сейчас я расскажу свой опыт разработки
+
+
+
+
+## пример - owncloud_bruteforcer
+
+
+Во время пентеста, я нашёл owncloud сервис. Owncloud - это OpenSource облачное хранилище, которое можно развернуть на своём сервере. И сделав несколько попыток авторизации, я заметил, что сервис их не блокирует. Я решил, что можно перебирать пароли для пользователей, сделать отчёт и получить за него вознаграждение.
+
+Вот только возникла проблема, я не нашёл программу, которая могла выполнить все требования owncloud для авторизации. Видите ли, owncloud нужно для авторизации:
+ - валидный CSRF токен, который можно получить в теле страницы логина
+ (показать как на owncloud оно в исходниках)
+ - cookie, которые можно получить в header'ах ответа
+ (показать как на owncloud оно в header'ах сервера)
+ - а также определённые Header'ы в запросе, по типу "accept", которое приложение ожидает от клиента
+ (показать как на запросах он идёт)
+
+
+Я хочу написать bruteforcer, т.е. программу, которая пытается найти нужный пароль для пользователя, пытаясь авторизорваться с помощью wordlist'a, т.е. файла с паролями. Более того, я хочу иметь возможность атаковать сразу нескольких пользователей одной командой, предоставляя вместо имени пользователя, файл с пользователями. А в случае с owncloud, перед каждой попыткой авторизоваться, программа должна перейти на страницу логина, чтоб получить CSRF токен и cookie.
+
+
+
+### Идея
+
+( визуализировать то о чём я говорю, т.е. каждый элемент)
+
+И так, идея была проста, нам нужно:
+ - получить входные данные через флаги запуска программы
+ - с возможностью атаковать либо одного юзера, либо сразу множество из файла
+ - получить CSRF токен с cookie
+ - то есть сделать GET запрос на страницу логина
+ - с помощью регулярных выражений вычленить от туда токен
+ - с помощью регулярных выражений вычленить cookie из Header'ов
+ - и вставить их в переменные
+ - использовать файлом с паролями, для перебора
+ - попытаться авторизоваться
+
+ - в цикле запускается несколько воркеров, паралельных операций, которые будут пытаться авторизоваться
+ - каждый воркер, получает новый CSRF токен, а заодно и cookie
+ - каждый из воркеров берёт следующий пароль из wordlist'a и пытается авторизоваться, т.е. делает POST запрос подставляя username и пароль в тело запроса
+ - происходит проверка успешности авторизации через то, что ответит сервер на запрос
+
+
+
+### Разработка
+
+
+
+Во время разработки, я понял, что очень неудобно дебажить работает ли попытка авторизация, выводя весь пакет в терминале, по этому нужно добавить поддержку http proxy, чтоб я мог смотреть его в burp и иметь возможность проверить, что мы успешно авторизуемся
+(скрин бурпа)
+(сделать, чтоб по нажатии он добавлялся в презенташку в список идей)
+
+Во время разработки были баги, много багов. Помимо скучных и не совсем понятных багов, был и неожиданный:
+Суть в том, что я изначально использовал channel, Channel в Go используется для передачи данных между разными частями программы, которые работают параллельно. Вы можете представить себе channel как трубку, через которую данные могут быть переданы из одной части программы в другую. И в эту трубку можно ложить какое-то количество переменных,где они выстраиваются в очередь,
+После извлечения переменной из канала, она пропадает. Это решение отлично подходило в моём случае, потому что, у меня несколько воркеров, каждому из которых нужен следующий по списку, неиспользованный пароль.
+Так в чём заключалается проблема в этом псевдокоде?
+
+(псевдокод, упрощён для понимания)
+```go
+func main() {
+
+ // делаем что-то
+
+ for _,user := range users { // Цикл, для каждого пользователя выполнится код ниже.
+ // а также получаем переменную user, из массива users
+
+ pass := make(chan string, 15000001) // Создаём канал pass, с буффером в 15млн переменных.
+ // rockyou - 14,344,391
+
+ for passwords.Scan() { // Для каждого пароля из всех паролей из файла
+ pass <- string(passwords.Text()) // добавим пароль в канал pass
+ }
+ close(pass) // закрываем канал, чтоб функция bruteforce
+ // не ждала новых переменных в канале
+
+ for i:=0; i<10; i++ { // выполняем цикл 10 раз,
+ go bruteforce(user,pass) // go - запустить паралельно функцию.
+ // В следствии чего запускаем 10 функций bruteforce,
+ // которые в цикле читают пароли из канала
+ }
+
+ }
+}
+```
+(3 минуты таймаут)У вас 3 минуты, можете поднимать руку и высказывать предположения. Дам подсказку, этот баг в итоге сожрёт всю оперативу, почему именно это происходит?
+
+
+
+Дам ещё подсказку, вот так можно на скорую руку, починить проблему
+```go
+func main() {
+
+ // делаем что-то
+
+ for _,user := range users {
+ pass := make(chan string, 15000001)
+
+ for passwords.Scan() {
+ pass <- string(passwords.Text())
+ }
+ close(pass)
+
+ for i:=0; i<10; i++ {
+ go bruteforce(user,pass)
+ }
+
+ runtime.GC() // Чистим память от неиспользуемых переменных
+ }
+}
+```
+В общем проблема заключается в том, что чистильщик памяти (garbage collector) в Go, не успевает чистить память от уже неиспользуеммых каналов которые создаются в цикле. Но при этом варианте, программа всё ещё занимает под 250МБ памяти, что как минимум, не то, что я от неё ожидаю. Так что финальное решение стало:
+
+```go
+func main() {
+
+ // делаем что-то
+
+ for _,user := range users {
+ pass := make(chan string, 1000) // Меняем буфер на 1000 элементов
+ // т.е. мы ожидаем, что одновременно
+ // будет работать меньше 1000 потоков
+
+ go func(){ // запускаем добавление паролей в фоне
+ for passwords.Scan() {
+ pass <- string(passwords.Text())
+ }
+ close(pass)
+ }()
+
+ for i:=0; i<10; i++ {
+ go bruteforce(user,pass)
+ }
+ }
+}
+```
+То есть программа запускает фоновый процесс, который добавляет пароли пока не заполнится буфер в 1000 элементов, а как место освободится, он добавляет новые пароли. В то же время дальше паралельно запускаются воркеры, которые уже брутфорсят пароль юзера
+
+и не отходя далеко от темы багов можно поговорить за медленное программирование и cult of done, потому что у финального решения есть недостаток - мы для каждого пользователя по новой читаем файл с паролями, а если у нас пароли на медленном и умирающем жёстком диске, то это как минимум замедлит брутфорс. Тем не менее, это решение работает в рамках того какие баги я могу допустить.
+Т.е. к багам, лично для меня есть 2 варианта подхода:
+Медленное программирование
+и
+Следовать манифесту Cult of Done
+
+Что такое медленное программирование? - Это когда вы программируете, не для того, чтоб выполнить задачу, а чтобы заниматься творчеством и получать удовольствие от этого. То есть вы медленно, спокойно, пытаетесь решить проблему, элемент кода, самым эффективным решением. И много людей получают от этого кайф.
+
+И второй вариант это следовать манифесту Cult of Done, он не про программирование, но он про то как быстрее делать задачи. А ещё он короткий и мне нравится, вот часть манифеста:
+
+2.Смиритесь: всё, что вы делаете – это "черновой вариант". Так проще завершить работу. - Ожидайте, что ваш проект никогда не будет законченным, он не будет иметь всех функций, иметь самый оптимизированный код, или полнуй документацию.
+3.Этапа "редактирования" не существует. - Если вы считаете, что вот вы напишите сейчас основные функции программы, а потом начнёте их оптимизировать, то знайте, этого либо не будет, либо займёт непомерно много времени. По этому нужно писать хорошее решение сразу.
+7.Сделав что-то, можно про это забыть. - написали программу? Забудьте про её поддержку. У вас и так достаточно проектов над которыми вам нужно работать.
+8.Смейтесь над совершенством. Оно скучно и мешает вам завершить результат. - хоть я и перфекционист, но вы никогда не закончите проект, если будете делать его идеальным
+10.Поражение тоже считается завершённостью. Совершайте ошибки. - если у вас не вышло написать программу, то вы всё ещё в выйгрыше, вы узнали что-то новое и в следующий раз сделаете лучше.
+
+
+Какой подход лучше - решать исключительно вам.
+
+Но что для меня оказалось более неожиданным, так это то как реагирует owncloud на мою прогрмму.
+Оказывается, помимо программы по брутфорсу паролей, я написал программу по DoS-у. Когда я тестил программу в своей лабе, я заметил, owncloud грузит процессор на 100%.
+(скрин)
+
+Я вам расказываю про баги, для того, чтоб вы понимали, что ошибки в процессе - это совершенно нормально, без ошибок, ваша программа, и особенно вы, не станете лучше. Совершайте ошибки.
+
+Изучить финальную программу можно по qr коду, а вот так работает программа
+(Демка)
+
+
+
+# Выводы
+
+
+И так, резумируем доклад. Вы сегодня узнали:
+ - Узнали про OpenSource, виды лицензий и Free Software
+ - Узнали что будет если написать революционный хакерский инструмент (metasploit)
+ - узнали как сделать свой первый OpenSource проект, а это:
+ - сделать Git репозиторий,
+ - составить план разработки,
+ - выставить приоритеты для функций программы,
+ - разделить их на самые малые шаги,
+ - и начать писать
+
+
+
+
+## Community track блиц
+
+А теперь небольшой Community track блиц:
+
+1) Чего не хватает в современных профессиональных сообществах?
+Я считаю, что не хватает открытости, к примеру крайне мало пентестеров пишут о том как ищут уязвимости, какая у них методология и в каком случае она подходит. Особенно если в краткой форме. Мне лично очень этого не хватает, так что я пишу такие методологии для себя и буду делиться ими в своём блоге.
+
+2) Представь, что проекты, которые ты описал в докладе не были созданы. Как бы ты решал исходную задачу?
+ Я говорил про metasploit, Git, GoLang, а также про owncloud_bruteforcer
+ - Как по мне, Metasploit сделал ИБ сообщество таким, которое оно есть сейчас. Но если бы оно никак не повлияло на ход истории, то я бы просто пользовался exploit-db, т.к. там уже есть эксплоиты из metasploit.
+ - Если бы у нас не было git, то программисты делились бы кодом, в zip архивах и это было бы коллабарационный ад. Разработка затягивалась бы в десятки раз. А я сам бы пользовался контролем версий в Nextcloud, а также снапшотами BTRFS.
+ - Не будь у нас Go, я бы наверное писал на C++ или python, но потихоньку переходил бы на rust.
+ - Если бы я не написал owncloud_bruteforcer - я бы сделал скриптец, который через curl'ы имитировал бы мою программу. Но разработка бы затянулась, чтоб сделать процесс мультипоточным.
+
+3) Какой open source проект тебе хотелось бы создать если будет больше времени/ресурсов?
+ Я уже начал разработку такого проекта, но из-за доклада он на паузе. Это Ruina - моя автоматизация Recon'а для пентеста. Как допишу до первой стабильной версии - выложу в opensource и сообщу в своём блоге.
+
+
+
+
+
+
+Вы можете оставить фидбек для меня, а также найти транскрипцию доклада, и материалы к ней по QR коду далее
+(TODO транскрипция доклада, и материалы по QR коду)
+(qr код на фидбек)
+
+
+
+## Final
+
+
+И раз уж вы все досмотрели этото доклад до конца, вы обязаны выполнять условия лицензии, я зачитаю несколько из секции 7.
+ - Будьте этичными хакерами
+ - Делитесь исходным кодом своих программ
+ - Позвоните маме и сделайте комплимент.
+(qr код на лицензию + фотка интересной части)
+
+
+
+Источники.
+
+Спасибо за внимание!
+
+
+
+---
+
+# источники
+
+https://choosealicense.com/
+https://www.youtube.com/watch?v=B5GF3ror7WI
+https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
+https://stackoverflow.com/questions/3902754/mit-vs-gpl-license
+https://www.gnu.org/philosophy/open-source-misses-the-point.html
+https://dev.to/opensauced/open-source-101-a-beginners-guide-to-getting-started-37fb
+https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
+
+
+https://www.gnu.org/proprietary/proprietary.html
+https://www.gnu.org/philosophy/open-source-misses-the-point.html
+https://www.gnu.org/philosophy/free-sw.html
+https://www.quora.com/What-are-examples-of-open-source-software-that-are-not-free-software
+https://opensource.guide/starting-a-project/
+https://www.makeareadme.com/
+https://gist.github.com/PurpleBooth/109311bb0361f32d87a2
+https://darknetdiaries.com/transcript/111/
+https://www.infosecinstitute.com/resources/malware-analysis/malware-as-a-service/
+https://habr.com/ru/articles/727464/
+https://www.labirint.ru/books/495586/
+чатик standoff365
+https://cleverics.ru/digital/2012/05/cult-of-done/
+https://www.youtube.com/watch?v=bJQj1uKtnus
+https://kata.academy/article/kak-pravilno-guglit-programmistu
+https://en.wikipedia.org/wiki/Permissive_software_license
+https://en.wikipedia.org/wiki/MIT_License
+https://en.wikipedia.org/wiki/Apache_License
+lurk
+https://securelist.ru/the-hunt-for-lurk/29220/
+https://securelist.ru/bankovskij-troyanec-lurk-specialno-dlya-rossii/28708/
+https://www.interfax.ru/russia/821938
+https://www.kommersant.ru/doc/5216634
+https://unit42.paloaltonetworks.com/unit42-understanding-angler-exploit-kit-part-1-exploit-kit-fundamentals/
+https://i.redd.it/oy3zh5xhyra91.png
+https://vc.ru/legal/130439-polzovatelskoe-soglashenie-pyat-sovetov-ot-yurista
+https://yandex.ru/legal/rules/
+https://kata.academy/article/kak-pravilno-guglit-programmistu
+https://exploringyourmind.com/the-hawthorne-effect-we-change-when-people-watch-us/
+https://www.gnu.org/philosophy/free-sw.ru.html
+https://opensource.org/osd
+
+---
+медиа
+https://cdn.business2community.com/wp-content/uploads/2015/06/Open-Source-Logo-517x500.png.png
+https://pngimg.com/uploads/hacker/hacker_PNG23.png
+https://img2.joyreactor.cc/pics/post/geek-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-6555426.png
+https://www.pngegg.com/en/png-twwdz
+https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwiki.installgentoo.com%2Fimages%2Fthumb%2Fb%2Fba%2FSaintstallman.png%2F240px-Saintstallman.png&f=1&nofb=1&ipt=17158a05b6e2ede086b09fd610edd9d2c3ce82f70b251c657131e3c4e7816ada&ipo=images
+https://www.meme-arsenal.com/create/meme/12552572
+https://programmerhumor.io/wp-content/uploads/2021/07/programmerhumor-io-programming-memes-7bab27ca853c90a-768x516.jpg
+https://dazeinfo.com/wp-content/uploads/2012/04/Google-dont-be-evil1.jpg
+https://programmerhumor.io/wp-content/uploads/2021/07/programmerhumor-io-programming-memes-7bab27ca853c90a-768x516.jpg
+https://logos-world.net/wp-content/uploads/2020/09/Google-Logo.png
+https://pplware.sapo.pt/wp-content/uploads/2011/06/metasploit_logo.png
+https://atomrace.com/blog/wp-content/uploads/2017/10/metasploit-logo-300x300.png
+https://upload.wikimedia.org/wikipedia/commons/c/c9/Hdm2018.png
+https://www.inforte.com/wp-content/uploads/2020/12/rapid-logo-mup.jpg
+https://ashitani.jp/golangtips/gopher.png
+https://gowithcode.com/wp-content/uploads/2021/04/top-programming-languages.jpg
+https://avatanplus.com/files/resources/original/570a76716c3a215400deab23.png
+https://www.freeiconspng.com/img/44299
+https://www.dirjournal.com/info/wp-content/uploads/2012/02/UK-Flag-1.jpg
+https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.meme-arsenal.com%2Fcreate%2Ftemplate%2F8677148&psig=AOvVaw3TWd4xa5Hr6ALcJMMO9TDs&ust=1715354545860000&source=images&cd=vfe&opi=89978449&ved=0CBAQjRxqFwoTCJC4oOXvgIYDFQAAAAAdAAAAABAE
+https://www.google.com/imgres?q=just%20do%20it%20meme&imgurl=https%3A%2F%2Fi.giphy.com%2Fmedia%2Fb7f0X8Okk1uyk%2Fsource.gif&imgrefurl=https%3A%2F%2Fdev.to%2Fspences10%2Fcomment%2Fhge&docid=eUXoB89XLopxnM&tbnid=Kl1WOHnH41Hn8M&vet=12ahUKEwjk6fKu8ICGAxWzKhAIHTdRA5QQM3oECGsQAA..i&w=1280&h=720&hcb=2&ved=2ahUKEwjk6fKu8ICGAxWzKhAIHTdRA5QQM3oECGsQAA
+https://computergeek.nl/wp-content/uploads/2015/01/linux-tux_00378819-1024x768.jpg
+https://carbon.now.sh
+https://github.com/charmbracelet/vhs
+https://www.youtube.com/watch?v=sqBvq0_UF6M
+https://doc.owncloud.com/webui/next/classic_ui/webinterface.html
+
+https://stackoverflow.com/questions/28958192/no-output-from-goroutine
+https://go.dev/play/p/584-MAYeMUL
+https://gobyexample.com/command-line-flags
+https://gobyexample.com/channels
+
+http://color.aurlien.net/#212121
diff --git a/content/hidden/test.jpg b/content/hidden/test.jpg
new file mode 100644
index 0000000..a002a1c
Binary files /dev/null and b/content/hidden/test.jpg differ
diff --git a/content/whoami/contact_me.md b/content/whoami/contact_me.md
index 96bd777..fb0cd59 100644
--- a/content/whoami/contact_me.md
+++ b/content/whoami/contact_me.md
@@ -4,7 +4,7 @@ draft = false
+++
Chat with me on:
- - XMPP: casual@pwned.life
+ - XMPP: [casual@pwned.life](xmpp://casual@pwned.life)
Or write your message here (with contact information) and I will contact you:
diff --git a/hugo.yaml b/hugo.yaml
index d6a929a..88e233e 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -53,7 +53,7 @@ params:
author: "Casual"
email: c@sual.in # used for microformats
avatar: "/images/me.png" # used for microformats
- description: "casual description #TODO"
+ description: "Hacking blog"
# Uncomment if you need this
# images:
# - images/og-featured.png # relative path to "static" directory
@@ -63,7 +63,7 @@ params:
# - js/main.js # relative path to "assets" directory
# dateFormat: "29.01.2024"
# dateFormat: "29.01.2024"
- paginationSinglePost: true
+ paginationSinglePost: false
style: dark-without-switcher
mainSections: [ "blog" ] # which sections should be on index/main page
sectionsWithFullContentOnListPage: [ "notes" ] # for which sections content should be displayed on list pages
@@ -114,10 +114,10 @@ params:
# icon: "hugo"
#test rm me
-# markup:
- # goldmark:
- # renderer:
- # unsafe: true # enable raw HTML in Markdown
+markup:
+ goldmark:
+ renderer:
+ unsafe: true # enable raw HTML in Markdown
# module:
# imports:
# - disable: false
diff --git a/static/PHD2_presentation.pptx b/static/PHD2_presentation.pptx
new file mode 100644
index 0000000..2d9e97b
Binary files /dev/null and b/static/PHD2_presentation.pptx differ
diff --git a/static/hidden/PHD2_presentation.pptx b/static/hidden/PHD2_presentation.pptx
new file mode 100644
index 0000000..2d9e97b
Binary files /dev/null and b/static/hidden/PHD2_presentation.pptx differ