NFC로 관리되는 도서 대여시스템 취약점

EAS(Electronic article surveillance)란 도난방지 장치 및 감지장치를 의미함.
http://en.wikipedia.org/wiki/Electronic_article_surveillance

많은 공공 도서관과 대학도서관에서 EAS를 위해 RFID를 사용중임
http://nicom.ibx.kr/bbs/board.php?bo_table=portfolio_x

호기심에 안드로이드의 TagInfo 어플로 해당태그를 스캔했더니
도서정보를 확인할 수 있었음.
taginfo

이 RFID 들은 NXP Icode SLI SL2 ICS20 제품이 사용됨.
http://www.nxp.com/documents/data_sheet/SL058030.pdf

데이터시트를 보니 EAS 라는 항목이 존재하고 이를 Set과 Reset 을 시킬수있는 프로토콜이 존재함.  (데이터시트 17p)
또한 이 플래그를 제어는 아무나 가능함.

간단한 안드로이드 어플리캐이션을 제작하여 테스트해봄
read unset
정상적으로 빌려온 도서이기에 EAS는 해제되어있음 (게이트 통과시 경보x)

이 도서에 Set 버튼을 통해 EAS 를 세팅
EAS Wirte
그후 태그 스캔시
read set
EAS가 세팅되어있음.

실제 화정 글샘도서관에서 실무자에게 양해를 구한뒤 실제환경에서 테스트를 모두 마치고 해당 내용 전달함. (14/03/04 11시경)

테스트한 태그는 모두 나인콤과 이씨오에서 정부에 조달한 제품으로 모두 간단히 본 어플에 태그함으로써 EAS비트를 조작할 수 있었음.
http://www.eco.co.kr/
http://nicom.ibx.kr/

NFC 지원 안드로이드폰은 현재 널리 보급되어있어서 EAS를 조작하는 어플리캐이션이 공개될 경우 도서관 뿐만 아니라 해당 태그를 사용하여 도난 방지하는 곳은 모두 무력하게 되므로써 이 시스템을 믿고 있었다간 큰 피해를 입을 가능성이 있음.

또한 회원카드 역시 동일한 태그를 사용하며 ISO/IEC 15693 (NfcV) 에 정의된 프로토콜을 사용함으로써 태그의 내용을 읽고 수정할 수 있으며 회원번호를 변조하여 타인명의로 대출할 수 있음.

해결방안 : 문제 발생전 태그 전량교체 외 해결방법이 없는 것으로 사려됨

 

ps. 도서관협의회에서 기 발표된 자료임.
http://www.kapul.or.kr/apload/userfiles/files/2014%20%EB%8B%A8%EA%B5%AD%EB%8C%80/%EC%A0%9C16%EC%B0%A8%20%EB%8F%84%EC%84%9C%EA%B4%80%EC%9E%A5%20%ED%9A%8C%EC%9D%98/ECO%20%EB%B0%9C%ED%91%9C%EC%9E%90%EB%A3%8C.pptx

terminator 에서 Drag&Drop 활성화하기 + bug fix

현재 debian 7.8에 terminator 버젼은 0.93이다.
터미네이터로 드래그앤드롭기능은 0.96부터 지원된것으로 확인되며
직접 현재 최신버전0.97(이래봤자 2년전릴리즈..)로 올리면
드래그앤 드롭기능이 작동한다.

본인의 경우에는 파일을 드래그했을시 경로 뒤 newline이 두개가 삽입되는걸 확인할 수 있었는데
/usr/share/terminator/terminatorlib/terminal.py 파일의 991 라인 (0.97기준)
txt = “‘%s'” % urllib.unquote(txt[7:])을
txt = “‘%s'” % urllib.unquote(txt[7:].rstrip())
로 수정해줌으로써 해결하였다.

죽은 G2 살려내기 (F320)

롬질하다가 G2가 죽었다면
아래의 방법으로 쉽게 살려낼 수 있다.

분해해야 하므로 정말로 완전히 죽었는지 확인할것(리커버리, 다운로드모드, 일반부팅)
전혀 답이없을때는 >>

뒷뚜껑을 살살 열어서
a
버튼이랑 심카드부분 제거,
bc
배터리 빼고 USB만 연결한 상태에서 여기 두군데 쇼트시키면 (잘안되면 한 2초정도 길~게)
Qualcomm HSUSB_BULK 이렇게 외장하드처럼 인식함
그러면 dd로 열심히 롬 다시 씌워주면됨 ^^* 퀄컴짱인듯.

ps. 왜 토시바 옆에 저런게 있는거지? ap 옆에 있어야될거같은데
ps2. 이런건 어떻게 찾는거야;

출처 : http://forum.xda-developers.com/lg-g2/general/fix-lg-g2-recovery-mode-download-mode-t2840458

G2 Lollipop 순정 루팅

For many foreigners.
First of all, thank you for visiting my blog. However below description is written in Korean. Perhaps, it is hard to understand. Threrfore, I recommand you to read these article

[Working][How To] Lollipop Root
by inLGG3


http://forum.xda-developers.com/android/development/guide-root-method-lg-devices-t3049772
thanks for translation to Unjustified Dev.

 

아래는 순정 G2(F320S), 30D 의 루팅과정을 안내한다.
아름다운 건축자재가 만들어 질 수 도 있으나 모든 책임은 엔터치는사람이…
LG는 루팅하면 소프트웨어뿐만아니라 하드웨어 게런티 까지 모두 Void 됨을 명심!

필요한 파일 :
http://download.chainfire.eu/supersu에서 UPDATE-SuperSU-v2.45.zip
rooting require 에 들어있는 busybox, g2_root.sh, Push_File.exe, Send_Command.exe
USB드라이버는 필요가 아니라 필수다.

Step1
MTP 모드로 연결하면 LGE Mobile USB Serial Port(v:1004,p:633E)로 잡는다
포트번호를 알아내야한다(생략)

Step2
Send_Command를 실행한다음 “ENTER”를 입력하면 폰이 다운로드 모드로 간다.
(ex: Send_Command.exe \\.\COM5)

Step3
Push_File로 g2_root.sh와 busybox, UPDATE-SuperSU-v2.45.zip 를 적당한 위치(/data)에 집어넣는다.(정상적으로 파일이 들어갔는지 확인해야한다!)
(ex: Push_File.exe \\.\COM5 g2_root.sh /data/g2_root.sh)

Step2
Push_File.exe로 파일전송시 에러율이 높아 adb로 전송해놓고 루팅과정을 시작한다.
adb push g2_root.sh /data/local/tmp/
adb push busybox /data/local/tmp/
adb push UPDATE-SuperSU-v2.45.zip /data/local/tmp/
(thanks for this idea to Unjustified Dev)

Step3
Send_Command를 실행한다음 “ENTER”를 입력하면 폰이 다운로드 모드로 간다.
(ex: Send_Command.exe \\.\COM5)

Step4
Send_Command를 실행시키면 루트쉘이 떠있다.
“sh /data/local/tmp/g2_root.sh dummy 1 /data/local/tmp/UPDATE-SuperSU-v2.45.zip /data/local/tmp/busybox” 를 입력해준다. (뭔가 주르륵 뜰것이다.)

Setp5
Send_Command창에 LEAVE 를 입력해주면 재부팅 되며 루팅이 되어있을것이다.

ps.
/data에 넣은 파일들은 직접 지워줘야된다(놔둬도 용량얼마안되지만).
커맨드가 잘 안먹힐 가능성이 높다. 반복하다보면 된다.(하지만 업데이트는 없다)
큰 용량은 PushFile로 안들어간다(대충 15mb 까지)
테스트는 winxp, F320s로 해봄.

If it helped you, please support my works
[paypal-donation purpose=”Support”]

 

qcdlcomm just for a mirror

죽은 NETIS WF2480 살려내기

펌웨어 업데이트하다가 WF2480이 죽(였)었다.
손쉽게 사용자가 debrick 할 수 있는데 서비스 센터에서는 자꾸 입고시키란다.(택배비 무료로!)
그것마저도 귀찮았기에 웹좀 돌아보니 TFTP로 손쉽게 복구시킬 수 있는 방법이 있었다.

먼저 정식펌웨어를 보면 aa요롷케 WF2480이라고 헤더가 7자리 차지하고있다(0x0A까지)
이거 날려서 원본펌웨어를 준비한다.  (dd if=./WF2480_v1.6.23.bin of=./fw.bin bs=1 skip=7)

다음은 벽돌된 장비를 리셋버튼을 누르고(?) 또는 부팅중 열라 눌러주면 아무런 반응이 없다.
내부적으로는 어떤 모드 (<RealTek> 이란 쉘이뜨는) 에 진입하는데 반응이 없다.
이 상태에서 랜선으로 컴퓨터랑 연결해주고 컴퓨터에서 ip 대충잡고 게이트웨이 192.168.1.6으로 잡아준다.
이후 (atftp -p -l fw.bin 192.168.1.6) 이런식으로 파일을 올려주면 아래와 같이 알아서 롬질하고 재부팅까지 해준다. DONE.

========== SPI =============
SDRAM CLOCK:181MHZ
 ------------------------- Force into Single IO Mode ------------------------ 
|No chipID  Sft chipSize blkSize secSize pageSize sdCk opCk      chipName    |
| 0 1c3017h  0h  800000h  10000h   1000h     100h   40   30           UNKNOWN|
 ---------------------------------------------------------------------------- 
Reboot Result from Watchdog Timeout!

---RealTek(RTL8198)at 2013.01.25-14:24+0900 version v1.2 [16bit](620MHz)
no sys signature at 00010000!
no sys signature at 00020000!
no sys signature at 00030000!
no rootfs signature at 000E0000!
no rootfs signature at 000F0000!
no rootfs signature at 00130000!
Set GPHY Parameter OK

---Ethernet init Okay!
<RealTek>
**TFTP Client Upload, File Name: fw.bin
/
**TFTP Client Upload File Size = 2A1784 Bytes at 80500000

Success!
<RealTek>
Webpages upgrade.
checksum Ok !
burn Addr =0x28000! srcAddr=0x80500000 len =0x20360 
.................................
Flash Write Successed!
<RealTek>
Linux kernel (root-fs) upgrade.
checksum Ok !
burn Addr =0x68000! srcAddr=0x80520360 len =0xed412 
................................................................................
Flash Write Successed!
<RealTek>
Root filesystem upgrade.
checksum Ok !
burn Addr =0x169000! srcAddr=0x8060d782 len =0x194002 
................................................................................
Flash Write Successed!
<RealTek>
reboot.......