국내 리버스엔지니어링 관련 문서들을 모은 Archive 입니다.
| author : | 지현석 |
|---|---|
| aka : | binish |
| WebSite : | http://binish.or.kr |
| Source : | http://binish.or.kr/_zb/zboard.php?id=_binishpaper&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=9 |
심심해서 네이트온 로그인 과정을 함 봤다.
일단 명령어(?)를 주고 받는 서버 IP를(포트는 5004 고정) 얻어오는 과정은
같다.
PVER 1 3.966 3.0
PVER 1 N
AUTH 2 DES
AUTH 2 DES
REQS 3
DES jdoryung@nate.com
REQS 3
dpc025:95992 211.234.240.159 5004
이렇게 알아낸 다음에 159번 서버로 명령어를 날려주는데 이게 예전
버전과 틀려졌다 -_-)a
어떻게 틀려졌냐면 예전버전에서는 LSIN으로 패스워드를 md5 해쉬해서 그냥 보내주면 되었는데,
이제는
base64 인증 과정이 1번 필요하고 이후에 LSIN으로 로그인을 해줘야 한다.
문제는 이런 2번의 인증과정에 사용되는 값들이
랜덤이란거다.
아마도 무슨 규칙이 있을 법한데 이 규칙을 알아내는건 개노가다라는 생각이 들어 난 포기했다 -_-
분명 이 귀찮은 짓을
누군가는 하고 있지 않을까? -_-
일단 보자.
NCPT 1 jdoryung@nate.com PWD
명령어로 내 패스워드를
BASE64 형태(복호화 안됨)로
뿌려준다.
AAAAAgAAAC4ABwAAZhAAAGYPAABmDgAAZgMAAGYJAABmAQAAaAHLDf+9JzQ0XSB65LS+fJG0MIIDQjCC
AqugAwIBAgIBADANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJLUjEOMAwGA1UEBxMFU2VvdWwxGjAY
BgNVBAoTEVNLIENvbW11bmljYXRpb25zMRkwFwYDVQQDExBOYXRlT24gTWVzc2VuZ2VyMSQwIgYJKoZI
hvcNAQkBFhVuYXRlb25tYXN0ZXJAbmF0ZS5jb20wHhcNMDUxMTI3MTgwNTAyWhcNMTUxMTI3MTgwNTAy
WjB6MQswCQYDVQQGEwJLUjEOMAwGA1UEBxMFU2VvdWwxGjAYBgNVBAoTEVNLIENvbW11bmljYXRpb25z
MRkwFwYDVQQDExBOYXRlT24gTWVzc2VuZ2VyMSQwIgYJKoZIhvcNAQkBFhVuYXRlb25tYXN0ZXJAbmF0
ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALnEwmkoyTudUt8xkBCVbvL51ipoEGx4o6VB
cqyuiJo/nIjcg72whFEVy3HD7uBGjqh3Yep+WaXNocK7e26dNfezP/X4BPrix14H4C0dY2vLbArkNdP3
C1FQtcCckv6D/KGluzomOYtYrzxR+s1YGlUauuCyIIAjTC5paOParvWBAgMBAAGjgdcwgdQwHQYDVR0O
BBYEFNCEKDbtrUbyM83QFTHM/L6u0F5pMIGkBgNVHSMEgZwwgZmAFNCEKDbtrUbyM83QFTHM/L6u0F5p
oX6kfDB6MQswCQYDVQQGEwJLUjEOMAwGA1UEBxMFU2VvdWwxGjAYBgNVBAoTEVNLIENvbW11bmljYXRp
b25zMRkwFwYDVQQDExBOYXRlT24gTWVzc2VuZ2VyMSQwIgYJKoZIhvcNAQkBFhVuYXRlb25tYXN0ZXJA
bmF0ZS5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAZwMdED0xpOFtSki4H6XQh
9X16hHG+/ca2h+3nHlq1FuQGGWvWafuYSztPD0tw3wh6xh7Cw2pHaQ64OLmrYfFtI41Le4TN1WARG+Qr
7aX1vgCNoP3h2M+rFLuJfqcr3lEwwcp9WXQMcYXpcD3z2IhnL08yLC3Ecoi/q/JKD49TTw==
내꺼다
-_- 이건 고정이다. 즉 내 계정에 대한 패스워드 암호화한 BASE64 인코딩 형태의 값은 고정값이다.
그리고 나서 1차 인증을
요청한다.
PRVK 2 BASE64
212
AAAAAgAAABYAAQAAZhA8/gkqhNnbuxag7xs8oSuaDvNOF76Fcva7Etk14D8WXhVjkhpTen3T2eeYpodlRL/pkvuejCuVEzHhUeSb+NTObOlH9jLyh6YVl6PnpGtnLOeAUYR+Vo+yiHSiZLUL62F+Z6VRsd+0AcGX2QpGXCcA1sv+gjwa6jpGSeGe1TuqhWmZVaFaRPHWOFVEUevhHcs=
PRVK에
대해서는 제대로 나온게 없지만 대충 때려맞추면,
212바이트 만큼의 BASE64 인코딩 된 값을 서버측에 보내겠다는 의미이다.
여기서
이 값이 유효해야 하는데 어떻게 생성되는지는 모르겠다 =)
PRVK가 잘되면 PRVK 2를 서버에서
응답해주고,
LSIN 3 jdoryung@nate.com
AAAAAgAAAADwzNgPy5F/XIV4+nBu604bTqFEBr0sUAmy8UbN0U36CuvZyJLAj2H3+rQ48Hl7xeI= NE2
3.966 UTF8
이와 같은 LSIN으로 로긴을 한다.
여기서
AAAAAgAAAADwzNgPy5F/XIV4+nBu604bTqFEBr0sUAmy8UbN0U36CuvZyJLAj2H3+rQ48Hl7xeI= 가
역시 랜덤값이다.
두번째에는
AAAAAgAAAADwzNgPy5F/XIV4+nBu604bTqFEBr0sUAmy8UbN0U36CuvZyJLAj2H3+rQ48Hl7xeI=
이런값이 된다.
세번째에는 -_- 안한다; 안해;
만약 LSIN까지 잘되면,
LSIN 3 107509928
......... .........@binish.or.kr$%20break%20something!
0164278217 %00
917C4E8818D35906ABDEC52B60B9B4D664B6A61586FF84A9169D5F27D0FD03433A3660D4BE3D3EA8E5BC42FBDE0410254DA7891BF47C712138BC37EE93D8BEE016D3B7B34FEAC6B032440A0DAF62677FBA8B2F9B96D98A9C0967FD29C6B953C10E8C84BA6E7B9F548EF8B7ED84D689A4E877D1B0677D08CDE80B558B055A315FC2405BF335FB24FFC762228808E7D127A33296E39F7A5D2F3D578FECC95D4661DB249F481BB2C80F788F6BBD34676DD70CAB089486E5DC5294CD49372FDE499986980085BF543514047834D7410BFB190A15E3E499372DC7
16345862 1 %00 20080527 N 107509928 jdoryung@nate.com jdoryung@hanmail.net N N KR %00
%00
이런 서버로부터의 응답을 볼 수 있다.
대충 보면 알다시피 내가 정해놓은 문구들이 보인다.
이후에 전화번호 보이고
그다음에 어쩌구저쩌구가 보인다 ㅎㅎ
LSIN 까지 거치고 난다음에,
DRMK 4
AAAAKAAAAAIAAAAAGtMzRypYy2SUk6zXLvCneGoWt9CT2lB4UzK/GCZ6GKAAAAA07FtpH97iteYEXQ5ckrZyu+GGoEtx8wmyrUvfM+WM+zP+pKIvz7U0bPmoC5++fkFy2KQ0Dw==
이런
명령어를 최종적으로 날려서 인증을 마무리 짓는데,
여기서 사용되는 값 또한 모르겠다 -_- 어떻게 생겨먹는건지..
CONF 5
4049 0
GLST 6 679
LIST 7
위의 3 명령어를 거치면 이제 내 네이트온에 등록된 사용자가 주루룩 리스트가
뜬다.
679는 내 그룹 ID라고 하는데,
GroupCache.nch
파일에 저장되어 있는 값은 736인데 이건 뭥미? 몰라
-ㅠ-
결론은,
인증에 사용되는 BASE64 인코딩 되는 값의 규칙을 알아내기 위해서는,
네이트온을 리버싱하면 된다
^^
이 귀찮은 짓을 하기에는 시간소요가 너무 클 것 같고,
누군가가 해주길 바라면서..
ps. 심심하면 내가
할지도 모르지-ㅠ-;; 원래 불씨를 땡긴 사람이 불내는 법이라..
ps2. 명령어에 대한 소개 사이트
http://dev.haz3.com/trac/nateon/wiki/Protocol
