|
|
HVA Facebook có phải là của HVA hay không hay do bạn nào đó thành lập nên? Mấy anh trong BQT có thông báo là HVA Facebook "xịn" là gì đâu. Nếu có ai đó tự lập nên nhóm trên Facebook thì chưa chắc có liên quan tới diễn đàn.
Diễn đàn không hề ủng hộ ai share malware hay tools. Các malware được share thông thường đều được encrypt để học tập, và nghiên cứu chứ không phải share để sử dụng.
khoai
|
|
|
explorer88,
Đến đây thì khá rõ rồi:
1. Chạy sock sever với -A (SO_REUSEADDR) thì có thể bind lại tại port cũ. Nếu không có thì không bind được. Đó là một feature của hệ điều hành. SO_REUSEADDR sẽ cho phép socket có thể được bind bởi nhiều process. Mình có thể mở rộng thêm coi cách hoạt động của nó như thế nào (hai ba process cùng binh một port được không? Cái nào nhận được dữ liệu, vân vân)
2. tcp_tw_reuse là cho phép client có thể sử dụng lại một port (thường là high-port). tcp_tw_reuse khác với SO_REUSEADDR. Thường thì mình không nên để tcp_tw_reuse=1 trừ trường hợp chắc chắn cần thiết. Khi nào thì cần: Nếu máy của mình liên tục tạo và ngắt kết nối, đến nổi hết port để dùng thì có thể sử dụng tcp_tw_reuse.
khoai
|
|
|
Hì, ăn gian quá. Lúc đặt câu hỏi dùng chương trình "sock" còn lúc test thì dùng "telnet", vậy làm sao test được Nhưng mà vậy cũng được, mình dùng thực nghiệm của bạn:
explorer88 wrote:
Tại bước 3, khi tắt client thì client sẽ gửi FIN, nhận ack, server cũng gửi FIN lại, client trả lời bằng ack rồi rơi vào trạng thái TIME_WAIT.
Vậy nghĩ là trạng thái TIME_WAIT là của client.
explorer88 wrote:
Tại bước 4, kill server, server chết luôn, server không có phục vụ client nào từ trước khi kill nên em chẳng thấy có trạng thái gì cả.
Vậy nghĩa là server sẽ không thấy trạng thái TIME_WAIT. Mình thử start/stop nhiều lần coi server của mình có trạng thái gì không? Sau đó, mình thử dùng lại chương trình sock rồi start/stop nhiều lần coi sao.
khoai
|
|
|
Hello explorer88,
Bạn thử ghi dữ liệu vào fd 0 của script bằng cách nào? Vô hiệu là vô hiệu sao?
khoai
|
|
|
explorer88,
Thật ra lý thuyết vẫn đúng, mà bạn cũng đúng. Lý do là bạn đang đòi "reuse" hai thứ khác nhau. Nếu bạn có vỉtualbox hay vmware player thì hãy thử như sau:
1. Máy thật là máy A, dùng để chạy server. Máy ảo là máy B, dùng để chạy client.
2. Không thay đổi cấu hình gì hết, thử chạy server trên máy A.
3. Dùng client từ máy B connect vào máy A, phải đảm bảo là connect được.
4. Ngắt kết nổi. Chạy netstat trên máy B để thấy TIME_WAIT
5. Kill server, chạy netstat trên máy A. Bạn có thấy status gì lạ không?
6. Thử restart server coi được không?
Túm lại, mình thử nghĩ TIME_WAIT là status gì, tại sao phải có TIME_WAIT status. Nếu mình muốn server của mình stop rồi start liền thì làm sao?
khoai
PS: Câu hỏi khá hay mà không ai thèm trả lời
|
|
|
vutrongtandng wrote:
Bài toán này la quy từ dãy vô hạn các string về tập hữu hạn hash, cho nên chắc chắn sẽ xảy ra collition, tuy nhiên xác xuất không cao, bạn yên tâm sử dụng md5 nhé
'
Trúng, sát xuất không cao thì không nên lo. Hàm băm nào cũng có collision. Tuy nhiên, cụ thể cho MD5 thì đã có nhiều paper hướng dẫn cách tính collision. Từ string s1 có thể tính ra string s2 khác mà có cùng md5 hash. Vậy thì việc bị collision không còn là ngẫu nhiên nữa. Khoai thấy bạn nên sử dụng một hàm hash khác (SHA-1 chẳng hạn).
khoai
|
|
|
ga_cum06 wrote:
@conmale : em thấy facebook cũng được viết bằng php, có phải nó mang hàm nghĩa 'toy' trong các enterprise-level
ga_cum06,
facebook thì chắc không "toy" đâu. Nhưng bạn cũng nên biết cách facebook xài PHP khác với cách một cá nhân hay một công ty thông thường dùng PHP. Thử đọc qua bài này: http://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/ để biết facebook làm sao scale PHP để đáp ứng được tốc độ và hiệu quả của mấy trang viết bằng PHP.
Đọc qua (link trên và mò thêm) mới thấy facebook phải làm rất nhiều thứ để optimize từ architecture, đến backend code, rồi frontend code và cả database. Vậy tại sao facebook làm vậy? Sao không sử dụng một công nghệ khác (như java chẳng hạn) hiệu quả hơn và dễ quản lý hơn. Khoai đoán là có nhiều lý do:
1. Ngày xửa ngày xưa khi facebook mới ra lò, chưa chắc có công nghệ nào ngon lành như bây giờ.
2. Trước giờ facebook là PHP, chuyển sang một công nghệ khác thì rất khó.
Vậy nếu bây giờ được làm lại từ đầu, mấy tay kỹ sư của facebook có chọn PHP không?
khoai
|
|
|
Professor1122 wrote:
Cảm ơn về góp ý của bạn
Năm nay mình học đến năm 4 rồi, chuyên ngành Điện tử, còn năm rưỡi nữa ra trường rồi. Đến bây giờ mình mới nhận ra mình không hề thích nó
Bắt đầu với Bảo mật ngay từ bây giờ liệu có phải là quá muộn??
Professor,
Không có muộn đâu. Chỉ muộn khi mình làm biến không chịu bắt đầu thôi. Điện tử hay công nghệ gì cũng có thể nghiên cứu về bảo mật cả.
Mình có một số câu hỏi dành cho các thành viên HVA, rất mong được giải đáp:
1.Có bao nhiêu ngành nghề liên quan tới lĩnh vực bảo mật và tên của chúng là gì? (cả tên tiếng Việt lẫn tiếng Anh) smilie
2.Nội dung các ngành như Khoa Học Máy Tính (Computer Science), Công Nghệ Thông Tin nói chung (Information Technology),... có liên quan tới Bảo Mật?
3.Có những học bổng nào về lĩnh vực bảo mật, của những nước nào cấp? Những quốc gia nào cấp nhiều học bổng về lĩnh vực này? smilie
4.Muốn đạt được những học bổng này cần chuẩn bị những gì? (cần những chứng chỉ CNTT nào,TOEFL-IELTS bao nhiêu, kinh nghiệm làm về bảo mật...?)
Rất mong nhận được sự đóng góp, chia sẻ của các bạn smilie
1. Câu này khoai trả lời rồi. Ngành nào cũng có thể chuyên sâu về bảo mật hết. Khoai thấy có nhiều trường "quảng cáo" một bằng đại học "Information Assurance" hay Security rất hay, nhưng cũng chỉ là chọn lọc lại các lớp học liên quan thôi, không có gì đặc biệt.
2. Nội dung: Tuỳ. Có các lớp buộc phải học, như Computer Science thì phải học computer architecture, rồi algorithm, data structures. Những môn đó tất nhiên có liên quan đến bảo mật. Nhưng nếu mình không học Computer Science, mà trường cho phép lấy các lớp đó thì vẫn nên lấy. Tóm lại là còn tuỳ trường.
3 + 4: Khoai chịu thua.
khoai
|
|
|
daizachoisang,
Chịu khó đọc thông báo lỗi thì sẽ hiểu thôi. Cứ logout login, sau đó reboot vân vân thì tất nhiên không hiểu vì sao bị lỗi.
khoai
|
|
|
phamquoc_truong,
Khoai không rõ bạn xài linux nào, nhưng khoai chỉ thử với ifconfig eth0 và ifconfig eth0:0 thì thấy ping ngon lành. Bạn coi có cái firewall rule nào ảnh hưởng đến từng interface không?
khoai
|
|
|
tenminhlaanh,
Teh tài liệu của MS: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/tracert.mspx?mfr=true thì tracert trên XP (win7/8 có thể khác) gửi ICMP echo request với TTL giới hạn lần lượt là 1,2,... Đến một node thì thường là ICMP Time To Live Exceeded sẽ được gửi trả lại (tại TTL sẽ bị giảm xuống thành 0). Gói ICMP gửi trả về sẽ có thông tin của next-hop, và mình sẽ biết route của mình đi như thế nào.
Node 4,5 bị timeout thì có nhiều lý do:
1. Có thể node 4 hoặc 5 không thèm chơi với ICMP echo request (ping), nên không thèm gửi error
2. Có thể node 4 hoặc 5 không bao giở gửi error hay ICMP message nào ngoài echo reply hết
vân vân.
Vậy làm sao trace route ra node 4 hoặc 5 đây?
khoai
|
|
|
MrDoA,
Đừng nên cái gì cũng chmod 0777 mà không hiểu lý do tại sao. Để hiểu rõ tốt nhất là phải đọc thêm về user management và permission trên *nix.
khoai
|
|
|
MrDoA,
Nếu chắc ăn là có /home/www/index.py thì kiểm tra permission xem. Nếu là 500 error thì nên xem lại error_log của apache.
khoai
|
|
|
Đầu tiên chúc mừng anh mrro lọt vô google và được "trả lương để làm research".
Anh mrro cho hỏi thêm về không khí ở google được không? Lúc trước khoai cũng có ý định bon chen xin vào google, nhưng có nhiều người bảo google đã không còn giống google ngày xưa. Họ bảo google đã là một công ty lởn, có rất nhiều "red tape, blue tape", "policy politics" tùm lum. Anh mrro hôm nào rãnh thì review về môi trường google dùm cho bà con nghe chơi
khoai
|
|
|
Chào anh myquartz,
Đúng là HTTPS thì khó mà lấy được session, nhưng không phải toàn bộ site của Facebook đều sử dụng HTTPS. GMail và Yahoo mail thì khoai không rõ, nhưng khoản 2 năm trước khoai có test thử trên facebook thì họ vẫn send cookies sang một số external resources hoặc apps mà chỉ dùng HTTP. Vậy thôi cũng đủ sidejack cái session rồi.
BEAST của anh mrro và julianor cũng đã chứng minh là SSL vẫn có thể bị khai thác nếu có đủ thời gian và các điều kiện cụ thể.
Trả lời anh xnohat:
HTTPS không phải mặc định là tại vì thêm chữ "S". Một chữ thôi nhưng server và client phải làm việc nhiều lằm
Mr.Cool1987,
Trên WAN thì tất nhiên là khó hơn, nhưng không có nghĩa là hoàn toàn không thể tấn công MitM. Có không ít các research về việc tấn công trực tiếp vào core routers và network, không khác gì việc "ARP poisoning" trong LAN.
khoai
|
|
|
Anh quanta,
hardlink chỉ là một entry point tới một inode. Có thể hiểu nôm na một file là một hard link point tới một inode. Mình có thể tạo thêm nhiều hardlink để cùng point tới một inode. inode mới có các thông tin về permissions. Do đó, nếu sử dụng hard link như myquartz ví dụ thì không thể cấp quyền cho từng trên các "links" mà phải change permission trên file gốc. Change permission trên các links cũng sẽ ảnh hưởng đến file gốc.
khoai
|
|
|
Ar0,
Ý tưởng khá hay nhưng mà hơi lạ một chút. RE thường là quá trình "tái tạo" lại cách làm việc của một chương trình nào đó. Nhưng linux nói riêng và OSS nói chung thì chủ yếu người ta "Open Source", như vậy việc phải RE một binary là khá hiếm.
Cụ thể Ar0 muốn chơi binary exploit, hay là muốn RE các malware trên linux vân vân thì khoai nghĩ có vài công cụ sau khá căn bản và cần thiết:
- gdb hoặc xxgdb nếu bạn muốn có GUI
- strace, strings, hexdump, disasm và các tools hỗ trợ khác
- tcpdump/wireshark, HIDS và các utilities hỗ trợ việc theo dõi malware
khoai
|
|
|
Ar0 wrote:
Lâu quá không xem topic này nên cũng quên nó mất tiêu. :-P
Tình hình hiện giờ là tớ đã phát hiện tại sao xảy ra lỗi trên, đó là vì laptop của tớ dùng chipset SIS, mà chipset SIS thì không hoạt động tốt với Linux nên xảy ra lỗi ở trên.
Tuy nhiên có 1 điều tớ vẫn còn đang thắc mắc là tại sao chỉ có một vài distro gặp lỗi, còn lại thì không? Ví dụ Slackware, Gentoo chạy bình thường, nhưng Fedora, Ubuntu lại lỗi? Có phải là vì các kernel của các distro đó có những điều chỉnh khác nhau từ những nhà phát triển.
Mỗi distro đều có những điểm khác nhau, không chỉ ở mức cấu hình mà còn ở kernel. Nhưng mà trường hợp của bạn thì khoai đoán khác. Mỗi phần cứng đều thuộc một nhóm phần cứng có "generic support". Rất có thể những features cụ thể cho Chipset SIS của bạn thì chưa được support hết, nhưng generic features thì vẫn ngon lành. Tuỳ distro, có thể các cấu hình/tiện ích cụ thể đòi hỏi những features chưa được hỗ trợ, còn một số distro khác thì không.
khoai
|
|
|
Đề nghị hai bạn Ar0 và bolzano_1989 đừng thảo luận như thế nữa.
Ar0 wrote:
@ minhhath: cái chúng ta học ở lập trình là tư tuởng, cách giải quyết vấn đề một cách khoa học chớ không phải là học thuộc các keyword của một ngôn ngữ lập trình nào đó. Nếu học VB rồi thì sang các ngôn ngữ khác cũng không có gì là khó lắm.
khoai đồng ý với Ar0 một phần về điểm này. Quan trọng vẫn là cách tiếp cận và giải quyết vấn đề, không phải là sử dụng ngôn ngữ nào đó để làm từng bước. Nếu bị trói buộc bởi ngôn ngữ nghĩa là tự mình giới hạn mình trong khuôn khổ ngôn ngữ đó.
Nhưng mà mỗi ngôn ngữ đều có một "kiểu" khác nhau. Một người chuyên viết C chuyển sang viết Java code cũng được, nhưng nhìn qua source code là mình thấy rõ ngay. Mỗi một nhóm ngôn ngữ có các cách tiếp cận vấn đề khác nhau. Bạn nên chú trọng tìm hiểu một (vài) ngôn ngữ đặc trưng cho từng nhóm sẽ có lợi hơn. Các nhóm mà khoai thường thấy:
- system programming (thường thì bà con khuyến khích tìm hiểu C/C++)
- scripting (perl, pythong, vân vân, scripting language thì nhiều lắm)
- web application (php, asp, ruby, hoặc perl, python)
- Object Oriented (Java, C#, cá nhân khoai thấy hai thứ này rất mang đậm tính OOP)
khoai
|
|
|
netviet wrote:
mình dùng lệnh sau để mở port cho iptables:
#iptables -A INPUT -i eth0 -p tcp --dport 7777 -j ACCEPT.
nhưng vẫn không connect được ftp server(cho mạng nội bộ) qua cổng này. stop iptables thì connect ftp ok.
rất mong các anh chị giúp đỡ.
netviet,
khoai không nhớ chắc, nhưng hình như Fedora và mấy distro dựa trên RedHat truyền hết INPUT chain vào một RH_INPUT chain hay gì đó. Bạn APPEND INPUT sau rule đó thì không có tác dụng. Tốt nhất nên xem lại file cấu hình iptables của Fedora để chỉnh sữa cho đúng chain.
khoai
|
|
|
Michael_Scotfield wrote:
Phần 1 : em thử comment phần socket sử dụng mysql.sock của mysql thì thấy vẫn connect bình thường.
Theo em hiểu thì unix socket domain là những socket để các service trong 1 máy giao tiếp với nhau. Vậy thì khi đóng socket của mysql thì ta sẽ không connect được tới mysql.
Phần 2: sau khi test thì em nhận thấy named pipes giống như 1 file tạm, nhưng khác ở chỗ là ta có thể truyền command thông qua named pipes còn file tạm thì ko được.
Michael_Scotfield,
named piped, socket vân vân chỉ các phương thức cho các process giao tiếp với nhau trên cùng một máy thông qua files. Mỗi loại có các điểm mạnh yếu khác nhau:
Unix Domain Socket tuy là một file, nhưng vẫn phải được sử dụng như là một socket. Các process phải sử dụng network API để open/read/write đến file đó. Nếu process đó được thiết kế như một network service (giống như mysql vậy) thì các hàm đọc/ghi dữ liệu có thể sử dụng chung network API mà không cần bận tâm đó là socket thiệt (TCP/IP socket) hay là socket file. Chỉ có các hàm open/close mới cần phải cụ thể cho từng trường hợp.
Named Pipe giống như cái ống nước, một đầu chảy vào, một đầu chảy ra. Bạn dùng cái gì "đổ vào" cũng được, và dùng cái gì hứng nước chảy ra cũng được. Dữ liệu được truyền đi theo dạng stream. Named Pip chỉ được một chiều. Nếu muốn truyền dữ liệu theo chiều ngược lại, mình phải làm thêm một cái pipe nữa.
Vậy file tạm khác named pipe ở điểm nào? File tạm không phải ống nước mà chỉ là một thùng nước tạm. Bạn đổ nước vào rồi phải "save" thì mới có thể lấy nước ra được. Một điểm khác biệt quan trọng nữa là file thông thường khi được mở, process đó thường exclusive lock, nghĩa là cả file đều bị lock. Một process khác không thể mở file đó để đọc trừ khi process đầu unlock file tạm. Named Pipe thì khác, cả hai process có thể dùng mở một named piped (một ghi, một đọc) để truyền dữ liệu cho nhau dễ dàng hơn.
khoai
|
|
|
Cái .screenrc của khoai rất đơn giản, cần gì thì mở thêm. Dạo này ít xài linux, và càng ít xài CLI Screen của khoai vẫn bắt đầu từ 0, tại vì vẫn có thói quen sử dụng 0 làm session chính.
Code:
activity "Active in %n (%t) [%w:%s]~"
defscrollback 3000
hardcopy_append on
caption always '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
shelltitle "$ |bash"
khoai
|
|
|
B 0 0 B wrote:
panfider wrote:
mình nghĩ ssh không bị lỗi gì nên nếu mở port ssh thì không sao, với lại đã mở port ssh thì dùng scp thay cho ftp khá hiệu quả mà cũng an toàn
các bạn thật là lạc đề, đã bảo phải ko đụng router rồi (set router ko có quyền set), đụng vào tớ ko phải mệt mỏi đâu?
Không động đến router thì chỉ sử dụng được các cổng mà router đã open sẵn, vậy thì có thể ép ssh chạy trên các cổng trên. GUI để quản lý từ xa mà an toàn, hiệu quả, thì khoai nghĩ tốt nhất thử như anh conamle nói: VNC trên nền ssh, hoặc remote X thông qua ssh.
Ví dụ như router không open bất cứ incoming port nào cả, mà mình muốn remote connect vào máy ở trong thì có cách nào không?
khoai
|
|
|
|
|
|
|