标签归档:信息泄露

GitHub泄露监控系统Hawkeye

Github作为渗透测试中较为常用的打开突破口的点,由员工安全意识不足导致的敏感信息泄露,例如运维人员上传的脚本中有个人Mail邮箱账号密码,登陆后可以导出通信录继续暴力爆破,然后导出邮件内容搜索VPN等关键字获取一些关键信息。
Github的搜索可以自由组合一些关键字,例如:

"test.com" "smtp"
"test.com" "mail"
"test.com" "mysql"
"test.com" "jdbc"
"test.com" "svn"
"test.com" "pop"
"test.com" "ftp"

"test.com" "user"
"test.com" "username"
"test.com" "账号"

"test.com" "password"
"test.com" "passwd"
"test.com" "pwd"
"test.com" "pass"
"test.com" "密码"

"test.com" "内部"

推荐的一套GitHub泄露监控系统,地址:

https://github.com/0xbug/Hawkeye

克隆项目到本地

git clone https://github.com/0xbug/Hawkeye.git --depth 1

安装依赖 (修改/usr/local/bin/python3 为你系统的Python 3 路径)

cd Hawkeye
pip install virtualenv
virtualenv --python=/usr/local/bin/python3 venv
source venv/bin/activate
pip install -r deploy/requirements.txt

配置文件

cp config.ini.example config.ini
vim config.ini

github 帐户配置

[GitHub]
USERNAME = 帐号
PASSWORD = 密码

MongoDB 认证配置

yum install mongodb
/usr/local/mongodb/bin/mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/logs
> use Hawkeye
switched to db Hawkeye
> db.addUser("git","hehe123")
{
	"user" : "git",
	"readOnly" : false,
	"pwd" : "2cb2f4cc98430db51a2335446fa84930",
	"_id" : ObjectId("59accc87fff25e9f045afc45")
}

[MongoDB]
HOST = localhost
PORT = 27017
ACCOUNT = git
PASSWORD = hehe123

告警配置(ENABLE:是否开启告警功能)

[Notice]
ENABLE = 1
MAIL_SERVER = 邮件服务器
MAIL_PORT = smtp端口
FROM = 发件人
PASSWORD = 密码

python Hawkeye.py
然后访问 http://0.0.0.0:5000/ 进行关键词、告警、黑名单、定时任务配置

 

SNMP弱口令利用

Yum安装

yum install -y net-snmp net-snmp-utils

启动SNMP

service snmpd start

Linux下利用:
snmpwalk -c SNMP读密码 -v 1或2(代表SNMP版本) IP OID(对象标示符)

snmpwalk -v 2c -c public 10.59.0.73

获取内存

[root@localhost subsys]# snmpwalk -v 2c -c public 10.59.0.73 .1.3.6.1.2.1.25.2.2 
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 32477184 KBytes

获取IP信息

[root@localhost subsys]# snmpwalk -v 2c -c public 10.59.0.73 .1.3.6.1.2.1.4.20
IP-MIB::ipAdEntAddr.10.59.0.73 = IpAddress: 10.59.0.73
IP-MIB::ipAdEntAddr.10.81.0.73 = IpAddress: 10.81.0.73
...

 

Windows下使用MIB Browser

修复建议:

vim /etc/snmp/snmpd.conf
# sec.name source community
com2sec notConfigUser default public#修改这里
[root@server120 ~]# service snmpd restart

使用Nmap扫描

[root@server144 ~]# nmap -sU -p 161 --script=snmp-brute 192.168.192.120

Starting Nmap 5.51 ( http://nmap.org ) at 2017-09-08 11:45 CST
Nmap scan report for localhost (192.168.192.120)
Host is up (0.00083s latency).
PORT STATE SERVICE
161/udp open snmp
|_snmp-brute: public
MAC Address: 52:54:00:26:BE:A2 (QEMU Virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds

 

敏感文件泄露总结

.svn泄露

在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。

 

svn<=1.6

从svn的结构图可以看到一个目录text-base,这里有我们源文件的备份,比如要下载somedomain/phpinfo.php,直接访问目录somedomain/.svn/text-base/phpinfo.php.text-base,一般的服务器既不会阻止该目录也不会解释该后缀,我们就可以直接读到本地来。现在只是访问最顶层的文件信息,那怎么遍历呢?这里面就有.svn/entries,这个文件包含着该基础目录下所有的文件和目录,直接递推查找就行。

svn>1.6

svn在1.6之后引入了wc.db来管理文件,该文件位于.svn/wc.db。普通文件位置:somedomain/.svn/pristine/”XX”/”CHECKSUM”.svn-base,CHECKSUM是文件的sha1值,xx则是他的前两位。那这个CHECKSUM去哪找呢?就是我们刚才提到的wc.db,这是一个sqlite数据库。数据库的大体结构如下:

$ sqlite3 wc.db .tables

ACTUAL_NODE NODES PRISTINE WC_LOCK

EXTERNALS NODES_BASE REPOSITORY WORK_QUEUE

LOCK NODES_CURRENT WCROOT

$ sqlite3 wc.db 'select local_relpath, checksum from NODES'

index.php|$sha1$4e6a225331f9ae872db25a8f85ae7be05cea6d51

scripts/menu.js|$sha1$fabeb3ba6a96cf0cbcad1308abdbe0c2427eeebf

style/style.js|$sha1$2cc5590e0ba024c3db77a13896da09b39ea74799

$ sqlite3 wc.db 'select local_relpath, ".svn/pristine/" || substr(checksum,7,2) || "/" || substr(checksum,7) || ".svn-base" as alpha from NODES;'

index.php|.svn/pristine/4e/4e6a225331f9ae872db25a8f85ae7be05cea6d51.svn-base

scripts/menu.js|.svn/pristine/fa/fabeb3ba6a96cf0cbcad1308abdbe0c2427eeebf.svn-base

style/style.js|.svn/pristine/2s/2cc5590e0ba024c3db77a13896da09b39ea74799.svn-base

下载wc.db,然后从NODES表中找到文件名和其sha1值,最后构造下载链接。

 

利用工具:

Seay-Svn源代码泄露漏洞利用工具.exe

 

.git信息泄露

下载.git/index文件,这是一种git特有的格式,在该文件中包含着文件名和文件SHA1值。

根据该文件SHA1值到objects目录下载相应文件,具体路径somedomain/.git/objects/”XX”/”CHECKSUM”

zlib解压文件,按照原始目录写入源代码。

 

利用工具:

https://github.com/lijiejie/GitHack

http://wutongyu.info/perl/rip-git.pl

 

.DS_Store

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。

如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

 

利用工具:

https://github.com/lijiejie/ds_store_exp