Většina adminů někdy použila mnou oblíbený program nmap. Tento nástroj slouží ke scanování sítě a dokáže zjistit, jaké služby na kterém počítači běží. Pokud chceme výsledky scanu uložit a např. porovnávat v čase, je třeba použít db_nmap, což je program, který je součástí Frameworku Metasploit.
Metasploit je produktem firmy Rapid7, která tento nástroj tvoří a prodává. Je to program pro penetrační testy. Metasploit má několik verzí nebo spíše edicí. Placená verze umožňuje pravidelně aktualizovat databáze chyb případně i exploitů a funkcionalita je hodně rozsáhlá.
Pro naše potřeby programu db_nmap nám postačí "Metasploit Framework - Free Open Source Development Platform", která je např. snadno instalovatelná ve FreeBSD jako port. Celý framework je postaven na jazyce Ruby.
Před samotnou instalací doporučuji instalovat Vámi preferovanou verzi databáze PostgreSQL.
cd /usr/ports/databases/postgresql92-server/ && make install clean
cd /usr/ports/security/metasploit && make install clean
Po instalaci je možné již pustit samotnou konzoli.
[root@fbsd ~]# msfconsole
Call trans opt: received. 2-19-98 13:24:18 REC:Loc
Trace program: running
wake up, Neo...
the matrix has you
follow the white rabbit.
knock, knock, Neo.
(`. ,-,
` `. ,;' /
`. ,'/ .'
`. X /.'
.-;--''--.._` ` (
.' / `
, ` ' Q '
, , `._ \
,.| ' `-.;_'
: . ` ; ` ` --,.._;
' ` , ) .'
`._ , ' /_
; ,''-,;' ``-
``-..__``--`
http://metasploit.pro
=[ metasploit v4.6.2-1 [core:4.6 api:1.0]
+ -- --=[ 1103 exploits - 621 auxiliary - 178 post
+ -- --=[ 300 payloads - 29 encoders - 8 nops
[*] Processing /root/.msf4/msfconsole.rc for ERB directives.
resource (/root/.msf4/msfconsole.rc)> db_connect -y /usr/local/share/metasploit/config/database.yml
[*] Rebuilding the module cache in the background...
resource (/root/.msf4/msfconsole.rc)> workspace -a SmEjDiL
[*] Added workspace: SmEjDiL
msf >
Z ukázky je vidět, že konzoje již využívá databázi pro ukládání výsledků scanů. Velmi podrobný a snadno pochopiletný postup, jak inicializovat databázi je popsán zde. Snad jen poznámka dríve byla podpora více databázi MySQL, SQLite a ta byla ukončena a podporována je pouze PostgreSQL. Metasploit je též součástí Linuxové distribuce Backtrack linux, kde je možná i nějaká modifikovaná verze.
Můžeme začít scanovat do DB
msf > db_status
[*] postgresql connected to msf_database
msf > db_nmap 192.168.42.0/24
Příkazem hosts si vypíšeme jednotlive výsledky, např. takto.
msf > hosts -R 81.95.98.2 -c address,name,os_name,os_flavor,updated_at,
Hosts
=====
address name os_name os_flavor updated_at
------- ---- ------- --------- ----------
81.95.98.2 gds39d.active24.cz Linux 2.6.X 2013-06-26 19:24:57 UTC
RHOSTS => 81.95.98.2
Příkazem services si vypíšeme objevené služby na daném hostu.
msf > services -R 81.95.98.2
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
81.95.98.2 25 tcp smtp open Postfix smtpd
81.95.98.2 80 tcp http open
81.95.98.2 443 tcp https open
RHOSTS => 81.95.98.2
Pokud nechceme používat jen nmap Metasploit disponuje např. celou řadou scaneru. Zajímá mě jaké verze Windows se v mé síti nacházejí. Pěkný návod jak nato je např. zde.
msf > use auxiliary/scanner/smb/smb_version
msf auxiliary(smb_version) > set RHOSTS 192.168.42.40-50
RHOSTS => 192.168.42.40-100
msf auxiliary(smb_version) > set THREADS 11
THREADS => 11
msf auxiliary(smb_version) > run
Výsledkem je např. toto.
msf> hosts -c address,os_name,os_flavor,os_sp,purpose
Hosts
=====
address os_name os_flavor os_sp purpose
------- ------- --------- ----- -------
192.168.42.40 Microsoft Windows 7 Professional 7601 b1 client
192.168.42.42 Microsoft Windows XP SP3 client
V minulosti jsem si koupil tuto knihu, která je pro msf3, ale i tak se z ní dá hodně čerpat.
Bezpečnosti zdar :-)
čtvrtek 27. června 2013
pátek 14. června 2013
VDSL modem Comtrend VR-3026e s pfSense/Alix
Tak jsem se po nějaké době dostal opět k DSL technologii přesněji VDSL. Jeden Negr z DKnL ma hospodu v Hradci Králové a doposud byl připojenej pomocí modemu Comtrend VR-3026e. Ovšem požadoval další funkcionalitu, kterou již modem nedokázal zastoupit.
Modem je to poměrně konfigurovatelnej ale hodně neintuitivni. A přijít na to jak jej přepnout do režimu bridge byl poměrně velkejk oříšek. Nápomocný byl např. tento návod.
Je třeba dopředu vědět, do jakého režimu je u O2 linka přepnutá. ADSL režim (ATM mode) a VDSL2 režim (PTM mode). Zde je též pár hodnotných informací.
Nastavení bridge pro ATM - ADSL2+
Nastavení bridge pro PTM - VDSL2
Po přepnutí modemu do bridge je již možno přistoupit ke konfiguraci routeru pfSense na desce Alix, kde se už jen nadefinuje PPPoE WAN interface, který se autentizuje pomoci usera O2 a sofistikovaného hesla O2 :-)
Modem je to poměrně konfigurovatelnej ale hodně neintuitivni. A přijít na to jak jej přepnout do režimu bridge byl poměrně velkejk oříšek. Nápomocný byl např. tento návod.
Je třeba dopředu vědět, do jakého režimu je u O2 linka přepnutá. ADSL režim (ATM mode) a VDSL2 režim (PTM mode). Zde je též pár hodnotných informací.
Nastavení bridge pro ATM - ADSL2+
Nastavení bridge pro PTM - VDSL2
Po přepnutí modemu do bridge je již možno přistoupit ke konfiguraci routeru pfSense na desce Alix, kde se už jen nadefinuje PPPoE WAN interface, který se autentizuje pomoci usera O2 a sofistikovaného hesla O2 :-)
čtvrtek 13. června 2013
Monitoring HAProxy pomocí Zabbix Agent
V práci jsem narazil na server, kde byla zprovozněna HAProxy pro přepínání provozu na dva IBM IHS servery (Apache).
Stav HAProxy se dá velmi podrobně sledovat pomoci socket. Pěknou inspirací byl tento návod.
V konfiguraci haproxy.conf je nutno zapnout zápis do socketů.
global
# Create a socket that allows us to query it directly
stats socket /tmp/haproxy.sock
Pro čtení ze socketu je třeba aplikace socat, která např. v RHEL 5.8 není a tak je někdy potřeba si ji zkompilovat ručne.
Já volil konkrétně tuto verzi, novější mi nešla zkompilovat.
cd /usr/local/src
wget http://www.dest-unreach.org/socat/download/socat-1.7.2.1.tar.gz
tar xzf socat-1.7.2.1.tar.gz
cd socat-1.7.2.1
./configure --disable-fips
make
make install
Pak už můžeme vyčítat požadované hodnoty. Zmíněný návod je velmi podrobný.
[root@server ~]# echo "show info" | socat /tmp/haproxy.sock stdio
Name: HAProxy
Version: 1.4.21
Release_date: 2012/05/21
Nbproc: 1
Process_num: 1
Pid: 29810
Uptime: 0d 0h01m46s
Uptime_sec: 106
Memmax_MB: 0
Ulimit-n: 8219
Maxsock: 8219
Maxconn: 4096
Maxpipes: 0
CurrConns: 17
PipesUsed: 0
PipesFree: 0
Tasks: 25
Run_queue: 1
node: server.domena.cz
description:
Konfigurací Zabbix agenta, kde nadefinujeme uživatelské parametry a pomocí grep a awk atd. vyďobeme jednotlivé potřebné hodnoty.
Toto je např. HAProxy "total" connections/sessions
UserParameter=hap.scur, echo "show stat" | /usr/bin/sudo /usr/local/bin/socat /tmp/haproxy.sock stdio | grep -i 'server,FRONTEND' |
sed 's/,/\ /g' | awk '{print $3}'
Pro povolení práce se socketem je nutno delegovat opravnění uživateli zabbix.
visudo
...
Defaults:%zabbix !requiretty
Defaults:zabbix !requiretty
## Allows 'zabbix' user to run all commands without password.
zabbix ALL=NOPASSWD: ALL
Stav HAProxy se dá velmi podrobně sledovat pomoci socket. Pěknou inspirací byl tento návod.
V konfiguraci haproxy.conf je nutno zapnout zápis do socketů.
global
# Create a socket that allows us to query it directly
stats socket /tmp/haproxy.sock
Pro čtení ze socketu je třeba aplikace socat, která např. v RHEL 5.8 není a tak je někdy potřeba si ji zkompilovat ručne.
Já volil konkrétně tuto verzi, novější mi nešla zkompilovat.
cd /usr/local/src
wget http://www.dest-unreach.org/socat/download/socat-1.7.2.1.tar.gz
tar xzf socat-1.7.2.1.tar.gz
cd socat-1.7.2.1
./configure --disable-fips
make
make install
Pak už můžeme vyčítat požadované hodnoty. Zmíněný návod je velmi podrobný.
[root@server ~]# echo "show info" | socat /tmp/haproxy.sock stdio
Name: HAProxy
Version: 1.4.21
Release_date: 2012/05/21
Nbproc: 1
Process_num: 1
Pid: 29810
Uptime: 0d 0h01m46s
Uptime_sec: 106
Memmax_MB: 0
Ulimit-n: 8219
Maxsock: 8219
Maxconn: 4096
Maxpipes: 0
CurrConns: 17
PipesUsed: 0
PipesFree: 0
Tasks: 25
Run_queue: 1
node: server.domena.cz
description:
Konfigurací Zabbix agenta, kde nadefinujeme uživatelské parametry a pomocí grep a awk atd. vyďobeme jednotlivé potřebné hodnoty.
Toto je např. HAProxy "total" connections/sessions
UserParameter=hap.scur, echo "show stat" | /usr/bin/sudo /usr/local/bin/socat /tmp/haproxy.sock stdio | grep -i 'server,FRONTEND' |
sed 's/,/\ /g' | awk '{print $3}'
Pro povolení práce se socketem je nutno delegovat opravnění uživateli zabbix.
visudo
...
Defaults:%zabbix !requiretty
Defaults:zabbix !requiretty
## Allows 'zabbix' user to run all commands without password.
zabbix ALL=NOPASSWD: ALL
čtvrtek 6. června 2013
Adding Custom Attributes in Active Directory
Dostal jsem zadání nastavit skupině v LDAP nějaký požadovaný atribut na textovou hodnotu.
V LDAP (AD Win2003 server) požadovaný atribut samosebou není.
Google mi našel tento návod, jak na to :-)
Nejvíce mě rozesmála první část. Do registrů přidat Schema Update Allowed, aby se objevil Snap-in Active Directory Schema v MMC.
Tomu říkám kvalitní SW :-(
V LDAP (AD Win2003 server) požadovaný atribut samosebou není.
Google mi našel tento návod, jak na to :-)
Nejvíce mě rozesmála první část. Do registrů přidat Schema Update Allowed, aby se objevil Snap-in Active Directory Schema v MMC.
Tomu říkám kvalitní SW :-(