(단일 정답이 없기 때문에) 이곳이 이 질문을 하기에 가장 좋은 장소는 아닌 것 같지만 이보다 더 좋은 곳은 생각나지 않습니다. 더 나은 제안이 있는 경우 추천해 주시면 바로 질문을 닫는 대신 질문을 옮겨드릴 수 있나요?
저는 고등학생들에게 일반적인 Linux 보안에 관해 가르치고 있습니다. 높은 수준에서 나는 그들이 특정 Linux 서버를 사용할 수 있고 오래된 계정 폐쇄, 강력한 비밀번호 해싱 알고리즘 사용, 이상한 프로세스가 실행되지 않는지 확인 등의 일반적인 보안 문제에 대해 서버를 강화하는 방법을 알고 있을 것으로 기대합니다. 또는 시작 시 실행합니다. 그들의 기술 수준은 매우 다양하므로 우리가 논의한 내용(예: crontab 보기, 사용자 및 그룹 구성 보기, 열린 포트 보기)을 사용하도록 동기를 부여할 방법을 찾고 있습니다.
나는 그들을 격려하기 위해 콘테스트를 운영하기 위해 200달러를 얻었고 아마도 10달러 단위로 Amazon 기프트 카드를 잔뜩 구입할 수 있을 것이라고 생각했습니다. 아이디어는 아이들이 찾을 수 있도록 샌드박스 서버의 다양한 위치에 상환 코드를 "숨기는 것"입니다. 예를 들어, 비밀번호를 일반 텍스트로 저장하고 샘플 사용자 계정 중 하나에 코드 중 하나가 포함된 비밀번호를 할당할 수 있습니다. 아니면 30초마다 이러한 코드 중 하나를 시스템 로그에 기록하도록 cron 작업을 설정할 수도 있습니다.
내가 찾고 있는 것은 서버를 보호하려는 누군가가 우연히 발견할 수 있도록 이 코드를 숨길 수 있는 장소/방법입니다.
감사해요!
답변1
또는 작업을 수행할 때
nc
쿠폰 코드 중 하나를 에코하는 리스너를 실행합니다. 그 분들도 문서를 보시면 이해하실 겁니다.telnet
nc
#!/bin/sh nc -i 2 -l -p 3128 -c "echo amazoncode"
다음과 같이 유용한 이름을 지정하세요.
squid
Amazon 코드의 이름이나 매개변수를 사용하여 일부 로컬 방화벽 규칙을 만듭니다.
iptables -N amazoncode -P ACCEPT iptables -I INPUT -j amazoncode
ssh
사용자 이름으로 코드를 사용한 일부 로그인에 실패했습니다.안전하지 않거나 덜 안전한 mysql 인스턴스를 실행하려면 코드가 포함된 일부 데이터베이스를 사용하십시오.
grep -r amazoncode
비록 혼란스러운 방법이 없더라도 똑똑한 사람들을 만날 수도 있습니다 . 그들이 정규식을 알아낼 수 있다면 그것은 약간의 독창성을 보여주지만 보안에는 별로 도움이 되지 않습니다.
답변2
학생들이 이 방법에 관심이 있는지 모르겠습니다.
원본 코드를 사용하여 amazoncode로 파일을 만듭니다.
cat amazoncode 125622234
이제 다음 명령을 사용하여 파일을 암호화합니다.
openssl aes-128-cbc -salt -in amazoncode -out amazoncode.aes -k somepassword
somepassword
이 파일에 대해 설정한 비밀번호입니다.
이제 원본 파일을 삭제해 보세요.
rm amazoncode
이제 학생들에게 Amazon 선물 코드는 암호화되어 있으며 코드가 필요한 경우 암호를 해독해야 한다고 알려주세요. 암호화에 사용된 원래 명령과 비밀번호를 학생과 공유할 수도 있습니다.
학생들은 아래와 같이 파일을 해독하기 위해 반대 작업을 수행해야 한다는 원래 명령을 볼 수 있습니다. 또한 암호 해독 옵션을 알려주고
-d
암호화된 파일을 입력으로 사용하여 코드를 출력으로 생성해야 한다고 알려줄 수도 있습니다. 여기에서는 학생들에게man
페이지에서 암호 해독 기술을 알아보라고 지시할 수도 있습니다openssl
.openssl aes-128-cbc -d -salt -in amazoncode.aes -out amazoncode
이제 일부 암호화/암호 해독 기술을 배운 후 코드도 얻었습니다.
cat amazoncode 125622234
실제로 openssl
비밀번호는 사용자의 홈 디렉토리에 숨겨진 파일로 저장될 수 있습니다. 그런 다음 학생들은 숨겨진 파일에 접근하는 방법과 openssl
거기에서 비밀번호를 얻은 다음 이를 해독하는 방법을 배웁니다 .
답변3
몇 가지 생각:
- 사용자의 홈 디렉토리에 있는 일반 텍스트 파일("
Amazon Code.txt
" 또는 다른 명확한 내용) , 누구나 읽을 수 있음 - 사용자의 홈 디렉토리에 있는 일반 텍스트 파일로 읽을 수는 없지만 사용자의 비밀번호는 쉽게 추측할 수 있습니다.
- 처리는 소스 코드의 난독화된 키를 사용하여 수행되지만 출력
system("sleep 864000 $key")
에 키를 노출하기 위해 다른 항목(예:)을 호출합니다.ps
- 동일하지만 crontab에서 실행되며 자식이 몇 초 동안만 절전 모드를 처리하도록 허용합니다.
- 소스 코드의 난독화된 키로 작동하지만 TCP 소켓을 열고 연결하는 모든 사람에게 키를 인쇄합니다.
답변4
~/bin/ 또는 /etc/bin/에 "흥미로운" 스크립트가 있을 수 있습니다. LS, cat 또는 CD의 기능을 교체하여 약간 다르게 동작하고 문제에 대한 메시지를 표시하도록 합니다(먼저 생각한 것은 ls/cd를 잘못된 폴더를 나열/이동하도록 변경하는 것입니다). 코드는 다음 주석에 나열되어 있습니다. sh 파일.
너무 많은 메모리를 소비하거나 이상한 포트를 여는 프로세스를 실행하면 프로세스 이름을 Amazon Code로 설정할 수 있습니다.