'webshell'에 해당되는 글 2건

  1. 2009.06.10 웹쉘에서 배우다
  2. 2009.01.02 웹해킹 파일 분석
컴퓨터2009.06.10 08:00

처음 무언가를 배우는 사람은 다른 사람이 남긴 것을 보고 배우게 됩니다.
VBScript 를 공부하고 있습니다. 문법은 GUI 관련 부분이 없는 정도의 Visual Basic 와 비슷합니다. PowerShell 과 같이 특정 윈도우 상위만 지원하는 것이 아닌 모든 윈도우에서 사용이 가능하며, 조금은 번거롭지만 닷넷에서도 사용이 가능합니다. 저 같은 사람에게는 정말 가뭄의 단비같은 존재입니다.

요즘 획득한(?) 웹쉘의 내용을 보면서 참 많은것을 느꼈습니다.

이제까지 아무생각 없이 IF 문을 이용해서 특정 문자가 들어있는 부분을 체크했었는데 이 소스가 더 나아 보입니다.
소스1
IF instr(keyword, "\")>0 or instr(keyword, "/")>0 or instr(keyword, ":")>0 or .... then
   ........
End IF

그런데 이번에 본 웹쉘에는 다음과 같은 내용이 있었습니다.
소스2
flag =  instr(keyword, "\")>0 or instr(keyword, "/")>0
flag = flag or instr(keyword, ":")>0
flag = flag or instr(keyword, "|")>0
....
flag = flag or instr(keyword, "&")>0
IF flag then
   ........
End IF

2번째 소스는 flag 라는 변수와 OR 라는 논리 연산자를 이용해서 소스수정이 쉽도록 작성이 되어 있습니다.

OR 논리 연산자 는 입력값이 둘다 False 일 경우 False 를 반환하며, 그외에는 True 를 반환합니다.
입력1 값 입력2 값 결과
0 0 0
0 1 1
1 0 1
1 1 1


소스1과 소스2의 차이는 크게 없습니다. 다만 현제 작성하기 쉬운 것와 나중에 수정하기 쉬운 차이가 있습니다.

가령 체크를 해봐야 할 문자가 10개 정도 된다면 어떻게 될까요.
소스1의 방식으로는 조건문(IF)이 상당히 긴 내용으로 작성이 됩니다. 소스2의 방법으로는 줄(라인)수가 많게 작성이 됩니다.
차이는 조건문의 일부를 수정할때 발생을 합니다. 소스1의 방식은 일단 알아보기가 쉽지 않습니다. 그나마 띄어쓰기라도 했다면 알아보기 쉬울테지만 소스2만큼 쉽지는 않을것입니다.

이렇듯 성능상 차이가 있는 부분은 아니지만 나중에 다시 소스를 보게될 경우를 대비해서 조금이라도 알아보기 쉬운 코드로 작성을 해야 할것 같습니다.

일단 주석부터 추가해야 겠네요. ^^;



결론. 지금 편하자고 막하면 나중에 고생한다.

Posted by Zasfe
보안글2009.01.02 17:23

웹해킹 파일을 분석할때에는 반드시 외부 네트워크와는 분리된 테스트 서버에서 작업을 하시기 바랍니다. 예전에 발견한 웹해킹파일에서 내용을 분석하던 중에 iframe 태그를 삽입시키는 경우가 있기때문입니다.  Virtual PC, VirtualBox, Vmware 등을 이용한 가상화 머신을 이용하시는 방법을 권장하여 드립니다.

제가 확인한 소스의 주요은 다음과 같습니다.

  1. 파일 브라우징 및 특정 파일 검색
  2. 네트워크 정보 출력
  3. 프로세스 정보 출력
  4. 서비스 정보 출력
  5. 컴퓨터 이름 출력
  6. 컴퓨터 계정정보 출력
  7. DB 접속 및  SQL 쿼리
  8. 디스크 용량 / 이름 / 타입 정보 출력
  9. IIS 버젼 및 스크립트 버젼정보 출력
  10. FileSystemObject 등의 개체 생성 테스트
  11. 터미널서비스 포트번호 / 자동로그인 정보 출력
  12. 서버내 스크립트 실행
  13. 파일 업로드 / 수정 / 삭제
  14. 포트 스캔
  15. 네트워크정보(dns, gateway, nameserver, TCP/UDP 접속허용 포트정보)
  16. Serv-U 계정생성
  17. 외부사이트 내용의 웹서버내 저장
  18. 계정 생성 및 패스워드 변경
  19. 사이트소스에 iframe 태그 추가

위의 기능은 최근에 발견된 하나의 웹쉘(webshell) 에서 발견한 내용입니다. 물론 인코딩되어 있기때문에 문자열로 검색하여도 찾을수 없는 파일입니다.

암호화되어 있는 웹쉘소스

암호화되어 있는 웹쉘소스

막을수 있는 가장 좋은 방법은 IIS 내에서 실행권한을 제한하는 것입니다.

IIS 실행권한 제한

IIS 실행권한 제한


Posted by Zasfe

티스토리 툴바