[Discussion] PullThePlug wargame |
19/07/2008 21:33:36 (+0700) | #1 | 142301 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Mấy hôm nay tối nào tôi cũng chơi mấy cái wargame của đám PullThePlug ở http://www.overthewire.org/wargames.
Hiện tôi đang chơi Vortex, chuyên về software exploitation. Thằng Vortex này thì một số level khá đơn giản, chỉ cần kiến thức về *nix là giải quyết được, nhưng cũng có một số level đòi hỏi phải có kiến thức về software exploitation, bao gồm reverse engineering, cách khai thác các bug thông thường và viết shellcode. Tuy vậy nó không thực sự quá khó, nếu so sánh với các daemon ở các cuộc thi CTF thì có thể nói là dễ hơn nhiều (bởi vì không cần tìm bug, chỉ cần khai thác thôi, bug nó hiện rõ ra như ban ngày; việc khai thác cũng không bị quá nhiều ràng buộc).
Hôm qua đến giờ tôi đang bị kẹt ở một level của thằng Vortex mà lười đọc tài liệu nên chuyển qua chơi thằng Semtex, thấy cũng hấp dẫn lắm. Thằng Semtex thì thiên về programming hơn.
Bà con chơi thử, rồi cùng nhau bàn luận cách giải cho vui .
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
20/07/2008 12:21:51 (+0700) | #2 | 142426 |
|
4hfoo
Elite Member
|
0 |
|
|
Joined: 29/01/2007 01:50:20
Messages: 115
Offline
|
|
Cái này chơi cũng vui và hấp dẫn.
Mình đang làm cái vortex. Khi nào bí sẽ post lên đây để kiếm lời giải ...
Thân
|
|
|
|
|
[Question] Re: PullThePlug wargame |
21/07/2008 11:23:25 (+0700) | #3 | 142563 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
He he mới đi chơi về, tối nay sẽ thử sức cái vortex 11. Cái này là về heap exploitation, tui cũng chưa đọc gì hết, tối nay sẽ thử đọc xem sao, hi vọng là sẽ giải quyết được. Thấy mấy cái level sau càng lúc càng hấp dẫn.
Bồ 4hfoo đến level bao nhiêu rồi?
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
22/07/2008 09:13:06 (+0700) | #4 | 142701 |
|
4hfoo
Elite Member
|
0 |
|
|
Joined: 29/01/2007 01:50:20
Messages: 115
Offline
|
|
Mình mới tới level 3, phải cố gắng dài dài mới theo kịp bồ
|
|
|
|
|
[Question] Re: PullThePlug wargame |
22/07/2008 15:42:57 (+0700) | #5 | 142761 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Tui vẫn chưa qua được level 11. Tài liệu dài quá, vẫn chưa đọc xong.
Bồ 4hfoo có cần giúp đỡ gì cho level 3 kô?
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
07/08/2008 16:45:22 (+0700) | #6 | 145555 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Up phát nào,
Hôm nay tí tởn làm thử cái vortex, vướng phải cái level 0 :">. Sau khi send tổng 4 số nguyên mình nhận được lúc kết nối lên server thì nhận về một cái xâu hầm bà lằng, dịch ra chuỗi số nguyên nguyên thì thấy nản quá . Mình muốn hỏi là cái định dạng username/password mà thằng server trả về cho mình có định dạng như thế nào |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
07/08/2008 21:16:32 (+0700) | #7 | 145564 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
username có dạng level1, level2, level3, levelx...
password có dạng $%389@hela
nói chung là các ký tự in được. |
|
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 02:50:04 (+0700) | #8 | 145621 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Thanks bác lamer, bị cái xâu nhập nhằng là do không đọc kĩ đề :">
Không hiểu cái đề khỉ này, chúng nó yêu cầu thế nào nữa. Rõ ràng là mình đã cộng 4 số nguyên dương vào rồi gửi cho chúng nó mà sao vẫn cứ sorry thế nhỉ |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 03:55:27 (+0700) | #9 | 145628 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
K4i: code của bồ thế nào? bồ đã nhớ unpack với lại pack mấy cái integer cho chính xác chưa?
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 05:08:16 (+0700) | #10 | 145637 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
@mrro:
- ban đầu mình đã thử đọc và gửi bình thường, không pack và unpack thông qua hàm ntohs và htons nhưng không được. Nhận được xâu trả về là sorry, btw
- Sau đấy, khi nhận được data, mình unpack (sử dụng htonl) và sau đó tính tổng. Trước khi send thì pack lại thông qua hàm ntohl. Kết quả là nhận được một xâu hầm bà lằng, đọc không hiểu gì hết.
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 06:00:11 (+0700) | #11 | 145646 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
K4i: tui không viết bằng C, nhưng đọc qua thì thấy hình như bồ nhầm lẫn đó, nhận từ server về thì bồ phải dùng ntohl để unpack, còn gửi đi thì mới dùng htonl để pack.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 06:19:05 (+0700) | #12 | 145650 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
@mrro: lúc nãy gõ nhầm, phải là ntohl để unpack và htonl để pack lại rồi mới send đi. |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 06:23:07 (+0700) | #13 | 145651 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
0xFFFFFFFF là -1 hay 4 tỷ? |
|
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 07:19:21 (+0700) | #14 | 145666 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 08:33:32 (+0700) | #15 | 145685 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
đó là vấn đề đó chài ơi, lẽ nào nói huỵch toẹt ra hết sao? hehehe |
|
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 08:51:29 (+0700) | #16 | 145687 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
lamer wrote:
đó là vấn đề đó chài ơi, lẽ nào nói huỵch toẹt ra hết sao? hehehe
Phải chăng ý anh nói đến tràn số |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 12:38:04 (+0700) | #17 | 145734 |
kanzo
Member
|
0 |
|
|
Joined: 05/08/2008 22:29:47
Messages: 4
Offline
|
|
Lấy được username và password cho lv1 rồi thì làm gì với nó đây, mấy bác có kinh nghiệm giúp em với. |
|
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 13:33:25 (+0700) | #18 | 145739 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 14:12:11 (+0700) | #19 | 145742 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
@lamer: thanks bác, em xử lý xong rồi. Chuyển sang code python. Dùng C thì đúng là khóc tiếng Mán mà không hiểu tại sao sai. Giờ chỉnh lại code C xem có xử lý được không |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: PullThePlug wargame |
08/08/2008 14:15:14 (+0700) | #20 | 145743 |
kanzo
Member
|
0 |
|
|
Joined: 05/08/2008 22:29:47
Messages: 4
Offline
|
|
em xử lv0 cũng dùng python , đang đọc tài liệu của lv1 mà chưa thấy hướng đi ở đâu |
|
|
|
|
[Question] Re: PullThePlug wargame |
09/08/2008 00:41:12 (+0700) | #21 | 145778 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
cái lvl1 nó hơi bị chuối đó ), làm đúng chưa chắc nó sẽ chạy. nếu bí thì thử đọc mấy cái comment trên đó, xem họ suggest là làm gì.
lvl2 cũng không có gì đáng nói. bắt đầu từ lvl3 sẽ hay hơn.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
12/08/2008 15:04:30 (+0700) | #22 | 146345 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
hahahaha vui quá, hôm nay rùa rắn thế nào mà đã qua được lvl11. trời ơi cái tài liệu của nó dài gần 30-40 trang, đọc tới đọc lui mãi vẫn không xong, nên tui quyết định không đọc nữa, nhảy vào gdb mò mẫm luôn, hên sao qua được.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
13/08/2008 04:05:51 (+0700) | #23 | 146457 |
mr.khungxox
Member
|
0 |
|
|
Joined: 23/06/2007 13:43:16
Messages: 117
Offline
|
|
Cho em hỏi semtex level 0 hình mấy gói ở cổng 24000 và 24001 không down được phải khong ạ? |
|
|
|
|
[Question] Re: PullThePlug wargame |
13/08/2008 06:41:26 (+0700) | #24 | 146495 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
mr.khungxox: không hiểu ý bạn lắm, nhưng mà level0 của semtex đâu có "hình" gì đâu bạn? đề nó nói khá rõ, là cứ download hết dữ liệu cho đến khi nào không còn download được nữa thì bắt đầu xử lý đám dữ liệu đó.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
15/08/2008 20:31:38 (+0700) | #25 | 147020 |
mr.khungxox
Member
|
0 |
|
|
Joined: 23/06/2007 13:43:16
Messages: 117
Offline
|
|
Em down được x86/elf ở cổng 24000 nhưng down gói tiếp theo ở cổng 24001 thì nó cứ báo
Load page error
"Failed to Connect
The connection was refused when attempting to contact semtex.labs.pulltheplug.org:24001."
|
|
|
|
|
[Question] Re: PullThePlug wargame |
16/08/2008 02:36:57 (+0700) | #26 | 147075 |
LeVuHoang
HVA Friend
|
Joined: 08/03/2003 16:54:07
Messages: 1155
Offline
|
|
K4i wrote:
Up phát nào,
Hôm nay tí tởn làm thử cái vortex, vướng phải cái level 0 :">. Sau khi send tổng 4 số nguyên mình nhận được lúc kết nối lên server thì nhận về một cái xâu hầm bà lằng, dịch ra chuỗi số nguyên nguyên thì thấy nản quá . Mình muốn hỏi là cái định dạng username/password mà thằng server trả về cho mình có định dạng như thế nào
Đâu có hầm bà lằng đâu ta, bạn lấy được 4 số nguyên, send lên server, xong sẽ nhận được chuỗi tương tự như trong hình:
Hoàng viết 1 cái demo nho nhỏ bằng Delphi để tự động solve cái Level 0 nè. Lấy 4 số nguyên, tổng lại rồi send trở về server. Cuối cùng hiển thị kết quả thôi.
Download (source included): http://www.mediafire.com/download.php?fzjzdniwr1a
Code:
{
Solution for Vortex level 0 wargame (http://www.overthewire.org/wargames/vortex/level0)
This console application will:
- connect to Vortex server
- calculate 4 numbers
- sending result back to server
and we got username & password
Written by LeVuHoang
}
program Vortext0;
{$APPTYPE CONSOLE}
uses
ScktComp,
SysUtils,
Windows;
const
cHost = 'vortex.labs.pulltheplug.org'; // your host name here
cPort = 5842; // remote host port
type
TSocketMethodDispatcher = class(TObject)
public
procedure OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure OnClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
end; // TSocketMethodDispatcher
var
vSocketMethodDispatcher: TSocketMethodDispatcher;
vClientSocket: TClientSocket;
iTotal: Longint = 0; // Total of four numbers
iCount: Byte = 0; // counter
Msg: TMsg; // window messages
//
// get error messages from server
//
procedure TSocketMethodDispatcher.OnClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
Writeln('Error: ', Socket.ReceiveText);
ErrorCode :=0;
end;
//
// display connected message
//
procedure TSocketMethodDispatcher.OnConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Writeln('Connected to: ', Socket.RemoteHost);
end;
//
// get data from server
//
procedure TSocketMethodDispatcher.OnClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
iNumber: Integer;
begin
inc(iCount);
//
// receive 4 integer numbers
//
if iCount <= 4 then
begin
Socket.ReceiveBuf(iNumber, SizeOf(iNumber));
iTotal :=iTotal + iNumber;
//
// diplay each number
//
Writeln(Format('Number%d = %d, Total = %d', [iCount, iNumber, iTotal]));
end; // if
//
// we have the total now
// send back to server
//
if iCount = 4 then
begin
Writeln('Sending result: ', iTotal);
Socket.SendBuf(iTotal, SizeOf(iTotal));
end; // 4
//
// finally, we got username & password
//
if iCount = 5 then
begin
Writeln;
Writeln('Yahhhhhhhhhhooooooooooooo!!!!!!!! Here is your account.');
Writeln(Socket.ReceiveText);
end; // if
end; // TSocketMethodDispatcher.
begin
vSocketMethodDispatcher :=TSocketMethodDispatcher.Create;
vClientSocket :=TClientSocket.Create(nil);
vClientSocket.Host :=cHost;
vClientSocket.Port :=cPort;
//
// socket events
//
vClientSocket.OnRead :=vSocketMethodDispatcher.OnClientRead;
vClientSocket.OnConnect :=vSocketMethodDispatcher.OnConnect;
vClientSocket.OnError :=vSocketMethodDispatcher.OnClientError;
//
// connecting to server
//
Writeln('Connecting to: ', cHost);
vClientSocket.Active :=True;
// wait until the console is closed
while GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end; // while
// free resources
vClientSocket.Free;
vSocketMethodDispatcher.Free;
end.
|
|
|
|
|
[Question] Re: PullThePlug wargame |
16/08/2008 10:51:34 (+0700) | #27 | 147150 |
kanzo
Member
|
0 |
|
|
Joined: 05/08/2008 22:29:47
Messages: 4
Offline
|
|
mò mẫm cái vortex lv1 mãi vẫn chưa được, có bác nào cho cái gợi ý ko ạ |
|
|
|
|
[Question] Re: PullThePlug wargame |
16/08/2008 15:29:52 (+0700) | #28 | 147174 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
kanzo: lvl này mục tiêu chủ yếu là làm sao MSB của ptr có giá trị là 0xca, bồ chú ý cái đoạn code:
Code:
unsigned char buf[512];
unsigned char *ptr = buf + (sizeof(buf)/2);
.....
case '\\': ptr--; break;
default: e(); if(ptr > buf + sizeof(buf)) continue; ptr++[0] = x;
bồ nên vẽ cái stack ra, xem ptr nó nằm ở đâu (where), làm thế nào để ghi giá trị vào đó (how), và ghi vào đó giá trị gì (what). tui có nói ở trên rồi đó, ghi vào một giá trị sao cho MSB của ptr là 0xca.
--m
PS: lvl12 hay, non-executable stack, giải xong cũng thích như lvl11. giờ đụng phải lvl13, khó nuốt quá. mới đầu đọc mã asm của nó, chẳng hiểu gì, trời ơi gì mà nó jne/jnz/jmp tùm lum. quyết định load lên idapro, nhìn mấy cái graph coi bộ dễ hơn nhiều so với gdb. nhưng cũng mất một buổi để reverse nó, mặc dù sau khi viết lại code C, thì thấy nó ngắn ngủn :-p, chắc là do chưa quen tay.
reverse xong rồi ngồi ngó từ mấy tiếng đồng hồ, chẳng biết làm thế nào. thằng quỷ này chơi ác thật, envp và argv bị xóa sạch, stack thì lại non-executable, chẳng biết phải làm sao .
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
19/08/2008 18:20:07 (+0700) | #29 | 147694 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
hehehe, sau một tuần vất vả, hôm nay đã tìm được đường ra cho level13. hi vọng ngày mai sẽ có working exploit chạy vù vù .
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: PullThePlug wargame |
21/08/2008 04:35:14 (+0700) | #30 | 147937 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
ôi giời ơi, hôm nay qua được lvl13 rồi, sướng quá. cảm ơn anh lamer đã gợi mở các hướng đi khi bị bí :-p. hehe cuối cùng em tìm được một cách khá gọn để khai thác, khỏi phải ghi 2 byte một lần :-p.
cái lvl này khá kỳ lạ, lỗi thì khá đơn giản, nhưng muốn khai thác được cái lỗi đó thì kô hề đơn giản tí nào. giờ mới thấm thía câu nói của mấy bậc tiền bối: tìm lỗi thường dễ hơn khai thác lỗi.
đi được nửa chặng đường của vortex mới thấy để có thể khai thác lỗi, thì phải có hai điều kiện: có kiến thức căn bản tốt + biết nhiều mẹo (có thể xem là kinh nghiệm):-p. mẹo thì càng làm nhiều sẽ càng biết nhiều (riêng cái lvl13 này thôi đã xài 4-5 cái mẹo), nhưng kiến thức căn bản thì phải chịu khó học và học và học.
bồ nào đang tìm hiểu về lĩnh vực memory corruption vulnerability, thì nên làm mấy cái lvl của vortex. càng lên các lvl trên thì sẽ càng hấp dẫn đó. chắc chắn sẽ học được rất nhiều mẹo :-p. một điều rất thích là mỗi level lại là một challenge hoàn toàn mới, với các vấn đề và kỹ thuật khai thác mới.
bắt đầu lvl14 http://www.overthewire.org/wargames/vortex/level14 thôi!
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|