HackerSchool FTZ Level 3 풀이
cat hint하면 소스 코드가 나온다.
#include#include #include int main(int argc, char **argv){ char cmd[100]; if( argc!=2 ){ printf( "Auto Digger Version 0.9\n" ); printf( "Usage : %s host\n", argv[0] ); exit(0); } strcpy( cmd, "dig @" ); strcat( cmd, argv[1] ); strcat( cmd, " version.bind chaos txt"); system( cmd ); }
more hint로
동시에 여러 명령어를 사용하려면?
문자열 형태로 명령어를 전달하려면?
소스코드를 보면 dig을 쓰는 프로그램이다. 먼저 dig이 뭔지 알아보자
dig (domain information groper) 는 DNS 네임서버에 쿼리를 날리기위한 유용한 툴이다.
DNS lookup 과 쿼리를 보낸 네임서버로부터 돌아오는 응답을 출력해준다.
대부분의 DNS 관리자들은 DNS장애 시 troubleshoot 를 위해 dig를 사용한다.
이유는 dig의 유연하고 편리하기 때문이다.
nslookup과 비슷한 역할을 하지만 nslookup보다 좀 더 상세한 정보가 포함돼 있다.
nslookup과 차이점은 @쿼리할 DNS 서버 IP 옵션을 명령어를 사용할 때 입력해야 한다.
최신 버전의 dig은 안해도 작동한다.
소스코드를 보면 먼저 인자가 1개인지 확인을 하고
cmd에 dig @을 넣고 그 뒤에 인자를 넣고 version.bind chaos txt가 들어간다.
만약 127.0.0.1을 넣는다고 하면
dig @127.0.0.1 version.bind chaos txt가 된다.
즉, 입력받은 문자열에 해당하는 dNS 서버에서 운영중인 BIND 프로그램의 버전을 확인하는 명령을 실행한다.
이는 해당 서버에서 취약한 버전이 운영 중인지 확인할 수 있는 유용한 명령어이지만 최근에는
버전 요청에 대해 회신하지 않도록 설정하고 있다.
아래는 dig과 nslookup 차이이다.
/bin/autodig *****가 되야한다.
하지만 dig @123.456.754.123이 되고 뒤에 뭔가 명령어를 더 넣어야 한다.
"과 ;를 쓰면 한번에 보낼 수 있다.
/bin/autodig "168.126.63.1; my-pass;"
셀에서 ";"는 명령어를 한줄에 연속해서 적을 때 이용할 수 있고 이것은 System()에도 동일하게 적용 된다.
'System' 카테고리의 다른 글
HackerSchool FTZ Level 2 풀이 (0) | 2017.07.13 |
---|---|
HackerSchool FTZ Level 1 풀이 (0) | 2017.07.13 |
기초 어셈블리어 종류, 설명 (0) | 2017.07.12 |
System) linux memory protection disable 메모리 보호 해제 (0) | 2017.07.06 |
Kioptrix Level 2를 이용하여 간단한 침해사고 발생 실습 (0) | 2017.01.12 |
최근댓글