Інвентаризація * NIX

Інвентаризація * NIX
Отже, зараз би я хотів перейти до однієї з найбільш суперечливих тем в інвентаризації. Суперечливою тому, що ніякої важливої ​​інформації ви можете не зібрати взагалі, тому що nix системи грунтуються на безпеки TCP - IP протоколу (яка відпрацьовувалася роками) практично без нововведень.
*** Обмовлюся, що Linux має більше нововведень.
Тому, якщо вам попадеться система, яка була побудована з розумом, то нічого корисного ви можете і не зібрати, але якщо знову ж хто - то вирішив встановити всього і побільше, то ... система може стати дуже слабкою в захисті.
Для мене особисто питання, як написати цю статтю правильно (!!!) стоїть дуже гостро. Причина знову ж варто в тому, що «сказати зайве» може майже кожен мережевий демон, але при цьому я не можу присвятити свою увагу тому, як «розговорити» Apache або SendMail (це можна знайти і в більш вузьких статтях чи багтаках, адвісорі і пр.). Тому доведеться сказати про те, що більш популярно і що, швидше за все, спрацює. Тому, ця стаття буде дуже коротка.
Для початку скажу, що варто прочитати про сканування портів, перш ніж читати далі.
В * nix системах є дуже популярні пакети, які, безумовно нас і цікавлять. Наприклад, вже сумнозвісна служба RPC (Remote Procedure Call), а так само NFS (Network File System) і NIS (Network Information Service).
Давайте спочатку подивимося на RPC. Ця служба необхідна програмам, які обмінюються інформацією по мережі. Спеціально для цього і був розроблений RPC. На основі даного протоколу працює програма rpcbind. Її призначення: бути посередником між клієнтом і портом. Програма динамічно призначає порти клієнтам. Для інвентаризації RPC існує утиліта rpcinfo, яка працює подібно finger (розгляну нижче).
Ну, ми знову зіткнемося з тим, що нам потрібен список відкритих портів, тому що нам потрібен порт 111. Якщо ми знаємо, що ми маємо справу з Sun, то порт 32771.
/ * Майте на увазі, що в реальності ви, швидше за все, подібного не побачите, як це було в моїх попередніх статтях, які писалися, використовуючи діряві машини, які і до цього дня в мережі. Зараз я змоделював таку машину в своїй мережі, щоб заощадити час на пошуку дірявої машини в Інтернеті. Тому в лістингах ви будете бачити в основному те, що має в собі уразливості і на що ви повинні звертати увагу при інвентаризації * /
---------------------------------------
#rpcinfo -p XX.XXX.XX.XXX
program vers proto port
100000 2 tcp 111 rpcbind
100002 3 udp 712 rusersd
100005 1 udp 635 mountd
100003 2 udp 2049 nfs
100004 2 tcp 778 ypserv
... ... ... ... ...
---------------------------------------
Звідси ми бачимо те, що у нас є демон rusersd (який може нам показати більш докладну інформацію), ypserv (сервер служби NIS), mountd, від якого ми отримаємо інформацію за допомогою showmount -e (більш докладно розгляну нижче). Можна подивитися чи є сервер rquotad: rpcinfo -n 111 -t 100011
У службі RPC серверу rquotad відповідає номер 100011.
Так ми можемо легко дізнатися, що запущено в системі, а також отримати дещо яку додаткову інформацію. Звичайно, ми могли б отримати це і за допомогою сканування портів, але! Зверніть увагу, що ми бачимо udp і tcp, а сканера довелося б сканувати udp додатково.
Тепер розглянемо NFS.
Тут все досить просто. Якщо ми знаємо, що у нас (100003 2 udp 2049 nfs), то ми вводимо і бачимо кулі
--------------------------------------
showmount -e XX.XXX.XX.XXX
export list for XX.XXX.XX.XXX
/ Pub (everyone)
/ Source (everyone)
/ Loc (everyone)
/ Usr user
--------------------------------------
Варто зауважити, що тепер до складу Linux входить альтернатива NFS Samba! В якій виправлені недоліки NFS, само собою додані свої. Samba використовує протокол SMB (Server Message Block), це є свого роду точкою дотику * nix і Windows систем, щодо спільно використовуваних файлів і принтерів.
Наступний більш «ласий шматочок» називається NIS. Іноді мені здається, що вона була розроблена нашим урядом. Ідея хороша, але реалізація все загубила. Отже, її хороша сторона то, що вона створена для підтримки розподіленої бази даних мережевої інформації. А тепер реалізація ... за допомогою простого RPC запиту NIS сервера ми отримаємо будь-яку карту NIS. Карта являє собою файл, в якому міститься інформація кожного вузла домена, аж до паролів Smile sad
Для початку нам потрібно дізнатися доменне ім'я. Для цього можна скористатися pscan (валяється всюди). Вона методом підбору надасть нам всю інформацію.
У нас є список файлів і відповідних їм карт.
___________________________________________________________
/ Etc / hosts | hosts.byname, hosts.byaddr
/ Etc / networks | networks.byname, networks.byaddr
/ Etc / passwd | passwd.byname, passwd.byuid
/ Etc / group | group.byname, group.bygid
/ Etc / services | services.byname, services.bynumber
/ Etc / rpc | rpc.byname, rpc.bynumber
/ Etc / protocols | protocols.byname, protocols.bynumber
/ Usr / lib / aliases | mail.aliases
-------------------------------------------------- ---------
Забіжу вперед і скажу, що весь злом може закінчиться тут ---> #ypx -o passwd.byname -g target.remote.com
Далі згодуємо паролі який-небудь улюбленої проге, яка нам їх в нормальному вигляді представить, ну і припустимо рута можемо і не добути, але паролі деякі у нас будуть.
Уявімо, що у нас є здогадки про імена користувачів системи, або ми хочемо перевірити чи є певний користувач в системі. У цій справі нам допоможе SMTP (Simple Mail Transfer Protocol). Серед всіх інших, у нього є 2 корисні команди:
// В конфігах їх можна відключити
1. vrfy - підтверджує що введене ім'я є в системі
2. expn - відображає реальну адресу доставки листа. Але якщо ми маємо справу зі списком розсилки (mailing list), то ПОА покаже всіх членів еого списку.
приклад:
---------------------------------------
#telnet XX.XXX.XX.XXX 25
Trying XX.XXX.XX.XXX ...
Connected to XX.XXX.XX.XXX.
Escape character is '^]'.
220 mail.target.ru ESMTP Postfix
vrfy john
252 john
expn mike
250 mike
quit
221 mail.target.ru closing connection
----------------------------------------
Тепер дуже коротко. Якщо ми побачили, що відкритий 79 порт, значить ми маємо справу з finger. Дуже стара утиліта, але все-таки ще зустрічається. Просто насправді вона биладействітельно потрібна на зорі інтернету, коли він не був таким простим у використанні. Finger служила для того, щоб хто небудь міг отримати інформацію про користувачів.
Найкраще все подивитися на прикладі:
--------------------------------------------
#finger -l @ haha.lala.com

[Haha.lala.com]
Login: root
Directory: / root
On since Thu Jan 28 23:12 (PST) on tty1 2 minutes idle
(Messages off)
On since Thu Jan 28 23:12 (PST) on ttyp1 12 minutes idle
1 mail
Plan:
I am root
My phone num 555.555.55
--------------------------------------------
Загалом то нічого особливого, але ми зможемо подивитися які користувачі є, як довго вони неактивні. Наприклад можемо подивитися наглядає чи зараз за системою рут, в нашому випадку я працював активно, так що лізти не варто було б.
У висновку хочу сказати, що для кожного дистрибутива можна знайти свої методи інвентаризації, може бути коли небудь я зберу всю можливу інформацію по цій темі. Викладу як доповнення а-ля "Інвентаризація RedHat". Те, що було викладено вище так чи інакше допоможе в розумінні інвентаризації системи Unix і її клонів. Можна знайти багато систем з подібними проломи. У моєї майбутньої статті я опишу, як використовувати брандмауер собі на користь. Як маршрутизатор. Тому в мережі відкриються багато зовсім незахищені Unix, Windows і ін. Системи. Інвентаризація кожної окремо буде теж дуже корисна, тому що вони і будуть точками вторгнення в мережу. Ось там і згадаємо ВСЕ.