Client단독으로 Server 컴퓨터의 시스템 정보를 원격으로 알아올수 있을가요?
글쓴이: 리얼토토 / 작성시간: 금, 2006/05/19 - 2:46오후
같은 네트워크 상에 있는 컴퓨터의 시스템 정보를 원격으로 알아올수 있을가요?
필요한 정보는 OS Version, Memory, CPU, Drive, 등등 많습니다만....
이러한 정보들을 수집하는 플그램 제작이 가능할가요?
Server에서 정보를 수집해서 Client로 던져주는 프로그램이 있으면야 간단하겠지만
이러한 방법 말고 Client에서만 프로그램을 돌려서 알아올수 있나 해서요...
정확하게 말하면...windows에서 작성된 Client프로그램에서 Server의 OS종류를 알고자 합니다
즉 Client에서 Server의 특정 프로그램 도움없이 Server의 OS종류를 유닉스인지 리눅스인지 또는 Window NT나 2000Server군인지를요...
순수하게 Client 단독으로 처리해야됩니다...가능할까요?
Forums:
Server가 없는 client가
Server가 없는 client가 있나요?
Server가 없다는말이 아니구요...
프로그램은 Client, Server가 쿵짝쿵짝해서 잘돌아가고 있는 상황인데요
그거와 상관없이
예를들어 저희회사에서 A라는 회사에 제품을 공급할때
A라는 회사의 Server OS를 Windows2000 Server로만 국한해서 쓰게하려고하는데
그걸 제한할 수 있는방법이 실질적으로 없단 말인거죠.
Windows2000 Server로 쓴다고 말만하고 UNIX를 Server로 써도 알수없단 말씀...
그래서 Client 모듈에서 Server의 IP만을 알고있는 상황에서 해당 IP에서 돌아가는 OS의 종류를 알아내서
경고 메세지를 띄우거나 다른 조처를 취하고자 하는상황입니다...^^;;;
억지로 하자면 이미
억지로 하자면 이미 돌고있는 서버포트로 접속해 거기서 제공하는 정보를 받아오는 방법이 있겠네요.
원하는걸 모두 얻을수는 없겠지만요..
거의 없나?
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
...
억지로 하자면 이미 돌고있는 서버포트로 접속해 거기서 제공하는 정보를 받아오는 방법이 있겠네요.
원하는걸 모두 얻을수는 없겠지만요..
거의 없나?
윗글 좀더 상세히 설명해주시면 안될까요? ^^;;;
server 에서 아무것도
server 에서 아무것도 알려주지 않는다면 알 수 있는게 거의 없습니다.
(client 에서 open 되지 않은 server 의 정보를 알아내는것.. 어디서 많이 들어본 표현이죠. 해킹이라고 :) )
server 에 최소한의 작업만으로 정보를 알아보려면 server 에 snmp 를 띄우는 방법이 있겠죠.
근데 cpu,ram 까지는 몰라도 OS 만 알수 있는것이라면 뭔가 꽁수가 있을거 같습니다.
윈도우는 워낙 open 하는 포트가 많잖아요? 그것들을 확인해서 윈도우가 아닌 OS(리눅스,유닉스등) 에는 무조건 없는
즉 윈도우에만 존재하는 포트라던가 통신방법을 찾아서 그걸로 서버를 식별할 수 있겠지요.
(위의분이 아마 이런뜻으로 얘기하신거 같습니다.)
근데 제품으로 파시는거라면 찾는방법이 임시적인게 아니라 명확한것이어야 될 거 같네요.
에공 ^^;;;
우선 위에 답변해주신분들 정말 감사합니다.
그럼...윈도우에만 존재하는 포트라던가 통신방법은 어떤게 있을까요?
계속 질문만해서 괜시리 죄송하네요 ^^;;;
특정 C/S 프로토콜의
특정 C/S 프로토콜의 경우 일부 서버 정보를 서버에서 클라이언트 쪽으로 보내기도 하거든요.
원하시는 것처럼 자세히는 아니더라두요.
예를들어 웹서버의 경우 웹서버 이름이나 버전, 심할경우는 OS버전 정도도 클라이언트로 보내기도 합니다.
웹브라우저가 이를 보여주지는 않지만 실제 응답 헤더에 이를 보냅니다.
그럼 이렇게 웹 요청을 하고 응답을 받아서 이 헤더부분만 분석하는 프로그램을 만들면 최소한 웹서버 종류(물론 이것도 웹서버 소스 수정하거나 구성파일로 막을수는 있지만)는 알 수 있습니다.
이런식으로 웹서버 외에도 일부 서버의 정보를 보내는 서버데몬이 돌고 있다면 그 서버에 접속해서 정보를 받아오는 클라이언트를 만들어서 확인이 가능할 테니까요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
^^;;;
웹 요청을 하고 응답을 받아서 이 헤더부분만 분석하는 프로그램을 만들면 최소한 웹서버 종류(물론 이것도 웹서버 소스 수정하거나 구성파일로 막을수는 있지만)는 알 수 있습니다.
이말은 웹서버 종류를 알아낼수있는 가능성은 있단 말이네요. 하지만 가능성은 반반...막아버리면 헛일이니...^^;;;
무조건 얻어올수있어야되는데 이러하다면 이방법은 일단 접어야겠네요...ㅠ.ㅠ
아...서버데몬은 절대로 돌리면 안됩니다...해킹하긴 싫걸랑요 ^^;;;
데몬없이 OS종류를 알아낼 수 있는 방법은 정녕 없단말일까요? ㅠ.ㅠ
윈도우는, 특히
윈도우는, 특히 서버는 제가 거의 모르기 때문에 연상되는것만 적어보겠습니다.
윈도우서버에서 반드시 사용해야만 하는(내릴수 없는, 가령 telephony 등) 서비스를 찾는다
-> 해당 서비스가 오픈하는 포트 및 프로토콜 규약등을 찾는다. 구글링 이나 msdn 등 다 뒤진다.
-> 통신하는 방법을 찾아서 해당 통신의 일부를 client 에 추가한다.
는 형태로 가능할 거 같습니다. 이렇게 윈도우에 종속되어 있는 서비스를 이용하는것이 가장 확실할것 같네요
근데 윈도우에서 돌아가는것을 알려면 사실 kldp 보다는 윈도우 커뮤니티에서 더 많은 정보가 있지 않을까요? :)
(--)(__)(--)
pithecus님 답변 정말 감사합니다.(--)(__)(--)
그러고 보니 어쩜 윈도우 커뮤니티에가서 정보를 찾아보는게 더 빠를수있단 생각도 드네요.
그래도 님의 답변이 제겐 많은 도움이 되었네요.
ps)나중에라도 해결하면 여기 계시판에 해결방법 올려놀께요
혹시나 저처럼 삽푸는 사람들이 있을까봐...^^;;;
참...공신력있고 믿을만한 윈도우 커뮤니티...어디가 좋을까요? 하핫 ^^.
http://uptime.netcraft.com/up
http://uptime.netcraft.com/up/graph
이런 걸 바라시는 건가요?
netcraft......오호....
오호...위 사이트가 제가 할려는 일을 보여주는 사이트네요...
근데 ip로 접근하면 정보를 못얻어오네요...그래도 어케 구현했는지 상당히 궁금하네요 ^^
타겟 컴퓨터의 os의
타겟 컴퓨터의 os의 정보를 제공해주는 프로그램이 없이 외부에서 타겟 컴퓨터의 정보를 긁을수 있다는 것 자체가 엄청난 보안문제가 아닐까요?
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
이방법은 어떨까요?
http://www.insecure.org/nmap/nmap-fingerprinting-article.html
tcp finger print 라는게 있긴한데..
사실 detect 하기가 조금 애매하군요.
위에 문서보시면.. nmap 일 권하는데..
윈도우에서는 역시 써본일이 없군요 -.-;;
------------------------------------------------------------------------------------------------
Life is in 다즐링
nmap.....^^;;;;
nmap 메트릭스에도 나왔다는 스캔 프로그램이라네요...
음...이놈 소스를 구할수있으면 될듯한데...에공 ^^;;;
멋진 프로그램이네요 : )
nmap 은...
ttl 값으로 os 를 유추하는 것으로 알고 있습니다.
핑을 날렸을때 os 마다 버전마다 ttl 값이 다른 경우가 많습니다.
( 윈도우의 경우 일반적으로 ttl 이 128이죠.. )
제가 알기로는 nmap 은 이 ttl 값을 통해서 os 와 os 의 버전을 판별하고 있습니다.
nmap 의 소스까지는 필요가 없을듯합니다.
한가지 첨언하자면 서버쪽에 아무 설정없이 클라이언틍서 서버의 os 나 버전을 판별하는 것은
상당히 힘들것이라고 생각되어집니다. snmp 를 지원하면 모를까...
서버쪽에서 아무것도 지원하지 않는데 클라이언트에서 서버의 정보를 알아낼 수 있다면
그 서버는 상당히 문제가 많은 서버라고 생각되어지는군요.
제대로 된 관리자면 디폴트로 선언된 ttl 값도 수정해야하는것이 올바르겠죠.
위에 누군가가 댓글을 달았지만 특정 포트를 검색해서 판별하는 것은 올바르지 않다고 생각합니다.
윈도우2003서버부터는 80 외에는 deny 가 디폴트입니다.
또한, 윈도우에서만 쓰는 포트를 리눅스나 타 기종에서 꼭! 안쓰리라는 보장도 없습니다.
음...역시나...
음...역시나 서버의 피드백없이 클라이언트 단독으로 정보를 알아내야 한다는거 자체가 보안상 좀 무리라는것을
알고는 있었지만...아고 어케해야하나...ㅠ.ㅠ
스캐닝이라고
스캐닝이라고 하지요.
1) active
- 호스트(질문에서는 서버)에게 특정 정보를 보내, 그 응답을 검토하여 호스트의 사양에 대해 판단해 보는 방법
- 스캐닝시 다양한 방식으로 패킷을 보내게 되는데, 이 패킷으로 인해 네트워크, 서버에 영향이 발생될 수 있음
- 오판 가능성 있음, 서버다운등 가능성
2) passive
- 검토하고자 하는 호스트들의 공통경로(스위치, 라우터등) 상에 미러링을 수행하여 유통되는 패킷정보를 수집하고 이를 분석하여 시스템 사양을 판단해 보는방법
- 기존 망/서버에 영향없음, 수집의 정보량이 액티브에 비해 상대적으로 적음
- 오판 가능성 있음
* 1,2 둘 다 완벽하지 못합니다. 대충은 쓸 수 있겠지만요. 1,2로 얻는 정보도 외부로 나오는 정보만 가능할뿐(통신프로토콜관련 서버 및 OS는 오탐이 있겠지만 대충 감지), CPU, 메모리등 자원 등등은 감지 불능입니다.
* 결론: 질문자가 얻고자 하는 것을, 질문자가 추구하는 방법으로는 얻을 수 없다.
-----------
역시나, 관리대상에 에이전트(정보를 제공하는 프로그램)을 두어 모니터링하는 것이 정석입니다.
에이전트는 ,NMS 도입하고, SNMP Agent를 설치할 수 있고, 그냥... 만들어서 (사설 프로토콜로)설치하는 방법도 있겠습니다. 사설 프로토콜에 의한 SMS라 할까요?
각종 다양한 모니터링 방법론이 나왔고/현재 사용되고 있으며, 그중 DMTF의 WBEM이 대세라고 생각됩니다. 윈도우의 경우는 DMTF의 스펙을 구현한, WMI인터페이스를 쓰는게 가장 좋겠습니다. WMI인터페이스는 위에서 언급한 에이전트방식과 유사합니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
아...이거 위험한 일이군요
결론은 제가 할려는 일이 해킹의 첫번째 관문...os fingerprint였네요 -_-a
해커들이 특정사이트를 해킹하기 위해서는 우선 os종류를 알아내야 뭐라도 할꺼니까요
해커스랩이랑 몇군데 돌아다녀보니깐 알아내려고 시도하는것도 불법인것같고...혼자 가만히 생각해보니 그렇네요 ^^;;;
또 설령 알아낸다고 해도 100% 완벽하지도 않은거 같네요...해킹방지를 위해서 os fingerprint정보를 위조하는것도
그리 어렵지 않다고 그러니...자칫하면 해킹이란걸 할뻔했는데 여기서 접어야겠습니다.
답변해주신 모든분들 고맙습니다...^^.
* NMAP도 좋습니다만,
* NMAP도 좋습니다만, 제가 보기에 nessus가 더 감지능력이 좋은 듯합니다. nessus는 취약점을 스캐닝하기 위한 기능이 많이 확장되어 있고, 상용으로도 널리 사용되고 있는 오픈소스 프로그램입니다.
* nmap도 오픈 소스입니다. 현존하는 거의 대부분의 스캐닝방법론을 통합해 놓은 도구로 보면 되겠습니다. 적어도 운영체제와 서비스(통신서비스) 프로그램등을 검출하는 용도로는 훌륭합니다. queso, portscan등이 이제는 필요없을 정도로 스캐닝 관련 대부분의 기능을 내장하고 있습니다.
* 패시브모드에서는 p0f와 같은 도구가 널리 사용되고 있습니다. (ntop에서 p0f의 기능을 이용해 운영체제별 트래픽 모니터링을 구현하는데 사용한 걸로 기억합니다.) 그외 arpwatch등 단순한 모니터링등도 다수 사용되고 있습니다.
** scanning은 악의(선의라도)로 사용되면 ,자칫 ,법에 저촉될 수 있습니다. 그러나, 네트워크를 이해하는 다양한 방법, 즉, 이론, 문서, 논문, 소스코드등과 더불어, 네트워크 특성을 블랙박스로 보고 외부에서 테스트해보는 (마치, 어린시절, 끓는 점, 타는점, 용액섞어 색의 변화관찰등등 처럼) 학습도구로 사용될때는 좋은 점도 있다고 생각됩니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기