Archive for PowerShell

Bezprzewodowa rewolucja

Póki nie dysponowałem małym palmtopem, który miałbym zawsze ze sobą i mógł sprawdzić czy aby jakiś sieci bezprzewodowych nie ma w okolicy nie wiedziałem, że bezprzewodowa rewolucja jest naprawdę w szczytowej fazie. Sam polegam póki co jeszcze nadal na niezawodnej skrętce kategorii 5, ale sieci bezprzewodowe, czy to 802.11b czy g się rozrastają.

Obecnie, dysponując palmtopem z programem WiFiFoFum oraz odbiornikiem GPS zdarza mi się, gdy jeżdżę po mieście, włączyć skaner i tylko szukać. I patrzeć i notować do pliku XML. Pliku, który mam potem chęć obrobić, napisałem sobie na szybko korzystającą z Google Maps API aplikację wyświetlającą znalezione AP na mapie, aczkolwiek dzisiaj znalazłem w niej błąd - jeśli jakaś sieć nie ma SSID (ewentualnie wyłączone rozgłaszanie), to na tej sieci się analiza pliku XML przez mój skrypt zatrzymuje. No cóż, poprawi się, bo sposób działania jest tak tragiczny, że nawet nie będę pokazywał.

Niemniej jednak dzisiaj, wracając znad pewnego jeziora, śledziłem trasę z ulicy Turystycznej prawie do mnie na Czechów. Wcześniej też zrobiłem listę sieci jadąc prawie z jednego krańca miasta na drugi. A teraz, przed momentem i w ramach uczenia się PowerShella, napisał szybko skrypt parsujący ten XML i pokazujący sieci w postaci miłej tabelki i kilku statystyk na końcu. Nie wiem jednak czy faktycznie te wszystkie sieci z WEP oznaczonym na Off nie mają w ogóle szyfrowania czy też stosują zabezpieczenia WPA lub i/lub filtrowanie adresów MAC.

# parse-wifixml.msh
#
# Revision: 1.4
# Marcin "Ktos" Badurowicz, on GNU LGPL
#
# Parses WiFiFoFum XML file, shows list of found networks
Param ($fileName = "")
if ($fileName -ne "")
{
$xml = new-object System.Xml.XmlDocument;
$xml.Load($fileName);
$aps = $xml.GetElementsByTagName("AP");
# you can change what data should be shown:
# in my case is WEP, MAC, SSID, Latitude and Longtitude
$aps | format-table wep,mac,ssid,lat,lon -autosize;
# counting networks and unsecure networks
$aps | foreach {
if ($_.wep -eq "Off")
{
$nowep++;
}
if ($_.ssid -eq "")
{
$hidessid++;
}
$apcount++;
};
$percent = [System.Math]::Round($nowep / $apcount * 100);
Write-Output “$apcount networks found, $nowep without WEP ($percent%), $hidessid are hiding SSID`n”;
}
else
{
Write-Error “Syntax: parse-wifixml <filename>”;
}

Przykładowy wynik wygląda tak.

Bez szyfrowania jest bardzo duży odsetek sieci, przynajmniej bez WEP. A że WEP (jak i filtrowanie MAC) to średnie zabezpieczenie to powinien wiedzieć każdy administrator takiej przydomowej sieci. Zresztą nie tylko przydomowych, bo i udało mi się swego czasu do jakiś innych sieci podłączyć, które niekoniecznie wyglądały na publiczne hot-spoty.

Ale naprawdę obserwując tak wzmożony wzrost sieci WLAN poczułem się z moją skrętką (oraz jednocześnie jednym laptopem i jednym palmtopem obsługującymi 802.11g) jak jakiś dinozaur, który został w poprzedniej epoce. Ale tak w sumie to chyba przegapiłem uderzenie asteroidy - kiedy ono było?

| Komentarze (8)

Windows PowerShell 1.0

Wreszcie, wydana została finalna wersja platformy skryptowej Windows PowerShell. Pod tą (strasznie marketingową - kto to wymyślał), kryje się nowy shell (powłoka tekstowa), dla zaawansowanych użytkowników i administratorów. Przy której cmd.exe to zabawka, a z zazdrością patrzą nawet miłośnicy bash’a ;-) Dawniej znane jako MSH (Microsoft Shell) lub kodowo Monad (i ta nazwa jest ładna, a nie to co wyszło…).

A na serio - wreszcie jest to porządne narzędzie do tworzenia skryptów. Oprócz rzeczy normalnych - wszelkiego rodzaju pętli, funkcji, ifów i całej reszty tego, co w programowaniu niezbędne, PS daje możliwości integracji z platformą .NET. Co pozwala na przykład wykorzystywać w skryptach obiekty ze wspólnej biblioteki klas, na przykład do parsowania XML czy czegokolwiek takiego. Właściwie to jest to prawie pełnoprawny język platformy .NET. Tylko się cieszyć. Naprawdę genialne narzędzie.

PS przyglądałem się jakiś czas temu i teraz też się bym chętnie przyjrzał, gdyby nie to, że wersji na Windows Vista, którego (której?) używam obecnie jako systemu podstawowego, jeszcze nie ma. Ciekawe czemu, przecież pojawił się PS tuż po Viście w wersji finalnej. Ciekawe jest też, czy PS stanie się wbudowanym składnikiem Longhorn Server, ewentualnie (już zapowiadanego) Service Pack 1 do Visty.

Strona PowerShell

Chciałem dać jeszcze dwa linki do artykułów na wss.pl, ale serwer uparcie twierdzi, że pliku nie znaleziono. Dziwne, bo artykuły w menu są, a i czytałem je niedawno. Pewnie techniczne problemy.

A jak już przy konsoli jesteśmy - znalazłem świetne narzędzie. Open-source oczywiście :-) Console jest zamiennikiem dla normalnego Wiersza Polecenia. Obsługuje wiele róznych konsoli (cmd, PowerShell, pewnie i bash dało by się wrzucić), karty, przezroczystość i tym podobne. Wygodna rzecz.

Technorati Tags: , , , , ,

| Komentarze (4)