banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: panfider  XML
Profile for panfider Messages posted by panfider [ number of posts not being displayed on this page: 0 ]
 
cái này không phải hva bị attack, mà chỉ là thông tin cá nhân không được bảo mật tốt thôi !
mình thắc mắc cách gọi hàm với glibc,
làm sao file nhị phân khi load vào bộ nhớ có thể gọi được hàm trong glibc được ?
nó binding thế nào ?
mình có nghe nói về microcode smilie
trên trang intel.com có cho tải về microcode nhưng chưa biết cách xài nó như thế nào ?
kernel Linux có thể apply microcode sau khi boot xong nhưng vẫn chưa hiểu lắm
để trở thành hacker thì hay, nhưng thế giới của mình không bị giới hạn trên con chip x86 của intel
IT is part of my life, not all life for IT
nên học : bash ,perl hay python
C programming (mạng),shellcode
phần cứng
các phần mềm security: nmap, wireshark....
dùng nén rar có password,
conmale có thể cho mình file exe của nó để phần tích không ?
không biết con board KM9260 bán giá bao nhiêu ?
không biết là chạy được Debian-505 không ?
PK9G20 giá khoảng bao nhiêu ?
một process đang chạy cũng đã có username của nó. Thí dụ như vsftpd chạy với user là ftp. vsftpd không chạy với quyền root vì nguy hiểm.
không biết có server nào có lỗi để học không ?
về tấm lý thì xài đồ rẻ rẻ, đẹp cũng ngang ngang, nhưng dễ chịu hơn đồ đắt tiền
với lại đang học, nên sẽ táy máy nhiều, nếu lỡ có bề gì thì cũng đỡ tiếc hơn
nói chung, cảm giác dễ chịu hơn nếu có va đập, hay táy máy chuyện học hành
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
bạn có thể dùng
ar t /lib/lib_abc.a
để list file *.o
ar x lib_abc.a file.o
trích lấy file.o trong lib_abc.a
sau đó dùng objdump -d để dịch ngược ra
PS: thực chất file.a là file dạng nén(giống như tar czf liba.a liba.o a.o b.o c.o) vì thế có thể giải nén trích file.o để disassembly.
chỉ có file dạng .so là hơi khó hiểu cấu trúc bên trong của nó
trên hệ Unix thì SSH là tuyệt vời rùi, nó đơn giản dễ xài,
mà tuyệt vời
ngoài ra còn scp để chép file trên mạng
ờ, mình sẽ cố đưa ra mã shell code để hack,nhưng tạm thời mình không biết cách nào
nói chung là phải có cách hack được,
nhưng bạn phải nói được là shellcode sẽ làm gì thì mình mới biết cách
andl $-16, %esp
dịch:
81 e4 ff ff ff f0
hoặc:
83 e4 f0
nếu 16: sẽ xoá tất cả các bit bên trên, điều này khá vô lý
cái này do encode số thôi, thường do số âm và dương (2's complement)
công thức: muốn chuyển một số duơng thành âm, ta đảo bit sau đó cộng cho 1 thì đó là âm
ví dụ: thanh ghi 8 bit
16h = 0001 0000 b
đảo = 1110 1111
+1 = 1111 0000 = f0
và opcode : 81 e4 f0
disassembly: andl $0xff ff ff f0,%esp
mà phép toán and có tác dụng xoá bit theo pattern, tức -16 là mẫu, nghĩa là 4 bit cuối bị xoá

chỉ có vấn đề nữa là stack mà thôi
cái này hơi khó, vì nó đôi khi không gọi trực tiếp syscall mà pass địa chỉ stack
syscall tránh được, còn int $0x80 không được
hình như stack trong Linux chạy từ địa chỉ cao đến thấp
cho nên bạn tạo biến trong hàm _main bằng cách
Code:
subl $8,%esp

hàm có dạng
Code:
_test:
push %ebp
movl %esp,%ebp
subl $0x4,%ebp /*tạo biến nội*/
movl $0x7f,(%ebp) /*khởi tạo giá trị cho biến nội*/
pop %ebp
ret

tham số theo thứ tự nếu có frame pointer
tham số thứ nhất: 0x8(%ebp)
tham số thứ 2 0xc(%ebp)
nếu không xài frame pointer:
(%esp) địa chỉ trả về (hack nó)
0x4(%esp) parameter 1 ...
tham số 4 byte(x86_32) dùng cho kiểu int, con trỏ 4 byte
máy 32 bit không bao giờ hơn được 2^32(4GB) bộ nhớ nên con trỏ có thể trỏ tới bất kì nơi nào trong bộ nhớ

nếu đang học thì i3 quá tốt cho bạn rùi, với lại i7 không hơn i3 mấy. Nếu mua i7 cho việc học thui thì phí tiền.
andl $-16,%esp <=> dùng để xoá bit
-16 = 0xffffff0 nên nó xoá 4 bit cuối của esp
mình có tìm ra tài liệu về assembly của cả Intel syntax và ATT
http://www.ibm.com/developerworks/linux/library/l-gas-nasm.html
khá good để bắt đầu với assembly
PS: ta cần viết mã gì để mở một cổng, hay cho phép remote một shell từ xa

Nói chung, khi bạn đào sâu nghiên cứu một vấn đề gì đó, thì cái ranh giới giữa toán học ,tin học, thậm chí các ngành khoa học khác như vật lý học, ... dường như trở nên không còn rõ ràng nữa.
 

Khi đào sâu nghiên cứu, mình thấy toán, vật lý là khoa học tự nhiên. Nhưng IT không phải là khoa học tự nhiên. giữa các môn học khoa học tự nhiên, gần như không có ranh giới. Vì thế mà Newton biết toán,vật lý, thiên văn...
nó dùng để lấy mã binary trong định dạng elf
;cái này hơi stuff, nhưng xài intel syntax nên dễ hiểu hơn

nó in ra chuỗi /bin/sh
chạy x86_64 bit
nasm -f elf64 t.asm -o t.o
ld t.o -o t
Code:
section .text
global _start, write
write:
mov al,1 ;write syscall
syscall
ret
_start:
mov rax,0x68732f6e69622f
push rax
xor rax,rax
mov rsi,rsp
mov rdi,1
mov rdx,7
call write
exit:
mov rbx,rax
mov eax,1
int 0x80

chạy shell
Code:
section .text
global _start
_start:
mov rax,0x68732f6e69622f
push rax
mov rdi,rsp
xor rsi,rsi
xor rdx,0
mov rax,59
syscall
exit:
mov rbx,rax
mov eax,59
syscall

Code:
nasm -f elf64 t.asm -o t.o
ld t.o -o t
objcopy -O binary t shellcode

shellcode chỉ có 49 bytes
mình sẽ cố thử viết C code có thể inject code này xem
=====vấn đề bảo mật====
giả sử có một daemon có lỗi cho phép ta inject code vào một hàm,
dĩ nhiên ta không cố ý để server down là làm cho nó segment fault, ta inject code sau cho :
+nó chạy tiếp code mà ta inject và tiếp tục return được về server mà y như không có chuyện gì xảy ra
+ chắc cái này đòi hỏi kĩ thuật self-modify trong mã inject
vấn đề cần tìm hiểu:
ta cần viết mã gì để mở một cổng, hay cho phép remote một shell từ xa
PS: nếu không có nasm thì apt-get install nasm
máy tính chủ yếu để xử lý dữ liệu chứ tính toán cho dân khoa học thì hơi khó
toán không dùng phần mềm thì không tính được công thức hay phuơng trình phức được.
toán nên đi máy tính khoa học casio, mình đang tìm máy tính khoa học có thể lập trình được nhưng hơi khó

1) Với các bạn THPT, nếu là định hướng học IT, thì có nên suy nghĩ cấp 3 tập trung học toán cho vững đã, ôm máy tính chi cho vội, lại dây vào game, vào net?
 

câu này sai, khi nào bạn cũng có thể học lập trình được, hay vào net tìm thông tin

4) Cuối cùng mọi người có thể chia sẻ, trong nghành nghề, công việc của mình (như gõ code, network, security... hay cả những thứ như hack, crack), toán học quan trọng đến mức nào, và muốn theo, thì phải vững những mảng nào của toán, vững đến mức nào?
 

hack hay crack ít dùng đến toán, chỉ có thể là thuật toán
dường như không có mảng nào của toán trung học hay cao cấp giúp bạn giải quyết
cái này tuơng đối lạ! mình tìm hiểu toán và muốn lập trình cho toán mà cũng phát biểu như vậy
nên mua mấy con dell thì hay hơn.

panfider wrote:
ngày hôm nay rãnh nên post bài về lập trình,
mình mới tìm hiểu xong, smilie
bài này giúp các bạn chưa biết assembly thì thử
I-intro
trình biên dịch xài là gói binutils
cài trên Debian:
apt-get install binutils
II- hello world program
Lưu ý chuơng trình này chạy trên máy x86-64 bit
dùng uname -m để biết máy mình đang chạy mode nào
Code:
# hello.s
.data
str:.string "hello world\n"
len:
.set LEN, len-str
.text
.globl _start
_start:
## write sys call
mov $1,%rax
mov $1,%rdi
mov $str,%rsi
mov $LEN,%rdx
syscall
# call exit
mov $60,%rax
xor %rdi,%rdi
syscall

Makefile
Code:
all:
as hl.s -o hl.o
ld hl.o -o hl
clean:
rm -f hl.o hl

Chương trình hl.s sau khi chạy sẽ in ra chuổi hello world.
Chương trình viết bằng assembly có thể gọi hàm thư viện nhưng ở đây goi system call trực tiếp.
Chúng ta gọi write và exit. Để hiểu được thì tuơng đuơng với mã lệnh C:
Code:
write(1,"hello world \n",0xe);
exit(0);

để gọi một system call giống write trên cần pass parameter theo calling convention theo thứ tự: rdi rsi rdx r10 r8 r9
rax chứa số system call number /usr/include/linux/unistd.h
tương tự có thể dùng nhiều system call khác và phát triển thêm ....
ví dụ chạy lệnh ls -lh / bằng assembly
Code:
#assembly example
# as -o t.o t.s
# ld -o t t.o
.data
str:.string "hello world\n"
sh:
.asciz "/bin/bash"
shopt:
.asciz "./cmd"
.asciz "-c"
.asciz "ls -lh /"
.byte 0x0
.bss
.lcomm V, 32
.text
.globl _start, _execv, _exit
_execve:
mov $59,%rax
syscall
retq
_exit:
mov $59,%rax
syscall
retq
_start:
## exec
mov $V,%rax
movq $shopt,(%rax)
movq $shopt+6,0x8(%rax)
movq $shopt+9,0x10(%rax)
movq $0,0x18(%rax)
mov $sh,%rdi
mov $V,%rsi
mov $0,%rdx
call _execve
## exit
mov %rax,%rdi
call _exit

hình dạng một số system call:
Code:
long write(long fd,void *v,long lenght);
long read(long fd,void *v,long lenght);
long exit(long _status);
long execve(const char *name,char **argv,char **envp);

code goi libc function
Code:
/*tty.s*/
.text
.globl _start
_start:
mov $1,%rdi
call ttyname
mov %rax,%rdi
call puts
# exit
mov $60,%rax
mov $0,%rdx
syscall

biên dịch
Code:
as tty.s -o tty.o
ld --dynamic-linker /lib/ld-linux-x86-64.so.2 -lc tty.o -o tty

hy vọng các bạn enjoys 
ngày hôm nay rãnh nên post bài về lập trình,
mình mới tìm hiểu xong, smilie
các bạn có tham khảo
có thể dịch ra shell code được, các bạn nào muốn mình viết shellcode thì mình có thể giúp
shellcode trên x86_64 dễ hơn do ít parameter ít pass qua stack hơn 32 bit
I-intro
trình biên dịch xài là gói binutils
cài trên Debian:
apt-get install binutils
II- hello world program
Lưu ý chuơng trình này chạy trên máy x86-64 bit
dùng uname -m để biết máy mình đang chạy mode nào
Code:
# hello.s
.data
str:.string "hello world\n"
len:
.set LEN, len-str
.text
.globl _start
_start:
## write sys call
mov $1,%rax
mov $1,%rdi
mov $str,%rsi
mov $LEN,%rdx
syscall
# call exit
mov $60,%rax
xor %rdi,%rdi
syscall

Makefile
Code:
all:
as hl.s -o hl.o
ld hl.o -o hl
clean:
rm -f hl.o hl

Chương trình hl.s sau khi chạy sẽ in ra chuổi hello world.
Chương trình viết bằng assembly có thể gọi hàm thư viện nhưng ở đây goi system call trực tiếp.
Chúng ta gọi write và exit. Để hiểu được thì tuơng đuơng với mã lệnh C:
Code:
write(1,"hello world \n",0xe);
exit(0);

để gọi một system call giống write trên cần pass parameter theo calling convention theo thứ tự: rdi rsi rdx r10 r8 r9
rax chứa số system call number /usr/include/linux/unistd.h
tương tự có thể dùng nhiều system call khác và phát triển thêm ....
ví dụ chạy lệnh ls -lh / bằng assembly
Code:
#assembly example
# as -o t.o t.s
# ld -o t t.o
.data
str:.string "hello world\n"
sh:
.asciz "/bin/bash"
shopt:
.asciz "./cmd"
.asciz "-c"
.asciz "ls -lh /"
.byte 0x0
.bss
.lcomm V, 32
.text
.globl _start, _execv, _exit
_execve:
mov $59,%rax
syscall
retq
_exit:
mov $59,%rax
syscall
retq
_start:
## exec
mov $V,%rax
movq $shopt,(%rax)
movq $shopt+6,0x8(%rax)
movq $shopt+9,0x10(%rax)
movq $0,0x18(%rax)
mov $sh,%rdi
mov $V,%rsi
mov $0,%rdx
call _execve
## exit
mov %rax,%rdi
call _exit

hình dạng một số system call:
Code:
long write(long fd,void *v,long lenght);
long read(long fd,void *v,long lenght);
long exit(long _status);
long execve(const char *name,char **argv,char **envp);

code goi libc function
Code:
/*tty.s*/
.text
.globl _start
_start:
mov $1,%rdi
call ttyname
mov %rax,%rdi
call puts
# exit
mov $60,%rax
mov $0,%rdx
syscall

biên dịch
Code:
as tty.s -o tty.o
ld --dynamic-linker /lib/ld-linux-x86-64.so.2 -lc tty.o -o tty

hy vọng các bạn enjoys

Không nên đứng ở góc độ cá nhân để rồi áp đặt nhu cầu đó cho thực tế đám đông
 

bạn có thể nhận xét đồng ý hay bác bỏ một ý kiến, nhưng nói nó áp đặt thì hơi vô lý!

Lập trình viên không thể biết rõ chuyện phần cứng và phần mềm nó có tuơng thích hay không để mà tối ưu. Mà tối ưu cái gì ở đây, rõ ràng ra một chút.
 

mình tiếc không giúp gì được cho tmd. Nhưng câu nói trên của tmd làm mình bối rối. tmd nên giải thích câu đó được không ?
học lên tiến sĩ là tốt nhất, nghĩa là bạn nên theo học chính qui thôi ;D
nên cài native thì hơn, nếu bạn gặp rắc rối với virtual machine
C example chạy 64 bit nha ông
http://chung0.blogspot.com/2010/07/simple-c-example.html
mình đứng với góc độ lập trình viên để đưa ra lời khuyên. Vì vậy lời khuyên của mình thuộc về kĩ thuật lập trình.
Mình không đứng ở góc độ quản lý, nên khó đưa ra nhận định đúng ở góc độ tmd.

Đứng với góc độ quản lý thì cty nhỏ thì dễ quản lý hơn cty lớn. Cty tmd có thường gặp vấn đề kĩ thuật nào thường xuyên thì liệt kê, và lập nhóm, phân tích và xử lý.
 
Go to Page:  First Page Page 5 6 7 8 10 11 12 Page 13 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|